# 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::CCluster Class Reference

CCluster. More...

#include <cluster.h>

Inheritance diagram for NL3D::CCluster:

NL3D::CTransform NL3D::IModel NL3D::ITransformable NLMISC::CRefCount NL3D::IAnimatable List of all members.

Public Methods

 CCluster ()
 ~CCluster ()
bool makeVolume (NLMISC::CVector &p1, NLMISC::CVector &p2, NLMISC::CVector &p3)
 Make the cluster volume from a plane made with 3 points All the faces passed must be connected with at least one of the others return false if the plane we want to add make the volume concave. More...

void applyMatrix (const NLMISC::CMatrix &m)
 Apply the given matrix to this cluster local / world volume & bbox. More...

bool isIn (NLMISC::CVector &p)
 return true if the vertex is in the cluster volume. More...

bool isIn (NLMISC::CAABBox &b)
 return true if the Bounding box intersect the cluster. More...

bool isIn (NLMISC::CVector &center, float size)
 return true if the Sphere intersect the cluster. More...

NLMISC::CAABBoxgetBBox ()
void resetPortalLinks ()
 Linking. More...

void link (CPortal *portal)
void unlink (CPortal *portal)
uint32 getNbPortals ()
CPortalgetPortal (uint32 pos)
CClusterClipObsgetClipObs ()
void serial (NLMISC::IStream &f)
 Serial. More...

void setWorldMatrix (const NLMISC::CMatrix &WM)
bool isRoot ()

Static Public Methods

void registerBasic ()
 Call at the begining of the program, to register the model, and the basic observers. More...


Public Attributes

CQuadGrid< CCluster * >::CIterator AccelIt
std::string Name
bool FatherVisible
bool VisibleFromFather
CCluster * Father
std::vector< CCluster * > Children
CInstanceGroupGroup

Private Methods

void unlinkFromClusterTree ()
void unlinkFromParent ()
void unlinkSons ()

Static Private Methods

IModelcreator ()

Private Attributes

CClusterClipObs_Obs
 Shortcut to the clip observer. More...

std::vector< CPortal * > _Portals
 Portals list. More...

NLMISC::CAABBox _LocalBBox
 Local bounding box and volume ----------------------------- The bounding box of the volume. More...

std::vector< NLMISC::CPlane_LocalVolume
 All planes are oriented to the exterior of the volume. More...

NLMISC::CAABBox _BBox
 World bounding box and volume (valid after hrc trav) -----------------------------. More...

std::vector< NLMISC::CPlane_Volume
 All planes are oriented to the exterior of the volume. More...


Friends

class CInstanceGroup
 Friends classes. More...


Detailed Description

CCluster.

The objects are in the MOT clip traversal

Author:
Matthieu Besson , Nevrax France
Date:
2001

Definition at line 62 of file cluster.h.


Constructor & Destructor Documentation

NL3D::CCluster::CCluster  
 

Definition at line 47 of file cluster.cpp.

References _Obs, Father, FatherVisible, and VisibleFromFather.

Referenced by creator.

NL3D::CCluster::~CCluster  
 

Definition at line 56 of file cluster.cpp.

References unlinkFromClusterTree.


Member Function Documentation

void NL3D::CCluster::applyMatrix const NLMISC::CMatrix   m
 

Apply the given matrix to this cluster local / world volume & bbox.

Definition at line 392 of file cluster.cpp.

References _BBox, _LocalBBox, _LocalVolume, _Volume, NLMISC::CMatrix::invert, nlassert, and NLMISC::CAABBox::transformAABBox.

IModel* NL3D::CCluster::creator   [inline, static, private]
 

Reimplemented from NL3D::CTransform.

Definition at line 138 of file cluster.h.

References CCluster, and NL3D::IModel::IModel.

NLMISC::CAABBox& NL3D::CCluster::getBBox   [inline]
 

Definition at line 101 of file cluster.h.

References _BBox.

CClusterClipObs * NL3D::CCluster::getClipObs  
 

Definition at line 278 of file cluster.cpp.

References _Obs, NL3D::ClipTravId, and NL3D::IModel::getObs.

uint32 NL3D::CCluster::getNbPortals   [inline]
 

Definition at line 111 of file cluster.h.

References _Portals.

CPortal* NL3D::CCluster::getPortal uint32    pos [inline]
 

Definition at line 112 of file cluster.h.

References _Portals.

bool NL3D::CCluster::isIn NLMISC::CVector   center,
float    size
 

return true if the Sphere intersect the cluster.

Definition at line 167 of file cluster.cpp.

References _Volume.

bool NL3D::CCluster::isIn NLMISC::CAABBox   b
 

return true if the Bounding box intersect the cluster.

Definition at line 156 of file cluster.cpp.

References _Volume.

bool NL3D::CCluster::isIn NLMISC::CVector   p
 

return true if the vertex is in the cluster volume.

Definition at line 146 of file cluster.cpp.

References _Volume, and CLUSTERPRECISION.

bool NL3D::CCluster::isRoot   [inline]
 

Definition at line 133 of file cluster.h.

References _LocalVolume.

void NL3D::CCluster::link CPortal   portal
 

Definition at line 182 of file cluster.cpp.

References _Portals.

bool NL3D::CCluster::makeVolume NLMISC::CVector   p1,
NLMISC::CVector   p2,
NLMISC::CVector   p3
 

Make the cluster volume from a plane made with 3 points All the faces passed must be connected with at least one of the others return false if the plane we want to add make the volume concave.

Definition at line 107 of file cluster.cpp.

References _BBox, _LocalBBox, _LocalVolume, _Volume, CLUSTERPRECISION, NLMISC::CAABBox::extend, and NLMISC::CAABBox::setCenter.

void NL3D::CCluster::registerBasic   [static]
 

Call at the begining of the program, to register the model, and the basic observers.

Reimplemented from NL3D::CTransform.

Definition at line 99 of file cluster.cpp.

References NL3D::ClipTravId, NL3D::ClusterId, and NL3D::HrcTravId.

void NL3D::CCluster::resetPortalLinks  
 

Linking.

Definition at line 176 of file cluster.cpp.

References _Portals.

void NL3D::CCluster::serial NLMISC::IStream   f
 

Serial.

Definition at line 201 of file cluster.cpp.

References _BBox, _LocalBBox, _LocalVolume, _Volume, FatherVisible, Name, and VisibleFromFather.

void NL3D::CCluster::setWorldMatrix const NLMISC::CMatrix   WM
 

Definition at line 220 of file cluster.cpp.

References _BBox, _LocalBBox, _LocalVolume, _Volume, and NLMISC::CAABBox::transformAABBox.

void NL3D::CCluster::unlink CPortal   portal
 

Definition at line 188 of file cluster.cpp.

References _Portals.

void NL3D::CCluster::unlinkFromClusterTree   [private]
 

Definition at line 90 of file cluster.cpp.

References unlinkFromParent, and unlinkSons.

Referenced by ~CCluster.

void NL3D::CCluster::unlinkFromParent   [private]
 

Definition at line 63 of file cluster.cpp.

References Father.

Referenced by unlinkFromClusterTree.

void NL3D::CCluster::unlinkSons   [private]
 

Definition at line 74 of file cluster.cpp.

References Children, and NLMISC::contReset.

Referenced by unlinkFromClusterTree.


Friends And Related Function Documentation

friend class CInstanceGroup [friend]
 

Friends classes.

Definition at line 170 of file cluster.h.


Member Data Documentation

NLMISC::CAABBox NL3D::CCluster::_BBox [private]
 

World bounding box and volume (valid after hrc trav) -----------------------------.

Definition at line 157 of file cluster.h.

Referenced by applyMatrix, getBBox, makeVolume, serial, and setWorldMatrix.

NLMISC::CAABBox NL3D::CCluster::_LocalBBox [private]
 

Local bounding box and volume ----------------------------- The bounding box of the volume.

Definition at line 151 of file cluster.h.

Referenced by applyMatrix, makeVolume, serial, and setWorldMatrix.

std::vector<NLMISC::CPlane> NL3D::CCluster::_LocalVolume [private]
 

All planes are oriented to the exterior of the volume.

Definition at line 153 of file cluster.h.

Referenced by applyMatrix, isRoot, makeVolume, serial, and setWorldMatrix.

CClusterClipObs* NL3D::CCluster::_Obs [private]
 

Shortcut to the clip observer.

Definition at line 143 of file cluster.h.

Referenced by CCluster, and getClipObs.

std::vector<CPortal*> NL3D::CCluster::_Portals [private]
 

Portals list.

Definition at line 146 of file cluster.h.

Referenced by getNbPortals, getPortal, link, resetPortalLinks, and unlink.

std::vector<NLMISC::CPlane> NL3D::CCluster::_Volume [private]
 

All planes are oriented to the exterior of the volume.

Definition at line 159 of file cluster.h.

Referenced by applyMatrix, isIn, makeVolume, serial, and setWorldMatrix.

CQuadGrid<CCluster*>::CIterator NL3D::CCluster::AccelIt
 

Definition at line 123 of file cluster.h.

std::vector<CCluster*> NL3D::CCluster::Children
 

Definition at line 130 of file cluster.h.

Referenced by unlinkSons.

CCluster* NL3D::CCluster::Father
 

Definition at line 129 of file cluster.h.

Referenced by CCluster, and unlinkFromParent.

bool NL3D::CCluster::FatherVisible
 

Definition at line 127 of file cluster.h.

Referenced by CCluster, and serial.

CInstanceGroup* NL3D::CCluster::Group
 

Definition at line 131 of file cluster.h.

std::string NL3D::CCluster::Name
 

Definition at line 126 of file cluster.h.

Referenced by serial.

bool NL3D::CCluster::VisibleFromFather
 

Definition at line 128 of file cluster.h.

Referenced by CCluster, and serial.


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