#declare DeclarePigmentHead = pigment { color rgb <0.8, 0.74902, 0.807843> } #declare DeclarePigmentBronz = pigment { color rgb <0.843137, 0.509804, 0.0431373> } #declare DeclarePigmentBearing = pigment { color rgb <0.686275, 0.34902, 0.807843> } #declare DeclarePigmentDark = pigment { color rgb <0.380392, 0.356863, 0.384314> } #declare DeclarePigmentCyl = 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> } media { } #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, 2.7, 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 DeclareAxialTube = cylinder { //*PMName tube <0, 0, -0.5>, <0, 0, 0.5>, 0.5 open pigment { DeclarePigmentBronz } scale 1 rotate <0, 0, 0> translate <0, 0, 0> } #declare DeclareCylRemoveFromHead = merge { cone { //*PMName conicalCutAway <0, 2.2, 0>, 1.75, <0, 0.4, 0>, 0.2 scale 1 rotate <0, 0, 0> translate <0, 0, 0> } difference { object { //*PMName removeCylToo DeclareCylThin scale 1 rotate <0, 0, 0> translate y*(-0.8) } cylinder { //*PMName axisCylRemove <0, 0, -2>, <0, 0, 2>, 2.99 pigment { DeclarePigmentHead } scale 1 rotate <0, 0, 0> translate <0, 0, 0> } pigment { //*PMName dark DeclarePigmentDark } } } #declare DeclareCylHeadCone = cone { <0, 0, 2>, 0, <0, 0, -2.5>, 2.5 pigment { DeclarePigmentHead } scale 1 rotate <0, 0, 0> translate <0, 0, 0> } #declare DeclareCylHead = difference { cylinder { //*PMName cylhead <0, 0, -2.4>, <0, 0, 2.4>, 3 pigment { DeclarePigmentHead } scale 1 rotate <0, 0, 0> translate <0, 0, 0> } object { //*PMName RemoveFromHead0 DeclareCylRemoveFromHead scale 1 rotate <0, 0, 0> translate <0, 0, 0> } object { //*PMName RemoveFromHead90 DeclareCylRemoveFromHead scale 1 rotate z*90 translate <0, 0, 0> } object { //*PMName RemoveFromHead180 DeclareCylRemoveFromHead scale 1 rotate z*180 translate <0, 0, 0> } object { //*PMName RemoveFromHead270 DeclareCylRemoveFromHead scale 1 rotate z*270 translate <0, 0, 0> } object { //*PMName removedCone DeclareCylHeadCone scale 1 rotate <0, 0, 0> translate <0, 0, 0> } } global_settings { adc_bailout 0.00392157 assumed_gamma 1.5 noise_generator 2 } light_source { <-8, 5, -19>, rgb <1, 1, 1> } light_source { //*PMName light2 <2, 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 Cyl90 DeclareCylThin scale 1 rotate z*90 translate <0, 0, 0> } object { //*PMName Cyl180 DeclareCylThin scale 1 rotate z*180 translate <0, 0, 0> } object { //*PMName Cyl270 DeclareCylThin scale 1 rotate z*270 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 Piston90 DeclarePiston translate y*5 scale 1 rotate z*90 translate <0, 0, 0> } object { //*PMName Piston180 DeclarePiston translate y*3.4 scale 1 rotate z*180 translate <0, 0, 0> } object { //*PMName Piston270 DeclarePiston translate y*5 scale 1 rotate z*270 translate <0, 0, 0> } object { //*PMName Case DeclareCase scale 1 rotate <0, 0, 0> translate y*1.8 } #declare DeclareConicalValveStator = merge { difference { //*PMName ConicalValveStator object { //*PMName cone DeclareCylHeadCone pigment { DeclarePigmentBronz } scale 1 rotate <0, 0, 0> translate <0, 0, 0> } cylinder { //*PMName Intake <0, 0, 1.5>, <0, 0, -2.8>, 0.5 pigment { DeclarePigmentBronz } scale 1 rotate <0, 0, 0> translate <1.13715, -0.795256, 0> hollow false } cylinder { //*PMName Exhaust <0, 0, 1.5>, <0, 0, -2.4>, 0.8 pigment { DeclarePigmentBronz } scale <1, 1.4, 1> rotate <0, 0, 0> translate x*(-1.1) } pigment { DeclarePigmentBronz } } object { //*PMName ExhaustTube DeclareAxialTube scale <1.2, 1.2, 4> rotate <0, 0, 0> translate <-1.0559, -0.05415, -4.3> } object { //*PMName IntakeTube DeclareAxialTube scale <1, 1, 4> rotate <0, 0, 0> translate <1.16426, -0.785177, -4.3> } } object { //*PMName ValveStator DeclareConicalValveStator scale 1 rotate y*60.3 translate <-2.80458, 0, -7.38258> }