#declare DeclarePigmentHead = pigment { color rgb <1, 0, 0.0156863> } #declare DeclarePigmentCase = pigment { color rgb <0.301961, 0.815686, 1> } #declare DeclarePigmentWheel = pigment { color rgb <1, 0.94902, 0> } #declare DeclarePigmentPiston = pigment { color rgb <0.0352941, 1, 0> } #declare DeclarePiston = union { cylinder { //*PMName piston <0, 1, 0>, <0, 0, 0>, 1.5 pigment { DeclarePigmentPiston } scale <1, 4.2, 1> rotate <0, 0, 0> translate <0, 0, 0> } torus { 0.8, 0.3 scale 1 rotate x*90 translate y*3.6 pigment { DeclarePigmentWheel } } } #declare DeclareCylThin = cylinder { //*PMName cyl1 <0, 7.5, 0>, <0, 3, 0>, 1.75 pigment { DeclarePigmentHead } scale 1 rotate <0, 0, 0> translate <0, 0, 0> } #declare DeclareCase = cylinder { //*PMName case <0, 0, -2>, <0, 0, 2>, 10 open pigment { DeclarePigmentCase } scale 1 rotate <0, 0, 0> translate <0, 0, 0> } #declare CylRemoveFromHead = union { cylinder { //*PMName cylremove <0, 0, -3.1>, <0, 0, 2>, 1.2 pigment { DeclarePigmentHead } scale 1 rotate <0, 0, 0> translate y*1.7 } object { //*PMName removeCylToo DeclareCylThin scale 1 rotate <0, 0, 0> translate y*(-2.5) } } #declare DeclareCylHead = difference { cylinder { //*PMName cylhead <0, 0, -3>, <0, 0, 3>, 3.3 pigment { DeclarePigmentHead } scale 1 rotate <0, 0, 0> translate <0, 0, 0> } object { //*PMName RemoveFromHead0 CylRemoveFromHead scale 1 rotate <0, 0, 0> translate <0, 0, 0> } object { //*PMName RemoveFromHead1 CylRemoveFromHead scale 1 rotate z*180 translate <0, 0, 0> } } global_settings { adc_bailout 0.00392157 assumed_gamma 1.5 noise_generator 2 } light_source { <4, 5, -19>, rgb <1, 1, 1> } camera { //*PMName kamera perspective location <15, 15, -100> sky <0, 1, 0> direction <0, 0, 1> right <1.33, 0, 0> up <1, 0, 0> look_at <0, 3, 0> angle 19 } object { //*PMName Cyl0 DeclareCylThin scale 1 rotate <0, 0, 0> translate <0, 0, 0> } object { //*PMName Cyl180 DeclareCylThin scale 1 rotate z*180 translate <0, 0, 0> } object { //*PMName CylHead DeclareCylHead scale 1 rotate <0, 0, 0> translate <0, 0, 0> } object { //*PMName Piston0 DeclarePiston translate y*7 scale 1 rotate <0, 0, 0> translate <0, 0, 0> } object { //*PMName Piston180 DeclarePiston translate y*3.4 scale 1 rotate z*180 translate <0, 0, 0> } object { //*PMName Case DeclareCase scale 1 rotate <0, 0, 0> translate y*1.8 }