namespace mrpt::graphs

Abstract graph and tree data structures, plus generic graph algorithms.

namespace graphs {

// namespaces

namespace mrpt::graphs::detail;

// typedefs

typedef CNetworkOfPoses<mrpt::poses::CPose2D> CNetworkOfPoses2D;
typedef CNetworkOfPoses<mrpt::poses::CPose3D> CNetworkOfPoses3D;
typedef CNetworkOfPoses<mrpt::poses::CPosePDFGaussian> CNetworkOfPoses2DCov;
typedef CNetworkOfPoses<mrpt::poses::CPose3DPDFGaussian> CNetworkOfPoses3DCov;
typedef CNetworkOfPoses<mrpt::poses::CPosePDFGaussianInf> CNetworkOfPoses2DInf;
typedef CNetworkOfPoses<mrpt::poses::CPose3DPDFGaussianInf> CNetworkOfPoses3DInf;
typedef CNetworkOfPoses<mrpt::poses::CPosePDFGaussianInf, mrpt::containers::map_traits_stdmap, mrpt::graphs::detail::TMRSlamNodeAnnotations> CNetworkOfPoses2DInf_NA;
typedef CNetworkOfPoses<mrpt::poses::CPose3DPDFGaussianInf, mrpt::containers::map_traits_stdmap, mrpt::graphs::detail::TMRSlamNodeAnnotations> CNetworkOfPoses3DInf_NA;
typedef uint64_t TNodeID;
typedef std::pair<TNodeID, TNodeID> TPairNodeIDs;

// structs

struct TGraphvizExportParams;

// classes

template <typename T>
class CAStarAlgorithm;

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

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

template <class TYPE_EDGES = uint8_t>
class CDirectedTree;

template <class GRAPH_MATRIX, typename num_t = typename GRAPH_MATRIX::Scalar>
class CGraphPartitioner;

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 CNetworkOfPoses;

class HypothesisNotFoundException;
class ScalarFactorGraph;

// global variables

static constexpr mrpt::graphs::TNodeID INVALID_NODEID =    static_cast<mrpt::graphs::TNodeID>(-1);

// global functions

template <
    class CPOSE,
    class MAPS_IMPLEMENTATION,
    class NODE_ANNOTATIONS,
    class EDGE_ANNOTATIONS
    >
mrpt::serialization::CArchive& operator << (
    mrpt::serialization::CArchive& out,
    const CNetworkOfPoses<CPOSE, MAPS_IMPLEMENTATION, NODE_ANNOTATIONS, EDGE_ANNOTATIONS>& obj
    );

template <
    class CPOSE,
    class MAPS_IMPLEMENTATION,
    class NODE_ANNOTATIONS,
    class EDGE_ANNOTATIONS
    >
mrpt::serialization::CArchive& operator >> (
    mrpt::serialization::CArchive& in,
    CNetworkOfPoses<CPOSE, MAPS_IMPLEMENTATION, NODE_ANNOTATIONS, EDGE_ANNOTATIONS>& obj
    );

void registerAllClasses_mrpt_graphs();

} // namespace graphs

Typedefs

typedef CNetworkOfPoses<mrpt::poses::CPose2D> CNetworkOfPoses2D

The specialization of CNetworkOfPoses for poses of type CPose2D (not a PDF!), also implementing serialization.

typedef CNetworkOfPoses<mrpt::poses::CPose3D> CNetworkOfPoses3D

The specialization of CNetworkOfPoses for poses of type mrpt::poses::CPose3D (not a PDF!), also implementing serialization.

typedef CNetworkOfPoses<mrpt::poses::CPosePDFGaussian> CNetworkOfPoses2DCov

The specialization of CNetworkOfPoses for poses of type CPosePDFGaussian, also implementing serialization.

typedef CNetworkOfPoses<mrpt::poses::CPose3DPDFGaussian> CNetworkOfPoses3DCov

The specialization of CNetworkOfPoses for poses of type CPose3DPDFGaussian, also implementing serialization.

typedef CNetworkOfPoses<mrpt::poses::CPosePDFGaussianInf> CNetworkOfPoses2DInf

The specialization of CNetworkOfPoses for poses of type CPosePDFGaussianInf, also implementing serialization.

typedef CNetworkOfPoses<mrpt::poses::CPose3DPDFGaussianInf> CNetworkOfPoses3DInf

The specialization of CNetworkOfPoses for poses of type CPose3DPDFGaussianInf, also implementing serialization.

typedef CNetworkOfPoses<mrpt::poses::CPosePDFGaussianInf, mrpt::containers::map_traits_stdmap, mrpt::graphs::detail::TMRSlamNodeAnnotations> CNetworkOfPoses2DInf_NA

Specializations of CNetworkOfPoses for graphs whose nodes inherit from TMRSlamNodeAnnotations struct.

typedef uint64_t TNodeID

A generic numeric type for unique IDs of nodes or entities.

typedef std::pair<TNodeID, TNodeID> TPairNodeIDs

A pair of node IDs.

Global Functions

template <
    class CPOSE,
    class MAPS_IMPLEMENTATION,
    class NODE_ANNOTATIONS,
    class EDGE_ANNOTATIONS
    >
mrpt::serialization::CArchive& operator << (
    mrpt::serialization::CArchive& out,
    const CNetworkOfPoses<CPOSE, MAPS_IMPLEMENTATION, NODE_ANNOTATIONS, EDGE_ANNOTATIONS>& obj
    )

Binary serialization (write) operator “stream << graph”.

template <
    class CPOSE,
    class MAPS_IMPLEMENTATION,
    class NODE_ANNOTATIONS,
    class EDGE_ANNOTATIONS
    >
mrpt::serialization::CArchive& operator >> (
    mrpt::serialization::CArchive& in,
    CNetworkOfPoses<CPOSE, MAPS_IMPLEMENTATION, NODE_ANNOTATIONS, EDGE_ANNOTATIONS>& obj
    )

Binary serialization (read) operator “stream >> graph”.