Graphs data structures (directed graphs, trees, graphs of pose constraints), graphs algorithms

Library mrpt-graphs

This C++ library is part of MRPT and can be installed in Debian-based systems with:

sudo apt install libmrpt-graphs-dev

Read also how to import MRPT into your CMake scripts.

Graph-related stuff: generic directed graphs (mrpt::graphs::CDirectedGraph) and trees (mrpt::graphs::CDirectedTree).

Graphs of pose constraints are also defined in this library, via a generic template mrpt::graphs::CNetworkOfPoses, capable of reading and writing to both binary and text pose-graph file formats.

Predefined typedefs exist for:

Library contents

// namespaces

namespace mrpt::graphs::detail;
namespace mrpt::graphs;
    namespace mrpt::graphs::detail;

// structs

struct mrpt::graphs::TGraphvizExportParams;

template <class GRAPH_T>
struct mrpt::graphs::detail::THypothesis;

struct mrpt::graphs::detail::TMRSlamEdgeAnnotations;
struct mrpt::graphs::detail::TMRSlamNodeAnnotations;
struct mrpt::graphs::detail::TNodeAnnotations;
struct mrpt::graphs::detail::TNodeAnnotationsEmpty;

// classes

template <typename T>
class mrpt::graphs::CAStarAlgorithm;

template <
    class TYPE_GRAPH,
    class MAPS_IMPLEMENTATION = mrpt::containers::map_traits_stdmap
class mrpt::graphs::CDijkstra;

template <
    class TYPE_EDGES,
    class EDGE_ANNOTATIONS = detail::edge_annotations_empty
class mrpt::graphs::CDirectedGraph;

template <class TYPE_EDGES = uint8_t>
class mrpt::graphs::CDirectedTree;

template <
    class CPOSE,
    class MAPS_IMPLEMENTATION = mrpt::containers::map_traits_stdmap,
    class NODE_ANNOTATIONS = mrpt::graphs::detail::TNodeAnnotationsEmpty,
    class EDGE_ANNOTATIONS = mrpt::graphs::detail::edge_annotations_empty
class mrpt::graphs::CNetworkOfPoses;

// global functions

void mrpt::graphs::registerAllClasses_mrpt_graphs();

Global Functions

void mrpt::graphs::registerAllClasses_mrpt_graphs()

Forces manual RTTI registration of all serializable classes in this namespace.

Should never be required to be explicitly called by users, except if building MRPT as a static library.