POV-Ray : Newsgroups : povray.general : Artist WANTED! : Re: Artist WANTED! Server Time
9 Aug 2024 17:24:08 EDT (-0400)
  Re: Artist WANTED!  
From: khanna100
Date: 7 May 2016 14:10:01
Message: <web.572e2dba90bf54561a7fb7c70@news.povray.org>
"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> }


Post a reply to this message

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