/* G-class loco: Coupled Length 19.82m (Vehicles) Width=9'8"=2.9464m; Height=just a fraction over 14'=4.2672m (Guess based on B) Sloped sides prob account for 20"=.508m on each side (Guess based on N) As with Truck.POV, 1 unit = 1m. */ #include "bogie.inc" #declare NumberPlate=union { //Need args for text, width; in the meantime: #declare txt="G541" #declare wdth=.95; //or maybe we can calc this from the txt? //.95 for "G541"; .75 for "B74"; .63 for "H 2"; .35 for single letters eg on steam locos box {<-wdth/2,-0.2,0>, pigment {color rgb 0}} //This and all others need round corners difference { box {<-wdth/2,-0.2,-0.0051>,} box {<-wdth/2+.01,-0.2+.01,-0.004>,} pigment {color rgb 1} } cylinder {<-wdth/2+.03,0.0>,<-wdth/2+.03,0,-.01>,.005 pigment {color rgb 1}} cylinder {<+wdth/2-.03,0.0>,<+wdth/2-.03,0,-.01>,.005 pigment {color rgb 1}} text {ttf "e:\os2\mdos\winos2\system\arialbd.ttf" txt .015,0 translate <-wdth*1.2,-.35,-.03> scale .35 pigment {color rgb 1}} } #declare Locos_G_FA=union { difference { box {<-9.91,1.2,-1.4732>,<9.91,4.2672,1.4732>} plane {<0,-0.6,0.46>,0 translate <0,4.22,-.85>} plane {<0,-0.6,0.46>,0 translate <0,4.22,-.85> rotate y*180} pigment {color rgb <0,.25,0>} //cab windows slope in a bit; we have to gouge out a triangular sliver there. //What's the best way to do windows in cab and engine room? //And cooling gills etc? //And what about paintwork? } box {<-3,1.19,-1.4732>,<3,.2,1.4732> pigment {color rgb .01}} //Fuel tank; needs measuring object {NumberPlate translate x*1 translate y*2.5 translate z*-1.4733} object {Bogie_NClass translate <-6.5,0,0>} object {Bogie_NClass translate <+6.5,0,0>} }