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

Class used to classify elements in space around a point (good for pointlight raytracing) Elements are copied at insertion, and are duplicated at compilation along the grids. More...

#include <cube_grid.h>

List of all members.

Public Methods

 CCubeGrid ()
 ~CCubeGrid ()
void create (const CVector &center, int nSize)
 Create the cubeGrid, specifying center of this one, and number of Cells per side. More...

void insert (const NLMISC::CTriangle &tri, const TCell &cell)
void compile ()
 compile the container, storing in CStaticQuadGrid. More...

void select (const NLMISC::CVector &v)
TCell getSel ()
void nextSel ()
bool isEndSel ()

Private Types

enum  gridPos {
  kUp = 0, kDown, kLeft, kRight,
  kFront, kBack
}

Private Methods

void project (const NLMISC::CTriangle &tri, NLMISC::CPlane pyr[4], NLMISC::CPlane &gridPlane, sint32 nGridNb, const TCell &cell)

Private Attributes

NLMISC::CVector _Center
NL3D::CQuadGrid< TCell > _Grids [6]
NL3D::CStaticQuadGrid< TCell > _StaticGrids [6]
bool _Compiled
const TCell * _Selection
uint _CurSel
uint _NumSels


Detailed Description

template<class TCell>
class NL3D::CCubeGrid< TCell >

Class used to classify elements in space around a point (good for pointlight raytracing) Elements are copied at insertion, and are duplicated at compilation along the grids.

Therefore TCell should be small (ie a pointer). This constraint help because memory is much more reduced when compile is called.

Author:
Matthieu Besson , Lionel Berenguier , Nevrax France
Date:
2001

Definition at line 52 of file cube_grid.h.


Member Enumeration Documentation

template<class TCell>
enum NL3D::CCubeGrid::gridPos [private]
 

Enumeration values:
kUp 
kDown 
kLeft 
kRight 
kFront 
kBack 

Definition at line 78 of file cube_grid.h.


Constructor & Destructor Documentation

template<class TCell>
NL3D::CCubeGrid< TCell >::CCubeGrid  
 

Definition at line 109 of file cube_grid.h.

References _Compiled, _Grids, NLMISC::CMatrix::identity, kBack, kDown, kFront, kLeft, kRight, and NLMISC::CMatrix::setRot.

template<class TCell>
NL3D::CCubeGrid< TCell >::~CCubeGrid  
 

Definition at line 151 of file cube_grid.h.


Member Function Documentation

template<class TCell>
void NL3D::CCubeGrid< TCell >::compile  
 

compile the container, storing in CStaticQuadGrid.

Definition at line 229 of file cube_grid.h.

References _Compiled, _CurSel, _Grids, _NumSels, _Selection, _StaticGrids, NL3D::CStaticQuadGrid< TCell >::build, NLMISC::contReset, and nlassert.

template<class TCell>
void NL3D::CCubeGrid< TCell >::create const CVector &    center,
int    nSize
 

Create the cubeGrid, specifying center of this one, and number of Cells per side.

Definition at line 157 of file cube_grid.h.

References _Center, _Compiled, _Grids, kBack, kDown, kFront, kLeft, kRight, kUp, and nlassert.

template<class TCell>
TCell NL3D::CCubeGrid< TCell >::getSel  
 

Definition at line 313 of file cube_grid.h.

References _Compiled, _CurSel, _Selection, and nlassert.

template<class TCell>
void NL3D::CCubeGrid< TCell >::insert const NLMISC::CTriangle   tri,
const TCell &    cell
 

Definition at line 172 of file cube_grid.h.

References _Center, _Compiled, kBack, kDown, kFront, kLeft, kRight, kUp, NLMISC::CPlane::make, nlassert, project, NLMISC::CTriangle::V0, NLMISC::CTriangle::V1, and NLMISC::CTriangle::V2.

template<class TCell>
bool NL3D::CCubeGrid< TCell >::isEndSel  
 

Definition at line 329 of file cube_grid.h.

References _Compiled, _CurSel, _NumSels, and nlassert.

template<class TCell>
void NL3D::CCubeGrid< TCell >::nextSel  
 

Definition at line 321 of file cube_grid.h.

References _Compiled, _CurSel, and nlassert.

template<class TCell>
void NL3D::CCubeGrid< TCell >::project const NLMISC::CTriangle   tri,
NLMISC::CPlane    pyr[4],
NLMISC::CPlane   gridPlane,
sint32    nGridNb,
const TCell &    cell
[private]
 

Definition at line 337 of file cube_grid.h.

References _Grids, NLMISC::CPlane::clipPolygonFront, NL3D::CQuadGrid< TCell >::insert, NLMISC::CPlane::intersect, NLMISC::CTriangle::V0, NLMISC::CTriangle::V1, NLMISC::CTriangle::V2, NLMISC::CVector::x, NLMISC::CVector::y, and NLMISC::CVector::z.

Referenced by insert.

template<class TCell>
void NL3D::CCubeGrid< TCell >::select const NLMISC::CVector   v
 

Definition at line 253 of file cube_grid.h.

References _Center, _Compiled, _CurSel, _NumSels, _Selection, _StaticGrids, NLMISC::CPlane::intersect, kBack, kDown, kFront, kLeft, kRight, kUp, NLMISC::CPlane::make, nlassert, NL3D::CStaticQuadGrid< TCell >::select, v, NLMISC::CVector::x, NLMISC::CVector::y, and NLMISC::CVector::z.


Member Data Documentation

template<class TCell>
NLMISC::CVector NL3D::CCubeGrid::_Center [private]
 

Definition at line 76 of file cube_grid.h.

Referenced by create, insert, and select.

template<class TCell>
bool NL3D::CCubeGrid::_Compiled [private]
 

Definition at line 85 of file cube_grid.h.

Referenced by CCubeGrid, compile, create, getSel, insert, isEndSel, nextSel, and select.

template<class TCell>
uint NL3D::CCubeGrid::_CurSel [private]
 

Definition at line 89 of file cube_grid.h.

Referenced by compile, getSel, isEndSel, nextSel, and select.

template<class TCell>
NL3D::CQuadGrid<TCell> NL3D::CCubeGrid::_Grids[6] [private]
 

Definition at line 80 of file cube_grid.h.

Referenced by CCubeGrid, compile, create, and project.

template<class TCell>
uint NL3D::CCubeGrid::_NumSels [private]
 

Definition at line 90 of file cube_grid.h.

Referenced by compile, isEndSel, and select.

template<class TCell>
const TCell* NL3D::CCubeGrid::_Selection [private]
 

Definition at line 88 of file cube_grid.h.

Referenced by compile, getSel, and select.

template<class TCell>
NL3D::CStaticQuadGrid<TCell> NL3D::CCubeGrid::_StaticGrids[6] [private]
 

Definition at line 82 of file cube_grid.h.

Referenced by compile, and select.


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