-- Faucet -- bounding box [-14,14] -- Daisuke Saito -- student, University of Aizu my_model(x[3], a[1]) { array center1[3],center2[3], center3[3],center4[3],center5[3],center6[3],center7[3],center8[3],center9[3], center10[3],center11[3], x0[3],y0[3],z0[3]; xt = x[1]; yt = x[2]; zt = x[3]; theta = 0.25*x[3] +3.5; center1 = [1,0,0]; center2 = [-7,0,0]; center3 = [10,0,0]; center4 = [0,3,0]; center5 = [-7,7,0]; center6 = [10,-6,0]; center7 = [-7,10,0]; center8 = [-1,10,0]; center9 = [-12,10,0]; center10 = [-7,10,6]; center11 = [-7,10,-6]; --- pipe --- cyl1 = hfCylinderY(x,center2,2) & (yt) & (-yt+8); cyl2 = hfCylinderX(x,center1,2) & (xt+7) & (-xt+9); cyl3 = hfCylinderY(x,center3,1.7) & (yt+6) & (-yt-1); cyl4 = hfCylinderX(x,center4,2) & (xt+12) & (-xt-8); bluni1 = hfBlendUni(cyl1,cyl2,2,2,1); bluni2 = hfBlendUni(bluni1,cyl3,3,5,3); cyl5 = hfCylinderY(x,center2,0.7) & (yt) & (-yt+10); cyl6 = hfCylinderX(x,center4,5) & (xt+9.5) & (-xt-10); torus1 = hfTorusY(x,center5,2.3,1); torus2 = hfTorusY(x,center6,1,0.8); pipe1 = hfBlendUni(bluni2,torus1,1,1,1); pipe = pipe1|torus2; --- grip --- cyl7 = hfCylinderX(x,center7,0.8) & (xt+12) & (-xt-1); cyl8 = hfCylinderZ(x,center7,0.8) & (zt+6) & (-zt+6); grip1 = hfBlendUni(cyl7,cyl8,2,1,1); sp1 = hfSphere(x,center8,1.5); sp2 = hfSphere(x,center9,1.5); sp3 = hfSphere(x,center10,1.5); sp4 = hfSphere(x,center11,1.5); rotatey1 = hfRotate3DY(center7,45); grip = grip1|sp1|sp2|sp3|sp4; my_model = bluni1|bluni2|cyl4|cyl5|cyl6|pipe|grip; }