octomap  1.9.7
octomap::AbstractOcTree Class Referenceabstract

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()). More...

+ Inheritance diagram for octomap::AbstractOcTree:
+ Collaboration diagram for octomap::AbstractOcTree:

Public Member Functions

 AbstractOcTree ()
 
virtual void clear ()=0
 
virtual AbstractOcTreecreate () const =0
 virtual constructor: creates a new object of same type More...
 
virtual void expand ()=0
 
virtual void getMetricMax (double &x, double &y, double &z) const =0
 
virtual void getMetricMax (double &x, double &y, double &z)=0
 
virtual void getMetricMin (double &x, double &y, double &z) const =0
 
virtual void getMetricMin (double &x, double &y, double &z)=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 More...
 
virtual size_t memoryUsage () const =0
 
virtual size_t memoryUsageNode () const =0
 
virtual void prune ()=0
 
virtual std::istream & readData (std::istream &s)=0
 Read all nodes from the input stream (without file header), for this the tree needs to be already created. More...
 
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) More...
 
bool write (std::ostream &s) const
 Write file header and complete tree to stream (serialization) More...
 
virtual std::ostream & writeData (std::ostream &s) const =0
 Write complete state of tree to stream (without file header) unmodified. Pruning the tree first produces smaller files (lossless compression) More...
 
virtual ~AbstractOcTree ()
 

Static Public Member Functions

static AbstractOcTreecreateTree (const std::string id, double res)
 Creates a certain OcTree (factory pattern) More...
 
static AbstractOcTreeread (const std::string &filename)
 Read the file header, create the appropriate class and deserialize. More...
 
static AbstractOcTreeread (std::istream &s)
 Read the file header, create the appropriate class and deserialize. This creates a new octree which you need to delete yourself. More...
 

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"
 

Friends

class StaticMapInit
 

Detailed Description

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()).

Constructor & Destructor Documentation

◆ AbstractOcTree()

octomap::AbstractOcTree::AbstractOcTree ( )

◆ ~AbstractOcTree()

virtual octomap::AbstractOcTree::~AbstractOcTree ( )
inlinevirtual

Member Function Documentation

◆ clear()

◆ create()

virtual AbstractOcTree* octomap::AbstractOcTree::create ( ) const
pure virtual

virtual constructor: creates a new object of same type

Implemented in octomap::ColorOcTree, octomap::OcTreeStamped, octomap::OcTree, and octomap::OcTreeBase< NODE >.

◆ createTree()

AbstractOcTree * octomap::AbstractOcTree::createTree ( const std::string  id,
double  res 
)
static

Creates a certain OcTree (factory pattern)

Parameters
idunique ID of OcTree
resresolution of OcTree
Returns
pointer to newly created OcTree (empty). NULL if the ID is unknown!

References OCTOMAP_ERROR, and setResolution().

Referenced by read().

◆ expand()

◆ getMetricMax() [1/2]

◆ getMetricMax() [2/2]

◆ getMetricMin() [1/2]

◆ getMetricMin() [2/2]

◆ getMetricSize()

◆ getResolution()

virtual double octomap::AbstractOcTree::getResolution ( ) const
pure virtual

◆ getTreeType()

virtual std::string octomap::AbstractOcTree::getTreeType ( ) const
pure virtual

◆ memoryUsage()

virtual size_t octomap::AbstractOcTree::memoryUsage ( ) const
pure virtual

◆ memoryUsageNode()

virtual size_t octomap::AbstractOcTree::memoryUsageNode ( ) const
pure virtual

◆ prune()

◆ read() [1/2]

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);

References OCTOMAP_ERROR_STR.

◆ read() [2/2]

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.

References createTree(), fileHeader, OCTOMAP_DEBUG_STR, OCTOMAP_ERROR_STR, readData(), readHeader(), and size().

◆ readData()

virtual std::istream& octomap::AbstractOcTree::readData ( std::istream &  s)
pure virtual

◆ readHeader()

bool octomap::AbstractOcTree::readHeader ( std::istream &  s,
std::string &  id,
unsigned &  size,
double &  res 
)
staticprotected

◆ registerTreeType()

◆ setResolution()

◆ size()

◆ write() [1/2]

bool octomap::AbstractOcTree::write ( const std::string &  filename) const

Write file header and complete tree to file (serialization)

References OCTOMAP_ERROR_STR.

Referenced by main().

◆ write() [2/2]

bool octomap::AbstractOcTree::write ( std::ostream &  s) const

Write file header and complete tree to stream (serialization)

References fileHeader, getResolution(), getTreeType(), size(), and writeData().

◆ writeData()

virtual std::ostream& octomap::AbstractOcTree::writeData ( std::ostream &  s) const
pure virtual

Friends And Related Function Documentation

◆ StaticMapInit

friend class StaticMapInit
friend

Field Documentation

◆ fileHeader

const std::string octomap::AbstractOcTree::fileHeader = "# Octomap OcTree file"
staticprotected

Referenced by read(), and write().


The documentation for this class was generated from the following files:
octomap::AbstractOcTree::AbstractOcTree
AbstractOcTree()
Definition: AbstractOcTree.cpp:41
octomap::AbstractOcTree::read
static AbstractOcTree * read(const std::string &filename)
Read the file header, create the appropriate class and deserialize.
Definition: AbstractOcTree.cpp:74