Public Types | Public Member Functions | Public Attributes | Static Public Attributes | Protected Member Functions | Protected Attributes | List of all members
lvr2::C_Octree< BaseVecT, BoxT, T_CellData > Class Template Reference

#include <Octree.hpp>

Public Types

typedef Location::LocCode LocCode
 
typedef float Scalar
 

Public Member Functions

 C_Octree ()
 
 ~C_Octree ()
 
cell
bool is_leaf (CellHandle _ch) const
 
bool is_extraction_leaf (CellHandle _ch) const
 
bool is_root (CellHandle _ch) const
 
int level (CellHandle _ch) const
 
int depth (CellHandle _ch) const
 
bool is_inner_boundary (CellHandle _ch) const
 
int getChildIndex (BaseVecT center, coord< float > *point)
 
int getChildIndex (BaseVecT center, BaseVecT point)
 
void split (CellHandle _ch, const bool bGarbageCollectionOnTheFly=false)
 Split the cell, i.e. create eight children. More...
 
void SetPickedCell (CellHandle _ch)
 Set the cell handle of the picked cell. More...
 
void ResetPickedCell ()
 Reset the cell handle of the picked cell. More...
 
bool PickParentCell ()
 Pick the parent cell of the currently picked cell. More...
 
bool PickChildCell (int _idx)
 Pick the child cell of the currently picked cell. More...
 
void ResetNumberOfGeneratedCells ()
 Reset the number of generated cells. More...
 
LocCode SetExtractionLevel (LocCode _level)
 Set the level to be treated as leaf level. More...
 
iterators
CellHandle root () const
 
CellHandle end () const
 
navigation
CellHandle parent (CellHandle _ch) const
 
CellHandle child (CellHandle _ch, int _idx) const
 
CellHandle face_neighbor (CellHandle _ch, int _idx) const
 
CellHandle edge_neighbor (CellHandle _ch, int _idx) const
 
std::pair< std::vector< CellHandle >, std::vector< uint > > all_corner_neighbors (CellHandle _ch, int _idx) const
 
CellHandle corner_neighbor (CellHandle _ch, int _idx) const
 
void MovePickedCell (int _key, double *_mvm)
 Moving the picked cell, i.e. picking one of the neighbouring cells (if possible) More...
 
void MovePickedCellLeft (double *_mvm)
 
void MovePickedCellRight (double *_mvm)
 
void MovePickedCellUp (double *_mvm)
 
void MovePickedCellDown (double *_mvm)
 
query
int size () const
 
int nr_cells () const
 
BaseVecT cell_corner (CellHandle _ch, int _idx) const
 
void cell_corner (CellHandle _ch, Scalar &_x, Scalar &_y, Scalar &_z, Scalar &_size) const
 
void cell_corner (CellHandle _ch, int _idx, Scalar &_x, Scalar &_y, Scalar &_z) const
 
void cell_corner (CellHandle _ch, int _idx, Scalar &_x, Scalar &_y, Scalar &_z, Scalar &_size) const
 
BaseVecT cell_center (CellHandle _ch) const
 
void cell_center (CellHandle _ch, Scalar &_x, Scalar &_y, Scalar &_z) const
 
void cell_center (CellHandle _ch, Scalar &_x, Scalar &_y, Scalar &_z, Scalar &_size) const
 
Scalar cell_size (CellHandle _ch) const
 
Locationlocation (CellHandle _h)
 
const Locationlocation (CellHandle _h) const
 
CellHandle cell (Scalar _x, Scalar _y, Scalar _z) const
 
CellHandle GetPickedCell () const
 Get the handle of the picked cell. More...
 
int GetNumberOfGeneratedCells () const
 Get number of generated cells. More...
 
LocCode GetExtractionLevel () const
 Get the level to be treated as leaf level. More...
 
memory
void reserve (unsigned int _size)
 
void resize (unsigned int _size)
 
void initialize (int _max_octree_level)
 Initializing the octree with maximal level = root level (leafs have level 0) More...
 
void clear ()
 

Public Attributes

std::vector< T_CellData > m_OctreeCell
 Vector containing the cells. More...
 

Static Public Attributes

static const int MAX_ROOT_LEVEL = sizeof(LocCode)*8-1
 Maximal root level defined by size of data type of the cell coordinates (leafs have side length 1) More...
 

Protected Member Functions

int cell (int _i) const
 
CellHandle get_common_ancestor (CellHandle _ch, LocCode _diff) const
 
CellHandle get_common_ancestor (CellHandle _ch, LocCode _diff0, LocCode _diff1) const
 
CellHandle get_common_ancestor (CellHandle _ch, LocCode _diff0, LocCode _diff1, LocCode _diff2) const
 
void set_cell (int _i, int _cell)
 
CellHandle traverse (CellHandle _ch, LocCode _loc_x, LocCode _loc_y, LocCode _loc_z) const
 
CellHandle traverse_to_level (CellHandle _ch, LocCode _loc_x, LocCode _loc_y, LocCode _loc_z, LocCode _level) const
 

Protected Attributes

LocCode m_ExtractionLevel
 Level of the cells to be treated as leafs during surface extraction. More...
 
size_t m_nextFreeBlock
 Pointer to the next free block (garbage collection) More...
 
int m_NumberOfGeneratedCells
 Number of octree cells generated; this counter is adjusted in the split routine only. More...
 
CellHandle m_PickedCell
 The handle of the picked octree cell. More...
 
LocCode m_rootLevel
 Root level. More...
 

Detailed Description

template<typename BaseVecT, typename BoxT, typename T_CellData>
class lvr2::C_Octree< BaseVecT, BoxT, T_CellData >

An octree implementation using techniques described in

"Simple and efficient traversal methods for quadtrees and octrees", Sarah F. Frisken, Ronald N. Perry Journal of Graphics Tools, 7(3):1–11, 2002

Definition at line 26 of file Octree.hpp.

Member Typedef Documentation

◆ LocCode

template<typename BaseVecT, typename BoxT, typename T_CellData>
typedef Location::LocCode lvr2::C_Octree< BaseVecT, BoxT, T_CellData >::LocCode

Definition at line 30 of file Octree.hpp.

◆ Scalar

template<typename BaseVecT, typename BoxT, typename T_CellData>
typedef float lvr2::C_Octree< BaseVecT, BoxT, T_CellData >::Scalar

Definition at line 31 of file Octree.hpp.

Constructor & Destructor Documentation

◆ C_Octree()

template<typename BaseVecT, typename BoxT, typename T_CellData>
lvr2::C_Octree< BaseVecT, BoxT, T_CellData >::C_Octree ( )
inline

Definition at line 36 of file Octree.hpp.

◆ ~C_Octree()

template<typename BaseVecT, typename BoxT, typename T_CellData>
lvr2::C_Octree< BaseVecT, BoxT, T_CellData >::~C_Octree ( )
inline

Definition at line 37 of file Octree.hpp.

Member Function Documentation

◆ all_corner_neighbors()

template<typename BaseVecT , typename BoxT , typename T_CellData >
std::pair< std::vector< CellHandle >, std::vector< uint > > lvr2::C_Octree< BaseVecT, BoxT, T_CellData >::all_corner_neighbors ( CellHandle  _ch,
int  _idx 
) const
inline

Definition at line 730 of file Octree.hpp.

◆ cell() [1/2]

template<typename BaseVecT , typename BoxT , typename T_CellData >
CellHandle lvr2::C_Octree< BaseVecT, BoxT, T_CellData >::cell ( Scalar  _x,
Scalar  _y,
Scalar  _z 
) const
inline

Definition at line 963 of file Octree.hpp.

◆ cell() [2/2]

template<typename BaseVecT, typename BoxT, typename T_CellData>
int lvr2::C_Octree< BaseVecT, BoxT, T_CellData >::cell ( int  _i) const
inlineprotected

Definition at line 223 of file Octree.hpp.

◆ cell_center() [1/3]

template<typename BaseVecT, typename BoxT, typename T_CellData>
BaseVecT lvr2::C_Octree< BaseVecT, BoxT, T_CellData >::cell_center ( CellHandle  _ch) const
inline

Definition at line 138 of file Octree.hpp.

◆ cell_center() [2/3]

template<typename BaseVecT , typename BoxT , typename T_CellData >
void lvr2::C_Octree< BaseVecT, BoxT, T_CellData >::cell_center ( CellHandle  _ch,
Scalar _x,
Scalar _y,
Scalar _z 
) const
inline

Definition at line 345 of file Octree.hpp.

◆ cell_center() [3/3]

template<typename BaseVecT , typename BoxT , typename T_CellData >
void lvr2::C_Octree< BaseVecT, BoxT, T_CellData >::cell_center ( CellHandle  _ch,
Scalar _x,
Scalar _y,
Scalar _z,
Scalar _size 
) const
inline

Definition at line 360 of file Octree.hpp.

◆ cell_corner() [1/4]

template<typename BaseVecT, typename BoxT, typename T_CellData>
BaseVecT lvr2::C_Octree< BaseVecT, BoxT, T_CellData >::cell_corner ( CellHandle  _ch,
int  _idx 
) const
inline

Definition at line 122 of file Octree.hpp.

◆ cell_corner() [2/4]

template<typename BaseVecT , typename BoxT , typename T_CellData >
void lvr2::C_Octree< BaseVecT, BoxT, T_CellData >::cell_corner ( CellHandle  _ch,
Scalar _x,
Scalar _y,
Scalar _z,
Scalar _size 
) const
inline

Definition at line 330 of file Octree.hpp.

◆ cell_corner() [3/4]

template<typename BaseVecT , typename BoxT , typename T_CellData >
void lvr2::C_Octree< BaseVecT, BoxT, T_CellData >::cell_corner ( CellHandle  _ch,
int  _idx,
Scalar _x,
Scalar _y,
Scalar _z 
) const
inline

Definition at line 402 of file Octree.hpp.

◆ cell_corner() [4/4]

template<typename BaseVecT , typename BoxT , typename T_CellData >
void lvr2::C_Octree< BaseVecT, BoxT, T_CellData >::cell_corner ( CellHandle  _ch,
int  _idx,
Scalar _x,
Scalar _y,
Scalar _z,
Scalar _size 
) const
inline

Definition at line 375 of file Octree.hpp.

◆ cell_size()

template<typename BaseVecT, typename BoxT, typename T_CellData>
Scalar lvr2::C_Octree< BaseVecT, BoxT, T_CellData >::cell_size ( CellHandle  _ch) const
inline

Definition at line 152 of file Octree.hpp.

◆ child()

template<typename BaseVecT , typename BoxT , typename T_CellData >
CellHandle lvr2::C_Octree< BaseVecT, BoxT, T_CellData >::child ( CellHandle  _ch,
int  _idx 
) const
inline

Definition at line 282 of file Octree.hpp.

◆ clear()

template<typename BaseVecT, typename BoxT, typename T_CellData>
void lvr2::C_Octree< BaseVecT, BoxT, T_CellData >::clear ( )
inline

Definition at line 198 of file Octree.hpp.

◆ corner_neighbor()

template<typename BaseVecT , typename BoxT , typename T_CellData >
CellHandle lvr2::C_Octree< BaseVecT, BoxT, T_CellData >::corner_neighbor ( CellHandle  _ch,
int  _idx 
) const
inline

Definition at line 799 of file Octree.hpp.

◆ depth()

template<typename BaseVecT , typename BoxT , typename T_CellData >
int lvr2::C_Octree< BaseVecT, BoxT, T_CellData >::depth ( CellHandle  _ch) const
inline

Definition at line 915 of file Octree.hpp.

◆ edge_neighbor()

template<typename BaseVecT , typename BoxT , typename T_CellData >
CellHandle lvr2::C_Octree< BaseVecT, BoxT, T_CellData >::edge_neighbor ( CellHandle  _ch,
int  _idx 
) const
inline

Definition at line 605 of file Octree.hpp.

◆ end()

template<typename BaseVecT, typename BoxT, typename T_CellData>
CellHandle lvr2::C_Octree< BaseVecT, BoxT, T_CellData >::end ( ) const
inline

Definition at line 98 of file Octree.hpp.

◆ face_neighbor()

template<typename BaseVecT , typename BoxT , typename T_CellData >
CellHandle lvr2::C_Octree< BaseVecT, BoxT, T_CellData >::face_neighbor ( CellHandle  _ch,
int  _idx 
) const
inline

Definition at line 484 of file Octree.hpp.

◆ get_common_ancestor() [1/3]

template<typename BaseVecT , typename BoxT , typename T_CellData >
CellHandle lvr2::C_Octree< BaseVecT, BoxT, T_CellData >::get_common_ancestor ( CellHandle  _ch,
LocCode  _diff 
) const
inlineprotected

Definition at line 545 of file Octree.hpp.

◆ get_common_ancestor() [2/3]

template<typename BaseVecT , typename BoxT , typename T_CellData >
CellHandle lvr2::C_Octree< BaseVecT, BoxT, T_CellData >::get_common_ancestor ( CellHandle  _ch,
LocCode  _diff0,
LocCode  _diff1 
) const
inlineprotected

Definition at line 561 of file Octree.hpp.

◆ get_common_ancestor() [3/3]

template<typename BaseVecT , typename BoxT , typename T_CellData >
CellHandle lvr2::C_Octree< BaseVecT, BoxT, T_CellData >::get_common_ancestor ( CellHandle  _ch,
LocCode  _diff0,
LocCode  _diff1,
LocCode  _diff2 
) const
inlineprotected

Definition at line 593 of file Octree.hpp.

◆ getChildIndex() [1/2]

template<typename BaseVecT, typename BoxT , typename T_CellData >
int lvr2::C_Octree< BaseVecT, BoxT, T_CellData >::getChildIndex ( BaseVecT  center,
coord< float > *  point 
)
Parameters
centerThe center of a cell in real world coordinates
pointPoint for to check it's position relative to the cell center

INDICES: 000 left down behind 001 right down behind 010 left top behind 011 right top behind 100 left down front 101 right down front 110 left top front 111 right top front

Definition at line 1198 of file Octree.hpp.

◆ getChildIndex() [2/2]

template<typename BaseVecT, typename BoxT , typename T_CellData >
int lvr2::C_Octree< BaseVecT, BoxT, T_CellData >::getChildIndex ( BaseVecT  center,
BaseVecT  point 
)

Definition at line 1204 of file Octree.hpp.

◆ GetExtractionLevel()

template<typename BaseVecT, typename BoxT, typename T_CellData>
LocCode lvr2::C_Octree< BaseVecT, BoxT, T_CellData >::GetExtractionLevel ( ) const
inline

Get the level to be treated as leaf level.

Definition at line 175 of file Octree.hpp.

◆ GetNumberOfGeneratedCells()

template<typename BaseVecT, typename BoxT, typename T_CellData>
int lvr2::C_Octree< BaseVecT, BoxT, T_CellData >::GetNumberOfGeneratedCells ( ) const
inline

Get number of generated cells.

Definition at line 172 of file Octree.hpp.

◆ GetPickedCell()

template<typename BaseVecT, typename BoxT, typename T_CellData>
CellHandle lvr2::C_Octree< BaseVecT, BoxT, T_CellData >::GetPickedCell ( ) const
inline

Get the handle of the picked cell.

Definition at line 169 of file Octree.hpp.

◆ initialize()

template<typename BaseVecT, typename BoxT, typename T_CellData>
void lvr2::C_Octree< BaseVecT, BoxT, T_CellData >::initialize ( int  _max_octree_level)
inline

Initializing the octree with maximal level = root level (leafs have level 0)

Definition at line 184 of file Octree.hpp.

◆ is_extraction_leaf()

template<typename BaseVecT , typename BoxT , typename T_CellData >
bool lvr2::C_Octree< BaseVecT, BoxT, T_CellData >::is_extraction_leaf ( CellHandle  _ch) const
inline

Definition at line 314 of file Octree.hpp.

◆ is_inner_boundary()

template<typename BaseVecT , typename BoxT , typename T_CellData >
bool lvr2::C_Octree< BaseVecT, BoxT, T_CellData >::is_inner_boundary ( CellHandle  _ch) const
inline

Definition at line 940 of file Octree.hpp.

◆ is_leaf()

template<typename BaseVecT , typename BoxT , typename T_CellData >
bool lvr2::C_Octree< BaseVecT, BoxT, T_CellData >::is_leaf ( CellHandle  _ch) const
inline

Definition at line 306 of file Octree.hpp.

◆ is_root()

template<typename BaseVecT , typename BoxT , typename T_CellData >
bool lvr2::C_Octree< BaseVecT, BoxT, T_CellData >::is_root ( CellHandle  _ch) const
inline

Definition at line 322 of file Octree.hpp.

◆ level()

template<typename BaseVecT , typename BoxT , typename T_CellData >
int lvr2::C_Octree< BaseVecT, BoxT, T_CellData >::level ( CellHandle  _ch) const
inline

Definition at line 907 of file Octree.hpp.

◆ location() [1/2]

template<typename BaseVecT, typename BoxT, typename T_CellData>
Location& lvr2::C_Octree< BaseVecT, BoxT, T_CellData >::location ( CellHandle  _h)
inline

Definition at line 158 of file Octree.hpp.

◆ location() [2/2]

template<typename BaseVecT, typename BoxT, typename T_CellData>
const Location& lvr2::C_Octree< BaseVecT, BoxT, T_CellData >::location ( CellHandle  _h) const
inline

Definition at line 162 of file Octree.hpp.

◆ MovePickedCell()

template<typename BaseVecT , typename BoxT , typename T_CellData >
void lvr2::C_Octree< BaseVecT, BoxT, T_CellData >::MovePickedCell ( int  _direction,
double *  _mvm 
)

Moving the picked cell, i.e. picking one of the neighbouring cells (if possible)

Parameters
_directionDirection of the movement
_mvmThe current modelview matrix needed for estimating the plane of movement

The rows of the current modelview matrix correspond to the camera axes in the world space. We use here the maximal components of the x- and y-axis as "guides" in which direction to move in the octree. This approach works only because the octree cells are world-axis-aligned!

Definition at line 1034 of file Octree.hpp.

◆ MovePickedCellDown()

template<typename BaseVecT , typename BoxT , typename T_CellData >
void lvr2::C_Octree< BaseVecT, BoxT, T_CellData >::MovePickedCellDown ( double *  _mvm)

Definition at line 1018 of file Octree.hpp.

◆ MovePickedCellLeft()

template<typename BaseVecT , typename BoxT , typename T_CellData >
void lvr2::C_Octree< BaseVecT, BoxT, T_CellData >::MovePickedCellLeft ( double *  _mvm)

Definition at line 994 of file Octree.hpp.

◆ MovePickedCellRight()

template<typename BaseVecT , typename BoxT , typename T_CellData >
void lvr2::C_Octree< BaseVecT, BoxT, T_CellData >::MovePickedCellRight ( double *  _mvm)

Definition at line 1002 of file Octree.hpp.

◆ MovePickedCellUp()

template<typename BaseVecT , typename BoxT , typename T_CellData >
void lvr2::C_Octree< BaseVecT, BoxT, T_CellData >::MovePickedCellUp ( double *  _mvm)

Definition at line 1010 of file Octree.hpp.

◆ nr_cells()

template<typename BaseVecT , typename BoxT , typename T_CellData >
int lvr2::C_Octree< BaseVecT, BoxT, T_CellData >::nr_cells ( ) const
inline

Definition at line 931 of file Octree.hpp.

◆ parent()

template<typename BaseVecT , typename BoxT , typename T_CellData >
CellHandle lvr2::C_Octree< BaseVecT, BoxT, T_CellData >::parent ( CellHandle  _ch) const
inline

Definition at line 290 of file Octree.hpp.

◆ PickChildCell()

template<typename BaseVecT, typename BoxT, typename T_CellData>
bool lvr2::C_Octree< BaseVecT, BoxT, T_CellData >::PickChildCell ( int  _idx)
inline

Pick the child cell of the currently picked cell.

Definition at line 78 of file Octree.hpp.

◆ PickParentCell()

template<typename BaseVecT, typename BoxT, typename T_CellData>
bool lvr2::C_Octree< BaseVecT, BoxT, T_CellData >::PickParentCell ( )
inline

Pick the parent cell of the currently picked cell.

Definition at line 67 of file Octree.hpp.

◆ reserve()

template<typename BaseVecT , typename BoxT , typename T_CellData >
void lvr2::C_Octree< BaseVecT, BoxT, T_CellData >::reserve ( unsigned int  _size)
inline

Definition at line 266 of file Octree.hpp.

◆ ResetNumberOfGeneratedCells()

template<typename BaseVecT, typename BoxT, typename T_CellData>
void lvr2::C_Octree< BaseVecT, BoxT, T_CellData >::ResetNumberOfGeneratedCells ( )
inline

Reset the number of generated cells.

Definition at line 89 of file Octree.hpp.

◆ ResetPickedCell()

template<typename BaseVecT, typename BoxT, typename T_CellData>
void lvr2::C_Octree< BaseVecT, BoxT, T_CellData >::ResetPickedCell ( )
inline

Reset the cell handle of the picked cell.

Definition at line 61 of file Octree.hpp.

◆ resize()

template<typename BaseVecT , typename BoxT , typename T_CellData >
void lvr2::C_Octree< BaseVecT, BoxT, T_CellData >::resize ( unsigned int  _size)
inline

Definition at line 274 of file Octree.hpp.

◆ root()

template<typename BaseVecT , typename BoxT , typename T_CellData >
CellHandle lvr2::C_Octree< BaseVecT, BoxT, T_CellData >::root ( ) const
inline

Definition at line 298 of file Octree.hpp.

◆ set_cell()

template<typename BaseVecT, typename BoxT, typename T_CellData>
void lvr2::C_Octree< BaseVecT, BoxT, T_CellData >::set_cell ( int  _i,
int  _cell 
)
inlineprotected

Definition at line 228 of file Octree.hpp.

◆ SetExtractionLevel()

template<typename BaseVecT, typename BoxT, typename T_CellData>
LocCode lvr2::C_Octree< BaseVecT, BoxT, T_CellData >::SetExtractionLevel ( LocCode  _level)
inline

Set the level to be treated as leaf level.

Definition at line 92 of file Octree.hpp.

◆ SetPickedCell()

template<typename BaseVecT, typename BoxT, typename T_CellData>
void lvr2::C_Octree< BaseVecT, BoxT, T_CellData >::SetPickedCell ( CellHandle  _ch)
inline

Set the cell handle of the picked cell.

Definition at line 55 of file Octree.hpp.

◆ size()

template<typename BaseVecT , typename BoxT , typename T_CellData >
int lvr2::C_Octree< BaseVecT, BoxT, T_CellData >::size ( ) const
inline

Definition at line 923 of file Octree.hpp.

◆ split()

template<typename BaseVecT , typename BoxT , typename T_CellData >
void lvr2::C_Octree< BaseVecT, BoxT, T_CellData >::split ( CellHandle  _parent,
const bool  bGarbageCollectionOnTheFly = false 
)

Split the cell, i.e. create eight children.

Parameters
_parentThe cell handle of the parent cell
bGarbageCollectionOnTheFlytrue, if garbage collection should be done

The following method simply splits an octree cell and generates 8 children cells. Depending on the value of bGarbageCollectionOnTheFly EITHER (false; default value) the new cells are simply pushed back in the vector(s) OR (true) we fill the next free block with the new cells, i.e. that the pointer to the next free block "m_nextFreeBlock" must not pointer to the end of the vector(s).

Definition at line 1222 of file Octree.hpp.

◆ traverse()

template<typename BaseVecT , typename BoxT , typename T_CellData >
CellHandle lvr2::C_Octree< BaseVecT, BoxT, T_CellData >::traverse ( CellHandle  _ch,
LocCode  _loc_x,
LocCode  _loc_y,
LocCode  _loc_z 
) const
inlineprotected

Definition at line 429 of file Octree.hpp.

◆ traverse_to_level()

template<typename BaseVecT , typename BoxT , typename T_CellData >
CellHandle lvr2::C_Octree< BaseVecT, BoxT, T_CellData >::traverse_to_level ( CellHandle  _ch,
LocCode  _loc_x,
LocCode  _loc_y,
LocCode  _loc_z,
LocCode  _level 
) const
inlineprotected

Definition at line 454 of file Octree.hpp.

Member Data Documentation

◆ m_ExtractionLevel

template<typename BaseVecT, typename BoxT, typename T_CellData>
LocCode lvr2::C_Octree< BaseVecT, BoxT, T_CellData >::m_ExtractionLevel
protected

Level of the cells to be treated as leafs during surface extraction.

Definition at line 258 of file Octree.hpp.

◆ m_nextFreeBlock

template<typename BaseVecT, typename BoxT, typename T_CellData>
size_t lvr2::C_Octree< BaseVecT, BoxT, T_CellData >::m_nextFreeBlock
protected

Pointer to the next free block (garbage collection)

Definition at line 249 of file Octree.hpp.

◆ m_NumberOfGeneratedCells

template<typename BaseVecT, typename BoxT, typename T_CellData>
int lvr2::C_Octree< BaseVecT, BoxT, T_CellData >::m_NumberOfGeneratedCells
protected

Number of octree cells generated; this counter is adjusted in the split routine only.

Definition at line 255 of file Octree.hpp.

◆ m_OctreeCell

template<typename BaseVecT, typename BoxT, typename T_CellData>
std::vector<T_CellData> lvr2::C_Octree< BaseVecT, BoxT, T_CellData >::m_OctreeCell

Vector containing the cells.

Definition at line 262 of file Octree.hpp.

◆ m_PickedCell

template<typename BaseVecT, typename BoxT, typename T_CellData>
CellHandle lvr2::C_Octree< BaseVecT, BoxT, T_CellData >::m_PickedCell
protected

The handle of the picked octree cell.

Definition at line 252 of file Octree.hpp.

◆ m_rootLevel

template<typename BaseVecT, typename BoxT, typename T_CellData>
LocCode lvr2::C_Octree< BaseVecT, BoxT, T_CellData >::m_rootLevel
protected

Root level.

Definition at line 246 of file Octree.hpp.

◆ MAX_ROOT_LEVEL

template<typename BaseVecT, typename BoxT, typename T_CellData>
const int lvr2::C_Octree< BaseVecT, BoxT, T_CellData >::MAX_ROOT_LEVEL = sizeof(LocCode)*8-1
static

Maximal root level defined by size of data type of the cell coordinates (leafs have side length 1)

Definition at line 34 of file Octree.hpp.


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


lvr2
Author(s): Thomas Wiemann , Sebastian Pütz , Alexander Mock , Lars Kiesow , Lukas Kalbertodt , Tristan Igelbrink , Johan M. von Behren , Dominik Feldschnieders , Alexander Löhr
autogenerated on Mon Feb 28 2022 22:46:11