Voxomap
A C++11 voxel container.
voxomap::container_iterator< T > Struct Template Reference

#include <iterator.hpp>

Inheritance diagram for voxomap::container_iterator< T >:

Public Types

using VoxelData = typename T::VoxelData
 
using VoxelContainer = typename T::VoxelContainer
 

Public Member Functions

container_iteratoroperator++ ()
 Pre-increment the iterator. More...
 
container_iterator operator++ (int)
 Post increment the iterator. More...
 
container_iteratoroperator* ()
 Dereference iterator. More...
 
 operator bool () const
 Returns true if the iterator is valid. More...
 
bool operator== (container_iterator const &other) const
 Returns true if the iterator is same as other. More...
 
bool operator!= (container_iterator const &other) const
 Returns true if the iterator is different as other. More...
 
void begin (VoxelNode< T > &node)
 Initialize this with the first voxel of node. More...
 
void end (VoxelNode< T > &node)
 Initialize this with the next element after the last voxel of node. More...
 
void getVoxelPosition (int &x, int &y, int &z) const
 Get the absolute position of the voxel. More...
 
void getRelativeVoxelPosition (int &x, int &y, int &z) const
 Get the relative position of the voxel inside its node. More...
 
void initPosition (int x, int y, int z)
 Initiliaze the iterator with the absolute position. More...
 
int getRelativeX () const
 
int getRelativeY () const
 
int getRelativeZ () const
 
int getAbsoluteX () const
 
int getAbsoluteY () const
 
int getAbsoluteZ () const
 
container_iterator< T > findRelativeVoxel (int x, int y, int z)
 

Public Attributes

VoxelNode< T > * node = nullptr
 Pointer on node. More...
 
VoxelContainervoxelContainer = nullptr
 Pointer on voxel container. More...
 
VoxelDatavoxel = nullptr
 Pointer on voxel. More...
 
uint8_t x = 0
 x coordinate of voxel inside node More...
 
uint8_t y = 0
 y coordinate of voxel inside node More...
 
uint8_t z = 0
 z coordinate of voxel inside node More...
 

Protected Member Functions

void findNextParentNode (VoxelNode< T > &i_node)
 
bool findNextChildNode (VoxelNode< T > &i_node)
 
bool findNextVoxel (VoxelContainer &container)
 

Detailed Description

template<typename T>
struct voxomap::container_iterator< T >

Definition at line 20 of file iterator.hpp.

Member Typedef Documentation

◆ VoxelData

template<typename T >
using voxomap::container_iterator< T >::VoxelData = typename T::VoxelData

Definition at line 22 of file iterator.hpp.

◆ VoxelContainer

template<typename T >
using voxomap::container_iterator< T >::VoxelContainer = typename T::VoxelContainer

Definition at line 23 of file iterator.hpp.

Member Function Documentation

◆ operator++() [1/2]

template<typename T >
container_iterator& voxomap::container_iterator< T >::operator++ ( )

Pre-increment the iterator.

Returns
Reference on this

◆ operator++() [2/2]

template<typename T >
container_iterator voxomap::container_iterator< T >::operator++ ( int  )

Post increment the iterator.

Returns
Not incremented iterator

◆ operator*()

template<typename T >
container_iterator* voxomap::container_iterator< T >::operator* ( )

Dereference iterator.

◆ operator bool()

template<typename T >
voxomap::container_iterator< T >::operator bool ( ) const

Returns true if the iterator is valid.

◆ operator==()

template<typename T >
bool voxomap::container_iterator< T >::operator== ( container_iterator< T > const &  other) const

Returns true if the iterator is same as other.

◆ operator!=()

template<typename T >
bool voxomap::container_iterator< T >::operator!= ( container_iterator< T > const &  other) const

Returns true if the iterator is different as other.

◆ begin()

template<typename T >
void voxomap::container_iterator< T >::begin ( VoxelNode< T > &  node)

Initialize this with the first voxel of node.

Parameters
node

◆ end()

template<typename T >
void voxomap::container_iterator< T >::end ( VoxelNode< T > &  node)

Initialize this with the next element after the last voxel of node.

Parameters
node

◆ getVoxelPosition()

template<typename T >
void voxomap::container_iterator< T >::getVoxelPosition ( int &  x,
int &  y,
int &  z 
) const

Get the absolute position of the voxel.

Parameters
xX position of voxel
yY position of voxel
zZ position of voxel

◆ getRelativeVoxelPosition()

template<typename T >
void voxomap::container_iterator< T >::getRelativeVoxelPosition ( int &  x,
int &  y,
int &  z 
) const

Get the relative position of the voxel inside its node.

Parameters
xX position of voxel
yY position of voxel
zZ position of voxel

◆ initPosition()

template<typename T >
void voxomap::container_iterator< T >::initPosition ( int  x,
int  y,
int  z 
)

Initiliaze the iterator with the absolute position.

Parameters
xX position of the voxel
yY position of the voxel
zZ position of the voxel

◆ getRelativeX()

template<typename T >
int voxomap::container_iterator< T >::getRelativeX ( ) const

◆ getRelativeY()

template<typename T >
int voxomap::container_iterator< T >::getRelativeY ( ) const

◆ getRelativeZ()

template<typename T >
int voxomap::container_iterator< T >::getRelativeZ ( ) const

◆ getAbsoluteX()

template<typename T >
int voxomap::container_iterator< T >::getAbsoluteX ( ) const

◆ getAbsoluteY()

template<typename T >
int voxomap::container_iterator< T >::getAbsoluteY ( ) const

◆ getAbsoluteZ()

template<typename T >
int voxomap::container_iterator< T >::getAbsoluteZ ( ) const

◆ findRelativeVoxel()

template<typename T >
container_iterator<T> voxomap::container_iterator< T >::findRelativeVoxel ( int  x,
int  y,
int  z 
)

◆ findNextParentNode()

template<typename T >
void voxomap::container_iterator< T >::findNextParentNode ( VoxelNode< T > &  i_node)
protected

◆ findNextChildNode()

template<typename T >
bool voxomap::container_iterator< T >::findNextChildNode ( VoxelNode< T > &  i_node)
protected

◆ findNextVoxel()

template<typename T >
bool voxomap::container_iterator< T >::findNextVoxel ( VoxelContainer container)
protected

Member Data Documentation

◆ node

template<typename T >
VoxelNode<T>* voxomap::container_iterator< T >::node = nullptr

Pointer on node.

Definition at line 25 of file iterator.hpp.

◆ voxelContainer

template<typename T >
VoxelContainer* voxomap::container_iterator< T >::voxelContainer = nullptr

Pointer on voxel container.

Definition at line 26 of file iterator.hpp.

◆ voxel

template<typename T >
VoxelData* voxomap::container_iterator< T >::voxel = nullptr

Pointer on voxel.

Definition at line 27 of file iterator.hpp.

◆ x

template<typename T >
uint8_t voxomap::container_iterator< T >::x = 0

x coordinate of voxel inside node

Definition at line 28 of file iterator.hpp.

◆ y

template<typename T >
uint8_t voxomap::container_iterator< T >::y = 0

y coordinate of voxel inside node

Definition at line 29 of file iterator.hpp.

◆ z

template<typename T >
uint8_t voxomap::container_iterator< T >::z = 0

z coordinate of voxel inside node

Definition at line 30 of file iterator.hpp.


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