Home | nevrax.com |
|
light_trav.hGo to the documentation of this file.00001 00007 /* Copyright, 2000 Nevrax Ltd. 00008 * 00009 * This file is part of NEVRAX NEL. 00010 * NEVRAX NEL is free software; you can redistribute it and/or modify 00011 * it under the terms of the GNU General Public License as published by 00012 * the Free Software Foundation; either version 2, or (at your option) 00013 * any later version. 00014 00015 * NEVRAX NEL is distributed in the hope that it will be useful, but 00016 * WITHOUT ANY WARRANTY; without even the implied warranty of 00017 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00018 * General Public License for more details. 00019 00020 * You should have received a copy of the GNU General Public License 00021 * along with NEVRAX NEL; see the file COPYING. If not, write to the 00022 * Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, 00023 * MA 02111-1307, USA. 00024 */ 00025 00026 #ifndef NL_LIGHT_TRAV_H 00027 #define NL_LIGHT_TRAV_H 00028 00029 #include "3d/trav_scene.h" 00030 #include "3d/lighting_manager.h" 00031 00032 00033 namespace NL3D 00034 { 00035 00036 00037 using NLMISC::CVector; 00038 using NLMISC::CPlane; 00039 using NLMISC::CMatrix; 00040 00041 00042 class IBaseLightObs; 00043 class CTransform; 00044 class CRootModel; 00045 00046 00047 // *************************************************************************** 00048 // ClassIds. 00049 const NLMISC::CClassId LightTravId= NLMISC::CClassId(0x328f500a, 0x57600db9); 00050 00051 00052 // *************************************************************************** 00065 class CLightTrav : public ITravScene 00066 { 00067 public: 00068 00070 CLightTrav(); 00071 00073 00074 IObs *createDefaultObs() const; 00075 NLMISC::CClassId getClassId() const {return LightTravId;} 00076 sint getRenderOrder() const {return 3000;} 00077 void traverse(); 00079 00080 00081 // False by default. setuped by CScene 00082 bool LightingSystemEnabled; 00083 00084 00086 00087 00088 void clearLightedList(); 00090 void addLightedObs(IBaseLightObs *o); 00092 00093 00095 CLightingManager LightingManager; 00096 00097 00099 void setLightModelRoot(CRootModel *lightModelRoot); 00100 00101 00102 // ******************** 00103 public: 00104 00106 // @{ 00107 // The root of light models. 00108 CRootModel *LightModelRoot; 00109 // @} 00110 00111 private: 00112 00113 // A grow only list of observers to be lighted. 00114 std::vector<IBaseLightObs*> _LightedList; 00115 00116 }; 00117 00118 00119 00120 } 00121 00122 00123 #endif // NL_LIGHT_TRAV_H 00124 00125 /* End of light_trav.h */ |