#include <anim_detail_trav.h>
Inheritance diagram for NL3D::CAnimDetailTrav:

NB: see CScene for 3d conventions (orthonormal basis...)
Nevrax France
Definition at line 57 of file anim_detail_trav.h.
Public Member Functions | |
| void | addVisibleModel (CTransform *model) |
| CAnimDetailTrav () | |
| Constructor. | |
| void | clearVisibleList () |
| void | reserveVisibleList (uint numModels) |
ITrav/ITravScene Implementation. | |
| void | traverse () |
Data Fields | |
| sint64 | CurrentDate |
| CScene * | Scene |
Private Member Functions | |
| void | traverseHrcRecurs (CTransform *model) |
| traverse the model recusrively, followin Hrc hierarchy | |
Private Attributes | |
| uint32 | _CurrentNumVisibleModels |
| std::vector< CTransform * > | _VisibleList |
|
|
Constructor.
Definition at line 44 of file anim_detail_trav.cpp. References _CurrentNumVisibleModels, _VisibleList, and CurrentDate.
00045 {
00046 CurrentDate=0;
00047 // prepare some space
00048 _VisibleList.resize(1024);
00049 _CurrentNumVisibleModels= 0;
00050 }
|
|
|
Definition at line 84 of file anim_detail_trav.h. References _CurrentNumVisibleModels, and _VisibleList. Referenced by NL3D::CClipTrav::clipSkeletonShadowMaps(), NL3D::CParticleSystemModel::insertInVisibleList(), and NL3D::CTransform::traverseClip().
00085 {
00086 _VisibleList[_CurrentNumVisibleModels]= model;
00087 _CurrentNumVisibleModels++;
00088 }
|
|
|
Definition at line 53 of file anim_detail_trav.cpp. References _CurrentNumVisibleModels. Referenced by NL3D::CClipTrav::traverse().
00054 {
00055 _CurrentNumVisibleModels= 0;
00056 }
|
|
|
Definition at line 113 of file anim_detail_trav.cpp. References _VisibleList, and uint. Referenced by NL3D::CScene::createModel().
00114 {
00115 // enlarge only.
00116 if(numModels>_VisibleList.size())
00117 _VisibleList.resize(numModels);
00118 }
|
|
|
render after Clip and before light. This order is important for possibles lights sticked to bones of skeletons. Definition at line 60 of file anim_detail_trav.cpp. References NL3D::CTransform::_AncestorSkeletonModel, _CurrentNumVisibleModels, _VisibleList, CurrentDate, H_AUTO, NL3D::CTransform::isSkeleton(), NL3D::CTransform::traverseAnimDetail(), traverseHrcRecurs(), and uint. Referenced by NL3D::CScene::render().
00061 {
00062 H_AUTO( NL3D_TravAnimDetail );
00063
00064 // Inc the date.
00065 CurrentDate++;
00066
00067 // Traverse all nodes of the visibility list.
00068 for(uint i=0; i<_CurrentNumVisibleModels; i++)
00069 {
00070 CTransform *model= _VisibleList[i];
00071 // If this object has an ancestorSkeletonModel
00072 if(model->_AncestorSkeletonModel)
00073 {
00074 // then just skip it! because it will be parsed hierarchically by the first
00075 // skeletonModel whith _AncestorSkeletonModel==NULL. (only if this one is visible)
00076 continue;
00077 }
00078 else
00079 {
00080 // If this is a skeleton model, and because _AncestorSkeletonModel==NULL,
00081 // then it means that it is the Root of a hierarchy of transform that have
00082 // _AncestorSkeletonModel!=NULL.
00083 if( model->isSkeleton() )
00084 {
00085 // Then I must update hierarchically me and the sons (according to HRC hierarchy graph) of this model.
00086 traverseHrcRecurs(model);
00087 }
00088 else
00089 {
00090 // else, just traverse AnimDetail, an do nothing for Hrc sons
00091 model->traverseAnimDetail();
00092 }
00093 }
00094 }
00095 }
|
|
|
traverse the model recusrively, followin Hrc hierarchy
Definition at line 99 of file anim_detail_trav.cpp. References NL3D::CTransform::hrcGetChild(), NL3D::CTransform::hrcGetNumChildren(), num, NL3D::CTransform::traverseAnimDetail(), and uint. Referenced by traverse().
00100 {
00101 // first, just doIt me
00102 model->traverseAnimDetail();
00103
00104
00105 // then doIt my sons in Hrc.
00106 uint num= model->hrcGetNumChildren();
00107 for(uint i=0;i<num;i++)
00108 traverseHrcRecurs(model->hrcGetChild(i));
00109 }
|
|
|
Definition at line 101 of file anim_detail_trav.h. Referenced by addVisibleModel(), CAnimDetailTrav(), clearVisibleList(), and traverse(). |
|
|
Definition at line 100 of file anim_detail_trav.h. Referenced by addVisibleModel(), CAnimDetailTrav(), reserveVisibleList(), and traverse(). |
|
|
Definition at line 77 of file anim_detail_trav.h. Referenced by CAnimDetailTrav(), and traverse(). |
|
|
Definition at line 55 of file trav_scene.h. Referenced by NL3D::CScene::CScene(), NL3D::CMeshMRMSkinnedGeom::profileSceneRender(), NL3D::CMeshMRMGeom::profileSceneRender(), and NL3D::CMeshGeom::profileSceneRender(). |
1.3.6