#declare chrome = texture { pigment { color rgbf < 0.5 0.5 0.5 0>} finish { diffuse 0.1 specular 0.5 reflection 0.7 roughness 0.005 metallic } } #declare hand_shower_bar= union { sphere_sweep { linear_spline 4 <0,0,1> 0.2 <0,1,1> 0.5 <0,23,1> 0.5 <0,24,1> 0.2 } box { <-1,2,0> <1,3,0.8> } cylinder { <0,2,0> <0,2,0.8> 1 } cylinder { <0,3,0> <0,3,0.8> 1 } box { <-1,22,0> <1,21,0.8> } cylinder { <0,22,0> <0,22,0.8> 1 } cylinder { <0,21,0> <0,21,0.8> 1 } texture { chrome } } #declare hand_shower= union { difference { sphere_sweep { b_spline 8 <0,-1,0> 0.4 <0,0,0> 0.4 <0,2,0.2> 0.6 <0,4,0.3> 0.4 <0,6,0.6> 0.35 <0,7,1> 0.4 <0,7.5,2.9> 1.8 <0,8,2.9> 1.8 } box { <-3,-3,-3> <3,0,3> } box { <-3,-2,-2.2> <3,0,3> rotate -65*x translate <0,8,2.4> } } torus { 1.5 0.1 rotate -65*x translate <0,7.6,2.3> } sphere { <0,0,0> 1.55 scale 0.35*y rotate -65*x translate <0,7.5,2.55> } #local i=0; #while (i<10) difference { cone { <0,0.1,0> 0.2 <0,-0.2,0> 0.07 } cylinder { <0,0,0> <0,-1,0> 0.04 } #local nozx=1.55*sin(radians(40)); #local nozy=1.55*0.35*cos(radians(40)); #local nozang=degrees(atan2((1.55*0.35-nozy),1.55-nozx)); rotate nozang*z translate -(nozy-0.1)*y translate nozx*x rotate (36*i)*y rotate -65*x translate <0,7.5,2.55> } #local i=i+1; #end #local i=0; #while (i<6) difference { cone { <0,0.1,0> 0.2 <0,-0.2,0> 0.07 } cylinder { <0,0,0> <0,-1,0> 0.04 } #local nozx=1.55*sin(radians(20)); #local nozy=1.55*0.35*cos(radians(20)); #local nozang=degrees(atan2((1.55*0.35-nozy),1.55-nozx)); rotate nozang*z translate -(nozy-0.1)*y translate nozx*x rotate (60*i)*y rotate -65*x translate <0,7.5,2.55> } #local i=i+1; #end difference { cone { <0,0.1,0> 0.2 <0,-0.2,0> 0.07 } cylinder { <0,0,0> <0,-1,0> 0.04 } translate -(1.55*0.35-0.1)*y rotate -65*x translate <0,7.5,2.55> } texture { chrome } translate <0,15,2> } #declare hand_shower_hose= union { cylinder { <0,0,0> <0,-0.5,0> 0.25 } cylinder { <6,0,0> <6,-0.5,0> 0.25 } sphere_sweep { b_spline 10 <0,0,2> 0.25 <0,0,2> 0.25 <0,-0.5,2> 0.25 <-1,-20,2> 0.25 <1,-24,2> 0.25 <5,-24,2> 0.25 <7,-20,2> 0.25 <6,-0.5,0> 0.25 <6,0,0> 0.25 <6,0,0> 0.25 } cylinder { <6,0,-0.4> <6,0,0.4> 0.75 } texture { chrome } translate 15*y }