Aikido
BodyNodeMarker.hpp
Go to the documentation of this file.
1 #ifndef AIKIDO_RVIZ_BODYNODEMARKER_HPP_
2 #define AIKIDO_RVIZ_BODYNODEMARKER_HPP_
3 
4 #include <unordered_map>
5 
6 #include <dart/dynamics/dynamics.hpp>
7 #include <interactive_markers/interactive_marker_server.h>
8 #include <visualization_msgs/InteractiveMarker.h>
9 
13 
14 namespace aikido {
15 namespace rviz {
16 
18 
20 {
21 public:
23  ResourceServer* resourceServer,
24  interactive_markers::InteractiveMarkerServer* markerServer,
25  const dart::dynamics::WeakBodyNodePtr& bodyNode,
26  const std::string& frameId);
27 
28  BodyNodeMarker(const BodyNodeMarker&) = delete;
29  BodyNodeMarker& operator=(const BodyNodeMarker&) = delete;
30 
31  virtual ~BodyNodeMarker() = default;
32 
33  bool update();
34 
35  void SetColor(const Eigen::Vector4d& color);
36  void ResetColor();
37 
38 private:
39  using ShapeFrameMarkerMap = std::
40  map<const dart::dynamics::ShapeNode*, std::unique_ptr<ShapeFrameMarker>>;
41 
42  dart::dynamics::WeakBodyNodePtr mBodyNode;
43  dart::common::Connection mOnStructuralChange;
44 
46  interactive_markers::InteractiveMarkerServer* mMarkerServer;
47  visualization_msgs::InteractiveMarker mInteractiveMarker;
48  visualization_msgs::InteractiveMarkerControl* mVisualControl;
49  std::string mFrameId;
50 
51  std::string mName;
53 
54  std::string getName(const dart::dynamics::BodyNode& bodyNode) const;
55 };
56 
57 } // namespace rviz
58 } // namespace aikido
59 
60 #endif
ShapeFrameMarker.hpp
aikido::rviz::BodyNodeMarker::mFrameId
std::string mFrameId
Definition: BodyNodeMarker.hpp:49
aikido::rviz::ResourceServer
Definition: ResourceServer.hpp:51
aikido
Format of serialized trajectory in YAML.
Definition: algorithm.hpp:4
aikido::rviz::BodyNodeMarker::mOnStructuralChange
dart::common::Connection mOnStructuralChange
Definition: BodyNodeMarker.hpp:43
aikido::rviz::BodyNodeMarker
Definition: BodyNodeMarker.hpp:19
aikido::rviz::BodyNodeMarker::mInteractiveMarker
visualization_msgs::InteractiveMarker mInteractiveMarker
Definition: BodyNodeMarker.hpp:47
aikido::rviz::BodyNodeMarker::mVisualControl
visualization_msgs::InteractiveMarkerControl * mVisualControl
Definition: BodyNodeMarker.hpp:48
aikido::rviz::BodyNodeMarker::mBodyNode
dart::dynamics::WeakBodyNodePtr mBodyNode
Definition: BodyNodeMarker.hpp:42
pointers.hpp
aikido::rviz::BodyNodeMarker::ShapeFrameMarkerMap
std::map< const dart::dynamics::ShapeNode *, std::unique_ptr< ShapeFrameMarker > > ShapeFrameMarkerMap
Definition: BodyNodeMarker.hpp:40
aikido::rviz::BodyNodeMarker::mName
std::string mName
Definition: BodyNodeMarker.hpp:51
ResourceServer.hpp
aikido::rviz::BodyNodeMarker::mMarkerServer
interactive_markers::InteractiveMarkerServer * mMarkerServer
Definition: BodyNodeMarker.hpp:46
aikido::rviz::BodyNodeMarker::mResourceServer
ResourceServer * mResourceServer
Definition: BodyNodeMarker.hpp:45
aikido::rviz::BodyNodeMarker::mShapeFrameMarkers
ShapeFrameMarkerMap mShapeFrameMarkers
Definition: BodyNodeMarker.hpp:52
AIKIDO_DECLARE_POINTERS
#define AIKIDO_DECLARE_POINTERS(X)
Definition: pointers.hpp:21