template struct mrpt::graphs::detail::THypothesis
An edge hypothesis between two nodeIDs.
Struct practically provides a wrapper around the GRAPH_T::constraint_t instance. Represents a hypothesis for a potential, perhaps loop closing, edge (i.e. a graph constraint/edge), between two nodeIDs of the graph.
See also:
mrpt::deciders::CLoopCloserERD
#include <mrpt/graphs/THypothesis.h> template <class GRAPH_T> struct THypothesis { // typedefs typedef typename GRAPH_T::constraint_t constraint_t; typedef typename constraint_t::type_value pose_t; typedef THypothesis<GRAPH_T> self_t; // fields size_t id; mrpt::graphs::TNodeID from; mrpt::graphs::TNodeID to; bool is_valid {true}; double goodness {0}; // construction THypothesis(); // methods std::string getAsString(bool oneline = true) const; void getAsString( std::string* str, bool oneline = true ) const; void getEdge(constraint_t* edge) const; constraint_t getEdge() const; void getInverseEdge(constraint_t* edge) const; constraint_t getInverseEdge() const; void setEdge(const constraint_t& edge); void inverseHypothesis(); bool sameEndsWith(const self_t& other) const; bool hasEnds(const mrpt::graphs::TNodeID from, const mrpt::graphs::TNodeID to) const; bool operator < (const self_t& other) const; };
Typedefs
typedef typename GRAPH_T::constraint_t constraint_t
Handy typedefs.
type of graph constraints
typedef typename constraint_t::type_value pose_t
type of underlying poses (2D/3D).
Fields
size_t id
ID of the current hypothesis.
mrpt::graphs::TNodeID from
Starting node of the hypothesis.
mrpt::graphs::TNodeID to
Ending node of the hypothesis.
bool is_valid {true}
Field that specifies if the hypothesis is to be considered.
double goodness {0}
Goodness value corresponding to the hypothesis edge.
For ICP edges this resolves to the CICP goodness measure for the alignment operation.
See also:
edge, mrpt::slam::CICP::goodness
Construction
THypothesis()
Constructor.
Methods
std::string getAsString(bool oneline = true) const
Return a string representation of the object at hand.
void getEdge(constraint_t* edge) const
Getter methods for the underlying edge.
See also:
void getInverseEdge(constraint_t* edge) const
Getter methods for the inverse of the underlying edge.
void setEdge(const constraint_t& edge)
Setter method for the underlying edge.
See also:
void inverseHypothesis()
Reverse the hypothesis.
Reversing implies, at least, changing order of from/to nodes and reversing the underlying edge
bool sameEndsWith(const self_t& other) const
Compare the start and end nodes of two hypothesis.
Returns:
True if ends match.
bool hasEnds(const mrpt::graphs::TNodeID from, const mrpt::graphs::TNodeID to) const
Check if the start, end nodes are the ones given.
Returns:
True if ends are the given ones
bool operator < (const self_t& other) const
Handy operator for using THypothesis in std::set.