# Home    # nevrax.com   
Nevrax
Nevrax.org
#News
#Mailing-list
#Documentation
#CVS
#Bugs
#License
Docs
 
Documentation  
Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members   Related Pages   Search  

NL3D::CClipTrav Class Reference

The clip traversal. More...

#include <clip_trav.h>

Inheritance diagram for NL3D::CClipTrav:

NL3D::ITravCameraScene NL3D::ITravScene NL3D::ITrav NLMISC::CRefCount List of all members.

Public Methods

 CClipTrav ()
 Constructor. More...

 ~CClipTrav ()
void registerCluster (CCluster *pCluster)
void unregisterCluster (CCluster *pCluster)
void setHrcTrav (CHrcTrav *trav)
 Setup the render traversal (else traverse() won't work). More...

void setAnimDetailTrav (CAnimDetailTrav *trav)
void setLoadBalancingTrav (CLoadBalancingTrav *trav)
void setLightTrav (CLightTrav *trav)
void setRenderTrav (CRenderTrav *trav)
void setQuadGridClipManager (CQuadGridClipManager *mgr)
bool fullSearch (std::vector< CCluster * > &result, CInstanceGroup *pIG, CVector &pos)
void setSonsOfAncestorSkeletonModelGroup (CRootModel *m)
ITrav/ITravScene Implementation.
IObscreateDefaultObs () const
 This method must create a default observer for this traversal. More...

NLMISC::CClassId getClassId () const
 This function must return the Unique Ident for this traversal class. More...

sint getRenderOrder () const
 Return the order of the traversal. More...

void traverse ()
 Execute the traversal. More...

Visible List mgt. Those visible observers are updated each traverse(). Only support Transform Type obs.
void addVisibleObs (CTransformClipObs *obs)

Public Attributes

sint64 CurrentDate
CClusterRootCluster
CCameraCamera
CQuadGrid< CCluster * > Accel
bool ForceNoFrustumClip
 for CQuadGridClipClusterClipObs only. More...

CRootModelSonsOfAncestorSkeletonModelGroup
FOR OBSERVERS ONLY. (Read only)
Those variables are valid only in traverse().

std::vector< CPlane > ViewPyramid
 Vision Pyramid (6 normalized planes) in the view basis. More...

std::vector< CPlane > WorldFrustumPyramid
 Vision Pyramid (6 normalized planes) in the world basis. NB: NOT modified by the ClusterSystem. More...

std::vector< CPlane > WorldPyramid
 Vision Pyramid in the world basis. NB: may be modified by the ClusterSystem. More...

CHrcTravHrcTrav
 Shortcut to the Rdr Traversals (to add the models rdr observers). More...

CAnimDetailTravAnimDetailTrav
CLoadBalancingTravLoadBalancingTrav
CLightTravLightTrav
CRenderTravRenderTrav

Private Methods

void loadBalanceSkeletonCLod ()

Private Attributes

std::vector< CTransformClipObs * > _VisibleList
CQuadGridClipManager_QuadGridClipManager
std::vector< CSkeletonKey_TmpSortSkeletons

Friends

class IBaseClipObs

Detailed Description

The clip traversal.

The purpose of this traversal is to insert in the post-clip Traversal the observers which are said to be not clipped. Some observers may do something else.

Observer should use the IBaseHrcObs->clip() method to implement their observer, or completly redefine the traverse() method.

USER RULES: Before using traverse() on a clip traversal, you should:

NB: see CScene for 3d conventions (orthonormal basis...)
See also:
CScene IBaseClipObs
Author:
Lionel Berenguier , Nevrax France
Date:
2000

Definition at line 91 of file clip_trav.h.


Constructor & Destructor Documentation

NL3D::CClipTrav::CClipTrav  
 

Constructor.

Definition at line 55 of file clip_trav.cpp.

References _QuadGridClipManager, _VisibleList, Accel, AnimDetailTrav, CurrentDate, ForceNoFrustumClip, HrcTrav, LightTrav, LoadBalancingTrav, and RenderTrav.

NL3D::CClipTrav::~CClipTrav  
 

Definition at line 73 of file clip_trav.cpp.


Member Function Documentation

void NL3D::CClipTrav::addVisibleObs CTransformClipObs   obs
 

Definition at line 425 of file clip_trav.cpp.

References _VisibleList.

IObs * NL3D::CClipTrav::createDefaultObs   const [virtual]
 

This method must create a default observer for this traversal.

Any model which doesn't provide (by registerObs() or by inheritance) an observer for this view will be linked with this default observer.

Implements NL3D::ITrav.

Definition at line 78 of file clip_trav.cpp.

bool NL3D::CClipTrav::fullSearch std::vector< CCluster * > &    result,
CInstanceGroup   pIG,
CVector &    pos
 

Definition at line 84 of file clip_trav.cpp.

Referenced by traverse.

NLMISC::CClassId NL3D::CClipTrav::getClassId   const [inline, virtual]
 

This function must return the Unique Ident for this traversal class.

Implements NL3D::ITrav.

Definition at line 102 of file clip_trav.h.

sint NL3D::CClipTrav::getRenderOrder   const [inline, virtual]
 

Return the order of the traversal.

This is usefull for CScene::render() method. It indicate when the traversal is called. Order for basic traversal are:

Implements NL3D::ITravScene.

Definition at line 103 of file clip_trav.h.

void NL3D::CClipTrav::loadBalanceSkeletonCLod   [private]
 

Definition at line 433 of file clip_trav.cpp.

References _TmpSortSkeletons, min, NL3D::OptFastFloor, and NL3D::ITravScene::Scene.

Referenced by traverse.

void NL3D::CClipTrav::registerCluster CCluster   pCluster
 

Definition at line 394 of file clip_trav.cpp.

References Accel.

void NL3D::CClipTrav::setAnimDetailTrav CAnimDetailTrav   trav
 

Definition at line 364 of file clip_trav.cpp.

References AnimDetailTrav.

void NL3D::CClipTrav::setHrcTrav CHrcTrav   trav
 

Setup the render traversal (else traverse() won't work).

Definition at line 358 of file clip_trav.cpp.

References HrcTrav.

void NL3D::CClipTrav::setLightTrav CLightTrav   trav
 

Definition at line 376 of file clip_trav.cpp.

References LightTrav.

void NL3D::CClipTrav::setLoadBalancingTrav CLoadBalancingTrav   trav
 

Definition at line 370 of file clip_trav.cpp.

References LoadBalancingTrav.

void NL3D::CClipTrav::setQuadGridClipManager CQuadGridClipManager   mgr
 

Definition at line 388 of file clip_trav.cpp.

References _QuadGridClipManager.

void NL3D::CClipTrav::setRenderTrav CRenderTrav   trav
 

Definition at line 382 of file clip_trav.cpp.

References RenderTrav.

void NL3D::CClipTrav::setSonsOfAncestorSkeletonModelGroup CRootModel   m
 

Definition at line 418 of file clip_trav.cpp.

References SonsOfAncestorSkeletonModelGroup.

void NL3D::CClipTrav::traverse   [virtual]
 

Execute the traversal.

CScene::render() will call this method, to execute the traversal.

Implements NL3D::ITravScene.

Definition at line 108 of file clip_trav.cpp.

References _QuadGridClipManager, _VisibleList, Accel, AnimDetailTrav, NL3D::ITravCameraScene::Bottom, Camera, NL3D::ITravCameraScene::CamPos, CurrentDate, NL3D::ITravCameraScene::Far, fullSearch, NL3D::ITrav::getFirstParent, NL3D::ITrav::getNextParent, H_AUTO, HrcTrav, NL3D::ITravCameraScene::Left, LightTrav, NL3D::ITrav::link, loadBalanceSkeletonCLod, LoadBalancingTrav, NL3D::ITravCameraScene::Near, NL3D_CLIP_PLANE_BOTTOM, NL3D_CLIP_PLANE_FAR, NL3D_CLIP_PLANE_LEFT, NL3D_CLIP_PLANE_NEAR, NL3D_CLIP_PLANE_RIGHT, NL3D_CLIP_PLANE_TOP, nlassert, RenderTrav, NL3D::ITravCameraScene::Right, NL3D::ITrav::Root, RootCluster, s, NL3D::ITravScene::Scene, SonsOfAncestorSkeletonModelGroup, NL3D::ITravCameraScene::Top, NL3D::ITrav::unlink, NL3D::ITravCameraScene::ViewMatrix, ViewPyramid, WorldFrustumPyramid, and WorldPyramid.

void NL3D::CClipTrav::unregisterCluster CCluster   pCluster
 

Definition at line 400 of file clip_trav.cpp.

References Accel.


Friends And Related Function Documentation

friend class IBaseClipObs [friend]
 

Definition at line 167 of file clip_trav.h.


Member Data Documentation

CQuadGridClipManager* NL3D::CClipTrav::_QuadGridClipManager [private]
 

Definition at line 171 of file clip_trav.h.

Referenced by CClipTrav, setQuadGridClipManager, and traverse.

std::vector<CSkeletonKey> NL3D::CClipTrav::_TmpSortSkeletons [private]
 

Definition at line 184 of file clip_trav.h.

Referenced by loadBalanceSkeletonCLod.

std::vector<CTransformClipObs*> NL3D::CClipTrav::_VisibleList [private]
 

Definition at line 169 of file clip_trav.h.

Referenced by addVisibleObs, CClipTrav, and traverse.

CQuadGrid<CCluster*> NL3D::CClipTrav::Accel
 

Definition at line 154 of file clip_trav.h.

Referenced by CClipTrav, registerCluster, traverse, and unregisterCluster.

CAnimDetailTrav* NL3D::CClipTrav::AnimDetailTrav
 

Definition at line 144 of file clip_trav.h.

Referenced by CClipTrav, setAnimDetailTrav, and traverse.

CCamera* NL3D::CClipTrav::Camera
 

Definition at line 152 of file clip_trav.h.

Referenced by traverse.

sint64 NL3D::CClipTrav::CurrentDate
 

Definition at line 149 of file clip_trav.h.

Referenced by CClipTrav, and traverse.

bool NL3D::CClipTrav::ForceNoFrustumClip
 

for CQuadGridClipClusterClipObs only.

This flag means observers traversed do not need to clip, they are sure to be visible.

Definition at line 159 of file clip_trav.h.

Referenced by CClipTrav.

CHrcTrav* NL3D::CClipTrav::HrcTrav
 

Shortcut to the Rdr Traversals (to add the models rdr observers).

Definition at line 143 of file clip_trav.h.

Referenced by CClipTrav, setHrcTrav, and traverse.

CLightTrav* NL3D::CClipTrav::LightTrav
 

Definition at line 146 of file clip_trav.h.

Referenced by CClipTrav, setLightTrav, and traverse.

CLoadBalancingTrav* NL3D::CClipTrav::LoadBalancingTrav
 

Definition at line 145 of file clip_trav.h.

Referenced by CClipTrav, setLoadBalancingTrav, and traverse.

CRenderTrav* NL3D::CClipTrav::RenderTrav
 

Definition at line 147 of file clip_trav.h.

Referenced by CClipTrav, setRenderTrav, and traverse.

CCluster* NL3D::CClipTrav::RootCluster
 

Definition at line 151 of file clip_trav.h.

Referenced by traverse.

CRootModel* NL3D::CClipTrav::SonsOfAncestorSkeletonModelGroup
 

Definition at line 163 of file clip_trav.h.

Referenced by setSonsOfAncestorSkeletonModelGroup, and traverse.

std::vector<CPlane> NL3D::CClipTrav::ViewPyramid
 

Vision Pyramid (6 normalized planes) in the view basis.

Definition at line 137 of file clip_trav.h.

Referenced by traverse.

std::vector<CPlane> NL3D::CClipTrav::WorldFrustumPyramid
 

Vision Pyramid (6 normalized planes) in the world basis. NB: NOT modified by the ClusterSystem.

Definition at line 139 of file clip_trav.h.

Referenced by traverse.

std::vector<CPlane> NL3D::CClipTrav::WorldPyramid
 

Vision Pyramid in the world basis. NB: may be modified by the ClusterSystem.

Definition at line 141 of file clip_trav.h.

Referenced by traverse.


The documentation for this class was generated from the following files: