Home | nevrax.com |
|
anim_detail_trav.hGo to the documentation of this file.00001 00007 /* Copyright, 2001 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_ANIM_DETAIL_TRAV_H 00027 #define NL_ANIM_DETAIL_TRAV_H 00028 00029 #include "nel/misc/types_nl.h" 00030 #include "nel/misc/matrix.h" 00031 #include "nel/misc/plane.h" 00032 #include "3d/trav_scene.h" 00033 00034 00035 namespace NL3D 00036 { 00037 00038 00039 using NLMISC::CVector; 00040 using NLMISC::CPlane; 00041 using NLMISC::CMatrix; 00042 00043 00044 class IBaseAnimDetailObs; 00045 class CClipTrav; 00046 class CTransformAnimDetailObs; 00047 00048 // *************************************************************************** 00049 // ClassIds. 00050 const NLMISC::CClassId AnimDetailTravId=NLMISC::CClassId(0x373f6772, 0x3f562fa3); 00051 00052 00053 00054 // *************************************************************************** 00066 class CAnimDetailTrav : public ITravScene 00067 { 00068 public: 00069 00071 CAnimDetailTrav(); 00072 00073 00075 00076 IObs *createDefaultObs() const; 00077 NLMISC::CClassId getClassId() const {return AnimDetailTravId;} 00081 sint getRenderOrder() const {return 2200;} 00082 void traverse(); 00084 00085 00086 public: 00087 // ONLY FOR OBSERVERS. 00088 00089 sint64 CurrentDate; // The current date of the traversal, usefull for evaldetail just one time.. 00090 00091 00092 // For clipTrav. cleared at beginning of CClipTrav::traverse 00093 void clearVisibleList(); 00094 00095 // For ClipObservers only. NB: list is cleared at begining of traverse(). NB: only CTransform are supported 00096 void addVisibleObs(CTransformAnimDetailObs *obs); 00097 00098 00099 // ******************** 00100 private: 00102 void traverseHrcRecurs(IBaseAnimDetailObs *adObs); 00103 00104 // traverse list of model visible and usefull to animDetail. 00105 std::vector<CTransformAnimDetailObs*> _VisibleList; 00106 00107 }; 00108 00109 00110 } // NL3D 00111 00112 00113 #endif // NL_ANIM_DETAIL_TRAV_H 00114 00115 /* End of anim_detail_trav.h */ |