// Persistence of Vision data file created with a demo of GUM: The Demo

#include "colors.col" 
#include "textures.tex" 

#max_trace_level 8
#max_intersections 100

background { color rgb <0.8, 0.8, 0.8> }

// Semi-Transparent Yellow Plastic (for the handle)
// Base on Glass2 from the standard texture lib.
#declare Yellow_Plastic = 
 texture
   {pigment {color Yellow filter 0.5}
    finish 
     {ambient 0.1
      diffuse 0.4
      reflection 0.3
      refraction 1
      ior 1.55
      phong 0.3
      phong_size 40
     }
   }



camera 
{
   right     < 1, 0, 0   >
   up        < 0, 1, 0   >
   direction < 0, 0, 0.5 >
   location  < 0, 0, 0   >

   scale < 598.53, 448.91, 846.99 >
   rotate < 1.1119, -6.7301, -8.5377e-07 >
   translate < 99.243, 16.436, -841 >
}

// Object type: OmniLight
// Name: 'Omni' Light #1
light_source 
{
   < 840.94, 650, -299.23 >
   color rgb < 1, 1, 1 >
}

// Object type: OmniLight
// Name: 'Omni' Light #1
light_source 
{
   < -840.94, 650, -283.75 >
   color rgb < 1, 1, 1 >
}

// Object type: OmniLight
// Name: 'Omni' Light #1
light_source 
{
   < 0, 1000, -200 >
   color rgb < 0.6, 0.6, 0.6 >
}


// The Scene Description

// Object type: Union
// Name: 'or'
merge
{
// Object type: Box
// Name: Plinth
object
{
   box { < 0, 0, 0 >, < 1, 1, 1 > }
   texture { Jade }

   scale < 100, 200, 100 >
   rotate < 0, 0, 0 >
   translate < -75, -350, -50 >

}

// Object type: Cone
// Name: Stand
object
{
   cone { < 0, 0, 0 >, 1, < 0, 1, 0 >, 0 open }
   texture { Polished_Chrome }

   scale < 10, 75, 10 >
   rotate < 0, 0, 0 >
   translate < -25, -150, 0 >

}

// Object type: Box
// Name: plaque
object
{
   box { < 0, 0, 0 >, < 1, 1, 1 > }
   texture { Bronze_Metal }

   scale < 50, 75, 20 >
   rotate < 0, 0, 0 >
   translate < -50, -250, -55 >

}
}

// Object type: BiCubic Bezier Patch
// Name: floor
object
{
   bicubic_patch
   {
      type 1
      flatness 0.05
      u_steps 4
      v_steps 4
      < -880, -345, -825 >, < -293.33, -345, -825 >, < 293.33, -345, -825 >, < 880, -345, -825 >, 
      < -880, -345, -238.33 >, < -293.33, -345, -238.33 >, < 293.33, -345, -238.33 >, < 880, -345, -238.33 >, 
      < -880, -345, 348.33 >, < -293.33, -345, 348.33 >, < 293.33, -345, 348.33 >, < 880, -345, 348.33 >, 
      < -880, -345, 935 >, < -293.33, -345, 935 >, < 293.33, -345, 935 >, < 880, -345, 935 >
   }
   texture {
	White_Marble
	scale 40
	rotate <0,0,90>}
}


// Object type: BiCubic Bezier Patch
// Name: Wall1
object
{
   bicubic_patch
   {
      type 1
      flatness 0.05
      u_steps 4
      v_steps 4
      < 16.674, 1297.3, 478.93 >, < -225.18, 1297.3, 500.26 >, < -435.57, 1297.3, 435.29 >, < -619.36, 1299.8, 272.93 >, 
      < 16.674, 742.43, 478.93 >, < -225.18, 742.43, 500.26 >, < -435.57, 742.43, 435.29 >, < -619.36, 741.56, 272.93 >, 
      < 16.674, 187.57, 478.93 >, < -225.18, 187.57, 500.26 >, < -436.63, 183.28, 434.97 >, < -619.36, 183.28, 272.93 >, 
      < 16.674, -367.28, 478.93 >, < -225.18, -367.28, 500.26 >, < -436.63, -375, 434.97 >, < -619.36, -375, 272.93 >
   }
   texture {
	DMFLightOak
	scale 10
	rotate <86,0,0>
   }
}

// Object type: BiCubic Bezier Patch
// Name: Wall2
object
{
   bicubic_patch
   {
      type 1
      flatness 0.05
      u_steps 4
      v_steps 4
      < 882.73, 1297.3, -391.03 >, < 884.69, 1297.3, -148.24 >, < 803.14, 1297.3, 56.285 >, < 626.63, 1299.8, 226.53 >, 
      < 882.73, 742.43, -391.03 >, < 884.69, 742.43, -148.24 >, < 803.14, 742.43, 56.285 >, < 626.63, 741.56, 226.53 >, 
      < 882.73, 187.57, -391.03 >, < 884.69, 187.57, -148.24 >, < 802.73, 183.28, 57.319 >, < 626.63, 183.28, 226.53 >, 
      < 882.73, -367.28, -391.03 >, < 884.69, -367.28, -148.24 >, < 802.73, -375, 57.319 >, < 626.63, -375, 226.53 >
   }
   texture { 
	DMFLightOak
	scale 10
	rotate <87,0,0>
   }
}

// Object type: BiCubic Bezier Patch
// Name: Wall3
object
{
   bicubic_patch
   {
      type 1
      flatness 0.05
      u_steps 4
      v_steps 4
      < 629.73, 1297.3, 224.48 >, < 458.95, 1297.3, 397.06 >, < 256.42, 1297.3, 483.45 >, < 11.238, 1299.8, 478.32 >, 
      < 629.73, 742.43, 224.48 >, < 458.95, 742.43, 397.06 >, < 256.42, 742.43, 483.45 >, < 11.238, 741.56, 478.32 >, 
      < 629.73, 187.57, 224.48 >, < 458.95, 187.57, 397.06 >, < 255.4, 183.28, 483.88 >, < 11.238, 183.28, 478.32 >, 
      < 629.73, -367.28, 224.48 >, < 458.95, -367.28, 397.06 >, < 255.4, -375, 483.88 >, < 11.238, -375, 478.32 >
   }
   texture { 
	DMFLightOak
	scale 10
	rotate <88,0,0>
   }
}

// Object type: BiCubic Bezier Patch
// Name: Wall4
object
{
   bicubic_patch
   {
      type 1
      flatness 0.05
      u_steps 4
      v_steps 4
      < -611.7, 1292.3, 280.19 >, < -787.79, 1292.3, 113.03 >, < -878.36, 1292.3, -87.661 >, < -878.33, 1294.8, -332.9 >, 
      < -611.7, 737.43, 280.19 >, < -787.79, 737.43, 113.03 >, < -878.36, 737.43, -87.66 >, < -878.33, 736.56, -332.9 >, 
      < -611.7, 182.57, 280.19 >, < -787.79, 182.57, 113.03 >, < -878.82, 178.28, -88.672 >, < -878.33, 178.28, -332.9 >, 
      < -611.7, -372.28, 280.19 >, < -787.79, -372.28, 113.03 >, < -878.82, -380, -88.673 >, < -878.33, -380, -332.9 >
   }
   texture { 
	DMFLightOak
	scale 10
	rotate <89,0,0>
   }
}


// The Screwdriver Itself

// Object type: Union
// Name: 'Screwdriver'
merge
{
// Object type: Difference
// Name: 'handle'
difference
{
// Object type: Difference
// Name: 'and not'
difference
{
// Object type: Union
// Name: 'or'
merge
{
// Object type: Cylinder
// Name: NoName
object
{
   cylinder { < 0, 0, 0 >, < 0, 1, 0 >, 1 open }

   scale < 73.066, 445.7, 73.066 >
   rotate < 90, 90, 0 >
   translate < -453.01, -1.9613e-33, -3.1954e-40 >

   texture { Yellow_Plastic }
}

// Object type: Paraboloid
// Name: NoName
object
{
   intersection { quadric {<1,  0,  1>, <0,  0,  0>, <0, -1,  0>, 0 } plane { <0, 1, 0>, 1 } }

   scale < 73.066, 29.227, 73.066 >
   rotate < 90, 90, 0 >
   translate < -482.24, -2.3808e-07, 1.4613 >

   texture { Yellow_Plastic }
}

// Object type: Paraboloid
// Name: NoName
object
{
   intersection { quadric {<1,  0,  1>, <0,  0,  0>, <0, -1,  0>, 0 } plane { <0, 1, 0>, 1 } }

   scale < 73.066, 7.3066, 73.066 >
   rotate < 90, -90, 0 >
   translate < 0, 0, 0 >

   texture { Yellow_Plastic }
}
}

// Object type: Torus
// Name: NoName
object
{
   torus { 0.75, 0.5 }

   scale < 146.13, 146.13, 146.13 >
   rotate < 90, 90, 0 >
   translate < -94.986, 9.1056e-38, 1.5414e-44 >

   texture { Yellow_Plastic }
}
}

// Object type: Cylinder
// Name: NoName
object
{
   cylinder { < 0, 0, 0 >, < 0, 1, 0 >, 1 open }

   scale < 43.84, 511.46, 43.84 >
   rotate < 4.8297e-06, -30, -90 >
   translate < -496.85, -88.588, 51.146 >

   texture { Yellow_Plastic }
}

// Object type: Cylinder
// Name: NoName
object
{
   cylinder { < 0, 0, 0 >, < 0, 1, 0 >, 1 open }

   scale < 43.84, 511.46, 43.84 >
   rotate < 90, 90, 0 >
   translate < -496.85, -1.6666e-05, 102.29 >

   texture { Yellow_Plastic }
}

// Object type: Cylinder
// Name: NoName
object
{
   cylinder { < 0, 0, 0 >, < 0, 1, 0 >, 1 open }

   scale < 43.84, 511.46, 43.84 >
   rotate < 90, 90, 0 >
   translate < -496.85, 1.6666e-05, -102.29 >

   texture { Yellow_Plastic }
}

// Object type: Cylinder
// Name: NoName
object
{
   cylinder { < 0, 0, 0 >, < 0, 1, 0 >, 1 open }

   scale < 43.84, 511.46, 43.84 >
   rotate < -4.8297e-06, 30, -90 >
   translate < -496.85, 88.588, 51.146 >

   texture { Yellow_Plastic }
}

// Object type: Cylinder
// Name: NoName
object
{
   cylinder { < 0, 0, 0 >, < 0, 1, 0 >, 1 open }

   scale < 43.84, 511.46, 43.84 >
   rotate < -4.8297e-06, 30, -90 >
   translate < -496.85, -88.588, -51.146 >

   texture { Yellow_Plastic }
}

// Object type: Cylinder
// Name: NoName
object
{
   cylinder { < 0, 0, 0 >, < 0, 1, 0 >, 1 open }

   scale < 43.84, 511.46, 43.84 >
   rotate < 4.8297e-06, -30, -90 >
   translate < -496.85, 88.588, -51.146 >

   texture { Yellow_Plastic }
}
}

// Object type: Difference
// Name: 'Blade'
difference
{
// Object type: Union
// Name: 'or'
merge
{
// Object type: Cone
// Name: NoName
object
{
   cone { < 0, 0, 0 >, 1, < 0, 1, 0 >, 0 open }

   scale < 24.258, 116.63, 24.258 >
   rotate < 90, -90, 0 >
   translate < 452.51, 0, 0 >

   texture { Chrome_Metal }
}

// Object type: Cone
// Name: NoName
object
{
   cone { < 0, 0, 0 >, 1, < 0, 1, 0 >, 0 open }

   scale < 24.258, 198.73, 24.258 >
   rotate < 90, 90, 0 >
   translate < 452.51, 0, 0 >

   texture { Chrome_Metal }
}

// Object type: Cylinder
// Name: NoName
object
{
   cylinder { < 0, 0, 0 >, < 0, 1, 0 >, 1 open }

   scale < 13.995, 429.18, 13.995 >
   rotate < 90, 90, 0 >
   translate < 0, -3.0401e-07, 1.866 >

   texture { Chrome_Metal }
}
}

// Object type: Box
// Name: NoName
object
{
   box { < 0, 0, 0 >, < 1, 1, 1 > }

   scale < 156.74, 55.98, 55.98 >
   rotate < 90, 0, 0 >
   translate < 502.76, 27.99, -30.257 >

   texture { Chrome_Metal }
}

// Object type: Box
// Name: NoName
object
{
   box { < 0, 0, 0 >, < 1, 1, 1 > }

   scale < 18.66, 185.46, 69.042 >
   rotate < 90, -86, -0.00013349 >
   translate < 502.76, 27.99, 1.4648 >

   texture { Chrome_Metal }
}

// Object type: Box
// Name: NoName
object
{
   box { < 0, 0, 0 >, < 1, 1, 1 > }

   scale < 186.85, 22.7, 67.176 >
   rotate < -90, 3.0657, 180 >
   translate < 502.76, 27.99, -5.9992 >

   texture { Chrome_Metal }
}
}
bounded_by { box {<-500, -75, -75>, <500, 75, 75>} }
}

