#include <OcTreeDataNode.h>
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 |
T | 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... | |
T | value |
stored data (payload) More... | |
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.#
T | data 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.
typedef T octomap::OcTreeDataNode< T >::DataType |
Make the templated data type available from the outside.
Definition at line 150 of file OcTreeDataNode.h.
octomap::OcTreeDataNode< T >::OcTreeDataNode | ( | ) |
octomap::OcTreeDataNode< T >::OcTreeDataNode | ( | T | initVal | ) |
octomap::OcTreeDataNode< T >::OcTreeDataNode | ( | const OcTreeDataNode< T > & | rhs | ) |
Copy constructor, performs a recursive deep-copy of all children.
octomap::OcTreeDataNode< T >::~OcTreeDataNode | ( | ) |
|
protected |
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.
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
bool octomap::OcTreeDataNode< T >::createChild | ( | unsigned int | i | ) |
initialize i-th child, allocate children array if needed
void octomap::OcTreeDataNode< T >::deleteChild | ( | unsigned int | i | ) |
Deletes the i-th child of the node.
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)
OcTreeDataNode<T>* octomap::OcTreeDataNode< T >::getChild | ( | unsigned int | i | ) |
const OcTreeDataNode<T>* octomap::OcTreeDataNode< T >::getChild | ( | unsigned int | i | ) | const |
|
inline |
Definition at line 123 of file OcTreeDataNode.h.
bool octomap::OcTreeDataNode< T >::hasChildren | ( | ) | const |
bool octomap::OcTreeDataNode< T >::operator== | ( | const OcTreeDataNode< T > & | rhs | ) | const |
Equals operator, compares if the stored value is identical.
bool octomap::OcTreeDataNode< T >::pruneNode | ( | ) |
Prunes a node when it is collapsible
std::istream& octomap::OcTreeDataNode< T >::readValue | ( | std::istream & | s | ) |
Read node from binary stream (incl. float value), recursively continue with all children.
s |
|
inline |
sets value to be stored in the node
Definition at line 125 of file OcTreeDataNode.h.
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.
s |
|
protected |
pointer to array of children, may be NULL
Definition at line 157 of file OcTreeDataNode.h.
|
protected |
stored data (payload)
Definition at line 159 of file OcTreeDataNode.h.