diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..3e34327 --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ + +*.png + diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..24c2644 --- /dev/null +++ b/Makefile @@ -0,0 +1,144 @@ +#-------------------------------------------------------- + +MOYEN=+w1280 +h1024 +GRAND=+w1600 +h1200 +PETIT=+w800 +h600 +DIMS=$(PETIT) + +OPTS=+a +q9 -d +LOWR=-a +q5 -d + +POVRAY=povray + +# nouveau mars 2001 +INCS = incs/ + +# CJPEGOPT=-quality 88 -progressive -dct float -targa +CJPEGOPT = -progressive -dct float -quality 88 +PNGOPT = -interlace -compression 9 -text png.txt + +all: loco.png parking.png corail.png train.png \ + inside.png benne.png electric.png truc.png wagons.png \ + ridelles.png rotonde.png grue.png t1.jpg t2.jpg t3.jpg \ + citerne.png + echo "on a fait les images" >> log.toto + +targa: tmp/ridelles.tga tmp/electric.tga tmp/citerne.tga \ + tmp/corail.tga tmp/voiture.tga + echo "on a fait les targas" >> log.toto + +GLOBDEPS=${INCS}/train.inc ${INCS}/plancher.inc ${INCS}/poteaux.inc \ + ${INCS}/rails.inc \ + ${INCS}/constantes.inc + +#-------------------------------------------------------- + + +essai.png: essai.pov Makefile $(GLOBDEPS) + $(POVRAY) +Iessai +Oessai $(DIMS) $(OPTS) + + +#----------------------------------------------------------------------- +# +# le grand garage de tout les wagons +# + +tmp/rotonde.tga: rotonde.pov rotonde.inc + $(POVRAY) +Irotonde +FT +Otmp/ $(DIMS) $(OPTS) +v + +rotonde.jpg: tmp/rotonde.tga + cjpeg $(CJPEGOPT) tmp/rotonde.tga > rotonde.jpg + +#----------------------------------------------------------------------- + +parking.png: parking.pov Makefile $(GLOBDEPS) + $(POVRAY) +Iparking $(DIMS) $(OPTS) +v + +loco.png: loco.pov ${DEPS} Makefile + $(POVRAY) +Iloco $(DIMS) $(OPTS) +v + +train.png: train.pov ${DEPS} Makefile + $(POVRAY) +Itrain $(DIMS) $(OPTS) +v + + +corail.png: corail.pov Makefile $(GLOBDEPS) + $(POVRAY) +Icorail $(DIMS) $(OPTS) +v + + +gare.tga: gare.pov gare.inc plancher.tga plancher.inc \ + enseigne.inc Makefile + $(POVRAY) +Igare +FT $(DIMS) $(OPTS) +v + +#----------------------------------------------------------------------- + +tmp/wagons.tga: wagons.pov plancher.inc ridelles.inc \ + train.inc poteaux.inc Makefile + $(POVRAY) +Iwagons +ft +Otmp/ $(DIMS) $(OPTS) +v + +wagons.jpg: tmp/wagons.tga + cjpeg $(CJPEGOPT) tmp/wagons.tga > wagons.jpg + +inside.png: inside.pov $(GLOBDEPS) Makefile + $(POVRAY) +Iinside $(DIMS) $(OPTS) +v + +tmp/benne.tga: train.inc benne.pov constantes.inc rails.inc \ + benne.inc Makefile + $(POVRAY) +Ibenne +Otmp/benne +FT $(DIMS) $(OPTS) +v + +benne.jpg: tmp/benne.tga + cjpeg $(CJPEGOPT) tmp/benne.tga > benne.jpg + +tmp/citerne.tga: citerne.pov citerne.inc $(GLOBDEPS) + $(POVRAY) +Iciterne +Otmp/citerne +FT $(DIMS) $(OPTS) +v +citerne.jpg: tmp/citerne.tga + cjpeg $(CJPEGOPT) tmp/citerne.tga > citerne.jpg + + +tmp/electric.tga: electric.pov electric.inc train.inc rails.inc \ + instruments.inc Makefile + $(POVRAY) +Ielectric +FT +Otmp/electric $(DIMS) $(OPTS) +v +electric.jpg: tmp/electric.tga + cjpeg $(CJPEGOPT) tmp/electric.tga > electric.jpg + +truc.tga: truc.pov train.inc poteaux.inc \ + decor.inc voiture.inc constantes.inc \ + enseigne.inc electric.inc corail.inc \ + grue.inc instruments.inc galerie.inc + $(POVRAY) +Itruc +FT $(DIMS) $(LOWR) -v + + +tmp/ridelles.tga: ridelles.pov ridelles.inc $(GLOBDEPS) + $(POVRAY) +Iridelles +ft +Otmp/ridelles $(DIMS) $(OPTS) +v + +ridelles.jpg: tmp/ridelles.tga + cjpeg $(CJPEGOPT) tmp/ridelles.tga > ridelles.jpg + + +tmp/grue.tga: grue.pov train.inc grue.inc rails.inc \ + poteaux.inc Makefile + $(POVRAY) +Igrue +ft +otmp/ $(DIMS) $(OPTS) +v +grue.jpg: tmp/grue.tga + cjpeg $(CJPEGOPT) tmp/grue.tga > grue.jpg + +#-------------------------------------------------------- +# les trucs en travaux + +tmp/voiture.tga: voiture.inc voiture.pov $(GLOBDEPS) + $(POVRAY) +Ivoiture +FT +Otmp/ $(DIMS) $(OPTS) +v + +#-------------------------------------------------------- + +SRCFILES=*.inc *.pov *.txt Makefile *.sh + +lines: + wc $(SRCFILES) | sort -n + +tarball: $(SRCFILES) + ls $^ > MANIFEST ; \ + ( cd .. ; \ + tar zcvf jouets-tth.tar.gz \ + `sed 's/^/Jouets\//' Jouets/MANIFEST` ) + date >> tarball + +#-------------------------------------------------------- + diff --git a/corail.pov b/corail.pov new file mode 100644 index 0000000..4706a83 --- /dev/null +++ b/corail.pov @@ -0,0 +1,76 @@ + +/* + * + * pour plus de details: oulala@chez.com + * + */ + +#include "colors.inc" +#include "metals.inc" +#include "textures.inc" + +/*------------------------------------------------------------------*/ +plane { + y, 0 + pigment + { + brick Gray35, rgb<0.50, 0.40, 0.20> + rotate z*90 + } + } + +sky_sphere { + pigment + { + gradient y + color_map + { + [0 color Khaki] + [0.2 color <0 , .1, .2>] + [0.5 color <0.2 , 0, 0>] + [0.6 color <0 , .2, .1>] + [1 color Khaki] + } + turbulence 2.5 + } + rotate 50 + scale 2 + } + +#include "incs/train.inc" +#include "incs/rails.inc" +#include "incs/corail.inc" +#include "incs/poteaux.inc" + +object +{ +union + { + object { Wagon_Corail translate y*2 } + object { Un_Rail_Droit } + object { Un_Rail_Droit translate z*100 } + object { Un_Rail_Droit translate z*200 } + object { Un_Rail_Droit translate z*300 } + } +} + +#declare foo = -300; +#while (foo < 400) + object { Poteau_1 translate <20, 0, foo> } + #declare foo = foo +42; +#end + +/*------------------------------------------------------------------*/ + +camera + { + location <18, 10, -45> + look_at <0, 6, 0> + angle 62 + } + +light_source { <550, 725, -900> color Gray60 } +light_source { <600, 700, -850> color Gray50 } + + +/*------------------------------------------------------------------*/ diff --git a/essai.pov b/essai.pov new file mode 100644 index 0000000..5c11086 --- /dev/null +++ b/essai.pov @@ -0,0 +1,29 @@ +/* + un fichier de test. +*/ + +#include "colors.inc" +#include "metals.inc" + +#include "incs/train.inc" +#include "incs/rails.inc" +#include "incs/benne.inc" +#include "incs/grue.inc" +// #include "decor.inc" + +object { Boogie } + +camera { + location <15.5, 8, 9> + look_at <0, 0, 0> + angle 42 + } + +cylinder { <-100, 0, 0>, <100, 0, 0>, 0.1 pigment { color Red } } +cylinder { <0, -100, 0>, <0, 100, 0>, 0.1 pigment { color Green } } +cylinder { <0, 0, -100>, <0, 0, 100>, 0.1 pigment { color Blue } } + +light_source { <90, 131, 190> color White } +light_source { <90, 111, 250> color White } + +/*------------------------------------------------------------------*/ diff --git a/incs/benne.inc b/incs/benne.inc new file mode 100644 index 0000000..3fcd0dd --- /dev/null +++ b/incs/benne.inc @@ -0,0 +1,107 @@ +/* + 17 Octobre 1999 + Le wagon-benne a (enfin) droit a son propre fichier .INC +*/ + +#include "incs/train.inc" + +//----------------------------------------------------------------- + +#declare Petite_Benne = object +{ +union { + difference { + box { <-3.5, 0, -10>, <3.5, 6, 10> } + box { <-3, 0.5, -9.5>, <3, 7, 9.5> } + } + cylinder { <0, 4.5, -9.75>, <0, 4.5, -12>, .8 } + cylinder { <0, 4.5, 9.75>, <0, 4.5, 12>, .8 } + } +translate y*6 +texture { + pigment { color Green } + finish { phong 0.5 } + } +} + +//----------------------------------------------------------------- +/* +19 Oct 1999: premiere version. +10 Fev 2000: BAD CODE HERE +*/ +#declare Support_Benne = object +{ +union { + difference { + box { <-3, 0, -0.5>, <3, 5, 0.5> } + cylinder { <0, 5, -.75>, <0, 5, .75>, 1.1 } + box { <-2.3, 0.36, -0.6>, <2.3, 3.4, 0.6> } + } + cylinder { <0, 5, -.75>, <0, 5, .75>, 1.33 } + } + +translate y*6 +texture { + pigment { color Brown } + finish { phong 0.6 } + } +} + +//----------------------------------------------------------------- +#declare Articulation_Benne = object +{ +difference + { + cylinder { <0, 5, -.5>, <0, 5, .5>, 1.15 } + cylinder { <0, 5, -.6>, <0, 5, .6>, 0.85 } + } +translate y*6 +texture { T_Chrome_2D } +} +//----------------------------------------------------------------- + +#declare Piston_Benne = object +{ +union + { + cylinder { <5, 4, 0>, <5, 12, 0>, 0.4 } + sphere { <5, 4, 0>, 0.4 } + sphere { <5, 12, 0>, 0.4 } + } +texture { T_Chrome_2C } +} + +//----------------------------------------------------------------- + +#declare Support_Piston_Benne = object +{ +union + { + cylinder { <0, -1.1, 0>, <0, 1.1, 0>, 0.65 } + box { <-3, -0.3, -1.42>, <2, 0.4, 1.42> } + } +translate <5, 5, 0> +texture { + pigment { color Brown } + finish { phong 0.412 } + } +} + +//----------------------------------------------------------------- + +#declare Wagon_Benne = object +{ +union + { + object { Base_Courte } + object { Petite_Benne translate y*0.5 } + object { Support_Benne translate z*-11 } + object { Support_Benne translate z* 11 } + object { Piston_Benne } + object { Support_Piston_Benne } + object { Articulation_Benne translate z*-11 } + object { Articulation_Benne translate z* 11 } + } +} + +//----------------------------------------------------------------- diff --git a/incs/citerne.inc b/incs/citerne.inc new file mode 100644 index 0000000..ac64c36 --- /dev/null +++ b/incs/citerne.inc @@ -0,0 +1,59 @@ +/* + * LES JOUETS DE TONTON TH + * Une citerne de St Chinian + */ +//----------------------------------------------------------------- +#declare Diam_Citerne = 4.5; +#declare Epp_Cerclage = 0.233; +#declare Diam_Cerclage = (Diam_Citerne+Epp_Cerclage); +#declare Larg_Cerclage = 0.6; +#declare Off_Cerclage = 3; + +#declare Citerne = object +{ +union { + intersection + { + sphere { <0, 0, 0>, 11 } + cylinder { <0, 0, -15>, <0, 0, 15>, Diam_Citerne } + } + + /* + * les deux cerclages + */ + cylinder { <0, 0, -5>, <0, 0, -5.8>, Diam_Cerclage } + torus { Diam_Cerclage-Epp_Cerclage Epp_Cerclage + rotate x*90 translate z*-5 } + torus { Diam_Cerclage-Epp_Cerclage Epp_Cerclage + rotate x*90 translate z*-5.8 } + cylinder { <0, 0, 5>, <0, 0, 5.8>, Diam_Cerclage } + torus { Diam_Cerclage-Epp_Cerclage Epp_Cerclage + rotate x*90 translate z*5 } + torus { Diam_Cerclage-Epp_Cerclage Epp_Cerclage + rotate x*90 translate z*5.8 } + + cylinder { <0, 4, 0>, <0, 5.7, 0>, 1.8 } + difference + { + cylinder { <0, 5.6, 0>, <0, 6.4, 0>, 2.4 } + cylinder { <0, 5.5, 0>, <0, 6.5, 0>, 1.4 } + } + } +scale <1, 0.882, 1> +translate y*10.5 +texture { + pigment { color rgb <0.96, 0.25, 0.2> } + finish { phong 0.6 } + } +} + +//----------------------------------------------------------------- +#declare Wagon_Citerne = object +{ +union + { + object { Base_Courte } + object { Citerne } + } +} +//----------------------------------------------------------------- diff --git a/incs/constantes.inc b/incs/constantes.inc new file mode 100644 index 0000000..58e7005 --- /dev/null +++ b/incs/constantes.inc @@ -0,0 +1,28 @@ +/* + LES JOUETS DE TONTON TH + Quelque constantes utiles +*/ + +#ifdef(Jouets_Constantes) +// do nothing +#error "constantes deja definies\n" +#else +#declare Jouets_Constantes=version; + +/* ------------------------------------------------------------ */ +/* constantes geometriques */ + +#declare ECARTEMENT = 12; +#declare H_RAIL = 2; + +/* generateur de nombres pseudo-aleatoires. + mais comment le 'seeder' de fac,on differente a chaque run ? */ + +#declare RND = seed(42); + +/* ------------------------------------------------------------ */ +/* il nous faut quelques textures 'standards' */ + +/* ------------------------------------------------------------ */ +#end // #ifdef + diff --git a/incs/corail.inc b/incs/corail.inc new file mode 100644 index 0000000..0d60ad7 --- /dev/null +++ b/incs/corail.inc @@ -0,0 +1,249 @@ +/* + Un wagon de voyageurs + --------------------- + +*/ + +#declare Chassis_Corail = object +{ +union + { + box { <-4, 5.5, -20>, <4, 6.5, 20> } + box { <-3.5, 3.5, -5>, <3.5, 5.4, -1> } + box { <-3.5, 3.5, 5>, <3.5, 5.4, 1> } + } +texture { + pigment { color Yellow } + finish { phong 0.7 } + } +} + +#declare Base_Corail = object +{ +union + { + object { Chassis_Corail } + object { Boogie translate z*-13.8 } + object { Boogie translate z* 13.8 } + } +finish { phong 0.65 } +} + + +#declare LARG_FEN = 5; +#declare HAUT_FEN = 4; +#declare E_FEN = 0.5; + +#declare Bord_Fenetre = object +{ +difference + { + box { <-1, -HAUT_FEN, -LARG_FEN>, + <1, HAUT_FEN, LARG_FEN> } + box { <-2, -HAUT_FEN+E_FEN, -LARG_FEN+E_FEN>, + <2, HAUT_FEN-E_FEN, LARG_FEN-E_FEN> } + } + +texture { T_Chrome_2C } +} + +#declare Cabine_Corail = object +{ +difference + { + box { <-4.5, 6.6, -20>, <4.5, 15, 20> } + box { <-4, 6.6, -19.5>, <4, 15.1, 19.5> } + + #declare foo = -4; + #while (foo <= 4) + #declare px = foo * 4.16; + box { <-5, 9.42, px-1.7>, <5, 13.5, px+1.7> } + #declare foo = foo + 1; + #end + + /* + * c'est quoi, ce truc ? + * ben, les portes des deux bouts ! + */ + box { <-2.2, 7, -21>, < 2.2, 14.8, -19> } + box { <-2.2, 7, 21>, < 2.2, 14.8, 19> } + } +pigment { color Orange } +finish { phong 0.5 } +} + +#declare Toit_Corail = object +{ +intersection + { + box { <-4.7, 0, -21>, <4.7, 14, 21> } + cylinder { <0, -11, -22>, <0, -11, 22>, 12.5 } + } +translate y*15 +texture + { + pigment { color Red } + finish { phong 0.6 } + } +} + +// +// la tuyauterie sur les deux caissons d'en dessous +// +#declare Tuyaux_Corail = object +{ +#local posX = 4.8; +#local diametre = 1.2; +union + { + cylinder { <-4.7, 4.5, -5>, <-4.7, 4.5, 5>, diametre } + sphere { <-4.7, 4.5, -5>, diametre } + sphere { <-4.7, 4.5, 5>, diametre } + cylinder { < 4.7, 4.5, -5>, < 4.7, 4.5, 5>, diametre } + sphere { < 4.7, 4.5, -5>, diametre } + sphere { < 4.7, 4.5, 5>, diametre } + } +texture { T_Chrome_4C } +} + +// ------------------------------------------ + +#declare Armature_Siege_Corail = object +{ +union + { + cylinder { <-1.3, 0, 0>, <-1.3, 1.50, 0>, 0.2 } + cylinder { < 1.3, 0, 0>, < 1.3, 1.50, 0>, 0.2 } + + cylinder { <-1.3, 0, 0>, <-1.3, .10, 0>, 0.5 } + cylinder { < 1.3, 0, 0>, < 1.3, .10, 0>, 0.5 } + + cylinder { <-2.1, 1.03, 0>, < 2.1, 1.03, 0>, 0.096 } + + /* + * les deux barres qui tiennent les dossiers + */ + cylinder { <-1.3, 0.9, 0.9>, <-1.3, 3.7, 0.9>, 0.068 } + cylinder { < 1.3, 0.9, 0.9>, < 1.3, 3.7, 0.9>, 0.068 } + + sphere { <-1.3, 3.7, 0.9>, 0.068 } + sphere { < 1.3, 3.7, 0.9>, 0.068 } + } +texture { T_Chrome_2C } +} + +#declare Coussins_Siege_Corail = object +{ +union + { + box { <-2, 1.75, -1>, <2, 1.40, 1> } + box { <-2, 1.95, 1>, <2, 3.10, 0.8> } + + cylinder { <-2, 3.38, 0.9>, <2, 3.38, 0.9>, 0.2 } + } +texture + { + pigment { color Brown } + normal { bumps 0.6 scale 0.42 } + finish { phong 0.4 diffuse 0.3 } + } +} + +#declare Siege_Corail = object +{ +union + { + object { Armature_Siege_Corail } + object { Coussins_Siege_Corail } + } +} + +// ------------------------------------------ +// +// avant de faire les lumieres, il faut faire l'ampoule. +// +#declare Ampoule_Corail = object +{ +sphere { <0, 0, 0> 0.2 pigment { color Gray90 } } +} + +// ------------------------------------------ + +#declare Lumieres_Corail = object +{ + +union + { + #declare foo = -2; + #while (foo <= 2) + #declare px = foo * 6.97; + + sphere { <0, 15.3, px> 0.6 pigment { color BakersChoc } } + + light_source { + <0, 0, px> color Gray35 + fade_distance 6 fade_power 1 + looks_like { Ampoule_Corail } + translate y*13.8 + } + + #declare foo = foo + 1; + #end + } + +} + +#declare Interieur_Corail = object +{ +union + { + #declare foo = -4; + #while (foo <= 4) + #declare px = foo * 4.16; + object { Siege_Corail translate <1.5, 6.6, px> } + #declare foo = foo + 1; + #end + } +} +// ------------------------------------------ + +/* + * MAIS CETTE RAMPE EST COMPLETEMENT FAUSSE !!! + */ +#declare Rampe = object +{ +union + { + #declare foo = -2; + #while (foo <= 2) + #declare px = foo * 6.97; + + sphere { <0, 15.3, px> 0.6 pigment { color BakersChoc } } + + light_source { + <0, 0, px> color Gray25 + fade_distance 6 fade_power 1 + looks_like { Ampoule_Corail } + translate y*13.8 + } + + #declare foo = foo + 1; + #end + } +} +// ------------------------------------------ + +#declare Wagon_Corail = object +{ +union + { + object { Base_Corail } + object { Cabine_Corail } + object { Toit_Corail } + object { Tuyaux_Corail } + object { Interieur_Corail } + object { Lumieres_Corail } + object { Rampe } + } +} + diff --git a/incs/decor.inc b/incs/decor.inc new file mode 100644 index 0000000..359148f --- /dev/null +++ b/incs/decor.inc @@ -0,0 +1,47 @@ +/* + les elements du decor + --------------------- + + voir aussi le fichier 'rails.inc' + +*/ + +/* ------------------------------------------------------------------------ */ + +#declare Balise_0 = object +{ +union + { + cylinder { + <0, 0, 0>, <0, 6.01, 0>, 1.2 + pigment { color Red } + } + cylinder { + <0, 6, 0>, <0, 8, 0>, 1 + pigment { color White } + } + sphere { + <0, 8, 0>, 1 + pigment { color Red } + } + } +finish { phong 0.7 } +} + +/* ------------------------------------------------------------------------ */ + +#declare Banc_0 = object +{ +union + { + box { <-6, 3, -1>, <6, 4, 1> } + box { <-6, 4.4, -1.05>, <6, 6, -0.95> } + } +texture { + pigment { Cyan } + finish { phong 0.7 } + } +} + +/* ------------------------------------------------------------------------ */ + diff --git a/incs/electric.inc b/incs/electric.inc new file mode 100644 index 0000000..738afda --- /dev/null +++ b/incs/electric.inc @@ -0,0 +1,160 @@ +/* + UNE LOCOMOTIVE ELECTRIQUE + ------------------------- + necessite l'inclusion des elements communs 'train.inc' +*/ + +#include "incs/instruments.inc" + +#declare Base_Loco_Electric = object +{ +union + { + object { Petite_Roue scale <-1, 1, 1> translate <-5.5, 0, -12> } + object { Petite_Roue translate < 5.5, 0, -12> } + object { Petite_Roue scale <-1, 1, 1> translate <-5.5, 0, -5> } + object { Petite_Roue translate < 5.5, 0, -5> } + object { Petite_Roue scale <-1, 1, 1> translate <-5.5, 0, 5> } + object { Petite_Roue translate < 5.5, 0, 5> } + object { Petite_Roue scale <-1, 1, 1> translate <-5.5, 0, 12> } + object { Petite_Roue translate < 5.5, 0, 12> } + } +} + +#declare Chassis_Electric = object +{ +box { <-4.5, 1, -10>, <4.5, 2, 10> } +texture { + pigment { color BlueViolet } + finish { phong 0.6 } + } +} + +#declare Cabine_Loco_Electric = object +{ +union { + box { <-4, 4, -11>, <4, 10, 11> } + cylinder { <-3, 10, -11>, <-3, 10, 11> 1 } + cylinder { < 3, 10, -11>, < 3, 10, 11> 1 } + + cylinder { <0, 5, -11>, <0, 10, -11>, 4 } + difference { + cylinder { <0, 3, -11>, <0, 11, -11>, 3 } + cylinder { <0, 5, -11>, <0, 11.1, -11>, 2.8 } + } + torus { 3, 1 translate <0, 10, -11> } + + cylinder { <0, 5, 11>, <0, 10, 11>, 4 } + difference { + cylinder { <0, 3, 11>, <0, 11, 11>, 3 } + cylinder { <0, 5, 11>, <0, 11.1, 11>, 2.8 } + } + torus { 3, 1 translate <0, 10, 11> } + } + +texture { + pigment { color DarkGreen } + finish { phong 0.8 } + } +} + +// ------------------------------------------------------------------- + +#declare Haut_Pento = 15; + +#declare Base_Panto_0 = object +{ +union { + cylinder { <0, 10, 0>, <0, 10.1, 0>, 1 } + cylinder { <0, 10, 0>, <0, Haut_Pento, 0>, .155 } + cylinder { <-2, Haut_Pento, 0>, <2, Haut_Pento, 0>, .155 } + sphere { <-2, Haut_Pento, 0>, .31 } + sphere { < 2, Haut_Pento, 0>, .31 } + } +} + +#declare Bases_Panto = object +{ +union { + object { Base_Panto_0 translate z*2.9 } + object { Base_Panto_0 translate z*-2.9 } + } +texture { T_Copper_2C } +} +// ------------------------------------------------------------------- + +#declare Armature_Cockpit = object +{ +union { + torus { 3, 0.12 rotate <90, 0, 0> } + torus { 3, 0.12 rotate <90, 120, 0> } + torus { 3, 0.12 rotate <90, 240, 0> } + difference + { + cylinder { <0, 0, 0>, <0, .2, 0>, 3.2 } + cylinder { <0, -0.1, 0>, <0, .21, 0>, 2.8 } + } + cylinder { <0, 2.95, 0>, <0, 3.12, 0>, .8 } + } +texture { T_Chrome_2C } +} + +#include "textures.inc" + +#declare Bulle_Cockpit = object +{ +difference { + sphere { <0, 0, 0>, 3.000 } + sphere { <0, 0, 0>, 2.996 } + } +interior { I_Glass } +texture { Glass2 } +finish { reflection 0.2 } +} + +#declare Cockpit = object +{ +difference + { + union + { + object { Armature_Cockpit } + object { Bulle_Cockpit } + } + box { <-5, -0.1, -5>, <5, -5, 5> } + } +scale <1, 0.8, 1> +translate y*11 +} + +// ------------------------------------------------------------------- +#declare Les_Phares = object +{ +union + { + object { Phare_0 translate < 3.6, 8, -15.7> } + object { Phare_0 translate <-3.6, 8, -15.7> } + box { + <3.8, 7.9, -14.5>, <-3.8, 8.1, -14> + texture { T_Chrome_3A } + } + } +} +// ------------------------------------------------------------------- + +#declare Locomotive_Electric = object +{ +union + { + object { Base_Loco_Electric } + object { Cabine_Loco_Electric } + object { Cockpit translate z*11 } + object { Cockpit translate z*-11 } + object { Bases_Panto } + object { Les_Phares } + object { Chassis_Electric } + } +} + +//-------------------- yo ! ------------------------------------------- + diff --git a/incs/enseigne.inc b/incs/enseigne.inc new file mode 100644 index 0000000..a0763d2 --- /dev/null +++ b/incs/enseigne.inc @@ -0,0 +1,54 @@ +/* +*/ + +#include "chars.inc" + +#declare Enseigne = object +{ +union + { + object { + char_H + translate x*-27.5 + } + object { + char_E + translate x*-22.5 + } + object { + char_L + translate x*-17.5 + } + object { + char_L + translate x*-12.5 + } + object { + char_O + translate x*-7.5 + } + object { + char_W + translate x*2.5 + } + object { + char_O + translate x*7.5 + } + object { + char_R + translate x*12.5 + } + object { + char_L + translate x*17.5 + } + object { + char_D + translate x*22.5 + } + } +texture { PinkAlabaster scale 3 } +} + +/* (c) Oulala */ diff --git a/incs/galerie.inc b/incs/galerie.inc new file mode 100644 index 0000000..7e942aa --- /dev/null +++ b/incs/galerie.inc @@ -0,0 +1,22 @@ +/* + LE TRAIN MINIATURE DE TONTON TH +*/ + +#macro galerie(Larg, Long, Diam, Coin) + +#local Larg2 = Larg / 2.0; +#local Long2 = Long / 2.0; + +union + { + cylinder { <-Larg2, 0, -Long2>, < Larg2, 0, -Long2>, Diam } + cylinder { <-Larg2, 0, Long2>, < Larg2, 0, Long2>, Diam } + cylinder { <-Larg2, 0, -Long2>, <-Larg2, 0, Long2>, Diam } + cylinder { < Larg2, 0, -Long2>, < Larg2, 0, Long2>, Diam } + sphere { <-Larg2, 0, -Long2>, Diam } + sphere { <-Larg2, 0, Long2>, Diam } + sphere { <-Larg2, 0, -Long2>, Diam } + sphere { < Larg2, 0, -Long2>, Diam } + } + +#end diff --git a/incs/gare.inc b/incs/gare.inc new file mode 100644 index 0000000..0e8e0d7 --- /dev/null +++ b/incs/gare.inc @@ -0,0 +1,52 @@ +/* + + La Gare !-) + ----------- + +*/ + +#declare Corps_Gare = object +{ +difference + { + box { <-600, 0, -200>, <600, 400, 200> } + box { <-590, 0, -190>, <590, 390, 190> } + + #declare foo = -3; + #while (foo <= 3) + #declare px = foo * 165; + box { , } + #declare foo = foo + 1; + #end + + } +pigment { color White } +finish { phong 0.5 } +translate y*100 +} + +#declare Quai_Gare = object +{ +box { <-700, 0, 220>, <700, 100, -420> } + +pigment { color White } +finish { phong 0.4 } +} + +#include "decor.inc" +#include "enseigne.inc" +#include "rails.inc" + +#declare Gare = object +{ +union + { + object { Corps_Gare } + object { Quai_Gare } + object { Enseigne scale 15 translate <0, 460, -210> } + } +} + +/*----------------------------------------------------- + je suis le raytraceur des lilas. +-----------------------------------------------------*/ diff --git a/incs/grue.inc b/incs/grue.inc new file mode 100644 index 0000000..93915d4 --- /dev/null +++ b/incs/grue.inc @@ -0,0 +1,171 @@ +/* + Une grue pour soulever les wagons + --------------------------------- + +*/ + +#declare Z_Pivot = 11; + +#declare H_Cabine = 6; + +#declare A_Pivot = 42; +#declare A_Fleche = 30; + +#declare Chassis_Grue = object +{ +union + { + box { <-4, 5.5, -20>, <4, 6.5, 20> } + box { <-3.5, 3.2, -5>, <3.5, 5.4, 5> } + } +pigment { color Brown } +} + +#declare Base_Grue = object +{ +union + { + object { Chassis_Grue } + object { Boogie translate z*-13.8 } + object { Boogie translate z* 13.8 } + } +finish { phong 0.5 } +} + +// ---------------------------------------------------------------------- + +#declare Pivot_Grue = object +{ +union + { + cylinder { < 0, 0.0, 0>, <0, 0.5, 0>, 3.3 } + cylinder { < 0, 0.5, 0>, <0, 1.0, 0>, 3 } + cylinder { < 0, 1.0, 0>, <0, 1.5, 0>, 3.3 } + } +pigment { color Orange } +} + +// ------------------------------------------ + + +#declare Plateau_Cabine_Grue = object +{ +box { <-5, 0, -5>, <5, 0.5, 5> } +pigment { color Yellow } +} + +#declare Boite_Cabine_Grue = object +{ +difference + { + box { <-3, 0, -3>, <3, H_Cabine, 3> } + box { <-2.8, 0, -2.9>, <2.9, H_Cabine+0.1, 2.8> } + box { <-3.1, 3.6, -2.6>, <3.1, H_Cabine-0.2, -0.3> } + box { <-3.1, 3.6, 2.6>, <3.1, H_Cabine-0.2, 0.3> } + box { <-2.6, 3.6, -3.1>, <-0.3, H_Cabine-0.2, 3.1> } + box { < 2.6, 3.6, -3.1>, < 0.3, H_Cabine-0.2, 3.1> } + } +pigment { color Yellow } +} + +#declare Toit_Cabine_Grue = object +{ +intersection + { + box { <-3.2, 0, -3.4>, <3.2, 4, 3.2> } + cylinder { <0, -12, -3.5>, <0, -12, 3.3>, 12.6 } + } +translate y*H_Cabine +pigment { color Orange } +} + +#declare Cabine_Grue = object +{ +union + { + object { Plateau_Cabine_Grue } + object { Boite_Cabine_Grue } + object { Toit_Cabine_Grue } + } +translate y*1.5 +} +// ------------------------------------------ + +#declare Appui_Fleche = object +{ +difference + { + union + { + box { <-1.5, 0, -1>, <1.5, 1, 1> } + box { <-1.4, 0.99, -0.8>, <1.4, 1.7, 0.8> } + cylinder { <-1.4, 1.7, 0>, <1.4, 1.7, 0>, 0.8 } + } + cylinder { <-0.85, 1.7, 0>, <0.85, 1.7, 0>, 0.9 } + } +texture { + pigment { color Red } + finish { ambient 0.5 } + } +} + +#declare Pivot_Fleche = object +{ +union + { + cylinder { <-0.8, 1.7, 0>, <0.8, 1.7, 0>, 0.7 } + cylinder { <-1.55, 1.7, 0>, <1.55, 1.7, 0>, 0.51 } + } +pigment { color Cyan } +} + +#declare Bras_Fleche = object +{ +union + { + box { <-0.5, -0.5, -6>, <0.5, 0.5, -1> } + box { <-0.4, -0.4, -5>, <0.4, 0.4, -11> } + box { <-0.3, -0.3, -10>, <0.3, 0.3, -15> } + box { <-0.2, -0.2, -9>, <0.2, 0.2, -20> } + } +pigment { color Yellow } +rotate x*A_Fleche +translate y*1.7 +} + +#declare Fleche = object +{ +union + { + object { Appui_Fleche translate <3.5, 0, 0> } + object { Pivot_Fleche translate <3.5, 0, 0> } + object { Bras_Fleche translate <3.5, 0, 0> } + } +translate y*2.0 /* pour la poser sur la plate forme */ +} +// ------------------------------------------ +#declare Corps_Grue = object +{ +union + { + union + { + object { Pivot_Grue rotate y*42 } + object { Cabine_Grue } + object { Fleche } + } + } +translate y*7.0 +} +// ------------------------------------------ + +#declare Wagon_Grue = object +{ +union + { + object { Base_Grue } + object { Corps_Grue } + } +} + +// ------------------------------------------ diff --git a/incs/instruments.inc b/incs/instruments.inc new file mode 100644 index 0000000..9480724 --- /dev/null +++ b/incs/instruments.inc @@ -0,0 +1,171 @@ +/* + + instruments.inc + --------------- + +*/ + + +/* ----------------------------------------------------- instruments ------- */ + +#include "glass.inc" + +#ifdef (Jouets_Instruments) + // on fait quedalle + #debug "instruments deja inclus\r\n" +#else + #declare Jouets_Instruments = version; + +/* ----------------------------------------------------- instruments ------- */ + +#declare D_Cadran = 1.000 ; + +#declare Boitier_Cadran = object +{ +union + { + cylinder { <0, 0, 1>, <0, 0, 0.2>, D_Cadran } + cylinder { <0, 0, .3>, <0, 0, .25>, D_Cadran+.05 } + difference + { + cylinder { <0, 0, 1.2>, <0, 0, 0.9>, D_Cadran+0.05 } + cylinder { <0, 0, 1.3>, <0, 0, 0.8>, D_Cadran-0.05 } + } + } + +texture { T_Chrome_2C } +} + +/* voir le proggy 'make_cadran.f' */ +#declare Fond_Cadran = object +{ +difference + { + cylinder { <0, 0, 1.1>, <0, 0, 0.9>, D_Cadran } + cylinder { <0, 0, 1.2>, <0, 0, 0.8>, 0.06 } + } + +pigment + { + image_map { png "picz/cadran.png" interpolate 2 } + translate <-0.5, -0.5, 0> + scale + } +} + +/* ----------------------------------------------------- instruments ------- */ +#declare Aiguille_0 = object +{ +union + { + // le pivot de l'aiguille + cylinder { <0, 0, 1.07>, <0, 0, 1.22>, 0.06 } + + // le 'cylindre-machin' + cylinder { <0, 0, 1.16>, <0, 0, 1.21>, 0.15 } + + // le corps de l'aiguille + box { <-0.2, -0.033, 1.17>, } + } +texture { T_Copper_3C } +} +/* ----------------------------------------------------- instruments ------- */ +#declare Cadran_0 = object +{ +union + { + object { Boitier_Cadran } + object { Fond_Cadran } + object { Aiguille_0 } + } +} +/* ----------------------------------------------------- instruments ------- */ +#declare Cadran_1 = object +{ +union + { + object { Boitier_Cadran } + object { Fond_Cadran } + object { Aiguille_0 } + } +} +/* ----------------------------------------------------- instruments ------- */ +/* + * Bon, maintenant, il est temps de mettre des lumieres a ces trains + * donc on va commencer par des phares pour la loco electrique. + */ + +#declare Ampoule = object +{ +sphere { <0, 0, 0>, .25 } +texture { + pigment { color rgb<1.0, 1.0, 0.8> } + finish { ambient 0.8 diffuse 0.8 } + } +} + +#declare Coque_Phare_0 = object +{ + +union + { + difference + { + sphere { <0, 0, 0>, 1 } + sphere { <0, 0, 0>, .9 } + box { <-2, -2, 0>, <2, 2, 2> } + } + torus { 1, .06 rotate x*90 } + cylinder { <0, 0, -1>, <0, 0, -1.2>, .1 } + } +texture { T_Chrome_2C } +} + +#declare Vitre_Phare_0 = object +{ +union + { + // cylinder { <0, 0, -.01>, <0, 0, .01>, 1 } + torus { .8, .03 rotate x*90 } + torus { .6, .03 rotate x*90 } + torus { .4, .03 rotate x*90 } + torus { .2, .03 rotate x*90 } + } +interior { I_Glass } +texture { T_Glass1 } +} + +#declare Phare_0 = object +{ +union + { + object { Coque_Phare_0 } + object { Vitre_Phare_0 } + + light_source + { + <0, 0, 0> color White + looks_like { Ampoule } + translate z*-.5 + } + } +rotate y*180 +} +/* ----------------------------------------------------- instruments ------- */ +/* + Et un beau feu rouge pour mettre a l'arriere + de toutes ces somptueuses machines ? +*/ + +#declare Feu_Rouge = object +{ +box { <-1, 0, -1>, <1, 4, 0> } +pigment { color Red } +} + +/* ----------------------------------------------------- instruments ------- */ + +#debug "instruments loaded...\r\n" +#end + +/* ----------------------------------------------------- instruments ------- */ diff --git a/incs/locomotive.inc b/incs/locomotive.inc new file mode 100644 index 0000000..3e4fb59 --- /dev/null +++ b/incs/locomotive.inc @@ -0,0 +1,123 @@ +/* + 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 } + } +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 Gray40 } + 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> } + } +} + diff --git a/incs/monde.inc b/incs/monde.inc new file mode 100644 index 0000000..eef0d4e --- /dev/null +++ b/incs/monde.inc @@ -0,0 +1,39 @@ +/* + * + * + */ +/*------------------------------------------------------------------*/ + +plane { + y, 0 + pigment { + image_map { + png "picz/plancher.png" interpolate 2 + } + rotate x*90 + translate <-0.5, 0, -0.5> + scale <30, 1, 30> + } + } + + +sky_sphere { + pigment + { + gradient y + color_map + { + [0 color Khaki] + [0.1 color Gray20 ] + [0.4 color Orange] + [0.5 color Blue] + [.97 color LightBlue] + [1 color Khaki] + } + } + rotate 50 + scale 0.5 + translate -1 + } + +/*------------------------------------------------------------------*/ diff --git a/incs/plancher.inc b/incs/plancher.inc new file mode 100644 index 0000000..1dba092 --- /dev/null +++ b/incs/plancher.inc @@ -0,0 +1,37 @@ +/* + un beau plancher bien flashy + pour mettre mes beaux wagons + +*/ + +#declare Plancher_0 = object +{ +plane { + y, 0 + pigment { + image_map + { + png "picz/plancher.png" interpolate 4 + } + rotate x*90 + translate <-0.5, 0, -0.5> + scale <30, 1, 30> + } + } +} + +#declare Plancher_1 = object +{ +plane { + y, 0 + pigment { + image_map + { + png "picz/plancher.png" interpolate 4 + } + rotate x*90 + translate <-0.5, 0, -0.5> + scale <30, 1, 30> + } + } +} diff --git a/incs/poteaux.inc b/incs/poteaux.inc new file mode 100644 index 0000000..cc99540 --- /dev/null +++ b/incs/poteaux.inc @@ -0,0 +1,55 @@ +/* + poteaux.inc + ----------- + +*/ + +#include "woods.inc" + +#declare Poteau_0 = object +{ +union + { + box { <-2.2, 0, -2.2>, <2.2, 0.8, 2.2> } + cylinder { <0, 0, 0>, <0, 20, 0>, 0.75 } + } +texture { New_Penny scale 0.3 } +} + +// ----------------------------------------------------------------- + +#declare Base_Poteau_1 = object +{ +union + { + box { <-1, 0, -1>, <-0.08, 1.6, 1> } + box { <0.08, 0, -1>, <1, 1.6, 1> } + } +texture + { + pigment { color Gray75 } + normal { bumps 0.333 } + } +} + +#declare Bois_Poteau_1 = object +{ +union + { + cylinder { <0, 0, 0>, <0, 20, 0>, 0.42 } + cone { <0, 20, 0>, 0.64, <0, 23, 0>, 0.21 } + cylinder { <-2, 19, 0>, <2, 19, 0>, 0.20 } + } +texture { T_Wood12 rotate x*90 scale 3 } +} + +#declare Poteau_1 = object +{ +union + { + object { Base_Poteau_1 } + object { Bois_Poteau_1 } + } +} + +// ----------------------------------------------------------------- diff --git a/incs/rails.inc b/incs/rails.inc new file mode 100644 index 0000000..d41ac21 --- /dev/null +++ b/incs/rails.inc @@ -0,0 +1,90 @@ +/* + les rails, a la demande de Nicolas + ---------------------------------- + + Et bien, c'est pas si facile que c,a a faire... +*/ + +#include "woods.inc" +#include "metals.inc" + +#include "incs/constantes.inc" + +/* ---------------------------------------------------------------- */ + +#declare Une_Traverse = object +{ +box { <-8, 0, -1>, <8, 1, 1> } +texture { T_Wood7 rotate <3, 90, 2> } +} + +/* ---------------------------------------------------------------- */ + +#declare Rail_Droit = object +{ +difference + { + box { <-.4, 1, -50>, <.4, 2, 50> } + cylinder { <-.4, 1.6, -51>, <-.4, 1.6, 51>, .25 } + cylinder { < .4, 1.6, -51>, < .4, 1.6, 51>, .25 } + } + +texture + { + pigment { color rgb<0.3, 0.5, 0.7> } + finish { metallic 0.80 } + normal { bumps 0.70 scale 0.5 } + } +} + +/* ---------------------------------------------------------------- */ +/* new 7 janvier 2007 */ +#declare Tire_Fond = object +{ +union { + cylinder { <0, 0, 0>, <0, 0.1, 0>, 0.33 } + box { <-0.18, 0.099, -0.18>, <0.18, 0.2, 0.18> } + } +texture { + pigment { color Gray25 } + finish { metallic 0.95 } + } +} +/* ---------------------------------------------------------------- */ + +#declare Un_Rail_Droit = object +{ +#declare ecart = (ECARTEMENT/2) ; +// #fopen LOG "log.tirefond" write +union + { + object { Rail_Droit translate <-ecart, 0, 0> } + object { Rail_Droit translate < ecart, 0, 0> } + #declare foo = -9; + #while (foo <= 9) + // #write (LOG, foo, " ") + + #declare bar = foo * 5.15; + object { Une_Traverse translate z*bar } + object { Tire_Fond rotate y*(rand(RND)*360) + translate <-(ecart+1), 1.1, bar> } + object { Tire_Fond rotate y*(rand(RND)*360) + translate < (ecart+1), 1.1, bar> } + + #declare rangle = (rand(RND)*360); + // #write (LOG, rangle, " ") + object { Tire_Fond rotate y*rangle + translate <-(ecart-1), 1.1, bar> } + #declare rangle = (rand(RND)*360); + // #write (LOG, rangle, " ") + object { Tire_Fond rotate y*rangle + translate < (ecart-1), 1.1, bar> } + + #declare foo = foo+1; + // #write (LOG, "\n") + #end + } +// #fclose LOG +} + +/* ---------------------------------------------------------------- */ diff --git a/incs/ridelles.inc b/incs/ridelles.inc new file mode 100644 index 0000000..a5f0413 --- /dev/null +++ b/incs/ridelles.inc @@ -0,0 +1,48 @@ +/* + * LES JOUETS DE TONTON TH + * le wagon-ridelles + */ +//----------------------------------------------------------------- + +#declare Ridelle_Cote = object +{ +union { + cylinder { <0, 4.5, -11>, <0, 4.5, 11>, 0.5 } + box { <-.5, 4, -11>, <.5, 4.5, 11> } + #declare foo=0; + #while (foo<6) + box { <-.4, 0, foo*4-10-.3>, <.4, 4, foo*4-10+.3> } + #declare foo=foo+1; + #end + } +texture { + pigment { color MediumWood } + finish { roughness .83 } + } +translate y*5.75 +} + +#declare Ridelle_Bout = object +{ +box { <-4, 6.2, -0.3>, <4, 9.7, 0.3> } +texture { + pigment { color MediumWood } + finish { roughness .73 } + } +} + +//----------------------------------------------------------------- + +#declare Wagon_Ridelles = object +{ +union + { + object { Base_Courte } + object { Ridelle_Cote translate x*3.5 } + object { Ridelle_Cote translate x*-3.5 } + object { Ridelle_Bout translate z*11.3 } + object { Ridelle_Bout translate z*-11.3 } + } +} + +//----------------------------------------------------------------- diff --git a/incs/rotonde.inc b/incs/rotonde.inc new file mode 100644 index 0000000..c4ce4dd --- /dev/null +++ b/incs/rotonde.inc @@ -0,0 +1,74 @@ +/* + la rotonde ou on gare les trains +*/ + +#declare Largeur_Porte = 22; + + +#declare Rotonde_mur_exterieur = object +{ +difference + { + cylinder { <0, 0, 0>, <0, 40, 0>, 403 } + cylinder { <0, -1, 0>, <0, 41, 0>, 397 } + } +} + +#declare Rotonde_trou_porte = object +{ +box { <-4, -1, -Largeur_Porte>, <4, 45, Largeur_Porte> } +} + +#declare Rotonde_mur_interieur = object +{ +difference + { + cylinder { <0, 0, 0>, <0, 40, 0>, 203 } + cylinder { <0, -1, 0>, <0, 41, 0>, 197 } + #declare foo = 0; + #while (foo<189) + object { Rotonde_trou_porte translate x*200 rotate y*foo } + #declare foo = foo + 45; + #end + } +} + + +#declare Rotonde_1_arche = object +{ +union + { + box { <-2, 0, -Largeur_Porte>, < 2, 45, -9> } + box { <-2, 0, Largeur_Porte>, < 2, 45, 9> } + } + +} + +#declare Rotonde_les_arches = object +{ +union + { + #declare foo = 0; + #while (foo<189) + + object { Rotonde_1_arche translate x*191 rotate y*foo } + + #declare foo = foo + 45; + + #end + } + +} + +#declare Rotonde_0 = object +{ + +union + { + object { Rotonde_mur_interieur pigment { color Blue } } + object { Rotonde_mur_exterieur pigment { color Red } } + object { Rotonde_les_arches pigment { color Green } } + + object { Rotonde_1_arche pigment { color Cyan } rotate y*90 } + } +} diff --git a/incs/train.inc b/incs/train.inc new file mode 100644 index 0000000..ac1095d --- /dev/null +++ b/incs/train.inc @@ -0,0 +1,154 @@ +/* + * un petit train + * -------------- + * + * pas la peine de chercher la benne ici, elle est partie + * dans son fichier 'benne.inc'. + * + */ + +#declare Corps_Grande_Roue = object +{ +difference { + union { + cylinder { <-1, 0, 0>, <1, 0, 0>, 4 } + cylinder { <-1, 0, 0>, <0, 0, 0>, 4.3 } + } + cylinder { <-1.2, 0, 0> <-0.6, 0, 0>, 2.8 } + cylinder { < 1.2, 0, 0> < 0.6, 0, 0>, 3.2 } + #declare foo = 0; + #while (foo < 360) + #declare xx = sin(radians(foo))*2.0; + #declare yy = cos(radians(foo))*2.0; + + cylinder { <-2, xx, yy>, <2, xx, yy>, 0.56 } + + #declare foo = foo + 45; + #end + } +translate y*4 +pigment { color LightSteelBlue } +finish { phong 0.7 } +} + + +#declare Corps_Petite_Roue = object +{ +difference { + union { + cylinder { < 0, 0, 0>, <1, 0, 0>, 3 } + cylinder { <-1, 0, 0>, <0, 0, 0>, 3.3 } + } + cylinder { <-1.4, 0, 0> <-0.6, 0, 0>, 1.7 } + cylinder { < 1.4, 0, 0> < 0.6, 0, 0>, 1.7 } + + #declare foo = 0; + #while (foo < 360) + #declare xx = sin(radians(foo))*2.31; + #declare yy = cos(radians(foo))*2.31; + + sphere { <1.1, xx, yy>, 0.42 } + + #declare foo = foo + 45; + #end + } +translate y*3 +pigment { color LightSteelBlue } +finish { phong 0.7 } +} + +#declare Moyeu = object +{ +union { + intersection { + sphere { <0, 0, 0>, .69 } + box { <0, -2, -2>, <2, 2, 2> } + } + cylinder { <-3, 0, 0>, <0.01, 0, 0>, .33 } + } +texture { T_Chrome_2C } +} + +#declare Petite_Roue = object +{ +union { + object { Corps_Petite_Roue } + object { Moyeu translate <0.95, 3, 0> } + } +} + +#declare Grande_Roue = object +{ +union { + object { Corps_Grande_Roue } + object { Moyeu translate <0.95, 4, 0> } + } +} + +//----------------------------------------------------------------- + +#declare Chassis_Court = object +{ +union { + box { <-3.5, 0, -12>, <3.5, 2, 12> } + box { <-3.6, 0.7, -12.5>, <3.6, 1.3, 12.5> } + } +translate y*4.1 +texture { + pigment { color Yellow } + finish { phong 0.6 ambient 0.4 } + } +} + +#declare Chassis_Long = object +{ +union { + box { <-3.5, 0, -15.5>, <3.5, 2, 15.5> } + box { <-4, 0.5, -16>, <4, 1.5, 16> } + } +translate y*4.1 +texture { + pigment { color Yellow } + finish { phong 0.6 ambient 0.4 } + } +} + +//----------------------------------------------------------------- + +#declare Chassis_Boogie = object +{ +union { + box { <-3.85, 0, -3>, <3.85, 2, 3> } + cylinder { <0, 1, 0>, <0, 4, 0>, 2 } + } +translate y*2 +pigment { color Blue } +} + +#declare Boogie = object +{ +union + { + object { Chassis_Boogie } + object { Petite_Roue scale <-1, 1, 1> translate <-5.5, 0, -3.5> } + object { Petite_Roue translate < 5.5, 0, -3.5> } + object { Petite_Roue scale <-1, 1, 1> translate <-5.5, 0, 3.5> } + object { Petite_Roue translate < 5.5, 0, 3.5> } + } +} + +//----------------------------------------------------------------- + +#declare Base_Courte = object +{ +union + { + object { Chassis_Court } + object { Grande_Roue scale <-1, 1, 1> translate <-5.5, 0, -8> } + object { Grande_Roue translate < 5.5, 0, -8> } + object { Grande_Roue scale <-1, 1, 1> translate <-5.5, 0, 8> } + object { Grande_Roue translate < 5.5, 0, 8> } + } +} + +//----------------------------------------------------------------- diff --git a/incs/voiture.inc b/incs/voiture.inc new file mode 100644 index 0000000..e17888b --- /dev/null +++ b/incs/voiture.inc @@ -0,0 +1,24 @@ +/* + +*/ + + +#declare Roue = object +{ +torus { .5, .2 pigment { color Gray50 } finish { phong 0.8 } } +rotate x*90 +translate y*0.75 +} + + +#declare Voiture = object +{ +union + { + object { Roue translate <-2, 0, -1> } + object { Roue translate < 2, 0, -1> } + object { Roue translate <-2, 0, 1> } + object { Roue translate < 2, 0, 1> } + } + +} diff --git a/loco.pov b/loco.pov new file mode 100644 index 0000000..04969f2 --- /dev/null +++ b/loco.pov @@ -0,0 +1,83 @@ +/* + * + * + */ + +#include "colors.inc" +#include "metals.inc" + + +global_settings { + ambient_light <0.18, 0.25, 0.35> + assumed_gamma 1.0 /* pour povray 3.7 */ + } + + +/*------------------------------------------------------------------*/ +plane { + y, 0 + pigment { + image_map { png "picz/plancher.png" } + rotate x*90 + translate <-0.5, 0, -0.5> + scale <42, 1, 42> + } + normal { + dents 0.3 + scale 0.3 + } + } + +sky_sphere { + pigment { + gradient y + color_map + { + [0 color Khaki] + [0.4 color DarkGreen] + [0.5 color Blue] + [0.6 color LightBlue] + [1 color Khaki] + } + turbulence 0.42*2 + } + rotate 70 + scale 0.3123 + translate -1 + } + +#include "incs/rails.inc" +#include "incs/train.inc" +#include "incs/locomotive.inc" +// #include "electric.inc" + +union { + object { Un_Rail_Droit } + object { Un_Rail_Droit translate z*-100 } + object { Locomotive_Vapeur translate <0, 2, 15> } + rotate y*5 + } + + +union { + object { Un_Rail_Droit } + object { Un_Rail_Droit translate z*-100 } + // object { Locomotive_Electric translate y*2 } + translate x*42 + } + + +/*------------------------------------------------------------------*/ + +camera { + location <-42, 17.5, 32> + look_at <5, 9.7, 18> + angle 42 + } + +light_source { <150, 118, -150> color Gray70 } +light_source { <-170, 298, -250> color Gray70 } + +light_source { <-700, 200, 150> color White } + +/*------------------------------------------------------------------*/ diff --git a/omg-fuckingworld.txt b/omg-fuckingworld.txt new file mode 100644 index 0000000..e69de29 diff --git a/parking.pov b/parking.pov new file mode 100644 index 0000000..271e86b --- /dev/null +++ b/parking.pov @@ -0,0 +1,105 @@ +/* + * + * pour plus de details: oulala@chez.com + * + */ + +#include "colors.inc" +#include "metals.inc" + +/*------------------------------------------------------------------*/ + +disc { + <0, 0, 0>, y, 100 + pigment + { + brick Gray45, rgb<0.81, 0.42, 0.40> + rotate z*90 + } + scale 2 + rotate y*12 + } + +sky_sphere { + pigment + { + gradient y + color_map + { + [0 color Black] + [0.33 color <0.7, 0.3, 0.5> ] + [0.44 color <0.7, 0.3, 0.1> ] + [0.66 color Blue] + [1 color Black] + } + turbulence 0.42 + } + scale .042 + rotate 42 + } + +#include "incs/train.inc" +#include "incs/locomotive.inc" +#include "incs/electric.inc" +#include "incs/corail.inc" +#include "incs/citerne.inc" +#include "incs/ridelles.inc" +#include "incs/rails.inc" +#include "incs/benne.inc" +#include "incs/grue.inc" + +union { + object { Wagon_Benne translate y*2 } + object { Un_Rail_Droit } + translate x*-56 +} + +union { + object { Locomotive_Vapeur translate y*2 } + object { Un_Rail_Droit } + translate x*-32 +} + +union { + object { Wagon_Corail translate y*2 } + object { Un_Rail_Droit } + translate x*-9 +} + +union { + object { Wagon_Ridelles translate y*2 } + object { Un_Rail_Droit } + translate x*10 +} + +union { + object { Wagon_Citerne translate y*2 } + object { Un_Rail_Droit } + translate x*35 +} + +union { + object { Locomotive_Electric translate y*2 } + object { Un_Rail_Droit } + translate x*57 +} + +union { + object { Wagon_Grue translate y*2 } + object { Un_Rail_Droit } + translate x*79 +} +/*------------------------------------------------------------------*/ + +camera + { + location <94, 24, -170> + look_at <10, 0, 0> + angle 42 + } + +light_source { <150, 78, -250> color Gray20 } +light_source { <140, 140, -250> color Gray20 } +light_source { <-140, 210, -250> color Blue } + +/*------------------------------------------------------------------*/ diff --git a/picz/cadran.png b/picz/cadran.png new file mode 100644 index 0000000..4830fb1 Binary files /dev/null and b/picz/cadran.png differ diff --git a/picz/plancher.png b/picz/plancher.png new file mode 100644 index 0000000..36c99c1 Binary files /dev/null and b/picz/plancher.png differ diff --git a/plop.sh b/plop.sh new file mode 100755 index 0000000..cfbb181 --- /dev/null +++ b/plop.sh @@ -0,0 +1,4 @@ +#!/bin/bash + +make targa +make -j 2 all diff --git a/train.pov b/train.pov new file mode 100644 index 0000000..8c1087d --- /dev/null +++ b/train.pov @@ -0,0 +1,80 @@ + +/* + * + * pour plus de details: oulala@chez.com + * + */ + +#include "colors.inc" +#include "metals.inc" +#include "textures.inc" + +/*------------------------------------------------------------------*/ + +global_settings { ambient_light Gray10 } + +#include "incs/plancher.inc" + +object { Plancher_0 rotate y*3 } + +#declare DarkKhaki = color red 0.523529 green 0.523529 blue 0.272549; +sky_sphere { + pigment + { + gradient y + color_map + { + [0 color DarkKhaki] + [0.3 color Blue] + [1 color LightBlue] + } + turbulence 0.8 + } + rotate 55 + translate -1 + } + +#include "incs/rails.inc" +#include "incs/train.inc" +#include "incs/benne.inc" +#include "incs/citerne.inc" +#include "incs/ridelles.inc" +#include "incs/corail.inc" +#include "incs/locomotive.inc" + +union + { + object { Un_Rail_Droit } + object { Un_Rail_Droit translate z*-100 } + object { Un_Rail_Droit translate z* 100 } + + object { Locomotive_Vapeur translate <0, 2, -56> } + object { Wagon_Citerne translate <0, 2, -25> } + object { Wagon_Benne translate <0, 2, 2> } + object { Wagon_Corail translate <0, 2, 39> } + object { Wagon_Ridelles translate <0, 2, 78> } + } + +#include "incs/poteaux.inc" + +#declare foo = -300; +#while (foo < 300) + object { Poteau_1 translate <25, 0, foo> } + #declare foo = foo + 42; +#end + +/*------------------------------------------------------------------*/ + +camera + { + location <130, 18, 15> + look_at <0, 3, 10> + angle 70 + } + +light_source { <150, 98, -150> color Orange } +light_source { <170, 88, -170> color Yellow } + +// light_source { <100, 100, 50> color White } + +/*------------------------------------------------------------------*/