PovJouets/incs/locomotive.inc
2021-03-16 00:48:07 +01:00

128 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
{
#local HGR = 4;
#local HPR = 3;
union
{
object { Chassis_Long }
object { Petite_Roue scale <-1, 1, 1> translate <-5.5, HPR, -13> }
object { Petite_Roue translate < 5.5, HPR, -13> }
object { Grande_Roue scale <-1, 1, 1> translate <-5.5, HGR, -5> }
object { Grande_Roue translate < 5.5, HGR, -5> }
object { Grande_Roue scale <-1, 1, 1> translate <-5.5, HGR, 5> }
object { Grande_Roue translate < 5.5, HGR, 5> }
object { Petite_Roue scale <-1, 1, 1> translate <-5.5, HPR, 13> }
object { Petite_Roue translate < 5.5, HPR, 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> }
}
}