-- Takuya Saitou -- Turn a Gundam -- box [-12,12] my_model(x[3],a[1]) { array xt[3], xn[3], center[3]; center = [0,0,0]; tmp = hfScale3D(x,1.1,0.9,1); -- Headparts(1) hull=64- (x[1])^2- (x[2])^2- (x[3])^2; headspacer1 = 64-(x[1]+10)^2; headspacer2 = 64-x[2]^2; headspacer3 = 64-(x[3]-8)^2; headspacerM = headspacer1 & headspacer2 & headspacer3 ; xt[1]=x[1]-10; xt[2]=x[2]; xt[3]=x[3]; tmp = hfRotate3DY(xt,-0.18); spacer11 = 64-xt[1]^2; spacer12 = 64-xt[2]^2; spacer13 = 128-xt[3]^2; backspacerM = spacer11 & spacer12 & spacer13; headbottom1 = 128-x[1]^2; headbottom2 = 128-x[2]^2; headbottom3 = 30-(x[3]-10)^2; headbottomM = headbottom1 & headbottom2 & headbottom3 ; headA = hull \headspacerM \ backspacerM \ headbottomM; -- Headparts(2) hull=64- (x[1])^2- (x[2])^2- (x[3])^2; xt[1]=x[1]; xt[2]=x[2]; xt[3]=x[3]; tmp = hfShift3D(xt,-10,0,-10); center = [0,1,0]; headchopper1 = hfBlock(xt,center,128,64,128); center = [0,0,8]; kaodelete1 = hfBlock(xt,center,10,10,10); tmp = hfScale3D(xt,1,-1,1); center = [0,1,0]; headchopper2 = hfBlock(xt,center,128,64,128); center = [0,0,8]; kaodelete2 = hfBlock(xt,center,10,10,10); headB = hull \ headchopper1 \ headchopper2 \ kaodelete1 \kaodelete2\ headbottomM; -- Headparts(3) center = [0,0,0]; head3 = hfSphere(x,center,7); headC = head3 \ headbottomM \ headspacerM; -- Headparts(4) center = [0,0,0]; headbaseD = hfSphere(x,center,7.5); center = [-8,-8,-8]; backhead1M = hfBlock(x,center,16,16,8); center = [-8,-8,0]; backhead2M = hfBlock(x,center,8,16,8); center = [-8,-8,5]; backhead3M = hfBlock(x,center,16,16,16); headD = headbaseD \ backhead1M \ backhead2M \ headbottomM; -- Neckparts(1) center = [0,0,5]; kubibase = hfCylinderZ(x,center,5); center = [-8,-8,5]; kubimaskM = hfBlock(x,center,16,16,2); kubiA = kubibase & kubimaskM; -- ChessBase(1) center = [0,0,7]; chessbase = hfCylinderZ(x,center,7); center = [-8,-8,7]; chessmaskM = hfBlock(x,center,16,16,4); chessbaseA = chessbase & chessmaskM; -- Hige center = [0,0,0]; xn[1]=x[1]; xn[2]=x[2]; xn[3]=x[3]; tmp = hfRotate3DY(xn,0.54); tmp = hfShift3D(xn,3,0,1); hige1 = hfEllipsoid(xn,center,12,10,9); hige2 = hfEllipsoid(xn,center,11,9,8); center = [-12,-10,0]; higemask0 = hfBlock(xn,center,30,20,10); higeA = hige1 \ hige2 \ higemask0; xt[1]=xn[1]; xt[2]=xn[2]; xt[3]=xn[3]; tmp = hfRotate3DY(xt,-0.18); center = [-12,-10,-9.5]; higemask1 = hfBlock(xt,center,30,20,8); higeB = higeA \ higemask1; -- Kuti(red) center = [-8,-1,2]; kuti0 = hfBlock(x,center,8,2,3); center = [-9,-1.5,1]; kutiM = hfBlock(x,center,8,3,5); higeC = higeB \ kutiM; -- Kao xt[1]=x[1]; xt[2]=x[2]; xt[3]=x[3]; tmp = hfRotate3DZ(xt,0.45); tmp = hfShift3D(xt,3,4,0); center = [-8,-8,0]; kao0 = hfBlock(xt,center,6,6,5); xn[1]=xt[1]; xn[2]=xt[2]; xn[3]=xt[3]; tmp = hfShift3D(xn,0,3.5,1); migime = hfEllipsoid(xn,center,1,1.5,0.5); center = [-8,-8,0]; tmp = hfRotate3DZ(xt,-0.90); tmp = hfShift3D(xt,4,1,0); xn[1]=xt[1]; xn[2]=xt[2]; xn[3]=xt[3]; tmp = hfShift3D(xn,0,2.5,1); hidarime = hfEllipsoid(xn,center,1,1.5,0.5); kao1 = hfBlock(xt,center,6,6,5); kaoA = hfBlendUni(kao0,kao1,10,10,10); kaoB = kaoA | migime | hidarime; -- Tosaka center = [0,0,0]; tosakabase = hfSphere(x,center,11); tosakabaseM = hfSphere(x,center,10); center = [-11,-11,-11]; tosaka1M = hfBlock(x,center,11,22,22); center = [0,40,-10]; tosaka2M = hfSphere(x,center,39); center = [0,-40,-10]; tosaka3M = hfSphere(x,center,39); center = [0,-10,-1]; tosaka4M = hfBlock(x,center,11,22,22); tosakaA = tosakabase \ tosakabaseM \ tosaka1M \ tosaka2M \ tosaka3M \ tosaka4M; -- Tunagi xt[1]=x[1]; xt[2]=x[2]; xt[3]=x[3]; tmp = hfSTretch3D(xt,x,1,0.5,2); center = [0,0,0]; tunagi1 = hfTorusY(xt,center,9,1); center = [-11,-11,-11]; tunagiM = hfBlock(x,center,15,22,22); tunagiA = tunagi1 \ tunagiM \ tosaka4M; -- Blend tunagi & tosaka & headB tunagiB = hfBlendInt(tunagiA ,tosakaA ,5,5,5); tunagiC = hfBlendInt(tunagiB ,headB ,2,2,3); my_model = headA | headB | headC | headD | kubiA | chessbaseA | higeC | kuti0 | kaoB| tosakaA | tunagiC | tunagiA; -- my_model = headA | headB | tosakaA | tunagiC | tunagiA; }