MRPT  2.0.0
CMRVisualizer.h
Go to the documentation of this file.
1 /* +------------------------------------------------------------------------+
2  | Mobile Robot Programming Toolkit (MRPT) |
3  | https://www.mrpt.org/ |
4  | |
5  | Copyright (c) 2005-2020, Individual contributors, see AUTHORS file |
6  | See: https://www.mrpt.org/Authors - All rights reserved. |
7  | Released under BSD License. See: https://www.mrpt.org/License |
8  +------------------------------------------------------------------------+ */
9 #pragma once
10 
11 #include <iostream>
12 
15 #include <utility>
16 
17 namespace mrpt::graphs::detail
18 {
19 // (Dummy) standard version
20 //////////////////////////////////////////////////////////
21 
22 /**\brief Wrapper class that provides visualization of a network of poses that
23  * have been registered by many graphSLAM agents/robots
24  *
25  * \note This is a dummy 4 template arguments version of the CMRVisualizer
26  * class just to silence GCC warnings on conversions.
27  * For implementation details users should see its specialized version that
28  * runs specifically for TMRSlamNodeAnnotations as the 3rd template argument.
29  *
30  */
31 template <
32  class CPOSE, // Type of edges
33  class MAPS_IMPLEMENTATION, // Use std::map<> vs. std::vector<>
34  class NODE_ANNOTATIONS = mrpt::graphs::detail::TMRSlamNodeAnnotations,
35  class EDGE_ANNOTATIONS = mrpt::graphs::detail::edge_annotations_empty>
37  : public CVisualizer<
38  CPOSE, MAPS_IMPLEMENTATION, NODE_ANNOTATIONS, EDGE_ANNOTATIONS>
39 {
40  public:
41  using parent = CVisualizer<
42  CPOSE, MAPS_IMPLEMENTATION, NODE_ANNOTATIONS, EDGE_ANNOTATIONS>;
44  CPOSE, MAPS_IMPLEMENTATION, NODE_ANNOTATIONS, EDGE_ANNOTATIONS>;
45 
46  CMRVisualizer(const GRAPH_T& graph_in);
47 
48  ~CMRVisualizer() override;
49  void drawNodePoints(
51  const mrpt::system::TParametersDouble* viz_params =
52  nullptr) const override;
53  void drawEdges(
55  const mrpt::system::TParametersDouble* viz_params =
56  nullptr) const override;
57 
58  private:
59 };
60 
61 // Specialized version
62 //////////////////////////////////////////////////////////
63 
64 template <
65  class CPOSE, // Type of edges
66  class MAPS_IMPLEMENTATION, // Use std::map<> vs. std::vector<>
67  class EDGE_ANNOTATIONS>
69  CPOSE, MAPS_IMPLEMENTATION, TMRSlamNodeAnnotations, EDGE_ANNOTATIONS>
70  : public CVisualizer<
71  CPOSE, MAPS_IMPLEMENTATION, TMRSlamNodeAnnotations, EDGE_ANNOTATIONS>
72 {
73  public:
74  using parent = CVisualizer<
75  CPOSE, MAPS_IMPLEMENTATION, TMRSlamNodeAnnotations, EDGE_ANNOTATIONS>;
77  CPOSE, MAPS_IMPLEMENTATION, TMRSlamNodeAnnotations, EDGE_ANNOTATIONS>;
78 
79  CMRVisualizer(const GRAPH_T& graph_in);
80 
82  void drawNodePoints(
84  const mrpt::system::TParametersDouble* viz_params = nullptr) const;
85  void drawEdges(
87  const mrpt::system::TParametersDouble* viz_params = nullptr) const;
88 
89  private:
90 };
91 } // namespace mrpt::graphs::detail
Base class for C*Visualizer classes.
A directed graph of pose constraints, with edges being the relative poses between pairs of nodes iden...
Internal functions for MRPT.
CMRVisualizer(const GRAPH_T &graph_in)
void drawNodePoints(mrpt::opengl::CSetOfObjects::Ptr &object, const mrpt::system::TParametersDouble *viz_params=nullptr) const override
void drawEdges(mrpt::opengl::CSetOfObjects::Ptr &object, const mrpt::system::TParametersDouble *viz_params=nullptr) const override
Struct to be used as the NODE_ANNOTATIONS template argument in CNetworkOfPoses class instances for us...
Wrapper class that provides visualization of a network of poses that have been registered by many gra...
Definition: CMRVisualizer.h:36



Page generated by Doxygen 1.8.14 for MRPT 2.0.0 Git: b38439d21 Tue Mar 31 19:58:06 2020 +0200 at miƩ abr 1 00:50:30 CEST 2020