octomap 1.9.8
OcTreeDataNode.h
Go to the documentation of this file.
1/*
2 * OctoMap - An Efficient Probabilistic 3D Mapping Framework Based on Octrees
3 * https://octomap.github.io/
4 *
5 * Copyright (c) 2009-2013, K.M. Wurm and A. Hornung, University of Freiburg
6 * All rights reserved.
7 * License: New BSD
8 *
9 * Redistribution and use in source and binary forms, with or without
10 * modification, are permitted provided that the following conditions are met:
11 *
12 * * Redistributions of source code must retain the above copyright
13 * notice, this list of conditions and the following disclaimer.
14 * * Redistributions in binary form must reproduce the above copyright
15 * notice, this list of conditions and the following disclaimer in the
16 * documentation and/or other materials provided with the distribution.
17 * * Neither the name of the University of Freiburg nor the names of its
18 * contributors may be used to endorse or promote products derived from
19 * this software without specific prior written permission.
20 *
21 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
22 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
23 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
24 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
25 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
26 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
27 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
28 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
29 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
30 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
31 * POSSIBILITY OF SUCH DAMAGE.
32 */
33
34#ifndef OCTOMAP_OCTREE_DATA_NODE_H
35#define OCTOMAP_OCTREE_DATA_NODE_H
36
37
38#include "octomap_types.h"
39#include "assert.h"
40
41namespace octomap {
42
44
45
46 };
47
48 // forward declaration for friend in OcTreeDataNode
49 template<typename NODE,typename I> class OcTreeBaseImpl;
50
63 template<typename T> class OcTreeDataNode: public AbstractOcTreeNode {
64 template<typename NODE, typename I>
65 friend class OcTreeBaseImpl;
66
67 public:
68
70 OcTreeDataNode(T initVal);
71
75
79
82 void copyData(const OcTreeDataNode& from);
83
85 bool operator==(const OcTreeDataNode& rhs) const;
86
87
88
89
90
91 // -- children ----------------------------------
92
96 OCTOMAP_DEPRECATED(bool childExists(unsigned int i) const);
97
100 OCTOMAP_DEPRECATED(bool hasChildren() const);
101
103 T getValue() const{return value;};
105 void setValue(T v) {value = v;};
106
107 // file IO:
108
110 std::istream& readData(std::istream &s);
111
113 std::ostream& writeData(std::ostream &s) const;
114
115
117 typedef T DataType;
118
119
120 protected:
121 void allocChildren();
122
129
130 };
131
132
133} // end namespace
134
136
137#endif
Definition: OcTreeDataNode.h:43
OcTree base class, to be used with with any kind of OcTreeDataNode.
Definition: OcTreeBaseImpl.h:75
Basic node in the OcTree that can hold arbitrary data of type T in value.
Definition: OcTreeDataNode.h:63
OCTOMAP_DEPRECATED(bool childExists(unsigned int i) const)
Test whether the i-th child exists.
AbstractOcTreeNode ** children
pointer to array of children, may be NULL
Definition: OcTreeDataNode.h:126
T DataType
Make the templated data type available from the outside.
Definition: OcTreeDataNode.h:117
T value
stored data (payload)
Definition: OcTreeDataNode.h:128
bool operator==(const OcTreeDataNode &rhs) const
Equals operator, compares if the stored value is identical.
Definition: OcTreeDataNode.hxx:78
void setValue(T v)
sets value to be stored in the node
Definition: OcTreeDataNode.h:105
std::ostream & writeData(std::ostream &s) const
Write node payload (data only) to binary stream.
Definition: OcTreeDataNode.hxx:121
OcTreeDataNode()
Definition: OcTreeDataNode.hxx:37
void allocChildren()
Definition: OcTreeDataNode.hxx:131
OCTOMAP_DEPRECATED(bool hasChildren() const)
T getValue() const
Definition: OcTreeDataNode.h:103
std::istream & readData(std::istream &s)
Read node payload (data only) from binary stream.
Definition: OcTreeDataNode.hxx:114
void copyData(const OcTreeDataNode &from)
Copy the payload (data in "value") from rhs into this node Opposed to copy ctor, this does not clone ...
Definition: OcTreeDataNode.hxx:73
~OcTreeDataNode()
Delete only own members. OcTree maintains tree structure and must have deleted children already.
Definition: OcTreeDataNode.hxx:65
Namespace the OctoMap library and visualization tools.