#include <AbstractOcTree.h>
Public Member Functions | |
AbstractOcTree () | |
virtual void | clear ()=0 |
virtual AbstractOcTree * | create () const =0 |
virtual constructor: creates a new object of same type | |
virtual void | expand ()=0 |
virtual void | getMetricMax (double &x, double &y, double &z)=0 |
virtual void | getMetricMax (double &x, double &y, double &z) const =0 |
virtual void | getMetricMin (double &x, double &y, double &z)=0 |
virtual void | getMetricMin (double &x, double &y, double &z) const =0 |
virtual void | getMetricSize (double &x, double &y, double &z)=0 |
virtual double | getResolution () const =0 |
virtual std::string | getTreeType () const =0 |
returns actual class name as string for identification | |
virtual size_t | memoryUsage () const =0 |
virtual size_t | memoryUsageNode () const =0 |
virtual void | prune ()=0 |
virtual std::istream & | readData (std::istream &s)=0 |
virtual void | setResolution (double res)=0 |
virtual size_t | size () const =0 |
bool | write (const std::string &filename) const |
Write file header and complete tree to file (serialization) | |
bool | write (std::ostream &s) const |
Write file header and complete tree to stream (serialization) | |
virtual std::ostream & | writeData (std::ostream &s) const =0 |
virtual | ~AbstractOcTree () |
Static Public Member Functions | |
static AbstractOcTree * | createTree (const std::string id, double res) |
static AbstractOcTree * | read (const std::string &filename) |
static AbstractOcTree * | read (std::istream &s) |
Static Protected Member Functions | |
static bool | readHeader (std::istream &s, std::string &id, unsigned &size, double &res) |
static void | registerTreeType (AbstractOcTree *tree) |
Static Protected Attributes | |
static const std::string | fileHeader = "# Octomap OcTree file" |
Static Private Member Functions | |
static std::map< std::string, AbstractOcTree * > & | classIDMapping () |
create private store, Construct on first use | |
Friends | |
class | StaticMapInit |
This abstract class is an interface to all octrees and provides a factory design pattern for readin and writing all kinds of OcTrees to files (see read()).
Definition at line 50 of file AbstractOcTree.h.
Definition at line 41 of file AbstractOcTree.cpp.
virtual octomap::AbstractOcTree::~AbstractOcTree | ( | ) | [inline, virtual] |
Definition at line 54 of file AbstractOcTree.h.
std::map< std::string, AbstractOcTree * > & octomap::AbstractOcTree::classIDMapping | ( | ) | [static, private] |
create private store, Construct on first use
Definition at line 197 of file AbstractOcTree.cpp.
virtual void octomap::AbstractOcTree::clear | ( | ) | [pure virtual] |
Implemented in octomap::OcTreeBaseImpl< NODE, AbstractOccupancyOcTree >, octomap::OcTreeBaseImpl< OcTreeNodeStamped, AbstractOccupancyOcTree >, octomap::OcTreeBaseImpl< OcTreeNode, AbstractOccupancyOcTree >, octomap::OcTreeBaseImpl< ColorOcTreeNode, AbstractOccupancyOcTree >, octomap::OcTreeBaseImpl< NODE, AbstractOcTree >, and octomap::OcTreeBaseImpl< CountingOcTreeNode, AbstractOcTree >.
virtual AbstractOcTree* octomap::AbstractOcTree::create | ( | ) | const [pure virtual] |
virtual constructor: creates a new object of same type
Implemented in octomap::OcTreeBase< NODE >.
AbstractOcTree * octomap::AbstractOcTree::createTree | ( | const std::string | id, |
double | res | ||
) | [static] |
virtual void octomap::AbstractOcTree::expand | ( | ) | [pure virtual] |
Implemented in octomap::OcTreeBaseImpl< NODE, AbstractOccupancyOcTree >, octomap::OcTreeBaseImpl< OcTreeNodeStamped, AbstractOccupancyOcTree >, octomap::OcTreeBaseImpl< OcTreeNode, AbstractOccupancyOcTree >, octomap::OcTreeBaseImpl< ColorOcTreeNode, AbstractOccupancyOcTree >, octomap::OcTreeBaseImpl< NODE, AbstractOcTree >, and octomap::OcTreeBaseImpl< CountingOcTreeNode, AbstractOcTree >.
virtual void octomap::AbstractOcTree::getMetricMax | ( | double & | x, |
double & | y, | ||
double & | z | ||
) | [pure virtual] |
Implemented in octomap::OcTreeBaseImpl< NODE, AbstractOccupancyOcTree >, octomap::OcTreeBaseImpl< OcTreeNodeStamped, AbstractOccupancyOcTree >, octomap::OcTreeBaseImpl< OcTreeNode, AbstractOccupancyOcTree >, octomap::OcTreeBaseImpl< ColorOcTreeNode, AbstractOccupancyOcTree >, octomap::OcTreeBaseImpl< NODE, AbstractOcTree >, and octomap::OcTreeBaseImpl< CountingOcTreeNode, AbstractOcTree >.
virtual void octomap::AbstractOcTree::getMetricMax | ( | double & | x, |
double & | y, | ||
double & | z | ||
) | const [pure virtual] |
Implemented in octomap::OcTreeBaseImpl< NODE, AbstractOccupancyOcTree >, octomap::OcTreeBaseImpl< OcTreeNodeStamped, AbstractOccupancyOcTree >, octomap::OcTreeBaseImpl< OcTreeNode, AbstractOccupancyOcTree >, octomap::OcTreeBaseImpl< ColorOcTreeNode, AbstractOccupancyOcTree >, octomap::OcTreeBaseImpl< NODE, AbstractOcTree >, and octomap::OcTreeBaseImpl< CountingOcTreeNode, AbstractOcTree >.
virtual void octomap::AbstractOcTree::getMetricMin | ( | double & | x, |
double & | y, | ||
double & | z | ||
) | [pure virtual] |
Implemented in octomap::OcTreeBaseImpl< NODE, AbstractOccupancyOcTree >, octomap::OcTreeBaseImpl< OcTreeNodeStamped, AbstractOccupancyOcTree >, octomap::OcTreeBaseImpl< OcTreeNode, AbstractOccupancyOcTree >, octomap::OcTreeBaseImpl< ColorOcTreeNode, AbstractOccupancyOcTree >, octomap::OcTreeBaseImpl< NODE, AbstractOcTree >, and octomap::OcTreeBaseImpl< CountingOcTreeNode, AbstractOcTree >.
virtual void octomap::AbstractOcTree::getMetricMin | ( | double & | x, |
double & | y, | ||
double & | z | ||
) | const [pure virtual] |
Implemented in octomap::OcTreeBaseImpl< NODE, AbstractOccupancyOcTree >, octomap::OcTreeBaseImpl< OcTreeNodeStamped, AbstractOccupancyOcTree >, octomap::OcTreeBaseImpl< OcTreeNode, AbstractOccupancyOcTree >, octomap::OcTreeBaseImpl< ColorOcTreeNode, AbstractOccupancyOcTree >, octomap::OcTreeBaseImpl< NODE, AbstractOcTree >, and octomap::OcTreeBaseImpl< CountingOcTreeNode, AbstractOcTree >.
virtual void octomap::AbstractOcTree::getMetricSize | ( | double & | x, |
double & | y, | ||
double & | z | ||
) | [pure virtual] |
Implemented in octomap::OcTreeBaseImpl< NODE, AbstractOccupancyOcTree >, octomap::OcTreeBaseImpl< OcTreeNodeStamped, AbstractOccupancyOcTree >, octomap::OcTreeBaseImpl< OcTreeNode, AbstractOccupancyOcTree >, octomap::OcTreeBaseImpl< ColorOcTreeNode, AbstractOccupancyOcTree >, octomap::OcTreeBaseImpl< NODE, AbstractOcTree >, and octomap::OcTreeBaseImpl< CountingOcTreeNode, AbstractOcTree >.
virtual double octomap::AbstractOcTree::getResolution | ( | ) | const [pure virtual] |
Implemented in octomap::OcTreeBaseImpl< NODE, AbstractOccupancyOcTree >, octomap::OcTreeBaseImpl< OcTreeNodeStamped, AbstractOccupancyOcTree >, octomap::OcTreeBaseImpl< OcTreeNode, AbstractOccupancyOcTree >, octomap::OcTreeBaseImpl< ColorOcTreeNode, AbstractOccupancyOcTree >, octomap::OcTreeBaseImpl< NODE, AbstractOcTree >, and octomap::OcTreeBaseImpl< CountingOcTreeNode, AbstractOcTree >.
virtual std::string octomap::AbstractOcTree::getTreeType | ( | ) | const [pure virtual] |
returns actual class name as string for identification
Implemented in octomap::OcTreeBaseImpl< NODE, AbstractOccupancyOcTree >, octomap::OcTreeBaseImpl< OcTreeNodeStamped, AbstractOccupancyOcTree >, octomap::OcTreeBaseImpl< OcTreeNode, AbstractOccupancyOcTree >, octomap::OcTreeBaseImpl< ColorOcTreeNode, AbstractOccupancyOcTree >, octomap::OcTreeBaseImpl< NODE, AbstractOcTree >, octomap::OcTreeBaseImpl< CountingOcTreeNode, AbstractOcTree >, and octomap::OcTreeBase< NODE >.
virtual size_t octomap::AbstractOcTree::memoryUsage | ( | ) | const [pure virtual] |
Implemented in octomap::OcTreeBaseImpl< NODE, AbstractOccupancyOcTree >, octomap::OcTreeBaseImpl< OcTreeNodeStamped, AbstractOccupancyOcTree >, octomap::OcTreeBaseImpl< OcTreeNode, AbstractOccupancyOcTree >, octomap::OcTreeBaseImpl< ColorOcTreeNode, AbstractOccupancyOcTree >, octomap::OcTreeBaseImpl< NODE, AbstractOcTree >, and octomap::OcTreeBaseImpl< CountingOcTreeNode, AbstractOcTree >.
virtual size_t octomap::AbstractOcTree::memoryUsageNode | ( | ) | const [pure virtual] |
Implemented in octomap::OcTreeBaseImpl< NODE, AbstractOccupancyOcTree >, octomap::OcTreeBaseImpl< OcTreeNodeStamped, AbstractOccupancyOcTree >, octomap::OcTreeBaseImpl< OcTreeNode, AbstractOccupancyOcTree >, octomap::OcTreeBaseImpl< ColorOcTreeNode, AbstractOccupancyOcTree >, octomap::OcTreeBaseImpl< NODE, AbstractOcTree >, and octomap::OcTreeBaseImpl< CountingOcTreeNode, AbstractOcTree >.
virtual void octomap::AbstractOcTree::prune | ( | ) | [pure virtual] |
Implemented in octomap::OcTreeBaseImpl< NODE, AbstractOccupancyOcTree >, octomap::OcTreeBaseImpl< OcTreeNodeStamped, AbstractOccupancyOcTree >, octomap::OcTreeBaseImpl< OcTreeNode, AbstractOccupancyOcTree >, octomap::OcTreeBaseImpl< ColorOcTreeNode, AbstractOccupancyOcTree >, octomap::OcTreeBaseImpl< NODE, AbstractOcTree >, and octomap::OcTreeBaseImpl< CountingOcTreeNode, AbstractOcTree >.
AbstractOcTree * octomap::AbstractOcTree::read | ( | const std::string & | filename | ) | [static] |
Read the file header, create the appropriate class and deserialize. This creates a new octree which you need to delete yourself. If you expect or requre a specific kind of octree, use dynamic_cast afterwards:
AbstractOcTree* tree = AbstractOcTree::read("filename.ot"); OcTree* octree = dynamic_cast<OcTree*>(tree);
Definition at line 74 of file AbstractOcTree.cpp.
AbstractOcTree * octomap::AbstractOcTree::read | ( | std::istream & | s | ) | [static] |
Read the file header, create the appropriate class and deserialize. This creates a new octree which you need to delete yourself.
Definition at line 87 of file AbstractOcTree.cpp.
virtual std::istream& octomap::AbstractOcTree::readData | ( | std::istream & | s | ) | [pure virtual] |
Read all nodes from the input stream (without file header), for this the tree needs to be already created. For general file IO, you should probably use AbstractOcTree::read() instead.
Implemented in octomap::OcTreeBaseImpl< NODE, AbstractOccupancyOcTree >, octomap::OcTreeBaseImpl< OcTreeNodeStamped, AbstractOccupancyOcTree >, octomap::OcTreeBaseImpl< OcTreeNode, AbstractOccupancyOcTree >, octomap::OcTreeBaseImpl< ColorOcTreeNode, AbstractOccupancyOcTree >, octomap::OcTreeBaseImpl< NODE, AbstractOcTree >, and octomap::OcTreeBaseImpl< CountingOcTreeNode, AbstractOcTree >.
bool octomap::AbstractOcTree::readHeader | ( | std::istream & | s, |
std::string & | id, | ||
unsigned & | size, | ||
double & | res | ||
) | [static, protected] |
Definition at line 119 of file AbstractOcTree.cpp.
void octomap::AbstractOcTree::registerTreeType | ( | AbstractOcTree * | tree | ) | [static, protected] |
Definition at line 205 of file AbstractOcTree.cpp.
virtual void octomap::AbstractOcTree::setResolution | ( | double | res | ) | [pure virtual] |
Implemented in octomap::OcTreeBaseImpl< NODE, AbstractOccupancyOcTree >, octomap::OcTreeBaseImpl< OcTreeNodeStamped, AbstractOccupancyOcTree >, octomap::OcTreeBaseImpl< OcTreeNode, AbstractOccupancyOcTree >, octomap::OcTreeBaseImpl< ColorOcTreeNode, AbstractOccupancyOcTree >, octomap::OcTreeBaseImpl< NODE, AbstractOcTree >, and octomap::OcTreeBaseImpl< CountingOcTreeNode, AbstractOcTree >.
virtual size_t octomap::AbstractOcTree::size | ( | ) | const [pure virtual] |
Implemented in octomap::OcTreeBaseImpl< NODE, AbstractOccupancyOcTree >, octomap::OcTreeBaseImpl< OcTreeNodeStamped, AbstractOccupancyOcTree >, octomap::OcTreeBaseImpl< OcTreeNode, AbstractOccupancyOcTree >, octomap::OcTreeBaseImpl< ColorOcTreeNode, AbstractOccupancyOcTree >, octomap::OcTreeBaseImpl< NODE, AbstractOcTree >, and octomap::OcTreeBaseImpl< CountingOcTreeNode, AbstractOcTree >.
bool octomap::AbstractOcTree::write | ( | const std::string & | filename | ) | const |
Write file header and complete tree to file (serialization)
Definition at line 45 of file AbstractOcTree.cpp.
bool octomap::AbstractOcTree::write | ( | std::ostream & | s | ) | const |
Write file header and complete tree to stream (serialization)
Definition at line 61 of file AbstractOcTree.cpp.
virtual std::ostream& octomap::AbstractOcTree::writeData | ( | std::ostream & | s | ) | const [pure virtual] |
Write complete state of tree to stream (without file header) unmodified. Pruning the tree first produces smaller files (lossless compression)
Implemented in octomap::OcTreeBaseImpl< NODE, AbstractOccupancyOcTree >, octomap::OcTreeBaseImpl< OcTreeNodeStamped, AbstractOccupancyOcTree >, octomap::OcTreeBaseImpl< OcTreeNode, AbstractOccupancyOcTree >, octomap::OcTreeBaseImpl< ColorOcTreeNode, AbstractOccupancyOcTree >, octomap::OcTreeBaseImpl< NODE, AbstractOcTree >, and octomap::OcTreeBaseImpl< CountingOcTreeNode, AbstractOcTree >.
friend class StaticMapInit [friend] |
Definition at line 51 of file AbstractOcTree.h.
const std::string octomap::AbstractOcTree::fileHeader = "# Octomap OcTree file" [static, protected] |
Definition at line 155 of file AbstractOcTree.h.