#version 3.8; #declare UseRadiosity = on; global_settings { assumed_gamma 1.2 #if (UseRadiosity) radiosity { pretrace_start 0.08 pretrace_end 0.04 count 35 nearest_count 5 error_bound 0.2 recursion_limit 1 low_error_factor .5 gray_threshold 0.0 minimum_reuse 0.015 brightness 1 adc_bailout 0.01/2 } #end // end if } // end global_settings #include "colors.inc" #include "math.inc" #include "metals.inc" #include "shapes3.inc" #include "textures.inc" #include "woods.inc" //#include "SL - Human - 001.inc" //######################################################################################## //################################# CONTROL PANEL ###################################### //######################################################################################## #declare View = 3; //#declare Directory = "C:\Users\Sven Littkowski\Documents\My Images\Textures\" #declare Directory = "/home/oem/Documents/POV-Ray-3.8/ThirdParty/SvenLittkowski/textures/" #declare ShowAxes = no; #declare ManyLights = yes; #declare RotateAround = 0.0 ; // 30 = behind / 120 = right side / 210 = front / 300 = left side #declare RotateUpDown = -20.0 ; #declare NavyVersion = on; #declare AmmunitionType = "Stone"; // Stone / Arrow #declare ShowLadder = on; #declare TopLightStrength = 0.5; #declare ShowHeightfields = yes; //######################################################################################## camera { right x*image_width/image_height up y sky y direction z #switch (View) #case (0) location <0.0, 3.5, -12.0> look_at <0.0, 3.5, 0.0 > #break #case (2) location <0.0, 3.5/2, -3.0> look_at <0.0, 0, 0.0 > #break #case (3) location <0.0, 5.5, -10.0> //z = -10 look_at <0.0, 3.5, 0.0 > //rotate y*55 #break #case (4) location <0, 15, 0.1> //z = -10 look_at <0.0, 0, 0.0 > //rotate y*55 #break #else location < -9.5, 1.5, -5.5 > look_at < 0.0, 3.5, 2.0 > #break #end } #if (ManyLights) union { light_source {<2, 10, -6.0 > color White} light_source {< -10000.0, 50000.0, -25000.0 > rgb < 1.0, 1.0, 1.0 > * TopLightStrength} light_source {< -12000.0, 50000.0, -25000.0 > rgb < 1.0, 1.0, 1.0 > * TopLightStrength} light_source {< -14000.0, 50000.0, -25000.0 > rgb < 1.0, 1.0, 1.0 > * TopLightStrength} light_source {< -16000.0, 50000.0, -25000.0 > rgb < 1.0, 1.0, 1.0 > * TopLightStrength} light_source {< -18000.0, 50000.0, -25000.0 > rgb < 1.0, 1.0, 1.0 > * TopLightStrength} light_source {< -20000.0, 50000.0, -25000.0 > rgb < 1.0, 1.0, 1.0 > * TopLightStrength} translate < 000000.0, 0.0, 0.0 > } #else light_source {<2, 10, -6.0 > color White} #end plane {y, 0 pigment {rgb <0.0, 0.0, 0.0>} //finish { Glossy } } background {rgb <0.0, 0.0, 0.0>} sky_sphere { pigment { bozo color_map { [0.0 Gray50 * 3] [0.2 Black] [1.0 Black] } scale .001 } // emission rgb <0.8,0.8,1> } #declare Axes = union { #declare L = 10; #declare Line = 0.01; #declare O = <0, 0, 0>; cylinder {O, x*L Line pigment {Red}} cylinder {O, y*L Line pigment {Green}} cylinder {O, z*L Line pigment {Blue}} } #if (ShowAxes) object {Axes} #end #declare WoodTestZ = texture {pigment {wood pigment_map {[0 rgb 0] [1 rgb 1]} } scale 0.005} #declare WoodTestX = texture {WoodTestZ rotate y*90 } #declare WoodTestY = texture {WoodTestZ rotate -x*90 } // ---------------------------------------------------------------------------------- //============= NR_Wood (2003) ============= // Adapted from code by Nicolas Rougier by Bald Eagle #declare NR_wood_grain = pigment { wood warp {cylindrical orientation y dist_exp 1} warp {turbulence 1.25} scale <0.5, 30, 1> warp {turbulence 0.25} scale <1, 10, 1> warp { black_hole <0, 0.5, 0>, 1 falloff 2 strength 1.5*5 repeat 7 turbulence 2 inverse } pigment_map {[0 rgb 0] [1 rgb 1]} rotate x*90 } #ifndef (NR_wood_normal) #declare NR_wood_normal = function { pigment { wood warp {cylindrical orientation y dist_exp 1} warp {turbulence 1.25} scale <0.5, 30, 1> warp {turbulence 0.25} scale <1, 5, 1> color_map {[0 rgb <0, 0, 0>] [1 rgb <1, 1, 1>]} rotate x*90 } // end pigment } // end function #end #declare NR_woodmap = color_map { [0.00 srgb <0.949, 0.792, 0.514 >] [0.30 srgb <0.855, 0.651, 0.376 >] [0.60 srgb <0.831, 0.596, 0.275 >] [0.90 srgb <0.620, 0.447, 0.204 >] } #declare Tone2 = <1.2, 1.2, 0.3>; #declare NR_woodmap2 = color_map { [0.0 srgb <121, 52, 13>/255 * Tone2] [0.1 srgb <142, 73, 18>/255 * Tone2] [0.3 srgb <184, 115, 48>/255 * Tone2] [0.8 srgb <157, 81, 23>/255 * Tone2] [1.0 srgb <156, 72, 26>/255 * Tone2] } #declare Tone3 = Tone2 * 0.75; #declare NR_woodmap3 = color_map { [0.0 srgb <121, 52, 13>/255 * Tone3] [0.1 srgb <142, 73, 18>/255 * Tone3] [0.3 srgb <184, 115, 48>/255 * Tone3] [0.8 srgb <157, 81, 23>/255 * Tone3] [1.0 srgb <156, 72, 26>/255 * Tone3] } #declare Tone4 = Tone2 * 0.6; #declare NR_woodmap4 = color_map { [0.0 srgb <121, 52, 13>/255 * Tone4] [0.1 srgb <142, 73, 18>/255 * Tone4] [0.3 srgb <184, 115, 48>/255 * Tone4] [0.8 srgb <157, 81, 23>/255 * Tone4] [1.0 srgb <156, 72, 26>/255 * Tone4] } #declare FloorNormal = 1.5; #declare NR_Wood = texture { pigment { NR_wood_grain color_map {NR_woodmap2} ramp_wave } normal {function {NR_wood_normal(x,y,z).grey*FloorNormal}} finish {diffuse 0.6 specular 0.1 roughness 0.005} } #declare NR_Wood2 = texture { pigment { NR_wood_grain color_map {NR_woodmap3} ramp_wave } normal {function {NR_wood_normal(x,y,z).grey*FloorNormal}} finish {diffuse 0.6 specular 0.1 roughness 0.005} } #declare NR_Wood3 = texture { pigment { NR_wood_grain color_map {NR_woodmap4} ramp_wave } normal {function {NR_wood_normal(x,y,z).grey*FloorNormal}} finish {diffuse 0.6 specular 0.1 roughness 0.005} } #declare WS = 0.1; #declare WoodZ = texture {NR_Wood scale WS} #declare WoodZ2 = texture {NR_Wood2 scale WS} #declare WoodZ3 = texture {NR_Wood3 scale WS} #declare WoodX = texture {WoodZ rotate y*90} #declare WoodY = texture {WoodZ rotate x*90} #declare WoodX2 = texture {WoodZ2 rotate y*90} #declare WoodY2 = texture {WoodZ2 rotate x*90} #declare WoodX3 = texture {WoodZ3 rotate y*90} #declare WoodY3 = texture {WoodZ3 rotate x*90} // ---------------------------------------------------------------------------------- #declare S = 100; // Variable S needed for Rust texture #declare Spread = 0.1; #declare Rust = texture { pigment { wrinkles color_map { [0.000 srgb <0.00, 0.00, 0.00>] // Level: 1127 [0.587 -Spread*0.587 srgb <0.00, 0.00, 0.00>] [0.587 +Spread*0.104 srgb <0.20, 0.00, 0.00>] // Level: 200 0.05 [0.587+0.104 -Spread*0.104 srgb <0.20, 0.00, 0.00>] [0.587+0.104+0.184 +Spread*0.184 srgb <0.50, 0.55, 0.00>] // Level: 354 0.40 [0.587+0.104+0.184 -Spread*0.184 srgb <0.50, 0.55, 0.00>] [0.587+0.104+0.184+0.065 +Spread*0.065 srgb <0.55, 0.25, 0.00>] // Level: 124 0.65 [0.587+0.104+0.184+0.065 -Spread*0.065 srgb <0.55, 0.25, 0.00>] [1.00-Spread srgb <0.60, 0.30, 0.00>/2] // Level: 114 1.00 [1.00 srgb <0.60, 0.30, 0.00>/2] } // Total: 1919 turbulence <0.9931, 0.4938, 0.0195>*S octaves 8 omega 0.7132 lambda 2.2602 frequency 0.7355 phase 1.22 poly_wave 1.013 warp { turbulence <1.668, 1.522, 2.948>*S octaves 10 omega 0.647 lambda 2.035 } quick_color Red*0.5 } // end pigment normal { wrinkles, 1000 scale 0.5*S normal_map { [0.3 granite , 0.85 scale 0.2*S] [1.0 bumps , 1.2 scale .7*S] } warp { turbulence <1.668, 1.522, 2.948>*S octaves 10// NR = omega 0.647 lambda 2.035 } } // end normal finish { ambient 0 diffuse 0.45 specular .1 roughness 0.5 } } // end texture Rust // ---------------------------------------------------------------------------------- //#declare TopColor = texture { T_Wood29 } texture { pigment { color rgbf < 0.8117647, 0.4823529, 0.2862745, 0.5 > } normal { wrinkles 0.15 scale 1.0 } } //#declare BottomColor = texture { T_Wood29 } texture { pigment { color rgbf < 0.8117647, 0.4823529, 0.2862745, 0.5 > } normal { wrinkles 0.15 scale 1.0 } } //#declare PlatformColor = texture { T_Wood29 } texture { pigment { color rgbf < 0.8117647, 0.4823529, 0.2862745, 0.5 > } normal { wrinkles 0.15 scale 1.0 } } #declare TopColor = texture {NR_Wood scale WS} #declare BottomColor = texture {NR_Wood2 scale WS} #declare PlatformColor = texture {NR_Wood3 scale WS} #declare R1 = texture { pigment {rgb <0.74, 0.56, 0.32>} normal {wrinkles 1.0 scale 0.05} } #declare R2 = texture { pigment {rgb <0.74, 0.56, 0.32>*0.8} normal {wrinkles 1.0 scale 0.05} } #declare R3 = texture { pigment {rgb <0.74, 0.56, 0.32>*0.6} normal {wrinkles 1.0 scale 0.05} } #declare Rope0 = texture {pigment {Red} finish {emission 1}} #declare Rope1 = texture {bozo texture_map {[0 R1][0.5 R2][1 R3]}} #declare Rope2 = texture {bozo texture_map {[0 R2][0.5 R3][1 R1]} scale 0.03} #declare Rope3 = texture {bozo texture_map {[0 R3][0.5 R1][1 R2]} scale 0.01} #declare A_Ropes = array [3] {Rope1, Rope2, Rope3} #declare Stone = texture { pigment {rgb < 0.73, 0.55, 0.4 >} normal {wrinkles 1.0 scale 0.10 } } // finish { crand 0.5 } } //#declare FrontShield = texture {T_Copper_2B normal {wrinkles 0.3 scale 1.0} } //#declare FrontShield2 = texture {T_Copper_3B normal {wrinkles 0.3 scale 1.0} } #declare FrontShield = texture {pigment {Black} normal {granite scale 0.1}} #declare FrontShield2 = texture {pigment {Gray40} normal {granite 0.25 scale 0.05} finish {specular 0.1}} #declare T_Measure = concat (Directory, "Ballista Measure.png"); #declare MyMeasure = pigment {image_map {T_Measure gamma 2.0 once} translate <0.0, 0.0, 0.0> rotate <0.0, 0.0, 0.0> } // ---------------------------------------------------------------------------------- #declare Leather = texture { pigment {rgb <0.425, 0.175, 0.10>} normal { average normal_map { [ crackle metric .3 turbulence 0.1 ] [ crackle metric .3 turbulence 0.1 scale .3] [ dents , -1.0 scale 0.01] } scale .2 } finish { specular 0.4 roughness 0.02 } scale 0.5 } // ---------------------------------------------------------------------------------- #declare RustyIron = texture { pigment { spherical turbulence < 1.0, 1.0, 1.0 > omega 1.0 lambda 6.0 color_map { [ 0.1 color rgb < 0.478431, 0.513725, 0.462745 > ] // _ONE_ entry?? } } // end pigment normal { boxed 30.0 turbulence < 1.0, 1.0, 1.0 > omega 1.0 lambda 6.0 frequency 15.0 } // end normal finish { ambient rgb < 0.0, 0.0, 0.0 > diffuse 0.3 specular 0.6 conserve_energy reflection { rgb < 0.1, 0.1, 0.1 > metallic 1.0 } } // end finish scale 75.0 // :O } // end texture // ---------------------------------------------------------------------------------- //texture { pigment { rgbf < 0.5372549, 0.3176471, 0.2117647, 0.75 > } normal { wrinkles 0.3 scale 1.0 } } // ---------------------------------------------------------------------------------- #declare Iron = texture {pigment {Gray40} normal {dents 10 scale 0.1} finish {specular 0.2}} #declare Iron2 = texture {pigment {Gray20} normal {dents 10 scale 0.1} finish {specular 0.2}} #declare Amt = 0.2; #declare Amt2 = 0.05; #declare RustyIron = texture {bozo texture_map { [0.0 RustyIron] [Amt RustyIron] [0.4 Iron] [0.4+Amt2 Iron2] [0.5-Amt2 Iron2] [0.5 Iron] [1-Amt Rust] [1.0 Rust] } scale 0.1 } // ---------------------------------------------------------------------------------- #declare Adjuster = difference { cone {<0.0, 0.1, 0.0> 0.45 <0.0, 0.2, 0.0> 0.35} box {<-1.0, 0.0, -1.0> <-0.05, 0.5, 1.0>} box {< 1.0, 0.0, -1.0> < 0.05, 0.5, 1.0>} } #declare Seed = seed (123); #macro RandWood () // Bald Eagle // Outputs a random vector translation // for randomizing wood textures #local _Dist = 2; #local _X = rand (Seed) * _Dist; #local _Y = rand (Seed) * _Dist; #local _Z = rand (Seed) * _Dist; translate <_X, _Y, _Z> #end // end macro RandWood #declare Stand = union { union { box {<-1.75, 0.0000, -0.15> <1.75, 0.1500, 0.15> translate -z*0.5 texture {WoodX}} // texture { BottomColor rotate < 0.0, 0.0, 90.0 > } } box {<-1.75, 0.0000, -0.15> <1.75, 0.1500, 0.15> translate z*0.5 texture {WoodX2}} // texture { BottomColor rotate < 0.0, 0.0, 90.0 > } } box {<-0.15, 0.0000, -2.20> <0.15, 0.1500, 2.20> texture {WoodZ}} // texture { BottomColor rotate < 0.0, 90.0, 90.0 > } } box {<-0.13, 1.2 , -0.35> <0.13, 1.5 , 0.35> texture {WoodX}} // texture { BottomColor rotate < 0.0, 90.0, 90.0 > } } box {<-0.13, 2.7 , -0.35> <0.13, 3.0 , 0.35> texture {WoodX}} // texture { BottomColor rotate < 0.0, 90.0, 90.0 > } } #if (NavyVersion) translate <0.0, 0.35, 0.0> #end } // end inner union 1 union { box {<-0.15, 0.1501, -0.15> <0.15, 3.00, 0.15> translate < 0.0, 0.0, -0.5 > texture {WoodY}} // texture { BottomColor rotate < 90.0, 0.0, 0.0 > } } box {<-0.15, 0.1501, -0.15> <0.15, 3.00, 0.15> translate < 0.0, 0.0, 0.5 > texture {WoodY}} // texture { BottomColor rotate < 90.0, 0.0, 0.0 > } } cylinder {<0.0, 2.35, -0.7> <0.00, 2.35, 0.70> 0.075 texture {WoodX}} // texture { BottomColor }} union { box {<-0.2, -0.2, -0.35> <0.2, 0.2, 0.35> texture {WoodX}} // texture { BottomColor} } // diagonal height adjuster difference { box {<0.2, -0.15, -0.20> <5.0, 0.15, 0.20>} #for (Runde, 1.6, 4.60, 0.3) box {<-0.1, 0.075, -0.1> <0.1, 0.2, 0.1> translate } #end texture {WoodX} // texture { BottomColor rotate < 0.0, 90.0, 0.0 > } } // end difference box {<4.75, -0.16, -0.21> <4.995, 0.16, 0.21> texture {RustyIron}} #if (NavyVersion) #declare MyAdjusterAngle = -31.0; #else // if (NavyVersion=off) #declare MyAdjusterAngle = -27.0; #end rotate < 0.0, 0.0, MyAdjusterAngle > translate < 0.0, 2.35, 0.0 > } #if (NavyVersion) translate < 0.0, 0.35, 0.0 > #end } // end inner union 2 // diagonals union { box {<0.00, -0.3001, -0.13> <2.00, 0.00, 0.13> texture {WoodX} rotate <0.0, 0.0, -45.0> translate < 0.0, 1.5, -0.5 > } box {<0.00, -0.3001, -0.13> <2.00, 0.00, 0.13> texture {WoodX2} rotate <0.0, 0.0, -45.0> translate < 0.0, 1.5, 0.5 > } box {<0.00, -0.3001, -0.13> <2.00, 0.00, 0.13> texture {WoodX3} rotate <0.0, 0.0, -45.0> translate < 0.0, 1.5, -0.5 > rotate < 0.0, 180.0, 0.0 > } box {<0.00, -0.3001, -0.13> <2.00, 0.00, 0.13> texture {WoodX} rotate <0.0, 0.0, -45.0> translate < 0.0, 1.5, 0.5 > rotate < 0.0, 180.0, 0.0 > } box {<0.00, -0.3001, -0.13> <2.00, 0.00, 0.13> texture {WoodX2} rotate <0.0, 0.0, -45.0> translate < 0.0, 1.5, 0.0 > rotate < 0.0, -90.0, 0.0 > translate < 0.0, 0.0, 0.50 > } box {<0.00, -0.3001, -0.13> <2.00, 0.00, 0.13> texture {WoodX3} rotate <0.0, 0.0, -45.0> translate < 0.0, 1.5, 0.0 > rotate < 0.0, 90.0, 0.0 > translate < 0.0, 0.0, -0.50 > } #if(NavyVersion=on) translate < 0.0, 0.35, 0.0 > #end } // end inner union 3 // metal top union { cylinder {< 0.10, 2.8, -0.60> < 0.10, 3.2, -0.60 > 0.1} cylinder {<-0.10, 2.8, -0.60> < -0.10, 3.2, -0.60 > 0.1} cylinder {< 0.10, 2.8, 0.60> < 0.10, 3.2, 0.60 > 0.1} cylinder {<-0.10, 2.8, 0.60> < -0.10, 3.2, 0.60 > 0.1} box {<-0.20, 2.8, -0.60> <0.20, 3.2, 0.60>} box {<-0.10, 2.8, -0.70> <0.10, 3.2, 0.70>} cylinder {<0.00, 3.65, -0.60> < 0.00, 3.65, -0.45 > 0.15 } cylinder {<0.00, 3.65, 0.45> < 0.00, 3.65, 0.60 > 0.15 } box {<-0.20, 3.20, -0.60> <0.20, 3.70, -0.45>} box {<-0.20, 3.20, 0.45> <0.20, 3.70, 0.60>} sphere {<0.00, 3.65, 0.00> 0.075 scale <1.0, 1.0, 0.5> translate <0.0, 0.0, -0.60>} sphere {<0.00, 3.65, 0.00> 0.075 scale <1.0, 1.0, 0.5> translate <0.0, 0.0, 0.60>} texture {RustyIron} #if (NavyVersion) translate <0.0, 0.35, 0.0> #end } // end inner union 4 #if (NavyVersion) // navy platform difference { union { box { < -0.195, 0.25, -2.2 > < 0.195, 0.35, 2.2 > texture {WoodZ RandWood()} translate < -2.00, 0.0, 0.0 > } box { < -0.195, 0.25, -2.2 > < 0.195, 0.35, 2.2 > texture {WoodZ2 RandWood()} translate < -1.60, 0.0, 0.0 > } box { < -0.195, 0.25, -2.2 > < 0.195, 0.35, 2.2 > texture {WoodZ3 RandWood()} translate < -1.20, 0.0, 0.0 > } box { < -0.195, 0.25, -2.2 > < 0.195, 0.35, 2.2 > texture {WoodZ RandWood()} translate < -0.80, 0.0, 0.0 > } box { < -0.195, 0.25, -2.2 > < 0.195, 0.35, 2.2 > texture {WoodZ2 RandWood()} translate < -0.40, 0.0, 0.0 > } box { < -0.195, 0.25, -2.2 > < 0.195, 0.35, 2.2 > texture {WoodZ3 RandWood()} translate < 0.00, 0.0, 0.0 > } box { < -0.195, 0.25, -2.2 > < 0.195, 0.35, 2.2 > texture {WoodZ RandWood()} translate < 0.40, 0.0, 0.0 > } box { < -0.195, 0.25, -2.2 > < 0.195, 0.35, 2.2 > texture {WoodZ2 RandWood()} translate < 0.80, 0.0, 0.0 > } box { < -0.195, 0.25, -2.2 > < 0.195, 0.35, 2.2 > texture {WoodZ3 RandWood()} translate < 1.20, 0.0, 0.0 > } box { < -0.195, 0.25, -2.2 > < 0.195, 0.35, 2.2 > texture {WoodZ RandWood()} translate < 1.60, 0.0, 0.0 > } box { < -0.195, 0.25, -2.2 > < 0.195, 0.35, 2.2 > texture {WoodZ3 RandWood()} translate < 2.00, 0.0, 0.0 > } } // end nested union difference { cylinder { < 0.0, 0.00, 0.0 > < 0.0, 0.355, 0.0 > 4.00 } cylinder { < 0.0, -0.01, 0.0 > < 0.0, 0.356, 0.0 > 2.20 } } // end nested difference texture {WoodZ} //texture { PlatformColor } } // end difference cylinder {<0.0, 0.3, 0.0> <0.0, 0.34, 0.0> 2.20 pigment {rgb 0.0}} // navy platform #end rotate <0.0, RotateAround, 0.0> } // end outer union of object Stand // ---------------------------------------------------------------------------------- #declare DeckFixing = union { // navy platform difference { cylinder { < 0.0, 0.00, 0.0 > < 0.0, 0.355, 0.0 > 2.25 } cylinder { < 0.0, -0.01, 0.0 > < 0.0, 0.356, 0.0 > 2.20 } texture { RustyIron } } // end nested difference // navy platform fixing on deck union { #for (Runde, 0.0, 360.0, 45.0) box { < 2.2, 0.0, -0.2 > < 2.4, 0.05, 0.2 > rotate < 0.0, Runde, 0.0 > } sphere { < 0.0, 0.0, 0.0 > 0.035 scale < 1.0, 0.25, 1.0 > translate < 2.325, 0.05, -0.125 > rotate < 0.0, Runde, 0.0 > } sphere { < 0.0, 0.0, 0.0 > 0.035 scale < 1.0, 0.25, 1.0 > translate < 2.325, 0.05, 0.125 > rotate < 0.0, Runde, 0.0 > } #end texture { RustyIron } } // end nested union } // end union // ---------------------------------------------------------------------------------- #declare Engine = union { box { < -2.3, -0.2, -0.45 > < 1.5, 0.19, 0.45 > texture { TopColor rotate < 0.0, 0.0, 90.0 > } } // lower box for stand // lower box for stand difference { box { < 0.0, 0.0, -0.45 > < 1.0, 0.4, 0.45 > rotate < 0.0, 0.0, 20.0 > translate < 1.5, -0.2, 0.0 > } box { < 0.0, 0.19, -0.56 > < 4.0, 1.0, 0.56 > } texture { TopColor rotate < 0.0, 0.0, 90.0 > } } // main launch rail difference { box { < -2.7, 0.2, -0.45 > < 4.5, 0.7, 0.45 > } box { < -2.8, 0.4, -0.35 > < 4.6, 0.8, 0.35 > } texture {WoodX RandWood()} //texture { TopColor rotate < 0.0, 0.0, 90.0 > } texture { MyMeasure scale < 1.0, 0.2, 1.0 > translate < 3.15, 0.5, 0.0 > } } // side metal square union { box { < -2.25, -0.15, -0.46 > < 1.4, 0.55, -0.45 > } box { < -2.25, -0.15, 0.45 > < 1.4, 0.55, 0.46 > } sphere { < 0.0, 0.0, 0.0 > 0.05 scale < 1.0, 1.0, 0.25 > translate < -0.10, 0.00, -0.46 > } sphere { < 0.0, 0.0, 0.0 > 0.05 scale < 1.0, 1.0, 0.25 > translate < -0.10, 0.35, -0.46 > } sphere { < 0.0, 0.0, 0.0 > 0.05 scale < 1.0, 1.0, 0.25 > translate < 0.225, 0.00, -0.46 > } sphere { < 0.0, 0.0, 0.0 > 0.05 scale < 1.0, 1.0, 0.25 > translate < 0.225, 0.35, -0.46 > } sphere { < 0.0, 0.0, 0.0 > 0.05 scale < 1.0, 1.0, 0.25 > translate < 0.55, 0.00, -0.46 > } sphere { < 0.0, 0.0, 0.0 > 0.05 scale < 1.0, 1.0, 0.25 > translate < 0.55, 0.35, -0.46 > } sphere { < 0.0, 0.0, 0.0 > 0.05 scale < 1.0, 1.0, 0.25 > translate < 0.875, 0.00, -0.46 > } sphere { < 0.0, 0.0, 0.0 > 0.05 scale < 1.0, 1.0, 0.25 > translate < 0.875, 0.35, -0.46 > } sphere { < 0.0, 0.0, 0.0 > 0.05 scale < 1.0, 1.0, 0.25 > translate < 1.20, 0.00, -0.46 > } sphere { < 0.0, 0.0, 0.0 > 0.05 scale < 1.0, 1.0, 0.25 > translate < 1.20, 0.35, -0.46 > } sphere { < 0.0, 0.0, 0.0 > 0.05 scale < 1.0, 1.0, 0.25 > translate < -0.10, 0.00, 0.46 > } sphere { < 0.0, 0.0, 0.0 > 0.05 scale < 1.0, 1.0, 0.25 > translate < -0.10, 0.35, 0.46 > } sphere { < 0.0, 0.0, 0.0 > 0.05 scale < 1.0, 1.0, 0.25 > translate < 0.225, 0.00, 0.46 > } sphere { < 0.0, 0.0, 0.0 > 0.05 scale < 1.0, 1.0, 0.25 > translate < 0.225, 0.35, 0.46 > } sphere { < 0.0, 0.0, 0.0 > 0.05 scale < 1.0, 1.0, 0.25 > translate < 0.55, 0.00, 0.46 > } sphere { < 0.0, 0.0, 0.0 > 0.05 scale < 1.0, 1.0, 0.25 > translate < 0.55, 0.35, 0.46 > } sphere { < 0.0, 0.0, 0.0 > 0.05 scale < 1.0, 1.0, 0.25 > translate < 0.875, 0.00, 0.46 > } sphere { < 0.0, 0.0, 0.0 > 0.05 scale < 1.0, 1.0, 0.25 > translate < 0.875, 0.35, 0.46 > } sphere { < 0.0, 0.0, 0.0 > 0.05 scale < 1.0, 1.0, 0.25 > translate < 1.20, 0.00, 0.46 > } sphere { < 0.0, 0.0, 0.0 > 0.05 scale < 1.0, 1.0, 0.25 > translate < 1.20, 0.35, 0.46 > } texture { RustyIron } } // thick ending difference { box { < 3.5, 0.2, -0.55 > < 6.5, 0.9, 0.55 > } box { < 3.2, 0.1, -0.46 > < 4.51, 1.1, 0.46 > } box { < 3.2, 0.1, -0.35 > < 6.4, 1.1, 0.35 > } box { < 3.4, 0.7, -0.56 > < 5.0, 1.1, 0.56 > } box { < -1.0, 0.0, -0.56 > < 0.0, 1.0, 0.56 > rotate < 0.0, 0.0, -70.0 > translate < 5.0, 0.7, 0.0 > } texture {WoodX RandWood()} //texture { TopColor rotate < 0.0, 0.0, 90.0 > } texture { MyMeasure scale < 1.0, 0.2, 1.0 > translate < 3.15, 0.5, 0.0 > } } // end metal square union { box { < 6.5, 0.20, -0.56 > < 6.51, 0.9, 0.56 > } box { < 5.6, 0.20, -0.56 > < 6.51, 0.9, -0.55 > } #declare T_Lion = concat (Directory, "RomeDecoLion.png"); height_field {T_Lion water_level 0.1 smooth rotate < 0.0, 90.0, 0.0 > translate < 0.0, 0.0, 0.5 > rotate < 0.0, 0.0, 90.0 > scale < 0.025, 0.7, 0.8 > scale < -1.0, 1.0, 1.0 > translate < 6.51, 0.20, 0.0 > // pigment { Gray50 } finish { Glossy } } // end heightfield sphere { < 0.0, 0.0, 0.0 > 0.05 scale < 1.0, 1.0, 0.25 > translate < 5.700, 0.30, -0.56 > } sphere { < 0.0, 0.0, 0.0 > 0.05 scale < 1.0, 1.0, 0.25 > translate < 5.700, 0.80, -0.56 > } sphere { < 0.0, 0.0, 0.0 > 0.05 scale < 1.0, 1.0, 0.25 > translate < 5.925, 0.30, -0.56 > } sphere { < 0.0, 0.0, 0.0 > 0.05 scale < 1.0, 1.0, 0.25 > translate < 5.925, 0.80, -0.56 > } sphere { < 0.0, 0.0, 0.0 > 0.05 scale < 1.0, 1.0, 0.25 > translate < 6.175, 0.30, -0.56 > } sphere { < 0.0, 0.0, 0.0 > 0.05 scale < 1.0, 1.0, 0.25 > translate < 6.175, 0.80, -0.56 > } sphere { < 0.0, 0.0, 0.0 > 0.05 scale < 1.0, 1.0, 0.25 > translate < 6.400, 0.30, -0.56 > } sphere { < 0.0, 0.0, 0.0 > 0.05 scale < 1.0, 1.0, 0.25 > translate < 6.400, 0.80, -0.56 > } sphere { < 0.0, 0.0, 0.0 > 0.05 scale < 1.0, 1.0, 0.25 > translate < 5.700, 0.30, 0.56 > } sphere { < 0.0, 0.0, 0.0 > 0.05 scale < 1.0, 1.0, 0.25 > translate < 5.700, 0.80, 0.56 > } sphere { < 0.0, 0.0, 0.0 > 0.05 scale < 1.0, 1.0, 0.25 > translate < 5.925, 0.30, 0.56 > } sphere { < 0.0, 0.0, 0.0 > 0.05 scale < 1.0, 1.0, 0.25 > translate < 5.925, 0.80, 0.56 > } sphere { < 0.0, 0.0, 0.0 > 0.05 scale < 1.0, 1.0, 0.25 > translate < 6.175, 0.30, 0.56 > } sphere { < 0.0, 0.0, 0.0 > 0.05 scale < 1.0, 1.0, 0.25 > translate < 6.175, 0.80, 0.56 > } sphere { < 0.0, 0.0, 0.0 > 0.05 scale < 1.0, 1.0, 0.25 > translate < 6.400, 0.30, 0.56 > } sphere { < 0.0, 0.0, 0.0 > 0.05 scale < 1.0, 1.0, 0.25 > translate < 6.400, 0.80, 0.56 > } sphere { < 0.0, 0.0, 0.0 > 0.05 scale < 0.25, 1.0, 1.0 > translate < 6.51, 0.30, -0.475 > } sphere { < 0.0, 0.0, 0.0 > 0.05 scale < 0.25, 1.0, 1.0 > translate < 6.51, 0.55, -0.475 > } sphere { < 0.0, 0.0, 0.0 > 0.05 scale < 0.25, 1.0, 1.0 > translate < 6.51, 0.80, -0.475 > } sphere { < 0.0, 0.0, 0.0 > 0.05 scale < 0.25, 1.0, 1.0 > translate < 6.51, 0.30, 0.475 > } sphere { < 0.0, 0.0, 0.0 > 0.05 scale < 0.25, 1.0, 1.0 > translate < 6.51, 0.55, 0.475 > } sphere { < 0.0, 0.0, 0.0 > 0.05 scale < 0.25, 1.0, 1.0 > translate < 6.51, 0.80, 0.475 > } texture { RustyIron } } // end inner union // beams across union { box { < -0.05, 0.2, -0.35 > < 0.05, 0.65, 0.35 > texture {WoodZ RandWood()} translate < 4.5, 0.0, 0.0 > } box { < -0.05, 0.2, -0.35 > < 0.05, 0.65, 0.35 > texture {WoodZ2 RandWood()} translate < 5.0, 0.0, 0.0 > } box { < -0.05, 0.2, -0.35 > < 0.05, 0.65, 0.35 > texture {WoodZ3 RandWood()} translate < 5.5, 0.0, 0.0 > } //texture { TopColor rotate < 0.0, 90.0, 90.0 > } } // end inner union // winch union { union { #for (Runde, -0.35, 0.35, 0.05*3) torus { 0.125, 0.025*3 rotate < 90.0, 0.0, 0.0 > translate < 6.05, 0.6, Runde > } #end texture {Rope1} } // clockwork union { // rope from winch that connects to sled cylinder { < 4.25, 0.725, 0.0 > < 6.05, 0.725, 0.0 > 0.025*3 texture {Rope1} } // rope cylinder { < 6.05, 0.6, -0.7 > < 6.05, 0.6, 0.7 > 0.125 } #for (Runde, 0.0, 360, 30) box { < -0.15, -0.15, -0.70 > < 0.15, 0.15, -0.57 > rotate < 0.0, 0.0, Runde > translate < 6.05, 0.6, 0.0 > } box { < -0.15, -0.15, 0.57 > < 0.15, 0.15, 0.70 > rotate < 0.0, 0.0, Runde > translate < 6.05, 0.6, 0.0 > } #end box { < -0.09, -0.09, -1.11 > < 0.09, 0.09, 1.11 > rotate < 0.0, 0.0, 55.0 > translate < 6.05, 0.6, 0.0 > } texture { RustyIron } } // end nested union } // end inner union // winch outside difference { cylinder { < 0.0, 0.0, -1.1 > < 0.0, 0.0, 1.1 > 0.3 } cylinder { < 0.0, 0.0, -0.7 > < 0.0, 0.0, 0.7 > 0.31 } box { < -0.1, -0.5, -0.1 > < 0.1, 0.5, 0.1 > translate < 0.0, 0.0, -0.85 > } box { < -0.1, -0.5, -0.1 > < 0.1, 0.5, 0.1 > translate < 0.0, 0.0, 0.85 > } box { < -0.5, -0.1, -0.1 > < 0.5, 0.1, 0.1 > translate < 0.0, 0.0, -0.85 > } box { < -0.5, -0.1, -0.1 > < 0.5, 0.1, 0.1 > translate < 0.0, 0.0, 0.85 > } rotate < 0.0, 0.0, 55.0 > translate < 6.05, 0.6, 0.0 > texture {WoodZ2 RandWood()} //texture { TopColor rotate < 0.0, 0.0, 90.0 > } } // end difference // winch arm union { box { <-0.10, -0.10, -0.10> <0.10, 0.00, 0.10>} // Pyramid_N ( Sides, Radius1, Radius2, Height ) object {Pyramid_N (4, 0.075, 0.050, 0.65)} box { <-0.10, 0.00, -0.10> <0.10, 0.05, 0.10>} object {Pyramid_N (4, 0.04, 0.01, 0.75) translate <0.0, 0.65, 0.0>} cylinder { < 0.0, 0.0, 0.0 > < 0.0, 1.50, 0.0 > 0.04 } texture {WoodY RandWood()} //texture { BottomColor rotate < 90.0, 0.0, 0.0 > } translate < 0.0, 0.3, 0.0 > rotate < 0.0, 0.0, 000+55.0 > translate < 6.05, 0.6, -0.85 > } // winch arm union { box { < -0.10, -0.10, -0.10 > < 0.10, 0.00, 0.10 > } object {Pyramid_N (4, 0.075, 0.050, 0.65)} box { < -0.10, 0.00, -0.10 > < 0.10, 0.05, 0.10 > } object {Pyramid_N (4, 0.04, 0.01, 0.75) translate <0.0, 0.65, 0.0>} cylinder { < 0.0, 0.0, 0.0 > < 0.0, 1.50, 0.0 > 0.04 } texture {WoodY2 RandWood()} //texture { BottomColor rotate < 90.0, 0.0, 0.0 > } translate < 0.0, 0.3, 0.0 > rotate < 0.0, 0.0, 270+55.0 > translate < 6.05, 0.6, 0.85 > } // launch switch union { // launch switch left union { difference { cylinder { < 0.0, 0.0, -0.1 > < 0.0, 0.0, 0.0 > 0.1 } box { < 0.0, -0.2, -0.2 > < 0.2, 0.2, 0.1 > } } cylinder { < 0.55, 0.05, -0.15 > < 0.55, 0.05, 0.6 > 0.025 } box { < 0.0, 0.0, -0.1 > < 1.0, 0.1, 0.0 > } box { < 0.9, 0.0, -0.1 > < 1.0, 0.1, 0.6 > } box { < 0.0, -0.1, -0.1 > < 0.1, 0.0, 0.0 > } translate < -0.55, 0.05, 0.0 > rotate < 0.0, 0.0, 10.0 > translate < 0.55, -0.05, 0.0 > translate < 5.8, 0.8, -0.56 > texture { RustyIron } } // launch switch right union { difference { cylinder { < 0.0, 0.0, -0.1 > < 0.0, 0.0, 0.0 > 0.1 } box { < 0.0, -0.2, -0.2 > < 0.2, 0.2, 0.1 > } } // end nested difference cylinder { < 0.55, 0.05, -0.15 > < 0.55, 0.05, 0.6 > 0.025 } box { < 0.0, 0.0, -0.1 > < 1.0, 0.1, 0.0 > } box { < 0.9, 0.0, -0.1 > < 1.0, 0.1, 0.6 > } box { < 0.0, -0.1, -0.1 > < 0.1, 0.0, 0.0 > } translate < -0.55, 0.05, 0.0 > rotate < 0.0, 0.0, 10.0 > translate < 0.55, -0.05, 0.0 > translate < 5.8, 0.8, -0.56 > scale < 1.0, 1.0, -1.0 > } // end nested union texture { RustyIron } } // end inner union // wooden nails union { box { < -0.025, -0.025, -0.56 > < 0.025, 0.025, -0.55 > texture {WoodZ3 RandWood()} translate < 3.65, 0.55, 0.0 > } box { < -0.025, -0.025, 0.56 > < 0.025, 0.025, 0.55 > texture {WoodZ3 RandWood()} translate < 3.65, 0.55, 0.0 > } box { < -0.025, -0.025, -0.56 > < 0.025, 0.025, -0.55 > texture {WoodZ3 RandWood()} translate < 3.65, 0.35, 0.0 > } box { < -0.025, -0.025, 0.56 > < 0.025, 0.025, 0.55 > texture {WoodZ3 RandWood()} translate < 3.65, 0.35, 0.0 > } box { < -0.025, -0.025, -0.56 > < 0.025, 0.025, -0.55 > texture {WoodZ3 RandWood()} translate < 3.95, 0.55, 0.0 > } box { < -0.025, -0.025, 0.56 > < 0.025, 0.025, 0.55 > texture {WoodZ3 RandWood()} translate < 3.95, 0.55, 0.0 > } box { < -0.025, -0.025, -0.56 > < 0.025, 0.025, -0.55 > texture {WoodZ3 RandWood()} translate < 3.95, 0.35, 0.0 > } box { < -0.025, -0.025, 0.56 > < 0.025, 0.025, 0.55 > texture {WoodZ3 RandWood()} translate < 3.95, 0.35, 0.0 > } box { < -0.025, -0.025, -0.56 > < 0.025, 0.025, -0.55 > texture {WoodZ3 RandWood()} translate < 4.25, 0.55, 0.0 > } box { < -0.025, -0.025, 0.56 > < 0.025, 0.025, 0.55 > texture {WoodZ3 RandWood()} translate < 4.25, 0.55, 0.0 > } box { < -0.025, -0.025, -0.56 > < 0.025, 0.025, -0.55 > texture {WoodZ3 RandWood()} translate < 4.25, 0.35, 0.0 > } box { < -0.025, -0.025, 0.56 > < 0.025, 0.025, 0.55 > texture {WoodZ3 RandWood()} translate < 4.25, 0.35, 0.0 > } box { < -0.025, -0.025, -0.56 > < 0.025, 0.025, -0.55 > texture {WoodZ3 RandWood()} translate < 4.5, 0.55, 0.0 > } box { < -0.025, -0.025, 0.56 > < 0.025, 0.025, 0.55 > texture {WoodZ3 RandWood()} translate < 4.5, 0.55, 0.0 > } box { < -0.025, -0.025, -0.56 > < 0.025, 0.025, -0.55 > texture {WoodZ3 RandWood()} translate < 4.5, 0.35, 0.0 > } box { < -0.025, -0.025, 0.56 > < 0.025, 0.025, 0.55 > texture {WoodZ3 RandWood()} translate < 4.5, 0.35, 0.0 > } box { < -0.025, -0.025, -0.56 > < 0.025, 0.025, -0.55 > texture {WoodZ3 RandWood()} translate < 5.0, 0.55, 0.0 > } box { < -0.025, -0.025, 0.56 > < 0.025, 0.025, 0.55 > texture {WoodZ3 RandWood()} translate < 5.0, 0.55, 0.0 > } box { < -0.025, -0.025, -0.56 > < 0.025, 0.025, -0.55 > texture {WoodZ3 RandWood()} translate < 5.0, 0.35, 0.0 > } box { < -0.025, -0.025, 0.56 > < 0.025, 0.025, 0.55 > texture {WoodZ3 RandWood()} translate < 5.0, 0.35, 0.0 > } box { < -0.025, -0.025, -0.56 > < 0.025, 0.025, -0.55 > texture {WoodZ3 RandWood()} translate < 5.5, 0.55, 0.0 > } box { < -0.025, -0.025, 0.56 > < 0.025, 0.025, 0.55 > texture {WoodZ3 RandWood()} translate < 5.5, 0.55, 0.0 > } box { < -0.025, -0.025, -0.56 > < 0.025, 0.025, -0.55 > texture {WoodZ3 RandWood()} translate < 5.5, 0.35, 0.0 > } box { < -0.025, -0.025, 0.56 > < 0.025, 0.025, 0.55 > texture {WoodZ3 RandWood()} translate < 5.5, 0.35, 0.0 > } //texture { TopColor } } // end inner union // ammunition skid union { difference { box { < 0.0, 0.4, -0.34 > < 4.3, 1.0, 0.34 > } cylinder { < -0.01, 1.0, 0.0 > < 4.0, 1.0, 0.0 > 0.251 } texture {WoodX2 RandWood()} //texture { TopColor } } cylinder { < 4.15, 0.9, -0.45 > < 4.15, 0.9, 0.45 > 0.025 texture { RustyIron } } // marker pole difference { cylinder { < 0.00, 1.0, 0.0 > < 4.0, 1.0, 0.0 > 0.255 } cylinder { < -0.10, 1.0, 0.0 > < 4.1, 1.0, 0.0 > 0.250 } box { < -0.10, 1.0, -0.3 > < 4.1, 1.3, 0.3 > } texture { RustyIron } } box { < 4.0, 0.401, -0.251 > < 4.30, 1.25, 0.251 > texture {WoodY2 RandWood()}} // texture { TopColor } } // metal at the end union { box { < 3.999, 0.401, -0.25 > < 4.301, 1.251, 0.25 > } //_ONE_ object texture { RustyIron } } // end nested union } // end inner union // rings for ropes union { torus { 0.15, 0.05 rotate < 90.0, 0.0, 0.0 > translate < 4.15, 1.25, 0.0 > } // top torus { 0.15, 0.05 rotate < 0.0, 0.0, 0.0 > translate < 4.3, 0.725+0.025, 0.0 > } // back texture { RustyIron } } // ropes around rings union { torus { 0.05, 0.025 rotate < 90.0, 0.0, 0.0 > translate < 4.45, 0.725+0.025, 0.0 > } // back torus { 0.05, 0.025 rotate < 0.0, 0.0, 0.0 > translate < 4.15-0.15, 1.275, 0.0 > } // top texture {Rope1} } // height adjuster union { // height adjuster hinges difference { union { box { < 2.5, 0.15, -0.4 > < 3.0, 0.2, 0.4 > } difference { cylinder { < 2.75, 0.15, -0.4 > < 2.75, 0.15, 0.4 > 0.15 } cylinder { < 2.75, 0.15, -0.5 > < 2.75, 0.15, 0.5 > 0.10 } } // end nested difference } // end nested union box { < 2.4, -0.1, -0.3 > < 3.1, 0.3, 0.3 > } texture { RustyIron } } // end difference // height adjuster stick union { cylinder { < 0.0, 0.0, -0.5 > < 0.0, 0.0, 0.5 > 0.05 texture { RustyIron } } cylinder { < 0.0, 0.0, -0.3 > < 0.0, 0.0, 0.3 > 0.10 texture { RustyIron } } box { < -0.1, -0.2, -0.3 > < 0.1, 0.0, 0.3 > texture { RustyIron } } box { < -0.09, -2.2, -0.09 > < 0.09, 0.0, 0.09 > texture {WoodY3 RandWood()}} //texture { TopColor rotate < 90.0, 0.0, 0.0 > } } rotate < 0.0, 0.0, 33.0 > translate < 2.75, 0.1, 0.0 > } } // end inner union #if (AmmunitionType = "Stone") sphere { < 0.0, 0.0, 0.0 > 0.25 texture { Stone } translate < 3.75, 1.0, 0.0 > } // ammunition #end // top & bottom wooden plates union { box { < -2.5, -0.7, -2.25 > < -1.5, -0.2, 2.25 > } box { < -1.5, -0.7, -1.25 > < -0.50, -0.2, 1.25 > } cylinder { < -1.5, -0.7, -1.25 > < -1.5, -0.2, -1.25 > 1.0 } cylinder { < -1.5, -0.7, 1.25 > < -1.5, -0.2, 1.25 > 1.0 } texture {WoodX3 RandWood()} } union { box { < -2.5, 2.5, -2.25 > < -1.5, 3.0, 2.25 > } box { < -1.5, 2.5, -1.25 > < -0.50, 3.0, 1.25 > } cylinder { < -1.5, 2.5, -1.25 > < -1.5, 3.0, -1.25 > 1.0 } cylinder { < -1.5, 2.5, 1.25 > < -1.5, 3.0, 1.25 > 1.0 } texture {WoodX2 RandWood()} //texture { TopColor } } // top & bottom metal plates union { box { < -2.51, -0.6, -2.26 > < -1.5, -0.3, 2.26 > } box { < -1.5, -0.6, -1.24 > < -0.49, -0.3, 1.24 > } cylinder { < -1.5, -0.6, -1.25 > < -1.5, -0.3, -1.25 > 1.01 } cylinder { < -1.5, -0.6, 1.25 > < -1.5, -0.3, 1.25 > 1.01 } box { < -2.51, 2.6, -2.26 > < -1.5, 2.9, 2.26 > } box { < -1.5, 2.6, -1.24 > < -0.49, 2.9, 1.24 > } cylinder { < -1.5, 2.6, -1.25 > < -1.5, 2.9, -1.25 > 1.01 } cylinder { < -1.5, 2.6, 1.25 > < -1.5, 2.9, 1.25 > 1.01 } sphere { < 0.0, 0.0, 0.0 > 0.1 scale < 1.0, 1.0, 0.25 > translate < -2.0, -0.45, -2.26 > } sphere { < 0.0, 0.0, 0.0 > 0.1 scale < 1.0, 1.0, 0.25 > translate < -2.0, 2.75, -2.26 > } sphere { < 0.0, 0.0, 0.0 > 0.1 scale < 1.0, 1.0, 0.25 > translate < -2.0, -0.45, 2.26 > } sphere { < 0.0, 0.0, 0.0 > 0.1 scale < 1.0, 1.0, 0.25 > translate < -2.0, 2.75, 2.26 > } sphere { < 0.0, 0.0, 0.0 > 0.1 scale < 1.0, 1.0, 0.25 > translate < 0.0, 0.0, -1.01 > rotate < 0.0, -45.0, 0.0 > translate < -1.5, -0.45, -1.25 > } sphere { < 0.0, 0.0, 0.0 > 0.1 scale < 1.0, 1.0, 0.25 > translate < 0.0, 0.0, -1.01 > rotate < 0.0, -45.0, 0.0 > translate < -1.5, 2.75, -1.25 > } sphere { < 0.0, 0.0, 0.0 > 0.1 scale < 1.0, 1.0, 0.25 > translate < 0.0, 0.0, -1.01 > rotate < 0.0, 45.0, 0.0 > translate < -1.5, -0.45, 1.25 > } sphere { < 0.0, 0.0, 0.0 > 0.1 scale < 1.0, 1.0, 0.25 > translate < 0.0, 0.0, -1.01 > rotate < 0.0, 45.0, 0.0 > translate < -1.5, 2.75, 1.25 > } sphere { < 0.0, 0.0, 0.0 > 0.1 scale < 0.25, 1.0, 1.0 > translate < -0.49, -0.45, -1.20 > } sphere { < 0.0, 0.0, 0.0 > 0.1 scale < 0.25, 1.0, 1.0 > translate < -0.49, 2.75, -1.20 > } sphere { < 0.0, 0.0, 0.0 > 0.1 scale < 0.25, 1.0, 1.0 > translate < -0.49, -0.45, 1.20 > } sphere { < 0.0, 0.0, 0.0 > 0.1 scale < 0.25, 1.0, 1.0 > translate < -0.49, 2.75, 1.20 > } sphere { < 0.0, 0.0, 0.0 > 0.1 scale < 0.25, 1.0, 1.0 > translate < -0.49, -0.45, 0.00 > } sphere { < 0.0, 0.0, 0.0 > 0.1 scale < 0.25, 1.0, 1.0 > translate < -0.49, 2.75, 0.00 > } texture { RustyIron } } // inner vertical plates union { box { < -2.30, -0.2, -0.8 > < -0.51, 2.5, -0.45 > } box { < -2.30, -0.2, 0.8 > < -0.51, 2.5, 0.45 > } box { < -2.449, -0.2, -0.8 > < -0.51, 2.5, -0.51 > } box { < -2.449, -0.2, 0.8 > < -0.51, 2.5, 0.51 > } texture {WoodY RandWood()} // texture { TopColor rotate < 90.0, 0.0, 0.0 > } } // inner vertical plates bolts union { sphere { < 0.0, 0.0, 0.0 > 0.1 scale < 1.0, 1.0, 0.25 > translate < -0.95, 0.05, -0.8 > } sphere { < 0.0, 0.0, 0.0 > 0.1 scale < 1.0, 1.0, 0.25 > translate < -1.40, 0.05, -0.8 > } sphere { < 0.0, 0.0, 0.0 > 0.1 scale < 1.0, 1.0, 0.25 > translate < -1.85, 0.05, -0.8 > } sphere { < 0.0, 0.0, 0.0 > 0.1 scale < 1.0, 1.0, 0.25 > translate < -0.95, 0.05, 0.8 > } sphere { < 0.0, 0.0, 0.0 > 0.1 scale < 1.0, 1.0, 0.25 > translate < -1.40, 0.05, 0.8 > } sphere { < 0.0, 0.0, 0.0 > 0.1 scale < 1.0, 1.0, 0.25 > translate < -1.85, 0.05, 0.8 > } sphere { < 0.0, 0.0, 0.0 > 0.1 scale < 1.0, 1.0, 0.25 > translate < -0.95, 0.40, -0.8 > } sphere { < 0.0, 0.0, 0.0 > 0.1 scale < 1.0, 1.0, 0.25 > translate < -1.40, 0.40, -0.8 > } sphere { < 0.0, 0.0, 0.0 > 0.1 scale < 1.0, 1.0, 0.25 > translate < -1.85, 0.40, -0.8 > } sphere { < 0.0, 0.0, 0.0 > 0.1 scale < 1.0, 1.0, 0.25 > translate < -0.95, 0.40, 0.8 > } sphere { < 0.0, 0.0, 0.0 > 0.1 scale < 1.0, 1.0, 0.25 > translate < -1.40, 0.40, 0.8 > } sphere { < 0.0, 0.0, 0.0 > 0.1 scale < 1.0, 1.0, 0.25 > translate < -1.85, 0.40, 0.8 > } texture {Iron2 scale 0.1} //texture {Rust} //texture { RustyIron } } box { < -2.44, -0.20, -0.60 > < -2.3, 2.5, -1.84 > texture {WoodY RandWood()}} //texture { TopColor rotate < 90.0, 0.0, 0.0 > } } // wooden front plates box { < -2.44, -0.20, 0.60 > < -2.3, 2.5, 1.84 > texture {WoodY RandWood()}} //texture { TopColor rotate < 90.0, 0.0, 0.0 > } } // wooden front plates box { < -2.44, 2.15, -0.60 > < -2.3, 2.5, 0.60 > texture {WoodY RandWood()}} //texture { TopColor rotate < 90.0, 0.0, 0.0 > } } // wooden front plates // outer vertical plates union { difference { // vertical box { < -2.49, -0.2, -2.24 > < -1.50, 2.5, -1.84 > } cylinder { < -1.40, 1.15, -2.25 > < -1.40, 1.15, -1.83 > 0.40 } } difference { // vertical box { < -2.49, -0.2, 2.24 > < -1.50, 2.5, 1.84 > } cylinder { < -1.40, 1.15, 2.25 > < -1.40, 1.15, 1.83 > 0.40 } } difference { // rounded front cylinder { < -0.80, 1.15, -2.24 > < -0.80, 1.15, -1.84 > 2.0 } box { < -2.49, -2.5, -2.25 > < 5.0, 4.5, -1.83 > } } difference { // rounded front cylinder { < -0.80, 1.15, 2.24 > < -0.80, 1.15, 1.84 > 2.0 } box { < -2.49, -2.5, 2.25 > < 5.0, 4.5, 1.83 > } } texture { TopColor rotate < 90.0, 0.0, 0.0 > } } // end inner union #declare MyDiameter = 0.66; #declare MyWidth = 0.199999; union { difference { object { Supertorus ( MyDiameter, MyWidth, // Radius_Major, Radius_Minor, 1.00, 0.45, // Major_Control, Minor_Control, 0.001, 1.50 // Accuracy, Max_Gradient) ) rotate < 90.0, 0.0, -90.0 > scale < 1.0, 1.0, 1.0 > translate < -1.25, 1.15, -2.04 > } // end supertorus box { < -1.50001, 0.20, -2.5 > < 0.0, 2.10, -1.5 > } texture { Leather } } // end difference difference { object { Supertorus ( MyDiameter, MyWidth, // Radius_Major, Radius_Minor, 1.00, 0.45, // Major_Control, Minor_Control, 0.001, 1.50 // Accuracy, Max_Gradient) ) rotate < 90.0, 0.0, -90.0 > scale < 1.0, 1.0, 1.0 > translate < -1.25, 1.15, 2.04 > } // end supertorus box { < -1.50001, 0.20, 2.5 > < 0.0, 2.10, 1.5 > } texture { Leather } } // end difference union { // added this union to accentuate / differentiate the decorative features sphere { < 0.0, 0.0, 0.0 > 0.025 scale < 0.25, 1.0, 1.0 > translate < -0.365, 0.0, 0.0 > rotate < 0.0, 0.0, 60.0 > translate < -1.40, 1.15, -2.11 > texture { RustyIron } } sphere { < 0.0, 0.0, 0.0 > 0.025 scale < 0.25, 1.0, 1.0 > translate < -0.365, 0.0, 0.0 > rotate < 0.0, 0.0, 60.0 > translate < -1.40, 1.15, -1.97 > texture { RustyIron } } sphere { < 0.0, 0.0, 0.0 > 0.025 scale < 0.25, 1.0, 1.0 > translate < -0.365, 0.0, 0.0 > rotate < 0.0, 0.0, -60.0 > translate < -1.40, 1.15, -2.11 > texture { RustyIron } } sphere { < 0.0, 0.0, 0.0 > 0.025 scale < 0.25, 1.0, 1.0 > translate < -0.365, 0.0, 0.0 > rotate < 0.0, 0.0, -60.0 > translate < -1.40, 1.15, -1.97 > texture { RustyIron } } sphere { < 0.0, 0.0, 0.0 > 0.025 scale < 0.25, 1.0, 1.0 > translate < -0.365, 0.0, 0.0 > rotate < 0.0, 0.0, 60.0 > translate < -1.40, 1.15, 2.11 > texture { RustyIron } } sphere { < 0.0, 0.0, 0.0 > 0.025 scale < 0.25, 1.0, 1.0 > translate < -0.365, 0.0, 0.0 > rotate < 0.0, 0.0, 60.0 > translate < -1.40, 1.15, 1.97 > texture { RustyIron } } sphere { < 0.0, 0.0, 0.0 > 0.025 scale < 0.25, 1.0, 1.0 > translate < -0.365, 0.0, 0.0 > rotate < 0.0, 0.0, -60.0 > translate < -1.40, 1.15, 2.11 > texture { RustyIron } } sphere { < 0.0, 0.0, 0.0 > 0.025 scale < 0.25, 1.0, 1.0 > translate < -0.365, 0.0, 0.0 > rotate < 0.0, 0.0, -60.0 > translate < -1.40, 1.15, 1.97 > texture { RustyIron } } texture {Iron2 scale 0.1} } } // front metal plate union { difference { cylinder { < -0.80, 1.15, -2.24 > < -0.80, 1.15, -1.83 > 2.01 } cylinder { < -0.80, 1.15, -2.25 > < -0.80, 1.15, -1.84 > 2.0 } box { < -2.49, -2.5, -2.25 > < 5.0, 4.5, -1.82 > } } difference { cylinder { < -0.80, 1.15, 2.24 > < -0.80, 1.15, 1.83 > 2.01 } cylinder { < -0.80, 1.15, 2.25 > < -0.80, 1.15, 1.84 > 2.0 } box { < -2.49, -2.5, 2.25 > < 5.0, 4.5, 1.82 > } } box { < -2.5, -0.2, -2.24 > < -2.49, 2.5, -1.84 > } // Sides box { < -2.5, -0.2, 2.24 > < -2.49, 2.5, 1.84 > } // Sides box { < -2.51, -0.7, -2.25 > < -2.5, -0.2, 2.25 > } // bottom box { < -2.53, -0.6, -2.25 > < -2.5, -0.3, 2.25 > } // bottom box { < -2.51, 2.5, -2.25 > < -2.5, 3.0, 2.25 > } // top box { < -2.53, 2.6, -2.25 > < -2.5, 2.9, 2.25 > } // top difference { // center box { < -2.45, -0.2, -1.84 > < -2.44, 2.5, 1.84 > } box { < -2.5, -0.2, -0.51 > < -2.4, 1.7, 0.51 > } cylinder { < -2.5, 1.7, 0.0 > < -2.4, 1.7, 0.0 > 0.51 } } box { < -2.48, -0.2, -0.08 > < -2.45, 1.7, 0.08 > translate < 0.0, 0.0, -0.6 > } box { < -2.48, -0.2, -0.08 > < -2.45, 1.7, 0.08 > translate < 0.0, 0.0, 0.6 > } box { < -2.48, -0.2, -0.08 > < -2.45, 1.7, 0.08 > translate < 0.0, 0.0, -1.8 > } box { < -2.48, -0.2, -0.08 > < -2.45, 1.7, 0.08 > translate < 0.0, 0.0, 1.8 > } union { // added this union to accentuate / differentiate the decorative features difference { // upper arc cylinder { < -2.48, 1.7, 0.0 > < -2.44, 1.7, 0.0 > 0.68 } cylinder { < -2.50, 1.7, 0.0 > < -2.40, 1.7, 0.0 > 0.52 } box { < -2.50, 1.0, -0.7 > < -2.40, 1.7, 1.7 > } translate < 0.0, 0.0, -1.2 > } difference { // upper arc cylinder { < -2.48, 1.7, 0.0 > < -2.44, 1.7, 0.0 > 0.68 } cylinder { < -2.50, 1.7, 0.0 > < -2.40, 1.7, 0.0 > 0.52 } box { < -2.50, 1.0, -0.7 > < -2.40, 1.7, 1.7 > } translate < 0.0, 0.0, 0.0 > } difference { // upper arc cylinder { < -2.48, 1.7, 0.0 > < -2.44, 1.7, 0.0 > 0.68 } cylinder { < -2.50, 1.7, 0.0 > < -2.40, 1.7, 0.0 > 0.52 } box { < -2.50, 1.0, -0.7 > < -2.40, 1.7, 1.7 > } translate < 0.0, 0.0, 1.2 > } difference { // upper arc cylinder { < -2.49, 1.7, 0.0 > < -2.48, 1.7, 0.0 > 0.64 } cylinder { < -2.51, 1.7, 0.0 > < -2.47, 1.7, 0.0 > 0.56 } box { < -2.50, 1.0, -0.7 > < -2.45, 1.725, 1.7 > } translate < 0.0, 0.0, -1.2 > } difference { // upper arc cylinder { < -2.49, 1.7, 0.0 > < -2.48, 1.7, 0.0 > 0.64 } cylinder { < -2.51, 1.7, 0.0 > < -2.47, 1.7, 0.0 > 0.56 } box { < -2.50, 1.0, -0.7 > < -2.45, 1.725, 1.7 > } translate < 0.0, 0.0, 0.0 > } difference { // upper arc cylinder { < -2.49, 1.7, 0.0 > < -2.48, 1.7, 0.0 > 0.64 } cylinder { < -2.51, 1.7, 0.0 > < -2.47, 1.7, 0.0 > 0.56 } box { < -2.50, 1.0, -0.7 > < -2.45, 1.725, 1.7 > } translate < 0.0, 0.0, 1.2 > } union { // horizontal lines box { < -2.465, 1.71, -1.83 > < -2.45, 1.81, -0.60 > } box { < -2.465, 1.59, -1.83 > < -2.45, 1.69, -0.60 > } box { < -2.465, 1.71, 1.83 > < -2.45, 1.81, 0.60 > } box { < -2.465, 1.59, 1.83 > < -2.45, 1.69, 0.60 > } box { < -2.465, 0.21, -1.83 > < -2.45, 0.31, -0.60 > } box { < -2.465, 0.09, -1.83 > < -2.45, 0.19, -0.60 > } box { < -2.465, 0.21, 1.83 > < -2.45, 0.21, 0.60 > } box { < -2.465, 0.09, 1.83 > < -2.45, 0.19, 0.60 > } } // bolts // upper and lower sphere { < 0.0, 0.0, 0.0 > 0.1 scale < 0.25, 1.0, 1.0 > translate < -2.53, -0.45, -1.2 > } sphere { < 0.0, 0.0, 0.0 > 0.1 scale < 0.25, 1.0, 1.0 > translate < -2.53, -0.45, 0.0 > } sphere { < 0.0, 0.0, 0.0 > 0.1 scale < 0.25, 1.0, 1.0 > translate < -2.53, -0.45, 1.2 > } sphere { < 0.0, 0.0, 0.0 > 0.1 scale < 0.25, 1.0, 1.0 > translate < -2.53, 2.75, -1.2 > } sphere { < 0.0, 0.0, 0.0 > 0.1 scale < 0.25, 1.0, 1.0 > translate < -2.53, 2.75, 0.0 > } sphere { < 0.0, 0.0, 0.0 > 0.1 scale < 0.25, 1.0, 1.0 > translate < -2.53, 2.75, 1.2 > } // sides sphere { < 0.0, 0.0, 0.0 > 0.1 scale < 0.25, 1.0, 1.0 > translate < -2.50, -0.05, -2.04 > } sphere { < 0.0, 0.0, 0.0 > 0.1 scale < 0.25, 1.0, 1.0 > translate < -2.50, -0.05, 2.04 > } sphere { < 0.0, 0.0, 0.0 > 0.1 scale < 0.25, 1.0, 1.0 > translate < -2.80, 1.15, -2.04 > } sphere { < 0.0, 0.0, 0.0 > 0.1 scale < 0.25, 1.0, 1.0 > translate < -2.80, 1.15, 2.04 > } sphere { < 0.0, 0.0, 0.0 > 0.1 scale < 0.25, 1.0, 1.0 > translate < -2.50, 2.35, -2.04 > } sphere { < 0.0, 0.0, 0.0 > 0.1 scale < 0.25, 1.0, 1.0 > translate < -2.50, 2.35, 2.04 > } texture {Iron2 scale 0.25} } #if (ShowHeightfields) #declare HF_Column = concat (Directory, "Rome Deco Column - 001.png"); #declare BaseColumn = height_field {HF_Column gamma 2 water_level 0.1 smooth scale <1, 5, 1> rotate < 0.0, 90.0, 0.0 > translate < 0.0, 0.0, 0.5 > rotate < 0.0, 0.0, 90.0 > } #declare Column1 = object {BaseColumn scale < 0.04, 1.35, 0.16 > scale 1.425 } // end Column1 #declare Column2 = object {BaseColumn scale < 0.01, 1.274, 0.520 > } #declare Column3 = object {BaseColumn scale < 0.01, 0.35, 0.35 > scale < 1.0, 1.0, 1.0 > } #declare Column4 = object {BaseColumn scale < 0.01, 0.35, 1.31 > scale < 1.0, 1.0, 1.0 > } union { union { object {Column1 translate <-2.45, -0.2, -1.8>} object {Column1 translate <-2.45, -0.2, -0.6>} object {Column1 translate <-2.45, -0.2, 0.6>} object {Column1 translate <-2.45, -0.2, 1.8>} //pigment {Red} } union { object {Column2 scale < 1.0, 1.0, 1.0 > translate < -2.45, 0.3, -1.2 >} object {Column2 scale < 1.0, 1.0, -1.0 > translate < -2.45, 0.3, 1.2 >} //pigment {Green} } union { object {Column3 translate < -2.45, 1.815, 1.2 > } object {Column3 translate < -2.45, 1.815, -1.2 > } //pigment {Blue} } union { object {Column4 scale < 1.0, 1.0, 1.0 > translate < -2.45, -0.23, 1.2 >} object {Column4 scale < 1.0, 1.0, -1.0 > translate < -2.45, -0.23, -1.2 >} //pigment {Violet} } // pigment { Gray20 } finish { Glossy } texture {Iron2 scale 0.1} } // end union of columns #end //texture {FrontShield2} texture { RustyIron } } // end front metal plate union //} // end Engine union { // sling arm cylinder { < 0.0, -0.2, 0.0 > < 0.0, 2.5, 0.0 > 0.25 texture {WoodY2 RandWood()}} //texture { TopColor rotate < 90.0, 0.0, 0.0 > } } #macro Strand (_Layer) union { #declare CylR = 0.25; #declare RopeR = 0.03; #declare Start = -0.2; #declare End_Y = 2.5; #declare MidPoint = 1.15; #declare CBR = 0.2; // Cross-Bar Radius #for (Y, Start, End_Y, 0.1) #local R = CylR + RopeR*_Layer; #switch(Y) #range (Start, MidPoint-CBR) #local Theta = ( Y / ((MidPoint-CBR)-Start) )*pi; #local X = -R*sin(Theta+pi); #local Z = R*cos(Theta+pi); #local CurrentPoint = ; sphere {CurrentPoint RopeR} #if (Y > Start) cylinder {LastPoint, CurrentPoint RopeR} #end #break #range (MidPoint-CBR, MidPoint+CBR) #local Theta = ( (Y-(MidPoint-CBR)) / ((MidPoint+CBR)-(MidPoint-CBR)) )*pi; #local X = -(CBR/2)*sin (Theta); #local CurrentPoint = ; sphere {CurrentPoint RopeR} cylinder {LastPoint, CurrentPoint RopeR} #break #range (MidPoint+CBR, End_Y) #local Theta = ( (Y-(MidPoint+CBR)) / (End_Y-(MidPoint+CBR)) )*pi; #local X = -R*sin(Theta+pi); #local Z = R*cos(Theta); #local CurrentPoint = ; sphere {CurrentPoint RopeR} cylinder {LastPoint, CurrentPoint RopeR} #break #end // end switch - range - break #local LastPoint = CurrentPoint; #end // end for Y rotate -y*(120+even(_Layer*15)) } // end union #end // end macro Ropes #for (Layer, 1, 10) #local Group = union { #local ThisStrand = Strand (Layer) #for (R, 0, 10) #local N = floor (rand(Seed)*3); object {ThisStrand texture {A_Ropes[N] RandWood()} rotate y*R*10} #end } object {Group rotate <0.0, 0, 0.0>} object {Group rotate <0.0, 180, 0.0>} #end // end for Layer cone { < 0.0, 1.15, -3.0 > 0.15 < 0.0, 1.15, 0.0 > 0.2 texture {WoodZ RandWood()}} //texture { TopColor } } box { < 0.0, 1.00, -3.0 > < 0.18, 1.30, -2.5 > texture { RustyIron } } cylinder { < 0.0, 1.15, -3.0 > < 0.0, 1.15, -2.9 > 0.17 texture { RustyIron } } cylinder { < 0.0, 1.15, -2.7 > < 0.0, 1.15, -2.6 > 0.18 texture { RustyIron } } torus { 0.15, 0.05 translate < 0.18, 1.15, -2.75 > texture { RustyIron } } sphere { < 0.0, 1.15, -3.0 > 0.15 texture { RustyIron } } cylinder { < 0.0, 1.15, -3.17 > < 0.0, 1.15, -3.0 > 0.1 texture { RustyIron } } #if (ShowHeightfields) #declare T_Lion2 = concat (Directory, "Rome Deco Lion - 002.png"); height_field {T_Lion2 water_level 0.1 smooth rotate < 0.0, 90.0, 0.0 > translate < 0.0, 0.0, 0.5 > rotate < 0.0, 0.0, 90.0 > scale < 0.025, 0.175, 0.175 > rotate < 0.0, 90.0, 0.0 > scale < 1.0, 1.0, -1.0 > translate < 0.0, 1.0625, -3.17 > // pigment { Gray20 } finish { Glossy } // texture { RustyIron } } #end torus { 0.05, 0.025*3 rotate < 90.0, 0.0, 0.0 > translate < 0.33, 1.15, -2.75 > texture {Rope1} } // // ropes around rings // rope from sled to left arm cylinder { < 0.33, 1.15, -2.75 > < 4.19, 1.275, -(3.7825+0.15) > 0.025*3 texture {Rope1} } union { object { Supertorus ( 0.175, 0.05, // Radius_Major, Radius_Minor, 1.00, 0.45, // Major_Control, Minor_Control, 0.001, 1.50 // Accuracy, Max_Gradient) ) rotate < 90.0, 0.0, 0.0 > scale < 1.0, 1.0, 1.0 > translate < 0.0, 1.15, -0.52 > } object { Supertorus ( 0.175, 0.05, // Radius_Major, Radius_Minor, 1.00, 0.45, // Major_Control, Minor_Control, 0.001, 1.50 // Accuracy, Max_Gradient) ) rotate < 90.0, 0.0, 0.0 > scale < 1.0, 1.0, 3.0 > translate < 0.0, 1.15, -0.72 > } object { Supertorus ( 0.175, 0.05, // Radius_Major, Radius_Minor, 1.00, 0.45, // Major_Control, Minor_Control, 0.001, 1.50 // Accuracy, Max_Gradient) ) rotate < 90.0, 0.0, 0.0 > scale < 1.0, 1.0, 1.0 > translate < 0.0, 1.15, -0.92 > } texture { Leather } } union { torus { 0.21, 0.02 rotate < 90.0, 0.0, 0.0 > translate < 0.0, 1.15, -0.62 > } torus { 0.21, 0.02 rotate < 90.0, 0.0, 0.0 > translate < 0.0, 1.15, -0.87 > } texture {Rope1} } rotate < 0.0, -55.0, 0.0 > translate < -1.5, 0.0, -1.32 > } union // sling arm { cylinder { < 0.0, -0.2, 0.0 > < 0.0, 2.5, 0.0 > 0.25 texture {WoodY2 RandWood()}} //texture { TopColor rotate < 90.0, 0.0, 0.0 > } } cone { < 0.0, 1.15, 3.0 > 0.15 < 0.0, 1.15, 0.0 > 0.2 texture {WoodZ2 RandWood()}} //texture { TopColor } } box { < 0.0, 1.00, 3.0 > < 0.18, 1.30, 2.5 > texture { RustyIron } } cylinder { < 0.0, 1.15, 3.0 > < 0.0, 1.15, 2.9 > 0.17 texture { RustyIron } } cylinder { < 0.0, 1.15, 2.7 > < 0.0, 1.15, 2.6 > 0.18 texture { RustyIron } } torus { 0.15, 0.05 translate < 0.18, 1.15, 2.75 > texture { RustyIron } } sphere { < 0.0, 1.15, 3.0 > 0.15 texture { RustyIron } } cylinder { < 0.0, 1.15, 3.17 > < 0.0, 1.15, 3.0 > 0.1 texture { RustyIron } } height_field {T_Lion2 water_level 0.1 smooth rotate < 0.0, 90.0, 0.0 > translate < 0.0, 0.0, 0.5 > rotate < 0.0, 0.0, 90.0 > scale < 0.025, 0.175, 0.175 > rotate < 0.0, 90.0, 0.0 > scale < 1.0, 1.0, 1.0 > translate < 0.0, 1.0625, 3.17 > // pigment { Gray20 } finish { Glossy } // texture { RustyIron } } torus { 0.05, 0.025*3 rotate < 90.0, 0.0, 0.0 > translate < 0.33, 1.15, 2.75 > texture { Rope1 } } // // ropes around rings // rope from sled to right arm cylinder { < 0.33, 1.15, 2.75 > < 4.19, 1.275, 3.7825+0.075 > 0.025*3 texture { Rope1 } } union { object { Supertorus ( 0.175, 0.05, // Radius_Major, Radius_Minor, 1.00, 0.45, // Major_Control, Minor_Control, 0.001, 1.50 // Accuracy, Max_Gradient) ) rotate < 90.0, 0.0, 0.0 > scale < 1.0, 1.0, 1.0 > translate < 0.0, 1.15, 0.52 > } object { Supertorus ( 0.175, 0.05, // Radius_Major, Radius_Minor, 1.00, 0.45, // Major_Control, Minor_Control, 0.001, 1.50 // Accuracy, Max_Gradient) ) rotate < 90.0, 0.0, 0.0 > scale < 1.0, 1.0, 3.0 > translate < 0.0, 1.15, 0.72 > } object { Supertorus ( 0.175, 0.05, // Radius_Major, Radius_Minor, 1.00, 0.45, // Major_Control, Minor_Control, 0.001, 1.50 // Accuracy, Max_Gradient) ) rotate < 90.0, 0.0, 0.0 > scale < 1.0, 1.0, 1.0 > translate < 0.0, 1.15, 0.92 > } texture { Leather } } union { torus { 0.21, 0.02 rotate < 90.0, 0.0, 0.0 > translate < 0.0, 1.15, 0.62 > } torus { 0.21, 0.02 rotate < 90.0, 0.0, 0.0 > translate < 0.0, 1.15, 0.87 > } texture { Rope1 } } rotate < 0.0, 55.0, 0.0 > translate < -1.5, 0.0, 1.32 > } union // ropes around rings { torus { 0.05, 0.025 rotate < 90.0, 0.0, 0.0 > translate < 4.45, 0.725+0.025, 0.0 > } // back torus { 0.05, 0.025 rotate < 0.0, 0.0, 0.0 > translate < 4.15-0.15, 1.275, 0.0 > } // top texture { Rope1 } } union // rope adjusterstexture {WoodY2 RandWood()}} { cylinder { < 0.0, 0.000, 0.0 > < 0.0, 0.065, 0.0 > 0.55 texture { RustyIron } } cylinder { < 0.0, 0.065, 0.0 > < 0.0, 0.100, 0.0 > 0.50 texture { RustyIron } } union { #for(Runde,0,360,36) object { Adjuster rotate < 0.0, Runde, 0.0 >} #end texture { RustyIron } } cylinder { < 0.0, 0.100, 0.0 > < 0.0, 0.150 0.0 > 0.300 texture { RustyIron } } cylinder { < 0.0, 0.150, 0.0 > < 0.0, 0.225 0.0 > 0.350 texture { RustyIron } } cylinder { < 0.0, 0.225, 0.0 > < 0.0, 0.275 0.0 > 0.275 texture {WoodY2 RandWood()}} //texture { TopColor rotate < 90.0, 0.0, 0.0 > } } cylinder { < 0.0, 0.275, 0.0 > < 0.0, 0.300 0.0 > 0.350 texture { RustyIron } } difference { cylinder { < 0.0, 0.300, 0.0 > < 0.0, 0.330 0.0 > 0.325 texture { RustyIron } } cylinder { < 0.0, 0.290, 0.0 > < 0.0, 0.360 0.0 > 0.30 texture { RustyIron } } } sphere { < 0.0, 0.225, 0.0 > 0.275 texture { RustyIron } } cylinder { < 0.0, 0.330, -0.45 > < 0.0, 0.330 0.45 > 0.025 rotate < 0.0, 30.0, 0.0 > texture { RustyIron } } scale < 1.0, -1.0, 1.0 > translate < -1.5, -0.7, -1.32 > } union // rope adjusters { cylinder { < 0.0, 0.000, 0.0 > < 0.0, 0.065, 0.0 > 0.55 texture { RustyIron } } cylinder { < 0.0, 0.065, 0.0 > < 0.0, 0.100, 0.0 > 0.50 texture { RustyIron } } union { #for(Runde,0,360,36) object { Adjuster rotate < 0.0, Runde, 0.0 >} #end texture { RustyIron } } cylinder { < 0.0, 0.100, 0.0 > < 0.0, 0.150 0.0 > 0.300 texture { RustyIron } } cylinder { < 0.0, 0.150, 0.0 > < 0.0, 0.225 0.0 > 0.350 texture { RustyIron } } cylinder { < 0.0, 0.225, 0.0 > < 0.0, 0.275 0.0 > 0.275 texture {WoodY2 RandWood()}} //texture { TopColor rotate < 90.0, 0.0, 0.0 > } } cylinder { < 0.0, 0.275, 0.0 > < 0.0, 0.300 0.0 > 0.350 texture { RustyIron } } difference { cylinder { < 0.0, 0.300, 0.0 > < 0.0, 0.330 0.0 > 0.325 texture { RustyIron } } cylinder { < 0.0, 0.290, 0.0 > < 0.0, 0.360 0.0 > 0.30 texture { RustyIron } } } sphere { < 0.0, 0.225, 0.0 > 0.275 texture { RustyIron } } cylinder { < 0.0, 0.330, -0.45 > < 0.0, 0.330 0.45 > 0.025 rotate < 0.0, 30.0, 0.0 > texture { RustyIron } } scale < 1.0, -1.0, -1.0 > translate < -1.5, -0.7, 1.32 > } union // rope adjusters { cylinder { < 0.0, 0.000, 0.0 > < 0.0, 0.065, 0.0 > 0.55 texture { RustyIron } } cylinder { < 0.0, 0.065, 0.0 > < 0.0, 0.100, 0.0 > 0.50 texture { RustyIron } } union { #for(Runde,0,360,36) object { Adjuster rotate < 0.0, Runde, 0.0 >} #end texture { RustyIron } } cylinder { < 0.0, 0.100, 0.0 > < 0.0, 0.150 0.0 > 0.300 texture { RustyIron } } cylinder { < 0.0, 0.150, 0.0 > < 0.0, 0.225 0.0 > 0.350 texture { RustyIron } } cylinder { < 0.0, 0.225, 0.0 > < 0.0, 0.275 0.0 > 0.275 texture {WoodY2 RandWood()}} //texture { TopColor rotate < 90.0, 0.0, 0.0 > } } cylinder { < 0.0, 0.275, 0.0 > < 0.0, 0.300 0.0 > 0.350 texture { RustyIron } } difference { cylinder { < 0.0, 0.300, 0.0 > < 0.0, 0.330 0.0 > 0.325 texture { RustyIron } } cylinder { < 0.0, 0.290, 0.0 > < 0.0, 0.360 0.0 > 0.30 texture { RustyIron } } } sphere { < 0.0, 0.225, 0.0 > 0.275 texture { RustyIron } } cylinder { < 0.0, 0.330, -0.45 > < 0.0, 0.330 0.45 > 0.025 rotate < 0.0, 30.0, 0.0 > texture { RustyIron } } scale < 1.0, 1.0, 1.0 > translate < -1.5, 3.0, -1.32 > } union // rope adjusters { cylinder { < 0.0, 0.000, 0.0 > < 0.0, 0.065, 0.0 > 0.55 texture { RustyIron } } cylinder { < 0.0, 0.065, 0.0 > < 0.0, 0.100, 0.0 > 0.50 texture { RustyIron } } union { #for(Runde,0,360,36) object { Adjuster rotate < 0.0, Runde, 0.0 >} #end texture { RustyIron } } cylinder { < 0.0, 0.100, 0.0 > < 0.0, 0.150 0.0 > 0.300 texture { RustyIron } } cylinder { < 0.0, 0.150, 0.0 > < 0.0, 0.225 0.0 > 0.350 texture { RustyIron } } cylinder { < 0.0, 0.225, 0.0 > < 0.0, 0.275 0.0 > 0.275 texture {WoodY2 RandWood()}} //texture { TopColor rotate < 90.0, 0.0, 0.0 > } } cylinder { < 0.0, 0.275, 0.0 > < 0.0, 0.300 0.0 > 0.350 texture { RustyIron } } difference { cylinder { < 0.0, 0.300, 0.0 > < 0.0, 0.330 0.0 > 0.325 texture { RustyIron } } cylinder { < 0.0, 0.290, 0.0 > < 0.0, 0.360 0.0 > 0.30 texture { RustyIron } } } sphere { < 0.0, 0.225, 0.0 > 0.275 texture { RustyIron } } cylinder { < 0.0, 0.330, -0.45 > < 0.0, 0.330 0.45 > 0.025 rotate < 0.0, 30.0, 0.0 > texture { RustyIron } } scale < 1.0, 1.0, -1.0 > translate < -1.5, 3.0, 1.32 > } rotate < 0.0, 0.0, RotateUpDown > translate < 0.0, 3.65, 0.0 > // to fit into bottom #if(NavyVersion=on) translate < 0.0, 0.35, 0.0 > #end rotate < 0.0, RotateAround, 0.0 > } // ---------------------------------------------------------------------------------- union { #if(NavyVersion=on) object { DeckFixing } #end object { Stand } object { Engine} //object {Human_001} rotate y*20 translate x*2.5 } #if (1) union { #if(NavyVersion=on) object { DeckFixing } #end object { Stand } object { Engine } //object {Human_001} rotate -y*90 translate -x*3.5 } #end /* height_field // heightfields { png "C:\Users\Sven Littkowski\Documents\My Images\Textures\Rome Deco Column - 001.png" // png "C:\Users\Sven Littkowski\Documents\My Images\Textures\Test.png" water_level 0.1 // smooth rotate < 0.0, 90.0, 0.0 > // translate < 0.0, 0.0, 0.5 > // rotate < 0.0, 0.0, 90.0 > // scale < 0.1, 1.35, 0.16 > // scale 4.5 translate < 0.0, 0.0, 0.0 > // translate < -3.65, -0.2, -0.6 > pigment { Gray20 } finish { Glossy } } box { < -3.0, -0.01, -0.1 > < 3.0, 0.0, 0.1 > pigment { Gray60 } finish { ambient 1.0 } } box { < -0.1, -0.01, -3.0 > < 0.1, 0.0, 3.0 > pigment { Gray60 } finish { ambient 1.0 } } */