octomap 1.5.0
octomap::ScanGraph Class Reference

A ScanGraph is a collection of ScanNodes, connected by ScanEdges. More...

Collaboration diagram for octomap::ScanGraph:

Public Types

typedef std::vector< ScanEdge * >
::const_iterator 
const_edge_iterator
typedef std::vector< ScanNode * >
::const_iterator 
const_iterator
typedef std::vector< ScanEdge * >
::iterator 
edge_iterator
typedef std::vector< ScanNode * >
::iterator 
iterator

Public Member Functions

ScanEdgeaddEdge (ScanNode *first, ScanNode *second, pose6d constraint)
 Creates an edge between two ScanNodes.
ScanEdgeaddEdge (unsigned int first_id, unsigned int second_id)
ScanNodeaddNode (Pointcloud *scan, pose6d pose)
 Creates a new ScanNode in the graph from a Pointcloud.
iterator begin ()
const_iterator begin () const
void clear ()
 Clears all nodes and edges, and will delete the corresponding objects.
void connectPrevious ()
 Connect previously added ScanNode to the one before that.
void crop (point3d lowerBound, point3d upperBound)
 Cut graph (all containing Pointclouds) to given BBX in global coords.
void cropEachScan (point3d lowerBound, point3d upperBound)
 Cut Pointclouds to given BBX in local coords.
bool edgeExists (unsigned int first_id, unsigned int second_id)
edge_iterator edges_begin ()
const_edge_iterator edges_begin () const
edge_iterator edges_end ()
const_edge_iterator edges_end () const
iterator end ()
const_iterator end () const
void exportDot (std::string filename)
std::vector< ScanEdge * > getInEdges (ScanNode *node)
std::vector< unsigned int > getNeighborIDs (unsigned int id)
ScanNodegetNodeByID (unsigned int id)
 will return NULL if node was not found
unsigned int getNumPoints (unsigned int max_id=-1) const
std::vector< ScanEdge * > getOutEdges (ScanNode *node)
std::istream & readBinary (std::ifstream &s)
bool readBinary (const std::string &filename)
std::istream & readEdgesASCII (std::istream &s)
std::istream & readNodePosesASCII (std::istream &s)
std::istream & readPlainASCII (std::istream &s)
 Reads in a ScanGraph from a "plain" ASCII file of the form NODE x y z R P Y x y z x y z x y z NODE x y z R P Y x y z.
void readPlainASCII (const std::string &filename)
 ScanGraph ()
unsigned int size () const
void transformScans ()
 Transform every scan according to its pose.
bool writeBinary (const std::string &filename) const
std::ostream & writeBinary (std::ostream &s) const
std::ostream & writeEdgesASCII (std::ostream &s) const
std::ostream & writeNodePosesASCII (std::ostream &s) const
 ~ScanGraph ()

Protected Attributes

std::vector< ScanEdge * > edges
std::vector< ScanNode * > nodes

Detailed Description

A ScanGraph is a collection of ScanNodes, connected by ScanEdges.

Each ScanNode contains a 3D scan performed from a pose.


Member Typedef Documentation


Constructor & Destructor Documentation

octomap::ScanGraph::ScanGraph ( ) [inline]
octomap::ScanGraph::~ScanGraph ( )

References clear().


Member Function Documentation

ScanEdge * octomap::ScanGraph::addEdge ( ScanNode first,
ScanNode second,
pose6d  constraint 
)

Creates an edge between two ScanNodes.

ScanGraph will delete the object when it's no longer needed, don't delete it yourself.

Parameters:
firstScanNode
secondScanNode
constraint6D transform between the two nodes
Returns:

References edges, and OCTOMAP_ERROR.

Referenced by addEdge(), and connectPrevious().

ScanEdge * octomap::ScanGraph::addEdge ( unsigned int  first_id,
unsigned int  second_id 
)
ScanNode * octomap::ScanGraph::addNode ( Pointcloud scan,
pose6d  pose 
)

Creates a new ScanNode in the graph from a Pointcloud.

Parameters:
scanPointer to a pointcloud to be added to the ScanGraph. ScanGraph will delete the object when it's no longer needed, don't delete it yourself.
pose6D pose of the origin of the Pointcloud
Returns:
Pointer to the new node

References nodes, and OCTOMAP_ERROR.

const_iterator octomap::ScanGraph::begin ( ) const [inline]

References nodes.

iterator octomap::ScanGraph::begin ( ) [inline]
void octomap::ScanGraph::clear ( )

Clears all nodes and edges, and will delete the corresponding objects.

References edges, and nodes.

Referenced by readBinary(), and ~ScanGraph().

void octomap::ScanGraph::connectPrevious ( )

Connect previously added ScanNode to the one before that.

References addEdge(), nodes, and octomap::ScanNode::pose.

Referenced by readPlainASCII().

void octomap::ScanGraph::crop ( point3d  lowerBound,
point3d  upperBound 
)

Cut graph (all containing Pointclouds) to given BBX in global coords.

References begin(), octomap::Pointcloud::crop(), end(), octomath::Pose6D::inv(), octomap::Pointcloud::transform(), and octomap::Pointcloud::transformAbsolute().

Referenced by cropEachScan().

void octomap::ScanGraph::cropEachScan ( point3d  lowerBound,
point3d  upperBound 
)

Cut Pointclouds to given BBX in local coords.

References begin(), crop(), and end().

bool octomap::ScanGraph::edgeExists ( unsigned int  first_id,
unsigned int  second_id 
)
Returns:
true when an edge between first_id and second_id exists

References edges.

Referenced by addEdge(), and getNeighborIDs().

edge_iterator octomap::ScanGraph::edges_begin ( ) [inline]

References edges.

Referenced by readNodePosesASCII(), writeBinary(), and writeEdgesASCII().

const_edge_iterator octomap::ScanGraph::edges_begin ( ) const [inline]

References edges.

edge_iterator octomap::ScanGraph::edges_end ( ) [inline]

References edges.

Referenced by readNodePosesASCII(), writeBinary(), and writeEdgesASCII().

const_edge_iterator octomap::ScanGraph::edges_end ( ) const [inline]

References edges.

iterator octomap::ScanGraph::end ( ) [inline]
const_iterator octomap::ScanGraph::end ( ) const [inline]

References nodes.

void octomap::ScanGraph::exportDot ( std::string  filename)

References edges.

std::vector< ScanEdge * > octomap::ScanGraph::getInEdges ( ScanNode node)

References edges.

std::vector< unsigned int > octomap::ScanGraph::getNeighborIDs ( unsigned int  id)
ScanNode * octomap::ScanGraph::getNodeByID ( unsigned int  id)

will return NULL if node was not found

References nodes.

Referenced by addEdge(), getNeighborIDs(), octomap::ScanEdge::readASCII(), and octomap::ScanEdge::readBinary().

unsigned int octomap::ScanGraph::getNumPoints ( unsigned int  max_id = -1) const

References begin(), and end().

Referenced by main().

std::vector< ScanEdge * > octomap::ScanGraph::getOutEdges ( ScanNode node)

References edges.

std::istream & octomap::ScanGraph::readBinary ( std::ifstream &  s)
bool octomap::ScanGraph::readBinary ( const std::string &  filename)

References OCTOMAP_ERROR_STR, and readBinary().

std::istream & octomap::ScanGraph::readEdgesASCII ( std::istream &  s)
std::istream & octomap::ScanGraph::readNodePosesASCII ( std::istream &  s)
std::istream & octomap::ScanGraph::readPlainASCII ( std::istream &  s)

Reads in a ScanGraph from a "plain" ASCII file of the form NODE x y z R P Y x y z x y z x y z NODE x y z R P Y x y z.

Lines starting with the NODE keyword contain the 6D pose of a scan node, all 3D point following until the next NODE keyword (or end of file) are inserted into that scan node as pointcloud in its local coordinate frame

Parameters:
inputstream to read from
Returns:
read stream

References connectPrevious(), nodes, OCTOMAP_DEBUG_STR, OCTOMAP_ERROR_STR, octomap::ScanNode::pose, octomap::Pointcloud::push_back(), octomap::ScanNode::scan, and octomap::Pointcloud::size().

Referenced by main(), and readPlainASCII().

void octomap::ScanGraph::readPlainASCII ( const std::string &  filename)
unsigned int octomap::ScanGraph::size ( ) const [inline]

References nodes.

Referenced by main(), writeBinary(), and writeNodePosesASCII().

void octomap::ScanGraph::transformScans ( )

Transform every scan according to its pose.

References begin(), and end().

bool octomap::ScanGraph::writeBinary ( const std::string &  filename) const

References OCTOMAP_ERROR_STR, and writeBinary().

std::ostream & octomap::ScanGraph::writeBinary ( std::ostream &  s) const
std::ostream & octomap::ScanGraph::writeEdgesASCII ( std::ostream &  s) const
std::ostream & octomap::ScanGraph::writeNodePosesASCII ( std::ostream &  s) const

References begin(), end(), OCTOMAP_DEBUG, and size().


Field Documentation


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