48 #ifndef OCTOMAP_SCANGRAPH_H 49 #define OCTOMAP_SCANGRAPH_H 79 return (
id == other.
id);
102 : first(_first), second(_second), constraint(_constraint), weight(1.0) { }
106 return ( (*first == *(other.
first) ) && ( *second == *(other.
second) ) );
113 std::ostream& writeASCII(std::ostream &s)
const;
114 std::istream& readASCII(std::istream &s,
ScanGraph& graph);
160 ScanEdge* addEdge(uint64_t first_id, uint64_t second_id);
166 bool edgeExists(uint64_t first_id, uint64_t second_id);
169 void connectPrevious();
171 std::vector<uint64_t> getNeighborIDs(uint64_t
id);
172 std::vector<ScanEdge*> getOutEdges(
ScanNode* node);
174 std::vector<ScanEdge*> getInEdges(
ScanNode* node);
176 void exportDot(std::string filename);
179 void transformScans();
190 iterator
begin() {
return nodes.begin(); }
191 iterator
end() {
return nodes.end(); }
192 const_iterator
begin()
const {
return nodes.begin(); }
193 const_iterator
end()
const {
return nodes.end(); }
195 size_t size()
const {
return nodes.size(); }
196 size_t getNumPoints(uint64_t max_id = -1)
const;
203 const_edge_iterator
edges_end()
const {
return edges.end(); }
208 bool writeBinary(
const std::string& filename)
const;
212 std::ostream& writeEdgesASCII(std::ostream &s)
const;
213 std::istream& readEdgesASCII(std::istream &s);
215 std::ostream& writeNodePosesASCII(std::ostream &s)
const;
216 std::istream& readNodePosesASCII(std::istream &s);
234 std::istream& readPlainASCII(std::istream& s);
235 void readPlainASCII(
const std::string& filename);
edge_iterator edges_begin()
This class represents a tree-dimensional pose of an object.
OctoMap: A probabilistic, flexible, and compact 3D mapping library for robotic systems.
std::ostream & writeBinary(std::ostream &s) const
std::vector< ScanNode * >::const_iterator const_iterator
uint64_t id
JLBC: Changed from "unsigned int" so binarized versions are platform-independent. ...
const Scalar * const_iterator
std::vector< ScanNode * >::iterator iterator
const_iterator end() const
edge_iterator edges_end()
std::istream & readPoseASCII(std::istream &s)
std::istream & readBinary(std::istream &s)
A ScanGraph is a collection of ScanNodes, connected by ScanEdges.
ScanNode(Pointcloud *_scan, pose6d _pose, uint64_t _id)
std::ostream & writePoseASCII(std::ostream &s) const
A collection of 3D coordinates (point3d), which are regarded as endpoints of a 3D laser scan...
std::vector< ScanEdge * >::const_iterator const_edge_iterator
const_edge_iterator edges_begin() const
ScanEdge(ScanNode *_first, ScanNode *_second, pose6d _constraint)
const_iterator begin() const
std::vector< ScanNode * > nodes
A 3D scan as Pointcloud, performed from a Pose6D.
bool operator==(const ScanNode &other)
std::vector< ScanEdge * > edges
const_edge_iterator edges_end() const
pose6d pose
6D pose from which the scan was performed
A connection between two ScanNodes.
std::vector< ScanEdge * >::iterator edge_iterator
This class represents a three-dimensional vector.