TreePoseGraph< Ops > Struct Template Reference

Inheritance diagram for TreePoseGraph< Ops >:

Inheritance graph
[legend]
Collaboration diagram for TreePoseGraph< Ops >:

Collaboration graph
[legend]
List of all members.

Detailed Description

template<class Ops>
struct TreePoseGraph< Ops >

The template class for representing an abstract tree without specifing the dimensionality of the exact parameterization of the nodes. This definition is passed in via the Operation (Ops) template class.

Definition at line 90 of file posegraph.hh.

Public Types

typedef Ops::BaseType BaseType
typedef Ops::PoseType Pose
typedef Ops::RotationType Rotation
typedef Ops::TranslationType Translation
typedef Ops::TransformationType Transformation
typedef Ops::CovarianceType Covariance
typedef Ops::InformationType Information
typedef Ops::ParametersType Parameters
typedef EVComparator< Edge
* >::CompareMode 
EdgeCompareMode
typedef std::list< Edge * > EdgeList
typedef std::map< int, Vertex * > VertexMap
typedef std::set< Vertex * > VertexSet
typedef std::map< Edge *,
Edge * > 
EdgeMap
typedef std::multiset< Edge *,
EVComparator< Edge * > > 
EdgeSet

Public Member Functions

Vertexvertex (int id)
const Vertexvertex (int id) const
Edgeedge (int id1, int id2)
const Edgeedge (int id1, int id2) const
VertexaddVertex (int id, const Pose &pose)
VertexremoveVertex (int id)
EdgeaddEdge (Vertex *v1, Vertex *v2, const Transformation &t, const Information &i)
EdgeremoveEdge (Edge *eq)
EdgeaddIncrementalEdge (int id1, int id2, const Transformation &t, const Information &i)
EdgeSetaffectedEdges (Vertex *v)
EdgeSetaffectedEdges (VertexSet &vl)
template<class Action>
void treeBreadthVisit (Action &act)
template<class Action>
void treeDepthVisit (Action &act, Vertex *v)
int markNodesToCompress (BaseType distance)
bool buildMST (int id)
bool buildSimpleTree ()
void revertEdge (Edge *e)
virtual void revertEdgeInfo (Edge *e)=0
virtual void initializeFromParentEdge (Vertex *v)=0
void clear ()
 TreePoseGraph ()
virtual ~TreePoseGraph ()
EdgeSetsortEdges ()
int maxPathLength ()
int totalPathLength ()
void compressIndices ()
int maxIndex ()

Public Attributes

Vertexroot
VertexMap vertices
EdgeMap edges
EdgeSetsortedEdges

Protected Member Functions

void fillEdgeInfo (Edge *e)
void fillEdgesInfo ()

Protected Attributes

EdgeCompareMode edgeCompareMode

Classes

struct  Edge
 Definition of an edge in the graph based on the template input from Ops. More...
struct  Vertex
 Definition of a vertex in the graph based on the template input from Ops. More...


Constructor & Destructor Documentation

template<class Ops>
TreePoseGraph< Ops >::TreePoseGraph (  )  [inline]

constructor

Definition at line 222 of file posegraph.hh.

template<class Ops>
TreePoseGraph< Ops >::~TreePoseGraph (  )  [virtual]

Destructor

Definition at line 404 of file posegraph.hxx.


Member Function Documentation

template<typename Ops>
TreePoseGraph< Ops >::Vertex * TreePoseGraph< Ops >::vertex ( int  id  ) 

Returns the vertex with the given id

Definition at line 47 of file posegraph.hxx.

template<typename Ops>
const TreePoseGraph< Ops >::Vertex * TreePoseGraph< Ops >::vertex ( int  id  )  const

Returns a const pointer to the vertex with the given id

Definition at line 55 of file posegraph.hxx.

template<class Ops>
TreePoseGraph< Ops >::Edge * TreePoseGraph< Ops >::edge ( int  id1,
int  id2 
)

Returns the edge between the two vertices

Definition at line 63 of file posegraph.hxx.

template<class Ops>
const TreePoseGraph< Ops >::Edge * TreePoseGraph< Ops >::edge ( int  id1,
int  id2 
) const

Returns a const pointer tothe edge between the two vertices

Definition at line 77 of file posegraph.hxx.

template<class Ops>
Vertex* TreePoseGraph< Ops >::addVertex ( int  id,
const Pose pose 
)

Add a vertex to the graph

template<class Ops>
TreePoseGraph< Ops >::Vertex * TreePoseGraph< Ops >::removeVertex ( int  id  ) 

Remove a vertex from the graph

Definition at line 113 of file posegraph.hxx.

template<class Ops>
Edge* TreePoseGraph< Ops >::addEdge ( Vertex v1,
Vertex v2,
const Transformation t,
const Information i 
)

Add an edge/constraint to the graph

template<class Ops>
Edge* TreePoseGraph< Ops >::removeEdge ( Edge eq  ) 

Remove an edge/constraint from the graph

template<class Ops>
Edge* TreePoseGraph< Ops >::addIncrementalEdge ( int  id1,
int  id2,
const Transformation t,
const Information i 
)

Adds en edge incrementally to the tree. It builds a simple tree and initializes the structures for the optimization.

This function is for online processing. It requires that at least one vertex is already present in the graph. The vertices are represented by their ids.

Once the edge is introduced in the structure:

Returns:
A pointer to the added edge, if the insertion was succesfull. 0 otherwise.

template<class Ops>
TreePoseGraph< Ops >::EdgeSet * TreePoseGraph< Ops >::affectedEdges ( Vertex v  ) 

Returns a set of edges which are accected by the mofification of the vertex v. The set is ordered according to the level of their top node.

Definition at line 470 of file posegraph.hxx.

template<class Ops>
template<class Action>
void TreePoseGraph< Ops >::treeBreadthVisit ( Action &  act  ) 

Function to perform a breadth-first visit of the nodes in the tree to carry out a specific action act

Definition at line 247 of file posegraph.hxx.

template<class Ops>
template<class Action>
void TreePoseGraph< Ops >::treeDepthVisit ( Action &  act,
Vertex v 
)

Function to perform a depth-first visit of the nodes in the tree to carry out a specific action act

Definition at line 272 of file posegraph.hxx.

template<class Ops>
int TreePoseGraph< Ops >::markNodesToCompress ( BaseType  distance  ) 

marks the nodes to compress on the tree, given a distance criterion

template<class Ops>
bool TreePoseGraph< Ops >::buildMST ( int  id  ) 

Constructs the tree be computing a minimal spanning tree

Definition at line 282 of file posegraph.hxx.

template<class Ops>
bool TreePoseGraph< Ops >::buildSimpleTree (  ) 

Constructs the incremental tree according to the input trajectory

Definition at line 346 of file posegraph.hxx.

template<class Ops>
void TreePoseGraph< Ops >::revertEdge ( Edge e  ) 

Trun around an edge (used to ensure a certain oder on the vertexes)

template<class Ops>
virtual void TreePoseGraph< Ops >::revertEdgeInfo ( Edge e  )  [pure virtual]

Revert edge info. This function needs to be implemented by a subclass

Implemented in TreePoseGraph2.

template<class Ops>
virtual void TreePoseGraph< Ops >::initializeFromParentEdge ( Vertex v  )  [pure virtual]

Revert edge info. This function needs to be implemented by a subclass

Implemented in TreePoseGraph2.

template<class Ops>
void TreePoseGraph< Ops >::clear (  ) 

Delete all edges and vertices

Definition at line 409 of file posegraph.hxx.

template<class Ops>
TreePoseGraph< Ops >::EdgeSet * TreePoseGraph< Ops >::sortEdges (  ) 

Sort constraints for correct processing order

Definition at line 457 of file posegraph.hxx.

template<class Ops>
int TreePoseGraph< Ops >::maxPathLength (  ) 

Determines the length of the longest path in the tree

Definition at line 590 of file posegraph.hxx.

template<class Ops>
int TreePoseGraph< Ops >::totalPathLength (  ) 

Determines the path length of all pathes in the tree

Definition at line 602 of file posegraph.hxx.

template<class Ops>
void TreePoseGraph< Ops >::compressIndices (  ) 

remove gaps in the indices of the vertex ids

Definition at line 614 of file posegraph.hxx.

template<class Ops>
int TreePoseGraph< Ops >::maxIndex (  ) 

compute the highest index of an vertex

Definition at line 627 of file posegraph.hxx.


Member Data Documentation

template<class Ops>
Vertex* TreePoseGraph< Ops >::root

The root node of the tree

Definition at line 246 of file posegraph.hh.

template<class Ops>
VertexMap TreePoseGraph< Ops >::vertices

All vertices

Definition at line 249 of file posegraph.hh.

template<class Ops>
EdgeMap TreePoseGraph< Ops >::edges

All edges

Definition at line 252 of file posegraph.hh.

template<class Ops>
EdgeSet* TreePoseGraph< Ops >::sortedEdges

The constraints/edges sorted according to the level in the tree in order to allow us the efficient update (pose computation) of the nodes in the tree (see the RSS07 paper for further details)

Definition at line 258 of file posegraph.hh.


The documentation for this struct was generated from the following files:
Generated on Mon Nov 12 11:43:02 2007 for TORO by  doxygen 1.5.0