#include "colors.inc" // The include files contain #include "shapes.inc" // pre-defined scene elements #include "finish.inc" #include "metals.inc" #include "stones.inc" #version 3.0 /* * Xenium-encased gyroscope. * * Created by Denton Gentry. This file is free for derivative * use. */ global_settings { assumed_gamma 1.8 ambient_light rgb<1, 1, 1> } background { White } #declare T_Gyro = texture { pigment { rgb <0.1, 0.1, 0.75> } finish { metallic ambient 0.35 diffuse 0.3 roughness 0.05 reflection 0.1 } } #declare T_Xenium = texture { pigment {color rgb <0.7, 0.7, 0.7>} finish { metallic ambient 0.35 diffuse 0.3 roughness 0.05 reflection 0.00 } } // The Gyroscope merge { cylinder { <-0.5, 0, 0>, <0.5, 0, 0>, 0.040 } cylinder { <0, -0.5, 0>, <0, 0.5, 0>, 0.025 } cylinder { <0, 0, -0.5>, <0, 0, 0.5>, 0.025 } cone { <-0.5, 0, 0>, 0.04 <-0.65, 0, 0>, 0.01 } cone { <0.5, 0, 0>, 0.04 <0.65, 0, 0>, 0.01 } torus { 0.5, 0.05 rotate <90, 90, 0> } // the gyro rotates rotate x*clock*360 texture { T_Gyro } } // The Xenium shield difference { sphere { <0,0,0>, 0.66 } sphere { <0,0,0>, 0.65 } box {<-1, -1, -1>, <1, 0, 1> } texture { T_Xenium } } difference { sphere { <0,0,0>, 0.67 } sphere { <0,0,0>, 0.66 } box {<-1, 0, -1>, <1, 1, 1> } box {<-1, -1, -1>, <1, 1, 0> } /* * To generate the animation you must turn on clock animation * in POV, set for 20 frames. */ #switch (clock) #range (0.00, 0.249) rotate -x*90 #break #range (0.250, 0.500) rotate -x*360*(0.500 - clock) #break #range (0.750, 1.00) rotate -x*360*(clock - 0.750) #break #end texture { T_Xenium } } difference { sphere { <0,0,0>, 0.67 } sphere { <0,0,0>, 0.66 } box {<-1, 0, -1>, <1, 1, 1> } box {<-1, -1, 0>, <1, 1, 1> } #switch (clock) #range (0.00, 0.249) rotate x*90 #break #range (0.250, 0.500) rotate x*360*(0.500 - clock) #break #range (0.750, 1.00) rotate x*360*(clock - 0.750) #break #end texture { T_Xenium } } light_source { <10, -10, -20> color Gray70 } light_source { <-10, -10, -20> color Gray70 } camera { location <0.75, -0.50, -1.25> look_at <0, 0, 0> }