This class is builded from a CQuadGrid, and is to be used when:
#include <static_quad_grid.h>
Classes | |
| class | CQuadNode |
Public Member Functions | |
| CStaticQuadGrid () | |
| Constructor. | |
| ~CStaticQuadGrid () | |
| dtor. | |
Initialization | |
| void | build (CQuadGrid< T > &quadGrid) |
| build from a CQuadGrid. | |
| void | clear () |
| Clear all the container. | |
Selection | |
| const T * | select (const NLMISC::CVector &point, uint &numElts) |
| Select elements at a given point Speed is in O(1), because the array of the cell is returned. | |
Private Member Functions | |
| void | selectPoint (CVector point, sint &x0, sint &y0) |
Private Attributes | |
| std::vector< T > | _Elements |
| std::vector< CQuadNode > | _Grid |
| sint | _Size |
| sint | _SizePower |
| float | _EltSize |
| NLMISC::CMatrix | _ChangeBasis |
This class is builded from a CQuadGrid, and is to be used when:
Because elements are duplicated all over cells and only one cell can be selected at a time.
Definition at line 49 of file static_quad_grid.h.
| NL3D::CStaticQuadGrid< T >::CStaticQuadGrid | ( | ) | [inline] |
Constructor.
Definition at line 144 of file static_quad_grid.h.
References NL3D::CStaticQuadGrid< T >::_ChangeBasis, NL3D::CStaticQuadGrid< T >::_EltSize, NL3D::CStaticQuadGrid< T >::_Grid, NL3D::CStaticQuadGrid< T >::_Size, NL3D::CStaticQuadGrid< T >::_SizePower, and NLMISC::CMatrix::identity().
| NL3D::CStaticQuadGrid< T >::~CStaticQuadGrid | ( | ) | [inline] |
dtor.
Definition at line 154 of file static_quad_grid.h.
References NL3D::CStaticQuadGrid< T >::clear().
| void NL3D::CStaticQuadGrid< T >::build | ( | CQuadGrid< T > & | quadGrid | ) | [inline] |
build from a CQuadGrid.
Elements are copied, not referenced Elements may be duplicated in all cells they lie into. quadGrid selection is cleared
Definition at line 179 of file static_quad_grid.h.
References NL3D::CStaticQuadGrid< T >::_ChangeBasis, NL3D::CStaticQuadGrid< T >::_Elements, NL3D::CStaticQuadGrid< T >::_EltSize, NL3D::CStaticQuadGrid< T >::_Grid, NL3D::CStaticQuadGrid< T >::_Size, NL3D::CStaticQuadGrid< T >::_SizePower, NL3D::CQuadGrid< T >::begin(), NL3D::CStaticQuadGrid< T >::clear(), NL3D::CQuadGrid< T >::clearSelection(), NLMISC::contReset(), NL3D::CQuadGrid< T >::end(), NL3D::CQuadGrid< T >::getBasis(), NL3D::CQuadGrid< T >::getEltSize(), NLMISC::getPowerOf2(), NL3D::CQuadGrid< T >::getSize(), NLMISC::CMatrix::inverted(), NLMISC::n, NL3D::CQuadGrid< T >::select(), NLMISC::CVector::x, NLMISC::CVector::y, and NLMISC::CVector::z.
Referenced by NL3D::CCubeGrid< TCell >::compile().
| void NL3D::CStaticQuadGrid< T >::clear | ( | void | ) | [inline] |
Clear all the container.
Elements are deleted, and the quadgrid is erased.
Definition at line 162 of file static_quad_grid.h.
References NL3D::CStaticQuadGrid< T >::_ChangeBasis, NL3D::CStaticQuadGrid< T >::_Elements, NL3D::CStaticQuadGrid< T >::_EltSize, NL3D::CStaticQuadGrid< T >::_Grid, NL3D::CStaticQuadGrid< T >::_Size, NL3D::CStaticQuadGrid< T >::_SizePower, and NLMISC::CMatrix::identity().
Referenced by NL3D::CStaticQuadGrid< T >::build(), and NL3D::CStaticQuadGrid< T >::~CStaticQuadGrid().
| const T * NL3D::CStaticQuadGrid< T >::select | ( | const NLMISC::CVector & | point, | |
| uint & | numElts | |||
| ) | [inline] |
Select elements at a given point Speed is in O(1), because the array of the cell is returned.
NULL if size==0.
| point | is the point used to select | |
| numElts | number of elements returned |
Definition at line 267 of file static_quad_grid.h.
References NL3D::CStaticQuadGrid< T >::_ChangeBasis, NL3D::CStaticQuadGrid< T >::_Grid, NL3D::CStaticQuadGrid< T >::_Size, NL3D::CStaticQuadGrid< T >::CQuadNode::Nodes, NL3D::CStaticQuadGrid< T >::CQuadNode::NumNodes, and NL3D::CStaticQuadGrid< T >::selectPoint().
Referenced by NL3D::CCubeGrid< TCell >::select().
| void NL3D::CStaticQuadGrid< T >::selectPoint | ( | CVector | point, | |
| sint & | x0, | |||
| sint & | y0 | |||
| ) | [inline, private] |
Definition at line 112 of file static_quad_grid.h.
Referenced by NL3D::CStaticQuadGrid< T >::select().
NLMISC::CMatrix NL3D::CStaticQuadGrid< T >::_ChangeBasis [private] |
Definition at line 108 of file static_quad_grid.h.
Referenced by NL3D::CStaticQuadGrid< T >::build(), NL3D::CStaticQuadGrid< T >::clear(), NL3D::CStaticQuadGrid< T >::CStaticQuadGrid(), and NL3D::CStaticQuadGrid< T >::select().
std::vector<T> NL3D::CStaticQuadGrid< T >::_Elements [private] |
Definition at line 103 of file static_quad_grid.h.
Referenced by NL3D::CStaticQuadGrid< T >::build(), and NL3D::CStaticQuadGrid< T >::clear().
float NL3D::CStaticQuadGrid< T >::_EltSize [private] |
Definition at line 107 of file static_quad_grid.h.
Referenced by NL3D::CStaticQuadGrid< T >::build(), NL3D::CStaticQuadGrid< T >::clear(), NL3D::CStaticQuadGrid< T >::CStaticQuadGrid(), and NL3D::CStaticQuadGrid< const CTriangle * >::selectPoint().
std::vector<CQuadNode> NL3D::CStaticQuadGrid< T >::_Grid [private] |
Definition at line 104 of file static_quad_grid.h.
Referenced by NL3D::CStaticQuadGrid< T >::build(), NL3D::CStaticQuadGrid< T >::clear(), NL3D::CStaticQuadGrid< T >::CStaticQuadGrid(), and NL3D::CStaticQuadGrid< T >::select().
sint NL3D::CStaticQuadGrid< T >::_Size [private] |
sint NL3D::CStaticQuadGrid< T >::_SizePower [private] |
Definition at line 106 of file static_quad_grid.h.
Referenced by NL3D::CStaticQuadGrid< T >::build(), NL3D::CStaticQuadGrid< T >::clear(), and NL3D::CStaticQuadGrid< T >::CStaticQuadGrid().
1.6.1