POV-Ray : Newsgroups : povray.general : Artist WANTED! : Re: Artist WANTED! Server Time
9 Aug 2024 17:21:32 EDT (-0400)
  Re: Artist WANTED!  
From: khanna100
Date: 7 May 2016 14:45:01
Message: <web.572e372890bf54569e219c6c0@news.povray.org>
"khanna100" <nomail@nomail> wrote:
> "Simen Kvaal" <sim### [at] studentmatnatuiono> wrote:
> > >Even current members of the POV-Team seem to have lost touch with
> > >Mike. I think about the only material available would be the sample
> > >scenes included with POV-Ray and perhaps the odd old timer out there
> > >that might have an old file of Mikes squirreled away somewhere.
> >
> >
> > I have a book called Image Lab, and there is an image "Mantel Clock" with
> > source, and how-to-build. If I find the disk (bundled with the book)
> > somewhere I can upload it.
> >
> > Simen.
>
> Hi,
> I also have that book and also the disk that accompanied it was corrupted and
> unfortunately all the source was lost.
> I have scanned the book and provided the code to the best of my ability (with
> some tweaks to run on Povray for Windows 3.6). The two gif files required are
> missing, sorry, I don't have them.
>

// POV Data - Mantel Clock II Modified for POV 1.00
// Mike Miller 11/1/91

#include "colors.inc"
#include "shapes.inc"
#include "textures.inc"

camera {
location <0 60 260>
//direction <0 1 1>
look_at <0 45 0>
//up <0 1 0>
//right <1.333 0 0>
}

object { //--LIGHT Source1--
light_source { <100 300 -100> color White}
}

object { //--LIGHT Source2--
light_source { <-100 200 -100> color White}
}

#declare GOLD = texture { finish {//--Bright Reflective Gold--
roughness 0.02 ambient 0.3 diffuse 0.5
reflection 0.6 brilliance 8.0 specular 0.5 }
pigment { color red 0.62 green 0.55 blue 0.0  }
}

#declare SILVER1 = texture { finish {//--Bright REFLECTIVE SILVER--
roughness 0.05 ambient 0.2 diffuse 0.5
reflection 0.6 brilliance 7.0 specular 0.5 }
pigment { color red 0.6 green 0.6 blue 0.6 }
}

#declare OCone = //--CONE POINT DOWN IPOINT at 000--
intersection {
quadric { Cone_Y scale <10 10 10> texture { GOLD } }
plane { <0 -1 0> 0 }
plane { <0 1 0> 1 }
}

#declare UCone = //--CONE POINT UP IPOINT at 000--
intersection {
quadric { Cone_Y scale <10 10 10> texture { GOLD } }
plane { <0 1 0> 0 }
plane { <0 1 0> (-1) inverse}
}

#declare AO1 = object { //clock base
     difference {
       union {
       quadric {Sphere scale <62 15 62> }
       quadric {Sphere scale <55 5 55> translate <0 10 0> }
       intersection { Disk_Y scale <50 3 50> translate <0 12 0> }
       intersection { Disk_Y scale <43 1 43> translate <0 15 0> }
       }
       plane { <0 1 0> 0 }
       }
       texture { GOLD }
       }


#declare AO2 = intersection { //RING
    Disk_Y scale <7 2 7> }

#declare AO3_1 = intersection { //RING
    Disk_Y scale <1 56 4> }

#declare AO3 = union { //Ribbed columns
     intersection { AO3_1 rotate <0 0 0> }
     intersection { AO3_1 rotate <0 30 0> }
     intersection { AO3_1 rotate <0 60 0> }
     intersection { AO3_1 rotate <0 90 0> }
     intersection { AO3_1 rotate <0 120 0> }
     intersection { AO3_1 rotate <0 150 0> }
    }

#declare AO4 = union { //Column Caps
    intersection { Disk_Y scale <5 5 5> }
    quadric { Sphere scale <4 2 4> translate <0 5 0> }
    quadric { Sphere scale <1.5 1.5 1.5> translate <0 8 0> }
    quadric { Sphere scale <3 2 3> translate <0 10 0> }
    }

#declare AO6 = object {
   union { //Column Caps
    intersection { Disk_Y scale <6 2 6> translate <27 -1 0> }
    intersection { Disk_Y scale <6 2 6> translate <-27 -1 0> }
    intersection { Cube scale <17 1 8.5> translate <0 0 10.5> }
    intersection { Cube scale <6 1 11.5> translate <0 0 10.5>
       rotate <0 45 0> translate <-27 0 0> }
    intersection { Cube scale <6 1 11.5> translate <0 0 11.5>
       rotate <0 -45 0> translate <27 0 0> }
    }
    texture { GOLD }
    bounded_by {
      intersection { Cube scale <35 2 14> translate <0 0 4> }
    }
    }

#declare AO7 = object {
      difference {
        union {
          intersection { Cube scale <17 8 0.5> }
          intersection { Cube scale <9 0.5 6.5>  translate <0 -7.5 7> }
        }
        quadric { Cylinder_Z scale <8 8 8> translate <-17 -8 0> }
        quadric { Cylinder_Z scale <8 8 8> translate <17 -8 0> }
      }
      texture { GOLD }
      bounded_by {
      intersection { Cube scale <18 9 8> translate <0 0 6.5> }
     }
    }

#declare ASS1 = object { //--The column assembly--
    union {
    intersection { AO2 }
    union { AO3 translate <0 2 0> }
    intersection { AO4 translate <0 56 0> }
    }
    texture { GOLD }
    bounded_by {
      intersection {
       Disk_Y scale <7.2 71 7.2> translate <0 -0.5 0>
       }
     }
    }

#declare BO1 = intersection { //Bell brace--
    difference {
      union {
        intersection { Cube scale <1 10 0.6> translate <1 18 0> }
        intersection { Cube scale <5 3 0.6> translate <2 25 0> }
        intersection { Cube scale <6 1 0.6> translate <14 1 0> }
        intersection { Cube scale <5.8 1 0.6> rotate <0 0 -45> translate <4.5
4.5 0> }
      }
      quadric { Cylinder_Z scale <8 8 8> translate <10 22 0> }
    }
   }

#declare BO2 = union { //--Brass bells--
     quadric { Sphere scale <9 9 9> }
     quadric { Sphere scale <3 2 3> translate <0 12 0> }
     intersection { Disk_Y scale <3 2 3> translate <0 8 0> }
   }
#declare BO3 = object { //Combined ball and support
 union {
 intersection { BO1 }
 union { BO2 translate <13 11 0> }
 }
  texture { GOLD }
   bounded_by {
    intersection { Cube scale <14 15 9> translate <10 14 0> }
 }
}

#declare BO4 = object { //pivot support for BO3
  union {
  intersection { Cone_X scale <3 4 3> }
  intersection { Disk_Y scale <3 20 3> translate <0 4 0> }
  intersection { Disk_Y scale <2 10 2> translate <0 24 0> }
  intersection { Disk_Y scale <7 2 7> translate <0 28 0> }
  intersection { Disk_Y scale <1 13 1> translate <0 35 0> }
  intersection { Disk_Y scale <11 1 11> translate <0 34 0> }
  intersection { Cube scale <14 0.5 2> translate <0 7 0> }
  intersection { Cube scale <2 0.5 14> translate <0 7 0> }
  }
  texture { GOLD }
  bounded_by {
    intersection { Disk_Y scale <12 50 12> translate <0 -1 0> }
    }
  }

#declare ASS2 = composite { //pivot support w/balls
   object { BO4 }
   object { BO3 translate <8 4 0> rotate <0 0 0> }
   object { BO3 translate <8 4 0> rotate <0 90 0> }
   object { BO3 translate <8 4 0> rotate <0 180 0> }
   object { BO3 translate <8 4 0> rotate <0 270 0> }
   bounded_by {
   intersection {
     Disk_Y scale <32 50 32> translate <0 -1 0>
   }
  }
 }

#declare CO1 = intersection { Disk_Z scale <2 2 20> }

#declare CO2 = object { //gear box
   union {
  intersection { Cube scale <17 26 1> }
  intersection { Cube scale <17 26 1> translate <0 0 17> }
  intersection { CO1 translate <-14, -23, -1.5> }

  intersection { CO1 translate <14, -23, -1.5> }
  intersection { CO1 translate <-14, 23, -1.5> }
  intersection { CO1 translate <14, 23, -1.5> }
 }
 texture { GOLD }
 bounded_by {
   intersection { Cube scale <18 27 11> translate <0 0 9> }
 }
 }

#declare GO1 = intersection { //tooth of gear
   Cube scale <1 0.5 0.5> translate <12 0 0> }

#declare GO2 = intersection { //gear ring
   difference {
     intersection { Disk_Z scale <12 12 1> }
     quadric { Cylinder_Z scale <10 10 10> }
     }
   }

#declare GO3 = union { //gear spoke
    intersection { Cube scale <1.5 11 0.5> }
    intersection { Cube scale <11 1.5 0.5> }
   }

#declare GO4 = object {  //assemble the gear parts
   union {
      intersection { GO2 translate <0 0 -0.5> }
      union { GO3 }
      intersection { GO1 rotate <0 0 0> }
      intersection { GO1 rotate <0 0 10> }
      intersection { GO1 rotate <0 0 20> }
      intersection { GO1 rotate <0 0 30> }
      intersection { GO1 rotate <0 0 40> }
      intersection { GO1 rotate <0 0 50> }
      intersection { GO1 rotate <0 0 60> }
      intersection { GO1 rotate <0 0 70> }
      intersection { GO1 rotate <0 0 80> }
      intersection { GO1 rotate <0 0 90> }
      intersection { GO1 rotate <0 0 100> }
      intersection { GO1 rotate <0 0 110> }
      intersection { GO1 rotate <0 0 120> }
      intersection { GO1 rotate <0 0 130> }
      intersection { GO1 rotate <0 0 140> }
      intersection { GO1 rotate <0 0 150> }
      intersection { GO1 rotate <0 0 160> }
      intersection { GO1 rotate <0 0 170> }
      intersection { GO1 rotate <0 0 180> }
      intersection { GO1 rotate <0 0 190> }
      intersection { GO1 rotate <0 0 200> }
      intersection { GO1 rotate <0 0 210> }
      intersection { GO1 rotate <0 0 220> }
      intersection { GO1 rotate <0 0 230> }
      intersection { GO1 rotate <0 0 240> }
      intersection { GO1 rotate <0 0 250> }
      intersection { GO1 rotate <0 0 260> }
      intersection { GO1 rotate <0 0 270> }
      intersection { GO1 rotate <0 0 280> }
      intersection { GO1 rotate <0 0 290> }
      intersection { GO1 rotate <0 0 300> }
      intersection { GO1 rotate <0 0 310> }
      intersection { GO1 rotate <0 0 320> }
      intersection { GO1 rotate <0 0 330> }
      intersection { GO1 rotate <0 0 340> }
      intersection { GO1 rotate <0 0 350> }
 }
  texture { GOLD }
   bounded_by {
    intersection { Disk_Z scale <14 14 2> translate <0 0 -1> }
 }
}

#declare DO1 = object { //crown plate
  difference {
     union {
       intersection { Cube scale <24 17 1> }
       intersection { Cube scale <4 21 1> }
     }
     quadric { Cylinder_Z scale <6 6 6> translate <-10 17 0> }
     quadric { Cylinder_Z scale <6 6 6> translate <10 17 0> }
   }
    texture { GOLD }
 bounded_by {
   intersection { Cube scale <25 22 2> translate <0 0 -1> }
 }
 }

#declare DO2 = object { //--CROWN CAPS--
   union {
    intersection { UCone scale <2 14 2> translate <0 14 0> }
    quadric { Sphere scale <4 1 4> translate <0 3 0> }
    quadric { Sphere scale <0.7 10.7> translate <0 14 0> }
   }

    texture { GOLD }
    bounded_by {
      intersection {
        Disk_Y scale <4.5 16 4.5> translate <0 -0.5 0>
    }
   }
  }

#declare ASS3 = composite { //GEAR BOX & CROWN ASSEMBLY
   object { CO2 }
   object { DO1 translate <0 23 2> }
   object { DO2 translate <20 40 2> }
   object { DO2 translate <0 44 2> }
   object { DO2 translate <-20 40 2> }
     bounded_by {
       intersection { Cube scale <25 45 11> translate <0 15 8> }
  }
 }

#declare F01 = object { //--CLOCK FACE RIM
   quadric { Sphere scale <30 30 6>
   texture { GOLD}
}

#declare F02 = object { //--CLOCK FACE--
   quadric { Sphere scale <30 30 4> }
   texture { GOLD }
   //pigment {
     //image_map {<1.0 -1.0 0> gif "cface.gif"} }
     //scale <60 60 4> translate <-30 -30 -4>
     //ambient 0.3 diffuse 0.6 reflection 0.1
  }
}

#declare CLOCK = composite { //--SOME ASSEMBLY REQUIRED--
   object { AO1 translate <0, -20, 0> }             //base
   object { ASS1 translate  <27 16 -19> }  //r.column
   object { ASS1 translate <-27 16 -19> }  //l.column
   object { AO6 translate <0 77 -19> }  //support
   object { AO7 translate <0 700.5> }  //pivotsup
   composite { ASS2 translate  <0 16 9> }  //balls
   composite { ASS3 translate <0 104 -17> }  //crown/box
   object { GO4 translate <-18 120 -3> }  //t.gear
   object { GO4 translate <-22 100 -5> }  //b.gear
   object { F01 translate <0 110 -21> }  //face rim
   object { F02 translate <0 110 -24>}  //face
     bounded_by {
      intersection {
        Disk_Y scale <64 170 64> translate <0 -1 0>
   }
  }
 }

//--PLACE CLOCK--
  composite { CLOCK rotate <0 180 0> }

//--FLOOR PLANE-object {
//plane { <0 1 0> (-3)
//texture { pigment { color Black } finish { ambient 0.8 reflection 0.3 phong
0.5 } }
//}

//--BACK DROP--object {
intersection { Cube scale <1000 500 5>  texture {  GOLD }
//pigment {
   //image_map {<1.0 -1.0 0> gif "st.gif"}     }
   //scale <2000 2000 5> translate <-1000 -1000 -5>
   //ambient 0.4 diffuse 0.0
//}
rotate <0 0 0> translate <0 400 1200>
}


Post a reply to this message

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.