octomap 1.9.8
OcTree.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_H
35#define OCTOMAP_OCTREE_H
36
37
38#include "OccupancyOcTreeBase.h"
39#include "OcTreeNode.h"
40#include "ScanGraph.h"
41
42namespace octomap {
43
49 class OcTree : public OccupancyOcTreeBase <OcTreeNode> {
50
51 public:
53 OcTree(double resolution);
54
60 OcTree(std::string _filename);
61
62 virtual ~OcTree(){};
63
66 OcTree* create() const {return new OcTree(resolution); }
67
68 std::string getTreeType() const {return "OcTree";}
69
70
71 protected:
80 public:
82 OcTree* tree = new OcTree(0.1);
83 tree->clearKeyRays();
85 }
86
92 void ensureLinking() {};
93 };
94
97 };
98
99} // end namespace
100
101#endif
static void registerTreeType(AbstractOcTree *tree)
Definition: AbstractOcTree.cpp:205
void clearKeyRays()
Clear KeyRay vector to minimize unneeded memory.
Definition: OcTreeBaseImpl.h:120
double resolution
in meters
Definition: OcTreeBaseImpl.h:547
Static member object which ensures that this OcTree's prototype ends up in the classIDMapping only on...
Definition: OcTree.h:79
StaticMemberInitializer()
Definition: OcTree.h:81
void ensureLinking()
Dummy function to ensure that MSVC does not drop the StaticMemberInitializer, causing this tree faili...
Definition: OcTree.h:92
octomap main map data structure, stores 3D occupancy grid map in an OcTree.
Definition: OcTree.h:49
OcTree * create() const
virtual constructor: creates a new object of same type (Covariant return type requires an up-to-date ...
Definition: OcTree.h:66
std::string getTreeType() const
returns actual class name as string for identification
Definition: OcTree.h:68
OcTree(double resolution)
Default constructor, sets resolution of leafs.
Definition: OcTree.cpp:39
virtual ~OcTree()
Definition: OcTree.h:62
static StaticMemberInitializer ocTreeMemberInit
to ensure static initialization (only once)
Definition: OcTree.h:96
Base implementation for Occupancy Octrees (e.g.
Definition: OccupancyOcTreeBase.h:69
Namespace the OctoMap library and visualization tools.