46 }
while (m_parent->getNodeByID(m_ID));
50 CHMHMapNodePtr CHMHMapNode::Create(
54 CHMHMapNodePtr
obj = CHMHMapNodePtr(
new CHMHMapNode(parent,hyps) );
63 CHMHMapNode::~CHMHMapNode()
67 m_parent->onNodeDestruction(
this);
71 (*it)->onNodeDestruction(
this);
85 out << m_ID << m_label;
86 out << m_nodeType.getType();
105 in >> m_ID >> m_label >>
type >> m_annotations >> m_hypotheses;
107 m_nodeType.setType(
type);
136 if (it!=m_arcs.end())
146 void CHMHMapNode::onArcAddition(CHMHMapArcPtr &arc)
151 if (arc->m_nodeFrom==m_ID || arc->m_nodeTo==m_ID)
155 if (it==m_arcs.end())
156 m_arcs.push_back(arc);
172 unsigned int CHMHMapNode::getLevelInTheHierarchy()
175 unsigned int level = 0;
177 for (itArc=m_arcs.begin();itArc!=m_arcs.end();itArc++)
180 if ((*itArc)->m_arcType.isType(
"Membership") &&
181 (*itArc)->m_nodeTo == this->m_ID )
183 unsigned int L = m_parent->getNodeByID( (*itArc)->m_nodeFrom )->getLevelInTheHierarchy();
194 unsigned int CHMHMapNode::getRelatedArcsCount()
196 return (
unsigned int)m_arcs.size();
206 if ((*it)->m_hypotheses.has(hyp_id))
218 if ((*it)->m_hypotheses.has(hyp_id) && (*it)->m_arcType.isType(arcType) )
228 if ((*it)->m_hypotheses.has(hyp_id) &&
229 ( (*it)->m_nodeFrom==otherArea || (*it)->m_nodeTo==otherArea ) )
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
GLsizei GLsizei GLuint * obj
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
class HMTSLAM_IMPEXP CHMHMapNode
#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...
void onNodeAddition(CHMHMapNodePtr &node)
Event handler to be called just after a node has being created: it will be added to the internal list...
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.