43 #ifndef _TREEPOSEGRAPH_HXX_ 44 #define _TREEPOSEGRAPH_HXX_ 70 inline bool operator() (
const E& e1,
const E& e2)
const {
93 typedef typename Ops::PoseType
Pose;
122 typedef typename std::map< Edge*, Edge* >
EdgeMap;
123 typedef typename std::multiset< Edge*, EVComparator<Edge*> >
EdgeSet;
151 const Vertex* vertex (
int id)
const;
154 Edge* edge(
int id1,
int id2);
157 const Edge* edge(
int id1,
int id2)
const;
160 Vertex* addVertex(
int id,
const Pose& pose);
162 Vertex* removeVertex (
int id);
165 Edge* addEdge(
Vertex* v1,
Vertex* v2,
const Transformation& t,
const Information& i);
189 EdgeSet* affectedEdges(
Vertex* v);
191 EdgeSet* affectedEdges(VertexSet& vl);
194 template <
class Action>
195 void treeBreadthVisit(Action& act);
198 template <
class Action>
199 void treeDepthVisit(Action& act,
Vertex *v);
202 bool buildMST(
int id);
205 bool buildSimpleTree();
208 void revertEdge(
Edge*
e);
211 virtual void revertEdgeInfo(
Edge*
e) = 0;
214 virtual void initializeFromParentEdge(
Vertex* v) = 0;
229 EdgeSet* sortEdges();
235 int totalPathLength();
238 void compressIndices();
263 void fillEdgeInfo(Edge*
e);
264 void fillEdgesInfo();
270 #include "posegraph.hxx" Edge * addIncrementalEdge(int id1, int id2, const Transformation &t, const Information &i)
Definition of a vertex in the graph based on the template input from Ops.
Ops::CovarianceType Covariance
EdgeCompareMode edgeCompareMode
bool operator()(const E &e1, const E &e2) const
Ops::RotationType Rotation
Ops::TransformationType Transformation
GLM_FUNC_DECL genType e()
A comparator class (struct) that compares the level of two vertices if edges.
Information informationMatrix
Definition of an edge in the graph based on the template input from Ops.
Transformation transformation
std::map< int, Vertex * > VertexMap
Ops::ParametersType Parameters
std::list< Edge * > EdgeList
std::map< Edge *, Edge * > EdgeMap
EVComparator< Edge * >::CompareMode EdgeCompareMode
std::set< Vertex * > VertexSet
Ops::TranslationType Translation
Transformation transformation
The template class for representing an abstract tree without specifing the dimensionality of the exac...
Ops::InformationType Information
std::multiset< Edge *, EVComparator< Edge * > > EdgeSet