46 }
while (m_parent->getNodeByID(m_ID));
53 CHMHMapNode::~CHMHMapNode()
56 if (m_parent.get()) m_parent->onNodeDestruction(
this);
60 (*it)->onNodeDestruction(
this);
74 out << m_ID << m_label;
75 out << m_nodeType.getType();
93 in >> m_ID >> m_label >>
type >> m_annotations >> m_hypotheses;
95 m_nodeType.setType(
type);
123 if (it != m_arcs.end()) m_arcs.erase(it);
137 if (arc->m_nodeFrom == m_ID || arc->m_nodeTo == m_ID)
141 if (it == m_arcs.end()) m_arcs.push_back(arc);
153 unsigned int CHMHMapNode::getLevelInTheHierarchy()
156 unsigned int level = 0;
158 for (itArc = m_arcs.begin(); itArc != m_arcs.end(); itArc++)
162 if ((*itArc)->m_arcType.isType(
"Membership") &&
163 (*itArc)->m_nodeTo == this->m_ID)
165 unsigned int L = m_parent->getNodeByID((*itArc)->m_nodeFrom)
166 ->getLevelInTheHierarchy();
177 unsigned int CHMHMapNode::getRelatedArcsCount()
179 return (
unsigned int)m_arcs.size();
189 if ((*it)->m_hypotheses.has(hyp_id)) out.push_back(*it);
195 void CHMHMapNode::getArcs(
200 if ((*it)->m_hypotheses.has(hyp_id) && (*it)->m_arcType.isType(arcType))
207 bool CHMHMapNode::isNeighbor(
211 if ((*it)->m_hypotheses.has(hyp_id) &&
212 ((*it)->m_nodeFrom == otherArea || (*it)->m_nodeTo == otherArea))
std::shared_ptr< CHMHMapArc > Ptr
Classes related to the implementation of Hybrid Metric Topological (HMT) SLAM.
#define IMPLEMENTS_SERIALIZABLE(class_name, base, NameSpace)
This must be inserted in all CSerializable classes implementation files.
CHMHMapNode::TNodeID m_nodeTo
const Scalar * const_iterator
int64_t THypothesisID
An integer number uniquely identifying each of the concurrent hypotheses for the robot topological pa...
CHMHMapNode::TNodeID m_nodeFrom
The origin/target nodes for this arc.
This base class is used to provide a unified interface to files,memory buffers,..Please see the deriv...
A set of hypothesis IDs, used for arcs and nodes in multi-hypothesis hybrid maps. ...
#define MRPT_THROW_UNKNOWN_SERIALIZATION_VERSION(__V)
For use in CSerializable implementations.
GLsizei const GLchar ** string
The most high level class for storing hybrid, multi-hypothesis maps in a graph-based model...
#define DEFAULT_NODE_TYPE
#define NODE_TYPES
Used in constructor of mrpt::hmtslam::CHMHMapNode.
A class for representing an arc between two nodes in a hierarchical, multi-hypothesis map...
A class for storing a sequence of arcs (a path).
GLuint GLuint GLsizei GLenum type
A class for representing a node in a hierarchical, multi-hypothesis map.
mrpt::utils::TNodeID TNodeID
The type of the IDs of nodes.