Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
octomap::OcTreeDataNode< T > Class Template Reference

#include <OcTreeDataNode.h>

Inheritance diagram for octomap::OcTreeDataNode< T >:
Inheritance graph
[legend]

Public Types

typedef T DataType
 Make the templated data type available from the outside. More...
 

Public Member Functions

bool childExists (unsigned int i) const
 
bool collapsible () const
 
bool createChild (unsigned int i)
 initialize i-th child, allocate children array if needed More...
 
void deleteChild (unsigned int i)
 Deletes the i-th child of the node. More...
 
void expandNode ()
 
OcTreeDataNode< T > * getChild (unsigned int i)
 
const OcTreeDataNode< T > * getChild (unsigned int i) const
 
getValue () const
 
bool hasChildren () const
 
 OcTreeDataNode ()
 
 OcTreeDataNode (T initVal)
 
 OcTreeDataNode (const OcTreeDataNode &rhs)
 Copy constructor, performs a recursive deep-copy of all children. More...
 
bool operator== (const OcTreeDataNode &rhs) const
 Equals operator, compares if the stored value is identical. More...
 
bool pruneNode ()
 
std::istream & readValue (std::istream &s)
 
void setValue (T v)
 sets value to be stored in the node More...
 
std::ostream & writeValue (std::ostream &s) const
 
 ~OcTreeDataNode ()
 

Protected Member Functions

void allocChildren ()
 

Protected Attributes

OcTreeDataNode< T > ** children
 pointer to array of children, may be NULL More...
 
value
 stored data (payload) More...
 

Detailed Description

template<typename T>
class octomap::OcTreeDataNode< T >

Basic node in the OcTree that can hold arbitrary data of type T in value. This is the base class for nodes used in an OcTree. The used implementation for occupancy mapping is in OcTreeNode.#

Template Parameters
Tdata to be stored in the node (e.g. a float for probabilities)

Note: If you derive a class (directly or indirectly) from OcTreeDataNode, you have to implement (at least) the following functions to avoid slicing errors and memory-related bugs: createChild(), getChild(), getChild() const, expandNode() See ColorOcTreeNode in ColorOcTree.h for an example.

Definition at line 61 of file OcTreeDataNode.h.

Member Typedef Documentation

template<typename T>
typedef T octomap::OcTreeDataNode< T >::DataType

Make the templated data type available from the outside.

Definition at line 150 of file OcTreeDataNode.h.

Constructor & Destructor Documentation

template<typename T>
octomap::OcTreeDataNode< T >::OcTreeDataNode ( )
template<typename T>
octomap::OcTreeDataNode< T >::OcTreeDataNode ( initVal)
template<typename T>
octomap::OcTreeDataNode< T >::OcTreeDataNode ( const OcTreeDataNode< T > &  rhs)

Copy constructor, performs a recursive deep-copy of all children.

template<typename T>
octomap::OcTreeDataNode< T >::~OcTreeDataNode ( )

Member Function Documentation

template<typename T>
void octomap::OcTreeDataNode< T >::allocChildren ( )
protected
template<typename T>
bool octomap::OcTreeDataNode< T >::childExists ( unsigned int  i) const

Safe test to check of the i-th child exists, first tests if there are any children.

Returns
true if the i-th child exists
template<typename T>
bool octomap::OcTreeDataNode< T >::collapsible ( ) const

A node is collapsible if all children exist, don't have children of their own and have the same occupancy value

template<typename T>
bool octomap::OcTreeDataNode< T >::createChild ( unsigned int  i)

initialize i-th child, allocate children array if needed

template<typename T>
void octomap::OcTreeDataNode< T >::deleteChild ( unsigned int  i)

Deletes the i-th child of the node.

template<typename T>
void octomap::OcTreeDataNode< T >::expandNode ( )

Expands a node (reverse of pruning): All children are created and their occupancy probability is set to the node's value.

You need to verify that this is indeed a pruned node (i.e. not a leaf at the lowest level)

template<typename T>
OcTreeDataNode<T>* octomap::OcTreeDataNode< T >::getChild ( unsigned int  i)
Returns
a pointer to the i-th child of the node. The child needs to exist.
template<typename T>
const OcTreeDataNode<T>* octomap::OcTreeDataNode< T >::getChild ( unsigned int  i) const
Returns
a const pointer to the i-th child of the node. The child needs to exist.
template<typename T>
T octomap::OcTreeDataNode< T >::getValue ( ) const
inline
Returns
value stored in the node

Definition at line 123 of file OcTreeDataNode.h.

template<typename T>
bool octomap::OcTreeDataNode< T >::hasChildren ( ) const
Returns
true if the node has at least one child
template<typename T>
bool octomap::OcTreeDataNode< T >::operator== ( const OcTreeDataNode< T > &  rhs) const

Equals operator, compares if the stored value is identical.

template<typename T>
bool octomap::OcTreeDataNode< T >::pruneNode ( )

Prunes a node when it is collapsible

Returns
true if pruning was successful
template<typename T>
std::istream& octomap::OcTreeDataNode< T >::readValue ( std::istream &  s)

Read node from binary stream (incl. float value), recursively continue with all children.

Parameters
s
Returns
template<typename T>
void octomap::OcTreeDataNode< T >::setValue ( v)
inline

sets value to be stored in the node

Definition at line 125 of file OcTreeDataNode.h.

template<typename T>
std::ostream& octomap::OcTreeDataNode< T >::writeValue ( std::ostream &  s) const

Write node to binary stream (incl float value), recursively continue with all children. This preserves the complete state of the node.

Parameters
s
Returns

Member Data Documentation

template<typename T>
OcTreeDataNode<T>** octomap::OcTreeDataNode< T >::children
protected

pointer to array of children, may be NULL

Definition at line 157 of file OcTreeDataNode.h.

template<typename T>
T octomap::OcTreeDataNode< T >::value
protected

stored data (payload)

Definition at line 159 of file OcTreeDataNode.h.


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


octomap
Author(s): Kai M. Wurm , Armin Hornung
autogenerated on Mon Jun 10 2019 14:00:13