octomap 1.9.8
Loading...
Searching...
No Matches
octomap::OcTreeDataNode< T > Class Template Reference

Basic node in the OcTree that can hold arbitrary data of type T in value. More...

#include <OcTreeDataNode.h>

Inheritance diagram for octomap::OcTreeDataNode< T >:
Collaboration diagram for octomap::OcTreeDataNode< T >:

Public Types

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

Public Member Functions

void copyData (const OcTreeDataNode &from)
 Copy the payload (data in "value") from rhs into this node Opposed to copy ctor, this does not clone the children as well.
getValue () const
 OCTOMAP_DEPRECATED (bool childExists(unsigned int i) const)
 Test whether the i-th child exists.
 OCTOMAP_DEPRECATED (bool hasChildren() const)
 OcTreeDataNode ()
 OcTreeDataNode (const OcTreeDataNode &rhs)
 Copy constructor, performs a recursive deep-copy of all children including node data in "value".
 OcTreeDataNode (T initVal)
bool operator== (const OcTreeDataNode &rhs) const
 Equals operator, compares if the stored value is identical.
std::istream & readData (std::istream &s)
 Read node payload (data only) from binary stream.
void setValue (T v)
 sets value to be stored in the node
std::ostream & writeData (std::ostream &s) const
 Write node payload (data only) to binary stream.
 ~OcTreeDataNode ()
 Delete only own members. OcTree maintains tree structure and must have deleted children already.

Protected Member Functions

void allocChildren ()

Protected Attributes

AbstractOcTreeNode ** children
 pointer to array of children, may be NULL
value
 stored data (payload)

Friends

template<typename NODE, typename I>
class OcTreeBaseImpl

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.

Member Typedef Documentation

◆ DataType

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

Make the templated data type available from the outside.

Constructor & Destructor Documentation

◆ OcTreeDataNode() [1/3]

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

References children.

Referenced by copyData(), OcTreeBaseImpl, OcTreeDataNode(), and operator==().

◆ OcTreeDataNode() [2/3]

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

References children, and value.

◆ OcTreeDataNode() [3/3]

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

Copy constructor, performs a recursive deep-copy of all children including node data in "value".

References children, OcTreeDataNode(), and value.

◆ ~OcTreeDataNode()

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

Delete only own members. OcTree maintains tree structure and must have deleted children already.

References ~OcTreeDataNode().

Referenced by ~OcTreeDataNode().

Member Function Documentation

◆ allocChildren()

template<typename T>
void octomap::OcTreeDataNode< T >::allocChildren ( )
protected

References allocChildren(), and children.

Referenced by allocChildren().

◆ copyData()

template<typename T>
void octomap::OcTreeDataNode< T >::copyData ( const OcTreeDataNode< T > & from)

Copy the payload (data in "value") from rhs into this node Opposed to copy ctor, this does not clone the children as well.

References copyData(), OcTreeDataNode(), and value.

Referenced by copyData().

◆ getValue()

template<typename T>
T octomap::OcTreeDataNode< T >::getValue ( ) const
inline
Returns
value stored in the node

References value.

Referenced by octomap::ColorOcTree::isNodeCollapsible().

◆ OCTOMAP_DEPRECATED() [1/2]

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

Test whether the i-th child exists.

Returns
true if the i-th child exists

◆ OCTOMAP_DEPRECATED() [2/2]

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

◆ operator==()

template<typename T>
bool octomap::OcTreeDataNode< T >::operator== ( const OcTreeDataNode< T > & rhs) const

Equals operator, compares if the stored value is identical.

References OcTreeDataNode(), and value.

◆ readData()

template<typename T>
std::istream & octomap::OcTreeDataNode< T >::readData ( std::istream & s)

Read node payload (data only) from binary stream.

References readData(), and value.

Referenced by readData().

◆ setValue()

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

sets value to be stored in the node

References value.

Referenced by main().

◆ writeData()

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

Write node payload (data only) to binary stream.

Referenced by octomap::OcTreeDataNode< unsigned int >::allocChildren().

◆ OcTreeBaseImpl

template<typename T>
template<typename NODE, typename I>
friend class OcTreeBaseImpl
friend

References OcTreeBaseImpl, and OcTreeDataNode().

Referenced by OcTreeBaseImpl.

Field Documentation

◆ children

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

pointer to array of children, may be NULL

Note
The tree class manages this pointer, the array, and the memory for it! The children of a node are always enforced to be the same type as the node

Referenced by allocChildren(), OcTreeDataNode(), OcTreeDataNode(), OcTreeDataNode(), and octomap::ColorOcTree::pruneNode().

◆ value


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