|
![](/i/fill.gif) |
"Simen Kvaal" <sim### [at] student matnat uio no> 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
|
![](/i/fill.gif) |