23 #define BOOST_NO_HASH // to pacify the warnings about depricated headers in boost.graph 25 #include <boost/graph/graph_traits.hpp> 26 #include <boost/graph/adjacency_list.hpp> 38 class SDGraph:
public boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS,
39 boost::property<boost::vertex_name_t, KEY>, boost::property<
40 boost::edge_weight_t, double> > {
42 typedef typename boost::graph_traits<SDGraph<KEY> >::vertex_descriptor
Vertex;
46 class SGraph :
public boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS,
47 boost::property<boost::vertex_name_t, KEY> > {
49 typedef typename boost::graph_traits<SGraph<KEY> >::vertex_descriptor
Vertex;
62 std::map<KEY, KEY>::emplace(key, parent);
85 template<
class G,
class V,
class KEY>
91 template<
class G,
class Factor,
class POSE,
class KEY>
92 std::shared_ptr<Values>
99 template<
class G,
class KEY,
class FACTOR2>
106 template<
class G,
class KEY,
class FACTOR2>
const gtsam::Symbol key('X', 0)
std::shared_ptr< Values > composePoses(const G &graph, const PredecessorMap< KEY > &tree, const POSE &rootPose)
void insert(const KEY &key, const KEY &parent)
PredecessorMap< KEY > findMinimumSpanningTree(const G &fg)
A non-templated config holding any types of Manifold-group elements.
JacobiRotation< float > G
NonlinearFactorGraph graph
void g(const string &key, int i)
void split(const G &g, const PredecessorMap< KEY > &tree, G &Ab1, G &Ab2)
SDGraph< KEY > toBoostGraph(const G &graph)
std::tuple< G, V, std::map< KEY, V > > predecessorMap2Graph(const PredecessorMap< KEY > &p_map)
boost::graph_traits< SDGraph< KEY > >::vertex_descriptor Vertex
boost::graph_traits< SGraph< KEY > >::vertex_descriptor Vertex
std::list< KEY > predecessorMap2Keys(const PredecessorMap< KEY > &p_map)