126 lines
2.6 KiB
PHP
126 lines
2.6 KiB
PHP
/*
|
|
UNE LOCOMOTIVE A VAPEUR
|
|
-----------------------
|
|
|
|
necessite l'inclusion des elements communs 'train.inc'
|
|
|
|
*/
|
|
|
|
#include "incs/instruments.inc"
|
|
|
|
#declare Base_Loco_Vapeur = object
|
|
{
|
|
union
|
|
{
|
|
object { Chassis_Long }
|
|
object { Petite_Roue scale <-1, 1, 1> translate <-5.5, 0, -13> }
|
|
object { Petite_Roue translate < 5.5, 0, -13> }
|
|
object { Grande_Roue scale <-1, 1, 1> translate <-5.5, 0, -5> }
|
|
object { Grande_Roue translate < 5.5, 0, -5> }
|
|
object { Grande_Roue scale <-1, 1, 1> translate <-5.5, 0, 5> }
|
|
object { Grande_Roue translate < 5.5, 0, 5> }
|
|
object { Petite_Roue scale <-1, 1, 1> translate <-5.5, 0, 13> }
|
|
object { Petite_Roue translate < 5.5, 0, 13> }
|
|
}
|
|
}
|
|
|
|
|
|
#declare Dim_Foyer = 3.5;
|
|
|
|
#declare Foyer = object
|
|
{
|
|
union {
|
|
sphere { <0, 0, -13>, Dim_Foyer }
|
|
cylinder { <0, 0, -13>, <0, 0, 0>, Dim_Foyer }
|
|
cylinder { <0, 0, -12>, <0, 0, -11>, Dim_Foyer+0.2 }
|
|
cylinder { <0, 0, -4>, <0, 0, -3>, Dim_Foyer+0.2 }
|
|
|
|
cylinder { <-3.3, -2.75, -16.5>, <-3.3, -2.75, -1>, .6 }
|
|
sphere { <-3.3, -2.75, -16.5>, .6 }
|
|
sphere { <-3.3, -2.75, -1>, .6 }
|
|
|
|
cylinder { < 3.3, -2.75, -16.5>, < 3.3, -2.75, -1>, .6 }
|
|
sphere { < 3.3, -2.75, -16.5>, .6 }
|
|
sphere { < 3.3, -2.75, -1>, .6 }
|
|
}
|
|
texture {
|
|
pigment { color Gray60 }
|
|
finish { phong 0.5 }
|
|
}
|
|
translate y*10
|
|
}
|
|
|
|
#declare Cheminee = object
|
|
{
|
|
difference {
|
|
union {
|
|
cylinder { <0, 3, -8>, <0, 6.1, -8>, 1 }
|
|
cone { <0, 6, -8>, 1, <0, 8, -8> 2 }
|
|
cone { <0, 8, -8>, 2, <0, 9, -8> 1 }
|
|
}
|
|
cylinder { <0, 3, -8>, <0, 6.2, -8>, .95 }
|
|
}
|
|
texture {
|
|
pigment { color Gray30 }
|
|
finish { phong 0.65 }
|
|
}
|
|
translate y*10
|
|
}
|
|
|
|
#declare Cabine = object
|
|
{
|
|
union {
|
|
difference {
|
|
box { <-5, 0.2, 0.7>, <5, 11, 0> }
|
|
box { <-4.5, 7.5, 1.1>, <4.5, 10.75, -0.1> }
|
|
}
|
|
|
|
// le toit
|
|
union {
|
|
box { <-5, 11, 14>, <5, 12, 0> }
|
|
box { <-4, 11.9, 13>, <4, 12.1, 1> }
|
|
}
|
|
|
|
// la paroi arriere
|
|
difference
|
|
{
|
|
box { <-5, 0, 10>, <5, 11, 10.7> }
|
|
box { <-4, 5, 11.1>, <4, 10.5, 9.9> }
|
|
}
|
|
}
|
|
translate y*6 // XXX
|
|
pigment { color Gray80 }
|
|
finish { phong 0.6 }
|
|
}
|
|
|
|
#declare Reservoirs = object
|
|
{
|
|
union
|
|
{
|
|
cylinder { <-3, 8.5, 14>, <-3, 11, 14>, 2 }
|
|
cylinder { < 3, 8.5, 14>, < 3, 11, 14>, 2 }
|
|
sphere { < 3, 11, 14>, 2 }
|
|
sphere { <-3, 11, 14>, 2 }
|
|
sphere { < 3, 8.5, 14>, 2 }
|
|
sphere { <-3, 8.5, 14>, 2 }
|
|
}
|
|
texture { T_Chrome_2C }
|
|
|
|
}
|
|
|
|
#declare Locomotive_Vapeur = object
|
|
{
|
|
union
|
|
{
|
|
object { Base_Loco_Vapeur }
|
|
object { Cabine }
|
|
object { Foyer }
|
|
object { Cheminee }
|
|
object { Reservoirs }
|
|
object { Cadran_0 translate <0, 11.5, 1> }
|
|
object { Cadran_0 translate <-2.45, 11.5, 1> }
|
|
object { Cadran_0 translate <2.45, 11.5, 1> }
|
|
}
|
|
}
|
|
|