torcs - 1.2.2

src/modules/graphic/ssggraph.sav/grcarlight.h

Go to the documentation of this file.
00001 /***************************************************************************
00002 
00003     file        : grcarlight.h
00004     created     : Sun Oct 26 15:15:11 CET 2003
00005     copyright   : (C) 2003 by Christophe Guionneau                      
00006     version     : $Id: grcarlight.h,v 1.2 2003/11/08 16:37:18 torcs Exp $                                  
00007 
00008  ***************************************************************************/
00009 
00010 /***************************************************************************
00011  *                                                                         *
00012  *   This program is free software; you can redistribute it and/or modify  *
00013  *   it under the terms of the GNU General Public License as published by  *
00014  *   the Free Software Foundation; either version 2 of the License, or     *
00015  *   (at your option) any later version.                                   *
00016  *                                                                         *
00017  ***************************************************************************/
00018  
00024 #ifndef _GRCARLIGHT_H_
00025 #define _GRCARLIGHT_H_
00026 
00027 class ssgVtxTableCarlight : public ssgVtxTable
00028 {
00029 protected:
00030   int on ;
00031   float size;
00032   sgVec3 pos;
00033   double factor;
00034     
00035   virtual void copy_from ( ssgVtxTableCarlight *src, int clone_flags ) ;
00036 public:
00037   virtual ssgBase *clone ( int clone_flags = 0 ) ;
00038   ssgVtxTableCarlight () ;
00039   ssgVtxTableCarlight ( ssgVertexArray   *vtx,
00040                         double s, sgVec3 p);
00041   int setSize (double s) { size=s ; return 0; }
00042   void setOnOff (int s) { on=s ; }
00043   int isOnOff () { return(on) ; }
00044   sgVec3 * getPos() { return(&pos);}
00045   void setFactor(double f){factor=f;}
00046 
00047   void draw_geometry();
00048   
00049 
00050   virtual void drawHighlight ( sgVec4 colour ){ssgVtxTable::drawHighlight(colour);} 
00051   virtual void drawHighlight ( sgVec4 colour, int i ){ssgVtxTable::drawHighlight(colour,i);} 
00052 
00053   virtual void pick ( int baseName )  { ssgVtxTable::pick(baseName);}
00054   virtual void transform ( const sgMat4 m )  { ssgVtxTable::transform(m);}
00055 
00056   virtual void setVertices  ( ssgVertexArray   *vl ) {  ssgVtxTable::setVertices(vl);}
00057   virtual void setNormals   ( ssgNormalArray   *nl ) {  ssgVtxTable::setNormals(nl);}
00058   virtual void setTexCoords ( ssgTexCoordArray *tl ) {  ssgVtxTable::setTexCoords(tl);}
00059   virtual void setColours   ( ssgColourArray   *cl ) {  ssgVtxTable::setColours(cl);}
00060 
00061   int getNumVertices  () { return vertices  -> getNum () ; }
00062   int getNumNormals   () { return normals   -> getNum () ; }
00063   int getNumColours   () { return colours   -> getNum () ; }
00064   int getNumTexCoords () { return texcoords -> getNum () ; }
00065   int getNumTriangles ()  { return ssgVtxTable::getNumTriangles();}
00066   void getTriangle ( int n, short *v1, short *v2, short *v3 )  { ssgVtxTable::getTriangle(n,v1,v2,v3);}
00067   int  getNumLines ()  {return ssgVtxTable::getNumLines();}
00068   void getLine ( int n, short *v1, short *v2 )  { ssgVtxTable::getLine(n,v1,v2);}
00069 
00070 
00071   virtual ~ssgVtxTableCarlight (void);
00072 
00073   virtual const char *getTypeName(void)  { return ssgVtxTable::getTypeName();}
00074 
00075   virtual void print ( FILE *fd = stderr, char *indent = "", int how_much = 2) { ssgVtxTable::print(fd,indent,how_much);}
00076   virtual int load ( FILE *fd )  {return  ssgVtxTable::load(fd);}
00077   virtual int save ( FILE *fd )  {return  ssgVtxTable::save(fd);}
00078 
00079 
00080 };
00081 
00082 #define MAX_NUMBER_LIGHT 4+4+4+2
00083 /*
00084    4 front 
00085    4 rear
00086    4 break
00087    2 reverse
00088  */
00089 #define LIGHT_TYPE_FRONT                1
00090 #define LIGHT_TYPE_FRONT2               2
00091 #define LIGHT_TYPE_REAR                 3
00092 #define LIGHT_TYPE_REAR2                4
00093 #define LIGHT_TYPE_BRAKE                5
00094 #define LIGHT_TYPE_BRAKE2               6
00095 #define LIGHT_TYPE_REVERSE              7
00096 #define LIGHT_NO_TYPE                   0
00097 
00098 typedef struct tgrCarlight_t
00099 {
00100   ssgVtxTableCarlight * lightArray[MAX_NUMBER_LIGHT];
00101   ssgVtxTableCarlight * lightCurr[MAX_NUMBER_LIGHT];
00102   int                  lightType[MAX_NUMBER_LIGHT];
00103   int numberCarlight;
00104   ssgBranch *lightAnchor;
00105 }tgrCarlight;
00106 
00107 extern void grInitCarlight(int index); /* number of cars*/
00108 extern void grAddCarlight(tCarElt *car, int type, sgVec3 pos, double size);
00109 extern void grUpdateCarlight(tCarElt *car, class cGrPerspCamera *curCam, int dispflag);
00110 extern void grShudownCarlight(void);
00111 
00112 
00113 #endif /* _GRCARLIGHT_H_ */ 

Generated at Thu Feb 26 21:52:29 2004 for torcs by doxygen 1.3.3 written by Dimitri van Heesch, © 1997-1999
TORCS © Eric Espié 1999, 2002.