home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Ray Tracing Box
/
RAY_CD.mdf
/
raytrace
/
_pov_dat
/
decset
/
decanter.inc
next >
Wrap
Text File
|
1994-01-19
|
20KB
|
538 lines
//This file contains the decanter for the decanter set.
//These objects were modeled in MORAY and so the vector coordinate values use
//the "right-handed" system where z=up. The objects are rotated at the end of
//the file so they will work in the standard POV "left-handed" system.
#declare Decanterbody = object {
sphere {<0,0,0>,1}
scale <2, 2, 2.5>
}
#declare Decanterneck = cylinder {
<0,0,1>, <0,0,0>, 1
scale <0.5, 0.5, 1.2>
translate <0, 0, 2.8>
}
#declare Decantertorus1 = quartic {
// Torus MinRadius= 0.750 MajRadius= 1.250
< 1.000, 0.000, 0.000, 0.000, 2.000,
0.000, 0.000, 2.000, 0.000, -4.250,
0.000, 0.000, 0.000, 0.000, 0.000,
0.000, 0.000, 0.000, 0.000, 0.000,
1.000, 0.000, 0.000, 2.000, 0.000,
-4.250, 0.000, 0.000, 0.000, 0.000,
1.000, 0.000, 2.000, 0.000, 1.000 >
}
#declare Torus1diff = box {
<-1, -1, -1>, <1, 1, 1>
scale <2.198654, 2.2, 0.5>
translate <0, 0.024648, 0.5>
}
#declare Torus1clip = cylinder {
<0,0,1>, <0,0,0>, 1
scale <1.25, 1.25, 1.6>
translate <0, 0, -0.8>
}
#declare Decanternecklip = object {
object { Decantertorus1 }
clipped_by { Torus1diff }
clipped_by { Torus1clip }
translate <0, 0, 4>
}
#declare Decantertoru2 = quartic {
// Torus MinRadius= 0.750 MajRadius= 1.250
< 1.000, 0.000, 0.000, 0.000, 2.000,
0.000, 0.000, 2.000, 0.000, -4.250,
0.000, 0.000, 0.000, 0.000, 0.000,
0.000, 0.000, 0.000, 0.000, 0.000,
1.000, 0.000, 0.000, 2.000, 0.000,
-4.250, 0.000, 0.000, 0.000, 0.000,
1.000, 0.000, 2.000, 0.000, 1.000 >
}
#declare Torus1diff1 = box {
<-1, -1, -1>, <1, 1, 1>
scale <2.198654, 2.2, 0.25>
translate <0, 0.024648, 0.25>
}
#declare Torus1clip1 = cylinder {
<0,0,1>, <0,0,0>, 1
scale <1.25, 1.25, 1.6>
translate <0, 0, -0.8>
}
#declare Decanterneck1 = object {
object { Decantertoru2 }
clipped_by { Torus1diff1 }
clipped_by { Torus1clip1 }
rotate <-180, 0, 0>
translate <0, 0, 2.8>
}
#declare Decanterlipwrap = quartic {
// Torus MinRadius= 0.075 MajRadius= 1.925
< 1.000, 0.000, 0.000, 0.000, 2.000,
0.000, 0.000, 2.000, 0.000, -7.423,
0.000, 0.000, 0.000, 0.000, 0.000,
0.000, 0.000, 0.000, 0.000, 0.000,
1.000, 0.000, 0.000, 2.000, 0.000,
-7.423, 0.000, 0.000, 0.000, 0.000,
1.000, 0.000, 7.400, 0.000, 13.690 >
texture {
LipWrapTex
}
scale <0.675, 0.675, 0.675>
translate <0, 0, 4.8>
}
#declare Decantertop = union { //the glass top of the decanter
object { Decanterbody }
object { Decanterneck }
object { Decanternecklip }
object { Decanterneck1 }
object { Decanterlipwrap }
texture {
GlassFrit
}
}
#declare Stoppersphere = object {
sphere {<0,0,0>,1}
texture {
BaseTexture
translate <0, 0, 1>
}
scale <1, 1, 1.25>
translate <0, 0, 5.639282>
}
#declare Stoppercylinder = cylinder {
<0,0,1>, <0,0,0>, 1
scale <0.425, 0.425, 1.5>
translate <0, 0, 3.144368>
}
#declare Stopperball = object {
sphere {<0,0,0>,1}
scale <0.425, 0.425, 0.425>
translate <0, 0, 3.15>
}
#declare Stopperneck = union {
object { Stoppercylinder }
object { Stopperball }
texture {
Glass2 //from textures.inc
}
}
#declare Stopperball2 = object {
sphere {<0,0,0>,1}
texture {
StemBeadTex
}
scale <0.15, 0.15, 0.15>
translate <0, 0, 7>
}
#declare Stopper = union { //the stopper for the decanter
object { Stoppersphere }
object { Stopperneck }
object { Stopperball2 }
}
#declare Stembead = object {
sphere {<0,0,0>,1}
texture {
StemBeadTex
}
scale <0.5, 0.5, 0.5>
translate <0, 0, -2.947915>
}
#declare Basecone = cone {
<0,0,0>, 0
<0,0,1>, 1
scale <1.5, 1.5, 5.>
rotate <-180, 0, 0>
translate <0, 0, -3>
}
#declare Basetorus = quartic {
// Torus MinRadius= 0.250 MajRadius= 1.750
< 1.000, 0.000, 0.000, 0.000, 2.000,
0.000, 0.000, 2.000, 0.000, -6.250,
0.000, 0.000, 0.000, 0.000, 0.000,
0.000, 0.000, 0.000, 0.000, 0.000,
1.000, 0.000, 0.000, 2.000, 0.000,
-6.250, 0.000, 0.000, 0.000, 0.000,
1.000, 0.000, 6.000, 0.000, 9.000 >
scale <0.75, 0.75, 0.75>
translate <0, 0, -8>
}
#declare Base1 = union { //the decanter base rounded with a torus
object { Basecone }
object { Basetorus }
texture {
BaseTexture
}
}
//the following declarations are to form the fish ornament at the top
#declare fishbodypatch1 = object {
bicubic_patch { type 1 flatness BezFlatness u_steps BezUStep v_steps BezVStep
<-0.053207, 0.000790, 8.034649> <-0.053207, -0.204070, 8.034649> <-0.045686, -0.839136, 1.851693> <-0.079846, -0.839136, -0.073891>
<-7.820454, 0.000790, 8.124299> <-7.820454, -0.204070, 8.124299> <-5.505897, -0.839136, 1.557865> <-5.522537, -0.839136, -0.048530>
<-7.846081, 0.000790, 0.262524> <-7.846081, -0.204070, 0.262524> <-7.841059, -0.335546, 0.169068> <-7.842614, -0.335546, 0.069869>
<-9.914493, -0.011719, 1.094550> <-9.914493, -0.060208, 1.091422> <-9.903977, -0.028123, 0.201230> <-9.905956, -0.028123, 0.077567> }
}
#declare fishbodypatch2 = object {
bicubic_patch { type 1 flatness BezFlatness u_steps BezUStep v_steps BezVStep
<-0.079846, -0.839136, -0.073891> <-0.114007, -0.839136, -1.999475> <-0.100037, -0.171602, -6.036417> <-0.100037, -0.007327, -6.036417>
<-5.522537, -0.839136, -0.048530> <-5.539177, -0.839136, -1.654924> <-7.816932, -0.171602, -5.953656> <-7.816932, -0.007327, -5.953656>
<-7.842614, -0.335546, 0.069869> <-7.844169, -0.335546, -0.029331> <-7.842477, -0.171602, -0.102761> <-7.842477, -0.007327, -0.102761>
<-9.905956, -0.028123, 0.077567> <-9.907936, -0.028123, -0.046096> <-9.905891, -0.027740, -0.991266> <-9.905891, -0.001072, -0.988139> }
}
#declare fishbodypatch3 = object {
bicubic_patch { type 1 flatness BezFlatness u_steps BezUStep v_steps BezVStep
<-0.100037, -0.007327, -6.036417> <-0.100037, 0.156948, -6.036417> <-0.114007, 0.792014, -1.999475> <-0.079846, 0.792014, -0.073891>
<-7.816932, -0.007327, -5.953656> <-7.816932, 0.156948, -5.953656> <-5.539177, 0.792014, -1.654924> <-5.522537, 0.792014, -0.048530>
<-7.842477, -0.007327, -0.102761> <-7.842477, 0.156948, -0.102761> <-7.844169, 0.303236, -0.029331> <-7.842614, 0.303236, 0.069869>
<-9.905891, -0.001072, -0.988139> <-9.905891, 0.025596, -0.985011> <-9.907936, 0.031040, -0.037763> <-9.905956, 0.031040, 0.085901> }
}
#declare fishbodypatch4 = object {
bicubic_patch { type 1 flatness BezFlatness u_steps BezUStep v_steps BezVStep
<-0.079846, 0.792014, -0.073891> <-0.045686, 0.792014, 1.851693> <-0.053207, 0.205651, 8.034649> <-0.053207, 0.000790, 8.034649>
<-5.522537, 0.792014, -0.048530> <-5.505897, 0.792014, 1.557865> <-7.820454, 0.205651, 8.124299> <-7.820454, 0.000790, 8.124299>
<-7.842614, 0.303236, 0.069869> <-7.841059, 0.303236, 0.169068> <-7.846081, 0.205651, 0.262524> <-7.846081, 0.000790, 0.262524>
<-9.905956, 0.031040, 0.085901> <-9.903977, 0.031040, 0.209564> <-9.914493, 0.036769, 1.097677> <-9.914493, -0.011719, 1.094550> }
}
#declare fishbodypatch = union {
object { fishbodypatch1 }
object { fishbodypatch2 }
object { fishbodypatch3 }
object { fishbodypatch4 }
translate <0, 0.050171, 0>
}
#declare fishbodypatc11 = object {
bicubic_patch { type 1 flatness BezFlatness u_steps BezUStep v_steps BezVStep
<0.161107, 0.000790, 8.034649> <0.161107, -0.204070, 8.034649> <0.168628, -0.839136, 1.851693> <0.134468, -0.839136, -0.073891>
<-10.392223, 0.000790, 8.767241> <-10.392223, -0.204070, 8.767241> <-5.505897, -0.839136, 1.557865> <-5.522537, -0.839136, -0.048530>
<-8.167552, 0.012215, -0.809047> <-8.167552, -0.661043, -0.809047> <-8.162530, -0.792520, -0.902503> <-8.164085, -0.792520, -1.001702>
<-14.303018, 0.000790, -0.391381> <-14.303018, -0.204070, -0.391381> <-13.198977, -0.290828, -0.964881> <-13.200957, -0.290828, -1.088545> }
}
#declare fishbodypatc12 = object {
bicubic_patch { type 1 flatness BezFlatness u_steps BezUStep v_steps BezVStep
<0.134468, -0.839136, -0.073891> <0.100307, -0.839136, -1.999475> <0.114277, -0.171602, -6.036417> <0.114277, -0.007327, -6.036417>
<-5.522537, -0.839136, -0.048530> <-5.539177, -0.839136, -1.654924> <-8.674189, -0.171602, -6.382284> <-8.674189, -0.007327, -6.382284>
<-8.164085, -0.792520, -1.001702> <-8.165640, -0.792520, -1.100902> <-8.163948, -0.171602, -1.174331> <-8.163948, -0.007327, -1.174331>
<-13.200957, -0.290828, -1.088545> <-13.202937, -0.290828, -1.212208> <-14.294416, -0.171602, -1.528284> <-14.294416, -0.007327, -1.528284> }
}
#declare fishbodypatc13 = object {
bicubic_patch { type 1 flatness BezFlatness u_steps BezUStep v_steps BezVStep
<0.114277, -0.007327, -6.036417> <0.114277, 0.156948, -6.036417> <0.100307, 0.792014, -1.999475> <0.134468, 0.792014, -0.073891>
<-8.674189, -0.007327, -6.382284> <-8.674189, 0.156948, -6.382284> <-5.539177, 0.792014, -1.654924> <-5.522537, 0.792014, -0.048530>
<-8.163948, -0.007327, -1.174331> <-8.163948, 0.156948, -1.174331> <-8.165640, 0.783058, -1.100902> <-8.164085, 0.783058, -1.001702>
<-14.294416, -0.007327, -1.528284> <-14.294416, 0.156948, -1.528284> <-13.202937, 0.243706, -1.178855> <-13.200957, 0.243706, -1.055192> }
}
#declare fishbodypatc14 = object {
bicubic_patch { type 1 flatness BezFlatness u_steps BezUStep v_steps BezVStep
<0.134468, 0.792014, -0.073891> <0.168628, 0.792014, 1.851693> <0.161107, 0.205651, 8.034649> <0.161107, 0.000790, 8.034649>
<-5.522537, 0.792014, -0.048530> <-5.505897, 0.792014, 1.557865> <-10.392223, 0.205651, 8.767241> <-10.392223, 0.000790, 8.767241>
<-8.164085, 0.783058, -1.001702> <-8.162530, 0.783058, -0.902503> <-8.167552, 0.685473, -0.809047> <-8.167552, 0.012215, -0.809047>
<-13.200957, 0.243706, -1.055192> <-13.198977, 0.243706, -0.931528> <-14.303018, 0.205651, -0.391381> <-14.303018, 0.000790, -0.391381> }
}
#declare fishbodypatc1 = union {
object { fishbodypatc11 }
object { fishbodypatc12 }
object { fishbodypatc13 }
object { fishbodypatc14 }
rotate <0, 0, -180>
}
#declare fishbody = union {
object { fishbodypatch }
object { fishbodypatc1 }
scale <0.9, 1, 1>
texture {FishBodyTex}
}
#declare pectoralpatch1 = object {
bicubic_patch { type 1 flatness BezFlatness u_steps BezUStep v_steps BezVStep
<-0.874564, -0.009294, 2.393881> <0.631882, -0.009294, 3.069143> <1.688154, -0.009294, 3.069143> <2.969513, -0.009294, 3.012871>
<-2.000000, -0.004647, 0.999989> <-1.000000, -0.004647, 0.999989> <0.000000, -0.004647, 0.999989> <2.856969, -0.004647, 1.844066>
<-2.562718, 0.000000, -0.900349> <-1.000000, 0.000000, 0.000000> <0.000000, 0.000000, 0.000000> <1.731533, 0.000000, 0.337631>
<-3.643200, 0.673792, -4.142458> <-1.731533, 0.004647, -2.012882> <-0.337631, 0.004647, -1.112533> <1.000000, 0.004647, -0.212184> }
}
#declare pectoralpatch = object { pectoralpatch1
scale <0.8, 0.8, 0.8>
rotate <19.969477, 0, -11.637955>
translate <1.955446, 1.313440, -7.792051>
texture {FinTex}
}
#declare tailpatch1 = object {
bicubic_patch { type 1 flatness BezFlatness u_steps BezUStep v_steps BezVStep
<-13.433449, 0.012590, 3.752071> <-12.433449, 0.012590, 3.260949> <-11.003717, 0.012590, 2.401486> <-10.003717, 0.012590, 1.061010>
<-13.924571, 0.007096, 0.542037> <-12.003717, 0.007096, 0.542037> <-11.003717, 0.007096, 0.542037> <-10.003717, 0.007096, 0.315678>
<-13.924571, 0.001601, -0.457948> <-12.003717, 0.001601, -0.457948> <-11.003717, 0.001601, -0.457948> <-10.003717, 0.001601, -0.259884>
<-13.372059, -0.003893, -3.667982> <-12.372059, -0.003893, -3.176860> <-11.003717, -0.003893, -2.194616> <-10.003717, -0.003893, -1.005215> }
}
#declare tailpatch = object { tailpatch1
translate <1.124528, 0.029822, 0.058315>
texture {FinTex}
}
#declare outereyesphere = object {
sphere {<0,0,0>,1}
scale <0.75, 0.2, 0.75>
rotate <4.175116, 0, 354.787201>
translate <10.0703, 0.431905, 0.507579>
texture {RedEyeTex}
}
#declare pupilsphere = object {
sphere {<0,0,0>,1}
texture {
pupiltex
}
scale <0.4, 0.1, 0.4>
rotate <4.416892, 0, -6.203704>
translate <10.092627, 0.57502, 0.520804>
}
#declare eye1 = union {
object { outereyesphere }
object { pupilsphere }
rotate <1.360893, 0, 0>
translate <-1.157639, 0, -0.082689>
}
#declare eye2 = union {
object { outereyesphere }
object { pupilsphere }
rotate <-0.85311, 0, -171.40361>
translate <18.730058, 1.540279, -0.077757>
}
#declare analspine1 = object {
sphere {<0,0,0>,1}
scale <0.4, 0.01, 3>
rotate <0, 26.860054, 0>
translate <-2.772014, 0, -6.307463>
texture {FinTex}
}
#declare analspine2 = object {
sphere {<0,0,0>,1}
scale <0.2, 0.01, 1.5>
rotate <0, 20.424746, 0>
translate <-1.958274, 0, -5.932374>
texture {FinTex}
}
#declare dorsalspine1 = object {
sphere {<0,0,0>,1}
scale <0.35, 0.01, 3>
rotate <0, -26.100386, 0>
translate <-1.252448, 0, 9.324779>
}
#declare dorsalspine2 = object {
sphere {<0,0,0>,1}
scale <0.42, 0.01, 3>
rotate <0, -21.129198, 0>
translate <-0.659824, 0, 9.31476>
}
#declare dorsalspine3 = object {
sphere {<0,0,0>,1}
scale <0.504, 0.01, 3>
rotate <0, -17.982313, 0>
translate <0.117956, 0, 9.302057>
}
#declare dorsalspine4 = object {
sphere {<0,0,0>,1}
scale <0.504, 0.01, 3>
rotate <0, -14.267365, 0>
translate <0.950533, 0, 9.24726>
}
#declare dorsalspine5 = object {
sphere {<0,0,0>,1}
scale <0.504, 0.01, 3>
rotate <0, -11.813030, 0>
translate <1.838245, 0, 9.158043>
}
#declare dorsalspine7 = object {
sphere {<0,0,0>,1}
scale <0.40824, 0.01, 2.43>
rotate <0, -4.899249, 0>
translate <3.370407, 0, 8.795239>
}
#declare dorsalspine8 = object {
sphere {<0,0,0>,1}
scale <0.367416, 0.01, 2.187>
rotate <0, -0.273033, 0>
translate <3.978218, 0, 8.359724>
}
#declare dorsalspine9 = object {
sphere {<0,0,0>,1}
scale <0.293933, 0.01, 1.7496>
rotate <0, 3.579628, 0>
translate <4.555551, 0, 7.887854>
}
#declare dorsalspine10 = object {
sphere {<0,0,0>,1}
scale <0.235146, 0.01, 1.399680>
rotate <0, 8.113843, 0>
translate <5.003019, 0, 7.385063>
}
#declare dorsalspine6 = object {
sphere {<0,0,0>,1}
scale <0.4536, 0.01, 2.7>
rotate <0, -7.139027, 0>
translate <2.601387, 0, 9.036129>
}
#declare dorsalspines = union {
object { dorsalspine1 }
object { dorsalspine2 }
object { dorsalspine3 }
object { dorsalspine4 }
object { dorsalspine5 }
object { dorsalspine7 }
object { dorsalspine8 }
object { dorsalspine9 }
object { dorsalspine10 }
object { dorsalspine6 }
scale <1.083668, 0.95, 0.916583>
rotate <0, 7.862904, 0>
translate <-1.342611, 0, 1.360942>
texture {FinTex}
}
#declare pectoralpatc11 = object {
bicubic_patch { type 1 flatness BezFlatness u_steps BezUStep v_steps BezVStep
<-0.874564, -0.009294, 2.393881> <0.631882, -0.009294, 3.069143> <1.688154, -0.009294, 3.069143> <2.969513, -0.009294, 3.012871>
<-2.000000, -0.004647, 0.999989> <-1.000000, -0.004647, 0.999989> <0.000000, -0.004647, 0.999989> <2.856969, -0.004647, 1.844066>
<-2.562718, 0.000000, -0.900349> <-1.000000, 0.000000, 0.000000> <0.000000, 0.000000, 0.000000> <1.731533, 0.000000, 0.337631>
<-3.643200, -1.036245, -4.142458> <-1.731533, 0.004647, -2.012882> <-0.337631, 0.004647, -1.112533> <1.000000, 0.004647, -0.212184> }
}
#declare pectoralpatc1 = object { pectoralpatc11
scale <0.8, 0.8, 0.8>
rotate <-30.257172, -8.83513, -6.680355>
translate <1.560379, -1.283715, -7.545263>
texture {FinTex}
}
#declare sidefinpatch1 = object {
bicubic_patch { type 1 flatness BezFlatness u_steps BezUStep v_steps BezVStep
<-7.160986, 3.576524, 2.397867> <-1.000000, 1.494740, 1.546449> <0.000000, 1.494740, 1.546449> <1.180585, 1.494740, 0.426825>
<-3.635688, 1.489740, 1.215607> <-1.000000, 1.489740, 0.546462> <0.000000, 1.489740, 0.546462> <1.216701, 1.489740, 0.113059>
<-2.594796, 1.484740, 0.066920> <-1.000000, 1.484740, -0.453526> <0.000000, 1.484740, -0.453526> <1.216701, 1.484740, -0.128474>
<-1.553903, 1.479740, -1.750911> <-0.891649, 1.479740, -1.706332> <0.000000, 1.479740, -1.453513> <1.144468, 1.479740, -0.550591> }
}
#declare sidefinpatch = object { sidefinpatch1
rotate <0, 0, -21.360031>
translate <4.343431, -0.517067, -0.371354>
texture {FinTex}
}
#declare sidefinpatch11 = object {
bicubic_patch { type 1 flatness BezFlatness u_steps BezUStep v_steps BezVStep
<-6.640540, -0.289647, 2.397867> <-1.000000, 1.494740, 1.546449> <0.000000, 1.494740, 1.546449> <1.180585, 1.494740, 0.426825>
<-3.635688, 1.489740, 1.215607> <-1.000000, 1.489740, 0.546462> <0.000000, 1.489740, 0.546462> <1.216701, 1.489740, 0.113059>
<-2.594796, 1.484740, 0.066920> <-1.000000, 1.484740, -0.453526> <0.000000, 1.484740, -0.453526> <1.216701, 1.484740, -0.128474>
<-1.553903, 1.479740, -1.750911> <-0.891649, 1.479740, -1.706332> <0.000000, 1.479740, -1.453513> <1.144468, 1.479740, -0.550591> }
}
#declare sidefinpatch1 = object { sidefinpatch11
rotate <0, 0, -337.206604>
translate <4.989764, -2.456067, -0.371354>
texture {FinTex}
}
#declare analfinsphere = object {
sphere {<0,0,0>,1}
scale <3.671643, 0.01, 7.783871>
rotate <0, 22.260298, 0>
translate <-4.699688, 0, -1.909248>
texture {FinTex}
}
#declare dorsalsphere = object {
sphere {<0,0,0>,1}
scale <6.05542, 0.01, 8.948157>
rotate <0, -33.031452, 0>
translate <-3.338263, 0, 4.932247>
}
#declare dorsalsphere1 = object {
sphere {<0,0,0>,1}
scale <12.382659, 0.01, 16.276329>
rotate <0, -22.002117, 0>
translate <2.898377, 0, 6.812839>
}
#declare dorsalsphere2 = object {
sphere {<0,0,0>,1}
scale <13.040835, 0.01, 13.14999>
rotate <0, -22.002117, 0>
translate <-5.420617, 0, -0.254227>
}
#declare dorsalfin = intersection { //this is the only intersection
object { dorsalsphere }
object { dorsalsphere1 }
object { dorsalsphere2 }
texture {FinTex}
}
#declare fish = union {
object { fishbody }
object { pectoralpatch }
object { tailpatch }
object { eye1 }
object { eye2 }
object { analspine1 }
object { analspine2 }
object { dorsalspines }
object { pectoralpatc1 }
object { sidefinpatch }
object { sidefinpatch1 }
object { analfinsphere }
object { dorsalfin }
scale <0.1, 0.1, 0.1>
translate <0.010437, 0, 7.760437>
}
union { // the entire decanter
object { Decantertop }
object { Stopper }
object { Stembead }
object { Base1 }
object { fish }
rotate <-90, 0, 0> //rotate so y=up
}
//any transformations after this point assume that y=up