home *** CD-ROM | disk | FTP | other *** search
- // Persistence of Vision RayTracer version 2.2 Scene description file
- // File: LEGO.INC
- // Description: Library file with parts of Lego¿
- // Date: 03/23/94
- // Author: Anton Raves
- //
-
- // Declaration of the colors used by Lego¿
- // ---------------------------------------
- #declare Black_tex =
- texture {
- pigment { color red 0 green 0 blue 0 }
- finish { ambient .1 phong 1 phong_size 70 reflection .2 }
- }
-
- #declare Green_tex =
- texture {
- pigment { color red 0 green .6 blue 0 }
- finish { ambient .1 phong 1 phong_size 70 reflection .2 }
- }
-
- #declare Grey_tex =
- texture {
- pigment { color red .7 green .7 blue .7 }
- finish { ambient .1 phong 1 phong_size 70 reflection .2 }
- }
-
- #declare Red_tex =
- texture {
- pigment { color red 1 green 0 blue 0 }
- finish { ambient .1 phong 1 phong_size 70 reflection .2 }
- }
-
- #declare White_tex =
- texture {
- pigment { color red 1 green 1 blue 1 }
- finish { ambient .1 phong 1 phong_size 70 reflection .2 }
- }
-
- #declare Yellow_tex =
- texture {
- pigment { color red 1 green 1 blue 0 }
- finish { ambient .1 phong 1 phong_size 70 reflection .2 }
- }
-
- #declare T_Cyan_tex =
- texture {
- pigment { color red 0 green 1 blue 1 filter .95 }
- finish { ambient .1 phong 1 phong_size 70 reflection .2 refraction .9 diffuse 0 }
- }
-
- #declare T_Green_tex =
- texture {
- pigment { color red 0 green 1 blue 0 filter .95 }
- finish { ambient .1 phong 1 phong_size 70 reflection .2 refraction .9 diffuse 0 }
- }
-
- #declare T_Red_tex =
- texture {
- pigment { color red 1 green 0 blue 0 filter .95 }
- finish { ambient .1 phong 1 phong_size 70 reflection .2 refraction .9 diffuse 0 }
- }
-
- #declare T_Yellow_tex =
- texture {
- pigment { color red 1 green 1 blue 0 filter .95 }
- finish { ambient .1 phong 1 phong_size 70 reflection .2 refraction .9 diffuse 0 }
- }
-
- // Declaration of regularly used parts
- // -----------------------------------
- #declare button =
- object {
- cylinder { 3*y, 4.5*y, 2.25 }
- bounded_by { cylinder { 2.5*y, 5*y, 2.5 } }
- }
-
- #declare openbutton =
- object {
- difference {
- cylinder { 3*y, 4.5*y, 2.25 }
- cylinder { 2.5*y, 5*y, 1.75 }
- }
- bounded_by { cylinder { 2.5*y, 5*y, 2.5 } }
- }
-
- #declare opencylinder =
- object {
- difference {
- cylinder { 3*y, 10.5*y, 2.25 }
- cylinder { 2*y, 11*y, 1.75 }
- }
- bounded_by { cylinder { 2*y, 11*y, 2.5 } }
- }
-
- #declare Tor =
- object {
- difference {
- torus { 3, 1.5 rotate 90*x }
- plane { y, 0 }
- plane { x, 0 }
- }
- }
-
- #declare S_Blade =
- object {
- union {
- box { <-2.5, -2, -.6> <2.5, -13, .6> }
- cylinder { -.6*z, .6*z, 2.5 translate <0, -13, 0> }
- }
- bounded_by { box { <-3, -16, -1> <3, -1, 1> } }
- }
-
- #declare Ring =
- object {
- difference {
- cylinder { 0*y, 2*y, 3 }
- cylinder { -1*y, 3*y, 2.25 }
- }
- bounded_by { cylinder { -.5*y, 2.5*y, 3.5 } }
- }
-
- // Declaration of the different parts
- // ----------------------------------
- #declare H_Block1_1 =
- object {
- difference {
- union {
- object { button translate <0, 6, 0> }
- box { <-4, 0, -4> <4, 9, 4> }
- }
- box { <-2.5, -1, -2.5> <2.5, 8, 2.5> }
- cylinder { 7*y, 10*y, 1.25 }
- }
- bounded_by { box { <-5, -1, -5> <5, 12, 5> } }
- }
-
- #declare H_Block1_4 =
- object {
- union {
- difference {
- union {
- object { button translate <0, 6, 0> }
- object { button translate <8, 6, 0> }
- object { button translate <16, 6, 0> }
- object { button translate <24, 6, 0> }
- box { <-4, 0, -4> <28, 9, 4> }
- }
- box { <-2.5, -1, -2.5> <11.5, 8, 2.5> }
- box { <12.5, -1, -2.5> <26.5, 8, 2.5> }
- cylinder { 7*y, 10*y, 1.25 }
- cylinder { 7*y, 10*y, 1.25 translate <8, 0, 0> }
- cylinder { 7*y, 10*y, 1.25 translate <16, 0, 0> }
- cylinder { 7*y, 10*y, 1.25 translate <24, 0, 0> }
- }
- cylinder { 0*y, 8*y, 1.5 translate <4, 0, 0> }
- cylinder { 0*y, 8*y, 1.5 translate <12, 0, 0> }
- cylinder { 0*y, 8*y, 1.5 translate <20, 0, 0> }
- }
- bounded_by { box { <-5, -1, -5> <29, 12, 5> } }
- }
-
- #declare FSBlock1_2 =
- object {
- union {
- difference {
- union {
- object { openbutton translate <4, 0, 0> }
- box { <-4, 0, -4> <12, 3, 4> }
- }
- box { <-2.5, -1, -2.5> <10.5, 2, 2.5> }
- }
- cylinder { 0*y, 2*y, 1.5 translate <4, 0, 0> }
- }
- bounded_by { box { <-5, -1, -5> <13, 5, 5> } }
- }
-
- #declare FFBlock1_1 =
- object {
- difference {
- merge {
- box { <-4, .5, -4> <4, 3, 4> }
- box { <-3.5, 0, -3.5> <3.5, .5, 3.5> }
- }
- box { <-2.5, -1, -2.5> <2.5, 2, 2.5> }
- }
- bounded_by { box { <-5, -1, -5> <5, 4, 5> } }
- }
-
- #declare FFBlock1_8 =
- object {
- union {
- difference {
- union {
- box { <-4, .5, -4> <60, 3, 4> }
- box { <-3.5, 0, -3.5> <59.5, .5, 3.5> }
- }
- box { <-2.5, -1, -2.5> <58.5, 2, 2.5> }
- }
- cylinder { 0*y, 2*y, 1.5 translate <4, 0, 0> }
- cylinder { 0*y, 2*y, 1.5 translate <12, 0, 0> }
- cylinder { 0*y, 2*y, 1.5 translate <20, 0, 0> }
- cylinder { 0*y, 2*y, 1.5 translate <28, 0, 0> }
- cylinder { 0*y, 2*y, 1.5 translate <36, 0, 0> }
- cylinder { 0*y, 2*y, 1.5 translate <44, 0, 0> }
- cylinder { 0*y, 2*y, 1.5 translate <52, 0, 0> }
- }
- bounded_by { box { <-5, -1, -5> <61, 4, 5> } }
- }
-
- #declare F_Block1_2 =
- object {
- union {
- difference {
- union {
- object { button }
- object { button translate <8, 0, 0> }
- box { <-4, 0, -4> <12, 3, 4> }
- }
- box { <-2.5, -1, -2.5> <10.5, 2, 2.5> }
- cylinder { 1*y, 4*y, 1.25 }
- cylinder { 1*y, 4*y, 1.25 translate <8, 0, 0> }
- }
- cylinder { 0*y, 2*y, 1.5 translate <4, 0, 0> }
- }
- bounded_by { box { <-5, -1, -5> <13, 5, 5> } }
- }
-
- #declare F_Block1_3 =
- object {
- union {
- difference {
- union {
- object { button }
- object { button translate <8, 0, 0> }
- object { button translate <16, 0, 0> }
- box { <-4, 0, -4> <20, 3, 4> }
- }
- box { <-2.5, -1, -2.5> <18.5, 2, 2.5> }
- cylinder { 1*y, 4*y, 1.25 }
- cylinder { 1*y, 4*y, 1.25 translate <8, 0, 0> }
- cylinder { 1*y, 4*y, 1.25 translate <16, 0, 0> }
- }
- cylinder { 0*y, 2*y, 1.5 translate <4, 0, 0> }
- cylinder { 0*y, 2*y, 1.5 translate <12, 0, 0> }
- }
- bounded_by { box { <-5, -1, -5> <21, 5, 5> } }
- }
-
- #declare F_Block1_4 =
- object {
- union {
- difference {
- union {
- object { button }
- object { button translate <8, 0, 0> }
- object { button translate <16, 0, 0> }
- object { button translate <24, 0, 0> }
- box { <-4, 0, -4> <28, 3, 4> }
- }
- box { <-2.5, -1, -2.5> <26.5, 2, 2.5> }
- cylinder { 1*y, 4*y, 1.25 }
- cylinder { 1*y, 4*y, 1.25 translate <8, 0, 0> }
- cylinder { 1*y, 4*y, 1.25 translate <16, 0, 0> }
- cylinder { 1*y, 4*y, 1.25 translate <24, 0, 0> }
- }
- cylinder { 0*y, 2*y, 1.5 translate <4, 0, 0> }
- cylinder { 0*y, 2*y, 1.5 translate <12, 0, 0> }
- cylinder { 0*y, 2*y, 1.5 translate <20, 0, 0> }
- }
- bounded_by { box { <-5, -1, -5> <29, 5, 5> } }
- }
-
- #declare F_Block1_6 =
- object {
- union {
- difference {
- union {
- object { button }
- object { button translate <8, 0, 0> }
- object { button translate <16, 0, 0> }
- object { button translate <24, 0, 0> }
- object { button translate <32, 0, 0> }
- object { button translate <40, 0, 0> }
- box { <-4, 0, -4> <44, 3, 4> }
- }
- box { <-2.5, -1, -2.5> <42.5, 2, 2.5> }
- cylinder { 1*y, 4*y, 1.25 }
- cylinder { 1*y, 4*y, 1.25 translate <8, 0, 0> }
- cylinder { 1*y, 4*y, 1.25 translate <16, 0, 0> }
- cylinder { 1*y, 4*y, 1.25 translate <24, 0, 0> }
- cylinder { 1*y, 4*y, 1.25 translate <32, 0, 0> }
- cylinder { 1*y, 4*y, 1.25 translate <40, 0, 0> }
- }
- cylinder { 0*y, 2*y, 1.5 translate <4, 0, 0> }
- cylinder { 0*y, 2*y, 1.5 translate <12, 0, 0> }
- cylinder { 0*y, 2*y, 1.5 translate <20, 0, 0> }
- cylinder { 0*y, 2*y, 1.5 translate <28, 0, 0> }
- cylinder { 0*y, 2*y, 1.5 translate <36, 0, 0> }
- }
- bounded_by { box { <-5, -1, -5> <45, 5, 5> } }
- }
-
- #declare F_Block1_8 =
- object {
- union {
- difference {
- union {
- object { button }
- object { button translate <8, 0, 0> }
- object { button translate <16, 0, 0> }
- object { button translate <24, 0, 0> }
- object { button translate <32, 0, 0> }
- object { button translate <40, 0, 0> }
- object { button translate <48, 0, 0> }
- object { button translate <56, 0, 0> }
- box { <-4, 0, -4> <60, 3, 4> }
- }
- box { <-2.5, -1, -2.5> <58.5, 2, 2.5> }
- cylinder { 1*y, 4*y, 1.25 }
- cylinder { 1*y, 4*y, 1.25 translate <8, 0, 0> }
- cylinder { 1*y, 4*y, 1.25 translate <16, 0, 0> }
- cylinder { 1*y, 4*y, 1.25 translate <24, 0, 0> }
- cylinder { 1*y, 4*y, 1.25 translate <32, 0, 0> }
- cylinder { 1*y, 4*y, 1.25 translate <40, 0, 0> }
- cylinder { 1*y, 4*y, 1.25 translate <48, 0, 0> }
- cylinder { 1*y, 4*y, 1.25 translate <56, 0, 0> }
- }
- cylinder { 0*y, 2*y, 1.5 translate <4, 0, 0> }
- cylinder { 0*y, 2*y, 1.5 translate <12, 0, 0> }
- cylinder { 0*y, 2*y, 1.5 translate <20, 0, 0> }
- cylinder { 0*y, 2*y, 1.5 translate <28, 0, 0> }
- cylinder { 0*y, 2*y, 1.5 translate <36, 0, 0> }
- cylinder { 0*y, 2*y, 1.5 translate <44, 0, 0> }
- cylinder { 0*y, 2*y, 1.5 translate <52, 0, 0> }
- }
- bounded_by { box { <-5, -1, -5> <61, 5, 5> } }
- }
-
- #declare F_Block2_4 =
- object {
- union {
- difference {
- union {
- object { button }
- object { button translate <8, 0, 0> }
- object { button translate <16, 0, 0> }
- object { button translate <24, 0, 0> }
- object { button translate <0, 0, 8> }
- object { button translate <8, 0, 8> }
- object { button translate <16, 0, 8> }
- object { button translate <24, 0, 8> }
- box { <-4, 0, -4> <28, 3, 12> }
- }
- box { <-2.5, -1, -2.5> <26.5, 2, 10.5> }
- cylinder { 1*y, 4*y, 1.25 }
- cylinder { 1*y, 4*y, 1.25 translate <8, 0, 0> }
- cylinder { 1*y, 4*y, 1.25 translate <16, 0, 0> }
- cylinder { 1*y, 4*y, 1.25 translate <24, 0, 0> }
- cylinder { 1*y, 4*y, 1.25 translate <0, 0, 8> }
- cylinder { 1*y, 4*y, 1.25 translate <8, 0, 8> }
- cylinder { 1*y, 4*y, 1.25 translate <16, 0, 8> }
- cylinder { 1*y, 4*y, 1.25 translate <24, 0, 8> }
- }
- object { Ring translate <4, 0, 4> }
- object { Ring translate <12, 0, 4> }
- object { Ring translate <20, 0, 4> }
- }
- bounded_by { box { <-5, -1, -5> <29, 5, 13> } }
- }
-
- #declare F_Triangle2_2 =
- object {
- union {
- difference {
- union {
- object { button }
- object { button translate <0, 0, 8> }
- object { button translate <8, 0, 8> }
- difference {
- box { <-4, 0, -4> <12, 3, 12> }
- box { <4, -1, -5> <13, 4, 4> }
- }
- }
- box { <-2.5, -1, -2.5> <2.5, 2, 10.5> }
- box { <2, -1, 5.5> <10.5, 2, 10.5> }
- cylinder { 1*y, 4*y, 1.25 }
- cylinder { 1*y, 4*y, 1.25 translate <0, 0, 8> }
- cylinder { 1*y, 4*y, 1.25 translate <8, 0, 8> }
- }
- cylinder { 0*y, 2*y, 1.5 translate <0, 0, 4> }
- cylinder { 0*y, 2*y, 1.5 translate <4, 0, 8> }
- }
- bounded_by { box { <-5, -1, -5> <13, 5, 13> } }
- }
-
- #declare FRBlock1_1 =
- object {
- difference {
- merge {
- object { button }
- cylinder { 2*y, 3*y, 4 }
- cylinder { 0*y, 2*y, 3 }
- }
- cylinder { -1*y, 2*y, 2.25 }
- cylinder { 2*y, 4*y, 1.25 }
- }
- bounded_by { box { <-5, -1, -5> <5, 4, 5> } }
- }
-
- #declare Slope1_3 =
- object {
- union {
- difference {
- union {
- object { button translate <16, 6, 0> }
- difference {
- box { <-4, 0, -4> <20, 9, 4> }
- plane { y, 0 inverse rotate 24.25*z translate <4, 5.2, 0> }
- }
- }
- box { <13.5, -1, -2.5> <18.5, 8, 2.5> }
- box { <-2.5, -1, -2.5> <2.5, 2, 2.5> }
- cylinder { 7*y, 10*y, 1.25 translate <16, 0, 0> }
- difference {
- box { <-2.5, -1, -2.5> <10.5, 8, 2.5> }
- plane { y, 0 inverse rotate 24.25*z translate <4, 4.2, 0> }
- }
- }
- box { <10.5, 0, -0.75> <12, 7, 0.75> }
- difference {
- cylinder { 0*y, 8*y, 1.5 translate <4, 0, 0> }
- plane { y, 0 inverse rotate 24.25*z translate <4, 4.2, 0> }
- }
- }
- bounded_by { box { <-5, -1, -5> <21, 12, 5> } }
- }
-
- #declare Slope2_2 =
- object {
- union {
- difference {
- union {
- object { button translate <8, 6, 0> }
- object { button translate <8, 6, 8> }
- difference {
- box { <-4, 0, -4> <12, 9, 12> }
- plane { y, 0 inverse rotate 44*z translate <0, 5.2, 0> }
- }
- }
- difference {
- box { <-2.5, -1, -2.5> <10.5, 8, 10.5> }
- plane { y, 0 inverse rotate 44*z translate <0, 4.2, 0> }
- }
- cylinder { 7*y, 10*y, 1.25 translate <8, 0, 0> }
- cylinder { 7*y, 10*y, 1.25 translate <8, 0, 8> }
- }
- difference {
- cylinder { 0*y, 8*y, 3 translate <4, 0, 4> }
- cylinder { -1*y, 9*y, 2.25 translate <4, 0, 4> }
- plane { y, 0 inverse rotate 44*z translate <0, 4.2, 0> }
- }
- }
- bounded_by { box { <-5, -1, -5> <13, 12, 13> } }
- }
-
- #declare I_Slope2_2 =
- object {
- union {
- difference {
- union {
- object { button translate <0, 6, 0> }
- object { button translate <0, 6, 8> }
- difference {
- box { <-4, 0, -4> <12, 9, 12> }
- plane { y, 0 rotate 44*z translate <8, 4.8, 0> }
- }
- }
- difference {
- box { <4, 1, -2.5> <10.5, 10, 10.5> }
- plane { y, 0 rotate 44*z translate <8, 5.8, 0> }
- }
- box { <-2.5, -1, -2.5> <2.5, 8, 10.5> }
- box { <-0.5, 7, -1.5> <0.5, 9, 1.5> }
- box { <-0.5, 7, 1.5> <0.5, 9, 9.5> }
- }
- difference {
- union {
- object { opencylinder translate <8, 0, 0> }
- object { opencylinder translate <8, 0, 8> }
- }
- plane { y, 0 rotate 44*z translate <8, 5.8, 0> }
- }
- box { <-0.5, 0, 2.5> <0.5, 8, 5.5> }
- }
- bounded_by { box { <-5, -1, -5> <13, 12, 13> } }
- }
-
- #declare I_Slope2_3 =
- object {
- union {
- difference {
- union {
- object { button translate <0, 6, 0> }
- object { button translate <0, 6, 8> }
- difference {
- box { <-4, 0, -4> <20, 9, 12> }
- plane { y, 0 rotate 24.25*z translate <12, 3.8, 0> }
- }
- }
- object { button translate <8, -1.5, 0> }
- object { button translate <8, -1.5, 8> }
- difference {
- box { <4, 1, -2.5> <18.5, 10, 10.5> }
- plane { y, 0 rotate 24.25*z translate <12, 4.8, 0> }
- }
- box { <-2.5, -1, -2.5> <2.5, 8, 10.5> }
- box { <-0.5, 7, -1.5> <0.5, 9, 1.5> }
- box { <-0.5, 7, 1.5> <0.5, 9, 9.5> }
- }
- difference {
- union {
- object { opencylinder translate <8, 0, 0> }
- object { opencylinder translate <8, 0, 8> }
- object { opencylinder translate <16, 0, 0> }
- object { opencylinder translate <16, 0, 8> }
- }
- plane { y, 0 rotate 24.25*z translate <12, 4.8, 0> }
- }
- box { <-0.5, 0, 2.5> <0.5, 8, 5.5> }
- }
- bounded_by { box { <-5, -1, -5> <21, 12, 13> } }
- }
-
- #declare Bar1_6 =
- object {
- difference {
- union {
- cylinder { 0*y, 3*y, 3.25 }
- cylinder { 0*y, 3*y, 3.25 translate <40, 0, 0> }
- cylinder { 3*y, 4.5*y, 1.5 }
- cylinder { 3*y, 4.5*y, 1.5 translate <40, 0, 0> }
- cylinder { 6*y, 10.5*y, 2.25 translate <8, 0, 0> }
- cylinder { 6*y, 10.5*y, 2.25 translate <16, 0, 0> }
- cylinder { 6*y, 10.5*y, 2.25 translate <24, 0, 0> }
- cylinder { 6*y, 10.5*y, 2.25 translate <32, 0, 0> }
- cylinder { 3*x, 37*x, 1.5 translate <0, 7.5, 0> }
- object { Tor translate <37, 4.5, 0> }
- object { Tor rotate 90*z translate <3, 4.5, 0> }
- }
- cylinder { 5.5*y, 11*y, 1.75 translate <8, 0, 0> }
- cylinder { 5.5*y, 11*y, 1.75 translate <16, 0, 0> }
- cylinder { 5.5*y, 11*y, 1.75 translate <24, 0, 0> }
- cylinder { 5.5*y, 11*y, 1.75 translate <32, 0, 0> }
- cylinder { -1*y, 2*y, 2.75 }
- cylinder { -1*y, 2*y, 2.75 translate <40, 0, 0> }
- }
- bounded_by { box { <-5, -1, -5> <45, 12, 5> } }
- }
-
- #declare S_Propellor2_2 =
- object {
- union {
- cylinder { 12*z, 13*z, 2 translate <4, 1, 0> }
- difference {
- box { <-4, -3, -4> <12, 3, 12> }
- box { <-5, -4, -5> <13, 0, 4> }
- }
- object { button }
- object { button translate <8, 0, 0> }
- object { button translate <0, 0, 8> }
- object { button translate <8, 0, 8> }
- difference {
- merge {
- cylinder { 12*z, 18*z, 1.5 }
- cylinder { 17*z, 18*z, 1.5 scale <1.5, 1, 1>}
- }
- box { <-.5, -2, 15> <.5, 2, 19> }
- translate <4, 1, 0>
- }
- }
- bounded_by { box { <-5, -4, -5> <13, 5, 19> } }
- }
-
- #declare S_Propellor =
- object {
- union {
- difference {
- cylinder { -2*z, 2*z, 3.1 }
- cylinder { -3*z, 3*z, 1.7 }
- }
- object { S_Blade rotate <0, 14.5, 0> }
- object { S_Blade rotate <0, 14.5, 120> }
- object { S_Blade rotate <0, 14.5, 240> }
- }
- bounded_by { box { <-17, -17, -3> <17, 17, 3> } }
- }
-
- #declare Thing1_2 =
- object {
- union {
- difference {
- union {
- object { button }
- object { button translate <8, 0, 0> }
- box { <-4, 0, -4> <12, 3, 4> }
- box { <-6, .5, -4> <14, 1.5, 4> }
- cylinder { -12*z, 4*z, 1.5 translate <-6.5, 1, 0> }
- cylinder { -12*z, 4*z, 1.5 translate <14.5, 1, 0> }
- }
- box { <-2.5, -1, -2.5> <10.5, 2, 2.5> }
- cylinder { 1*y, 4*y, 1.25 }
- cylinder { 1*y, 4*y, 1.25 translate <8, 0, 0> }
- }
- cylinder { 0*y, 2*y, 1.5 translate <4, 0, 0> }
- }
- bounded_by { box { <-8, -1, -13> <18, 5, 5> } }
- }
-
- #declare Thing2_2 =
- object {
- union {
- difference {
- union {
- object { button }
- object { button translate <0, 0, 8> }
- object { button translate <8, 0, 0> }
- object { button translate <8, 0, 8> }
- box { <-4, 0, -4> <12, 3, 12> }
- difference {
- cylinder { 0*y, 3*y, 8 translate <12, 0, 4> }
- cylinder { -2*y, 5*y, 2.25 translate <16, 0, 4> }
- }
- }
- box { <-2.5, -1, -2.5> <10.5, 2, 10.5> }
- difference {
- cylinder { -1*y, 2*y, 6.5 translate <12, 0, 4> }
- plane { x, 12 }
- }
- cylinder { 1*y, 4*y, 1.25 }
- cylinder { 1*y, 4*y, 1.25 translate <8, 0, 0> }
- cylinder { 1*y, 4*y, 1.25 translate <0, 0, 8> }
- cylinder { 1*y, 4*y, 1.25 translate <8, 0, 8> }
- }
- object { Ring translate <4, 0, 4> }
- difference {
- cylinder { 0*y, 2*y, 3 translate <16, 0, 4> }
- cylinder { -1*y, 6*y, 2.25 translate <16, 0, 4> }
- }
- }
- bounded_by { box { <-5, -1, -5> <21, 5, 13> } }
- }
-
- #declare Joy_stick =
- object {
- union {
- cylinder { -1*z, 1*z, 2 }
- cylinder { 1*y, 13*y, 0.8 }
- sphere { <0, 14, 0> 1.25 }
- }
- bounded_by { box { <-3, -3, -2> <3, 16, 2> } }
- }
-
- #declare Joy_base =
- object {
- difference {
- union {
- difference {
- sphere { <0, 3, 0> 3.5 }
- box { <-4, 3, -1> <4, 6, 1> }
- }
- cylinder { 0*y, 3*y, 3.5 }
- }
- cylinder { -1*y, 3.01*y, 2.5 }
- }
- bounded_by { box { <-4, -1, -4> <4, 6, 4> } }
- }
-
- #declare Thing1_4 =
- object {
- union {
- difference {
- union {
- object { button }
- object { button translate <8, 0, 0> }
- object { button translate <16, 0, 0> }
- object { button translate <24, 0, 0> }
- box { <-4, 0, -4> <28, 3, 4> }
- box { <-4, 0, 6> <-2.5, 3, 4> }
- cylinder { -4*x, -2.5*x, 1.5 translate <0, 1.5, 6> }
- box { <3.25, 0, 6> <4.75, 3, 4> }
- cylinder { 3.25*x, 4.75*x, 1.5 translate <0, 1.5, 6> }
- box { <11.25, 0, 6> <12.75, 3, 4> }
- cylinder { 11.25*x, 12.75*x, 1.5 translate <0, 1.5, 6> }
- box { <19.25, 0, 6> <20.75, 3, 4> }
- cylinder { 19.25*x, 20.75*x, 1.5 translate <0, 1.5, 6> }
- box { <26.5, 0, 6> <28, 3, 4> }
- cylinder { 26.5*x, 28*x, 1.5 translate <0, 1.5, 6> }
- }
- box { <-2.5, -1, -2.5> <26.5, 2, 2.5> }
- cylinder { 1*y, 4*y, 1.25 }
- cylinder { 1*y, 4*y, 1.25 translate <8, 0, 0> }
- cylinder { 1*y, 4*y, 1.25 translate <16, 0, 0> }
- cylinder { 1*y, 4*y, 1.25 translate <24, 0, 0> }
- }
- cylinder { 0*y, 2*y, 1.5 translate <4, 0, 0> }
- cylinder { 0*y, 2*y, 1.5 translate <12, 0, 0> }
- cylinder { 0*y, 2*y, 1.5 translate <20, 0, 0> }
- }
- bounded_by { box { <-5, -1, -5> <29, 5, 8> } }
- }
-
- #declare L_Propellor2_2 =
- object {
- union {
- difference {
- box { <-4, 0, -4> <12, 3, 12> }
- box { <-2.5, -1, -2.5> <10.5, 2, 10.5> }
- }
- object { Ring translate <4, 0, 4> }
- difference {
- merge {
- cylinder { 3*y, 4*y, 3 translate <4, 0, 4> }
- cylinder { 4*y, 11*y, 2.25 translate <4, 0, 4> }
- cylinder { 10*y, 11*y, 2.5 translate <4, 0, 4> }
- }
- box { <3.5, 8, -4> <4.5, 12, 4> }
- }
- }
- bounded_by { box { <-5, -1, -5> <13, 12, 13> } }
- }
-
- #declare Rotor_piece =
- object {
- difference {
- union {
- object { openbutton translate <8, 7, 0> }
- object { openbutton translate <16, 7, 0> }
- object { openbutton translate <-8, 7, 0> }
- object { openbutton translate <-16, 7, 0> }
- object { openbutton translate <0, 7, -16> }
- object { openbutton translate <0, 7, -8> }
- object { openbutton translate <0, 7, 8> }
- object { openbutton translate <0, 7, 16> }
- cylinder { 8.5*y, 10*y, 4 translate <16, 0, 0> }
- cylinder { 8.5*y, 10*y, 4 translate <-16, 0, 0> }
- cylinder { 8.5*y, 10*y, 4 translate <0, 0, 16> }
- cylinder { 8.5*y, 10*y, 4 translate <0, 0, -16> }
- box { <-16, 8.5, -4> <16, 10, 4> }
- box { <-4, 8.5, -16> <4, 10, 16> }
- cylinder { 7.5*y, 9*y, 4 }
- cylinder { 0.5*y, 9*y, 1 translate <5, 0, 0> }
- cylinder { 0.5*y, 9*y, 1 translate <-5, 0, 0> }
- cylinder { 0.5*y, 9*y, 1 translate <0, 0, 5> }
- cylinder { 0.5*y, 9*y, 1 translate <0, 0, -5> }
- box { <-5, 0.5, -1> <5, 9, 1> }
- box { <-1, 0.5, -5> <1, 9, 5> }
- }
- union {
- cylinder { -1*y, 12*y, 2.5 }
- cylinder { 8*y, 12*y, 3 }
- cylinder { -1*y, 1*y, 3 }
- }
- }
- bounded_by { box { <-21, -1, -21> <21, 12, 21> } }
- }
-
- #declare Swiveltop1_2 =
- object {
- union {
- object { openbutton translate <0, -3, 0> }
- object { openbutton translate <0, -3, 8> }
- box { <-4, -0.8, -4> <4, 0, 12> }
- difference {
- box { <-0.5, -6, -2.5> <0.5, 0, 10.5> }
- box { <-1, -7, 3> <1, -3, 5> }
- }
- cylinder { -2.5*z, -1.5*z, 2 translate <0, -4, 0> }
- cylinder { 9.5*z, 10.5*z, 2 translate <0, -4, 0> }
- box { <-2, -4, -2.5> <2, 0, -1.5> }
- box { <-2, -4, 9.5> <2, 0, 10.5> }
- difference {
- cylinder { -4*z, -2.5*z, 1.5 translate <0, -4, 0> }
- cylinder { -5*z, -2*z, 0.75 translate <0, -4, 0> }
- }
- difference {
- cylinder { 10.5*z, 12*z, 1.5 translate <0, -4, 0> }
- cylinder { 10*z, 13*z, 0.75 translate <0, -4, 0> }
- }
- }
- bounded_by { box { <-5, -7, -5> <5, 2, 13> } }
- }
-
- #declare Swivelbase1_2 =
- object {
- union {
- difference {
- box { <-4, -5, -4> <4, 3, 12> }
- difference {
- cylinder { -6*z, 14*z, 3 inverse }
- plane { y, 0 }
- plane { x, 0 inverse }
- }
- box { <-2.5, -6, -2.5> <2.5, -3, 3.5> }
- box { <-2.5, -6, 4.5> <2.5, -3, 10.5> }
- box { <-5, -3.5, -5> <-3, 4, 13> }
- box { <-4, -2, -2.5> <3, 4, 10.5> }
- cylinder { -5*z, -2*z, 1.5 }
- cylinder { 10*z, 13*z, 1.5 }
- box { <-1.5, 0, -5> <1.5, 4, 13> }
- }
- box { <-1, -2, 3> <1, 0, 5> }
- cylinder { 3*z, 5*z, 1 }
- }
- bounded_by { box { <-5, -6, -5> <5, 4, 13> } }
- }
-
- #declare Window_bit =
- object {
- merge {
- box { <-1.75, -10.25, -0.5> <-0.75, 10.25, 24.5> }
- // Right hand side of the segment, as seen from the front
- difference {
- cylinder { -10.25*y, 10.25*y, 3.5 translate <1.75, 0, -0.5> }
- cylinder { -11*y, 11*y, 2.5 translate <1.75, 0, -0.5> }
- plane { x, 1.75 inverse }
- plane { z, -0.5 inverse }
- }
- // Left hand side of the segment, as seen from the front
- difference {
- cylinder { -10.25*y, 10.25*y, 3.5 translate <1.75, 0, 24.5> }
- cylinder { -11*y, 11*y, 2.5 translate <1.75, 0, 24.5> }
- plane { x, 1.75 inverse }
- plane { z, 24.5 }
- }
- }
- bounded_by { box { <-3, -11, -5> <3, 11, 29> } }
- }
-
- #declare Window_cutter =
- object {
- difference {
- box { <-10, -14, -6> <1.75, 14, 30> }
- box { <-1.75, -15, -0.5> <3, 15, 24.5> }
- cylinder { -15*y, 15*y, 3.5 translate <1.75, 0, -0.5> }
- cylinder { -15*y, 15*y, 3.5 translate <1.75, 0, 24.5> }
- }
- }
-
- #declare Window_shield =
- object {
- difference {
- merge {
- box { <-28, -37.75, -4> <-14, -34.75, 28> }
- object { Window_bit rotate 45*z translate <-24.25, -32.5, 0> }
- object { Window_bit translate <-27.75, -25, 0> }
- object { Window_bit rotate -27.5*z translate <-24.4, -14, 0> }
- object { Window_bit rotate -68.75*z translate <-11.5, -3.8, 0> }
- cylinder { -1*z, -2.5*z, 1.5 }
- cylinder { 9.75*z, 11.25*z, 1.5 }
- cylinder { 12.75*z, 14.25*z, 1.5 }
- cylinder { 25*z, 26.5*z, 1.5 }
- box { <-10, -1.5, -2.5> <0, 1.5, -1> }
- box { <-10, -1.5, 9.75> <0, 1.5, 11.25> }
- box { <-10, -1.5, 12.75> <0, 1.5, 14.25> }
- box { <-10, -1.5, 25> <0, 1.5, 26.5> }
- box { <-10, 0.5, -2.5> <0, 1.5, 26.5> }
- }
- object { Window_cutter rotate 45*z translate <-24.25, -32.5, 0> }
- object { Window_cutter translate <-27.75, -25, 0> }
- object { Window_cutter rotate -27.5*z translate <-24.4, -14, 0> }
- object { Window_cutter rotate -68.75*z translate <-11.5, -3.8, 0> }
- box { <-21.5, -39, 4> <-13, -33, 20> }
- box { <-2, 0, 3.25> <2, 2, 4.75> }
- box { <-2, 0, 11.25> <2, 2, 12.75> }
- box { <-2, 0, 19.25> <2, 2, 20.75> }
- box { <-2, -3, 26.5> <2, 3, 29> }
- box { <-2, -3, -5> <2, 3, -2.5> }
- plane { y, -37.75 }
- }
- bounded_by { box { <-31, -39, -7> <2, 2, 31> } }
- }
-
-