00001
00007 00008 00009 00010 00011 00012 00013 00014 00015 00016 00017 00018 00019 00020 00021 00022 00023 00024
00025
00026 #ifndef NL_LIGHT_TRAV_H
00027 #define NL_LIGHT_TRAV_H
00028
00029 #include "nel/3d/trav_scene.h"
00030
00031
00032 namespace NL3D
00033 {
00034
00035
00036 using NLMISC::CVector;
00037 using NLMISC::CPlane;
00038 using NLMISC::CMatrix;
00039
00040
00041 class IBaseHrcObs;
00042 class IBaseClipObs;
00043
00044
00045
00046
00047 const NLMISC::CClassId LightTravId= NLMISC::CClassId(0x328f500a, 0x57600db9);
00048
00049
00050 00063 class CLightTrav : public ITravScene
00064 {
00065 public:
00066
00068 CLightTrav();
00069
00070
00071 IObs *createDefaultObs() const;
00072 NLMISC::CClassId getClassId() const {return LightTravId;}
00073 sint getRenderOrder() const {return 3000;}
00074 void traverse()
00075 {
00076 if(Root)
00077 Root->traverse(NULL);
00078 }
00079
00080 };
00081
00082
00083
00084 00103 class IBaseLightObs : public IObs
00104 {
00105 public:
00107 IBaseHrcObs *HrcObs;
00108 IBaseClipObs *ClipObs;
00109
00110
00111 public:
00112
00114 IBaseLightObs()
00115 {
00116 HrcObs=NULL;
00117 ClipObs= NULL;
00118 }
00120 virtual void init();
00121 };
00122
00123
00124 00137 class CDefaultLightObs : public IBaseLightObs
00138 {
00139 public:
00140 void traverse(IObs * caller)
00141 {
00142 traverseSons();
00143 }
00144 };
00145
00146
00147 }
00148
00149
00150 #endif // NL_LIGHT_TRAV_H
00151
00152