DebugDrawerComponent.h
Go to the documentation of this file.
1 /*
2  * This file is part of ArmarX.
3  *
4  * Copyright (C) 2012-2016, High Performance Humanoid Technologies (H2T), Karlsruhe Institute of Technology (KIT), all rights reserved.
5  *
6  * ArmarX is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License version 2 as
8  * published by the Free Software Foundation.
9  *
10  * ArmarX is distributed in the hope that it will be useful, but
11  * WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  * GNU General Public License for more details.
14  *
15  * You should have received a copy of the GNU General Public License
16  * along with this program. If not, see <http://www.gnu.org/licenses/>.
17  *
18  * @package RobotAPI::ArmarXObjects::DebugDrawerComponent
19  * @author Nikolaus Vahrenkamp ( vahrenkamp at kit dot edu )
20  * @author Peter Kaiser ( peter dot kaiser at kit dot edu )
21  * @date 2014
22  * @copyright http://www.gnu.org/licenses/gpl-2.0.txt
23  * GNU General Public License
24  */
25 
26 #pragma once
27 
28 
29 // Coin3D & SoQt
30 #include <Inventor/nodes/SoNode.h>
31 #include <Inventor/nodes/SoSeparator.h>
32 #include <Inventor/nodes/SoSelection.h>
33 #include <Inventor/sensors/SoTimerSensor.h>
34 
35 // ArmarX
40 #include <RobotAPI/interface/visualization/DebugDrawerInterface.h>
42 
43 
44 #include <VirtualRobot/VirtualRobot.h>
45 #include <VirtualRobot/Visualization/VisualizationFactory.h>
46 
47 //std
48 #include <memory>
49 #include <mutex>
50 
51 namespace armarx
52 {
53 
54  /*!
55  * \class DebugDrawerPropertyDefinitions
56  * \brief
57  */
60  {
61  public:
64  {
65  defineOptionalProperty<bool>("ShowDebugDrawing", true, "The simulator implements the DebugDrawerInterface. The debug visualizations (e.g. coordinate systems) can enabled/disbaled with this flag.");
66  defineOptionalProperty<std::string>("DebugDrawerTopic", "DebugDrawerUpdates", "Name of the DebugDrawerTopic");
67  defineOptionalProperty<std::string>("DebugDrawerSelectionTopic", "DebugDrawerSelections", "Name of the DebugDrawerSelectionTopic");
68  }
69  };
70 
71  /*!
72  * \defgroup Component-DebugDrawerComponent DebugDrawerComponent
73  * \ingroup RobotAPI-Components
74  * \brief Visualizes debug information.
75  *
76  * The DebugDrawerComponent implements the DebugDrawerInterface and provides a convenient way for visualizing debug information.
77  * It creates a scene graph representation of the debug content and offers it to visualization components.
78  * Several GUI plugins visualize this debug scene graph, among others:
79  * - RobotViewer (RobotAPI)
80  * - WorkingMemoryGui (MemoryX)
81  * - SimulatorViewer (ArmarXSimulation)
82  *
83  * The following example shows an exemplary debug drawing:
84  \code
85  DebugDrawerInterfacePrx prxDD = getTopic<DebugDrawerInterfacePrx>("DebugDrawerUpdates");
86  if (prxDD)
87  {
88  // draw in global coordinate system
89  Eigen::Matrix4f p;
90  p.setIdentity();
91  p(2,3) = 1000.0f;
92  PosePtr gp(new Pose(p));
93  prxDD->setPoseDebugLayerVisu("testPose",gp);
94 
95  armarx::Vector3Ptr p1(new armarx::Vector3(0, 0, 0));
96  armarx::Vector3Ptr p2(new armarx::Vector3(1000, 1000, 1000));
97 
98  armarx::DrawColor c = {1, 0, 0, 1}; // RGBA
99  prxDD->setLineDebugLayerVisu("testLine", p1, p2, 2.0f, c);
100  }
101  \endcode
102  */
103 
104  /**
105  * @brief The DebugDrawerComponent class
106  * @ingroup Component-DebugDrawerComponent
107  */
109  virtual public armarx::DebugDrawerInterfaceAndListener,
110  virtual public Component
111  {
112  public:
113 
114  /*!
115  * \brief DebugDrawerComponent Constructs a debug drawer
116  */
118 
119  /*!
120  * \brief setVisuUpdateTime Specifies how often the accumulated draw commands should be applied to the visualization (default 30). Has to be called before init.
121  * \param visuUpdatesPerSec All topic requests are collected asynchronously. This parameter specifies how often the rendering should be updated according to the accumulated updates.
122  */
123  void setVisuUpdateTime(float visuUpdatesPerSec);
124 
125  // inherited from Component
126  std::string getDefaultName() const override
127  {
128  return "DebugDrawer";
129  }
130  void onInitComponent() override;
131  void onConnectComponent() override;
132  void onDisconnectComponent() override;
133  void onExitComponent() override;
134 
135 
136 
137  /*!
138  * \see PropertyUser::createPropertyDefinitions()
139  */
141  {
144  }
145 
146  /* Inherited from DebugDrawerInterface. */
147  void exportScene(const std::string& filename, const ::Ice::Current& = Ice::emptyCurrent) override;
148  void exportLayer(const std::string& filename, const std::string& layerName, const ::Ice::Current& = Ice::emptyCurrent) override;
149 
150  void setPoseVisu(const std::string& layerName, const std::string& poseName, const ::armarx::PoseBasePtr& globalPose, const ::Ice::Current& = Ice::emptyCurrent) override;
151  void setScaledPoseVisu(const std::string& layerName, const std::string& poseName, const ::armarx::PoseBasePtr& globalPose, const ::Ice::Float scale, const ::Ice::Current& = Ice::emptyCurrent) override;
152  void setPoseDebugLayerVisu(const std::string& poseName, const ::armarx::PoseBasePtr& globalPose, const ::Ice::Current& = Ice::emptyCurrent) override;
153  void setScaledPoseDebugLayerVisu(const std::string& poseName, const ::armarx::PoseBasePtr& globalPose, const ::Ice::Float scale, const ::Ice::Current& = Ice::emptyCurrent) override;
154  void removePoseVisu(const std::string& layerName, const std::string& poseName, const ::Ice::Current& = Ice::emptyCurrent) override;
155  void removePoseDebugLayerVisu(const std::string& poseName, const ::Ice::Current& = Ice::emptyCurrent) override;
156 
157  void setLineVisu(const std::string& layerName, const std::string& lineName, const ::armarx::Vector3BasePtr& globalPosition1, const ::armarx::Vector3BasePtr& globalPosition2, float lineWidth, const ::armarx::DrawColor& color, const ::Ice::Current& = Ice::emptyCurrent) override;
158  void setLineDebugLayerVisu(const std::string& lineName, const ::armarx::Vector3BasePtr& globalPosition1, const ::armarx::Vector3BasePtr& globalPosition2, float lineWidth, const ::armarx::DrawColor& color, const ::Ice::Current& = Ice::emptyCurrent) override;
159  void removeLineVisu(const std::string& layerName, const std::string& lineName, const ::Ice::Current& = Ice::emptyCurrent) override;
160  void removeLineDebugLayerVisu(const std::string& lineName, const ::Ice::Current& = Ice::emptyCurrent) override;
161 
162  void setLineSetVisu(const std::string& layerName, const std::string& lineSetName, const DebugDrawerLineSet& lineSet, const ::Ice::Current& = Ice::emptyCurrent) override;
163  void setLineSetDebugLayerVisu(const std::string& lineSetName, const DebugDrawerLineSet& lineSet, const ::Ice::Current& = Ice::emptyCurrent) override;
164  void removeLineSetVisu(const std::string& layerName, const std::string& lineSetName, const ::Ice::Current& = Ice::emptyCurrent) override;
165  void removeLineSetDebugLayerVisu(const std::string& lineSetName, const ::Ice::Current& = Ice::emptyCurrent) override;
166 
167  void setBoxVisu(const std::string& layerName, const std::string& boxName, const ::armarx::PoseBasePtr& globalPose, const ::armarx::Vector3BasePtr& dimensions, const DrawColor& color, const ::Ice::Current& = Ice::emptyCurrent) override;
168  void setBoxDebugLayerVisu(const std::string& boxName, const ::armarx::PoseBasePtr& globalPose, const ::armarx::Vector3BasePtr& dimensions, const DrawColor& color, const ::Ice::Current& = Ice::emptyCurrent) override;
169  void removeBoxVisu(const std::string& layerName, const std::string& boxName, const ::Ice::Current& = Ice::emptyCurrent) override;
170  void removeBoxDebugLayerVisu(const std::string& boxName, const ::Ice::Current& = Ice::emptyCurrent) override;
171 
172  void setTextVisu(const std::string& layerName, const std::string& textName, const std::string& text, const ::armarx::Vector3BasePtr& globalPosition, const DrawColor& color, int size, const ::Ice::Current& = Ice::emptyCurrent) override;
173  void setTextDebugLayerVisu(const std::string& textName, const std::string& text, const ::armarx::Vector3BasePtr& globalPosition, const DrawColor& color, int size, const ::Ice::Current& = Ice::emptyCurrent) override;
174  void removeTextVisu(const std::string& layerName, const std::string& textName, const ::Ice::Current& = Ice::emptyCurrent) override;
175  void removeTextDebugLayerVisu(const std::string& textName, const ::Ice::Current& = Ice::emptyCurrent) override;
176 
177  void setSphereVisu(const std::string& layerName, const std::string& sphereName, const ::armarx::Vector3BasePtr& globalPosition, const DrawColor& color, float radius, const ::Ice::Current& = Ice::emptyCurrent) override;
178  void setSphereDebugLayerVisu(const std::string& sphereName, const ::armarx::Vector3BasePtr& globalPosition, const DrawColor& color, float radius, const ::Ice::Current& = Ice::emptyCurrent) override;
179  void removeSphereVisu(const std::string& layerName, const std::string& sphereName, const ::Ice::Current& = Ice::emptyCurrent) override;
180  void removeSphereDebugLayerVisu(const std::string& sphereName, const ::Ice::Current& = Ice::emptyCurrent) override;
181 
182  void setCylinderVisu(const std::string& layerName, const std::string& cylinderName, const ::armarx::Vector3BasePtr& globalPosition, const ::armarx::Vector3BasePtr& direction, float length, float radius, const DrawColor& color, const ::Ice::Current& = Ice::emptyCurrent) override;
183  void setCylinderDebugLayerVisu(const std::string& cylinderName, const ::armarx::Vector3BasePtr& globalPosition, const ::armarx::Vector3BasePtr& direction, float length, float radius, const DrawColor& color, const ::Ice::Current& = Ice::emptyCurrent) override;
184  void removeCylinderVisu(const std::string& layerName, const std::string& cylinderName, const ::Ice::Current& = Ice::emptyCurrent) override;
185  void removeCylinderDebugLayerVisu(const std::string& cylinderName, const ::Ice::Current& = Ice::emptyCurrent) override;
186 
187  void setPointCloudVisu(const std::string& layerName, const std::string& pointCloudName, const DebugDrawerPointCloud& pointCloud, const ::Ice::Current& = Ice::emptyCurrent) override;
188  void setPointCloudDebugLayerVisu(const std::string& pointCloudName, const DebugDrawerPointCloud& pointCloud, const ::Ice::Current& = Ice::emptyCurrent) override;
189  void removePointCloudVisu(const std::string& layerName, const std::string& pointCloudName, const ::Ice::Current& = Ice::emptyCurrent) override;
190  void removePointCloudDebugLayerVisu(const std::string& pointCloudName, const ::Ice::Current& = Ice::emptyCurrent) override;
191 
192  virtual void setColoredPointCloudDebugLayerVisu(const std::string& pointCloudName, const DebugDrawerColoredPointCloud& pointCloud, const ::Ice::Current& = Ice::emptyCurrent);
193  void setColoredPointCloudVisu(const std::string& layerName, const std::string& pointCloudName, const DebugDrawerColoredPointCloud& pointCloud, const ::Ice::Current& = Ice::emptyCurrent) override;
194  void removeColoredPointCloudVisu(const std::string& layerName, const std::string& pointCloudName, const ::Ice::Current& = Ice::emptyCurrent) override;
195  void removeColoredPointCloudDebugLayerVisu(const std::string& pointCloudName, const ::Ice::Current& = Ice::emptyCurrent) override;
196 
197  void set24BitColoredPointCloudDebugLayerVisu(const std::string& pointCloudName, const DebugDrawer24BitColoredPointCloud& pointCloud, const ::Ice::Current& = Ice::emptyCurrent) override;
198  void set24BitColoredPointCloudVisu(const std::string& layerName, const std::string& pointCloudName, const DebugDrawer24BitColoredPointCloud& pointCloud, const ::Ice::Current& = Ice::emptyCurrent) override;
199  void remove24BitColoredPointCloudVisu(const std::string& layerName, const std::string& pointCloudName, const ::Ice::Current& = Ice::emptyCurrent) override;
200  void remove24BitColoredPointCloudDebugLayerVisu(const std::string& pointCloudName, const ::Ice::Current& = Ice::emptyCurrent) override;
201 
202 
203  void setPolygonVisu(const std::string& layerName, const std::string& polygonName, const std::vector< ::armarx::Vector3BasePtr >& polygonPoints, const DrawColor& colorInner, const DrawColor& colorBorder, float lineWidth, const ::Ice::Current& = Ice::emptyCurrent) override;
204  void setPolygonDebugLayerVisu(const std::string& polygonName, const std::vector< ::armarx::Vector3BasePtr >& polygonPoints, const DrawColor& colorInner, const DrawColor& colorBorder, float lineWidth, const ::Ice::Current& = Ice::emptyCurrent) override;
205  void removePolygonVisu(const std::string& layerName, const std::string& polygonName, const ::Ice::Current& = Ice::emptyCurrent) override;
206  void removePolygonDebugLayerVisu(const std::string& polygonName, const ::Ice::Current& = Ice::emptyCurrent) override;
207 
208  void setTriMeshVisu(const std::string& layerName, const std::string& triMeshName, const DebugDrawerTriMesh& triMesh, const ::Ice::Current& = Ice::emptyCurrent) override;
209  void setTriMeshDebugLayerVisu(const std::string& triMeshName, const DebugDrawerTriMesh& triMesh, const ::Ice::Current& = Ice::emptyCurrent) override;
210  void removeTriMeshVisu(const std::string& layerName, const std::string& triMeshName, const ::Ice::Current& = Ice::emptyCurrent) override;
211  void removeTriMeshDebugLayerVisu(const std::string& triMeshName, const ::Ice::Current& = Ice::emptyCurrent) override;
212 
213  void setArrowVisu(const std::string& layerName, const std::string& arrowName, const ::armarx::Vector3BasePtr& position, const ::armarx::Vector3BasePtr& direction, const DrawColor& color, float length, float width, const ::Ice::Current& = Ice::emptyCurrent) override;
214  void setArrowDebugLayerVisu(const std::string& arrowName, const ::armarx::Vector3BasePtr& position, const ::armarx::Vector3BasePtr& direction, const DrawColor& color, float length, float width, const ::Ice::Current& = Ice::emptyCurrent) override;
215  void removeArrowVisu(const std::string& layerName, const std::string& arrowName, const ::Ice::Current& = Ice::emptyCurrent) override;
216  void removeArrowDebugLayerVisu(const std::string& arrowName, const ::Ice::Current& = Ice::emptyCurrent) override;
217 
218  void setCircleArrowVisu(const std::string& layerName, const std::string& circleName, const Vector3BasePtr& globalPosition, const Vector3BasePtr& directionVec, Ice::Float radius, Ice::Float circleCompletion, Ice::Float width, const DrawColor& color, const Ice::Current& = Ice::emptyCurrent) override;
219  void setCircleDebugLayerVisu(const std::string& circleName, const Vector3BasePtr& globalPosition, const Vector3BasePtr& directionVec, Ice::Float radius, Ice::Float circleCompletion, Ice::Float width, const DrawColor& color, const Ice::Current& = Ice::emptyCurrent) override;
220  void removeCircleVisu(const std::string& layerName, const std::string& circleName, const Ice::Current& = Ice::emptyCurrent) override;
221  void removeCircleDebugLayerVisu(const std::string& circleName, const Ice::Current& = Ice::emptyCurrent) override;
222 
223 
224  /*!
225  * \brief setRobotVisu Initializes a robot visualization
226  * \param layerName The layer
227  * \param robotName The identifier of the robot
228  * \param robotFile The filename of the robot. The robot must be locally present in a project.
229  * \param DrawStyle Either FullModel ior CollisionModel.
230  * \param armarxProject Additional armarx project that should be used to search the robot. Must be locally available and accessible through the armarx cmake search procedure.
231  */
232  void setRobotVisu(const std::string& layerName, const std::string& robotName, const std::string& robotFile, const std::string& armarxProject, DrawStyle drawStyle, const ::Ice::Current& = Ice::emptyCurrent) override;
233  void updateRobotPose(const std::string& layerName, const std::string& robotName, const ::armarx::PoseBasePtr& globalPose, const ::Ice::Current& = Ice::emptyCurrent) override;
234  void updateRobotConfig(const std::string& layerName, const std::string& robotName, const std::map< std::string, float>& configuration, const ::Ice::Current& = Ice::emptyCurrent) override;
235  /*!
236  * \brief updateRobotColor Colorizes the robot visualization
237  * \param layerName The layer
238  * \param robotName The robot identifyer
239  * \param c The draw color, if all is set to 0, the colorization is disabled (i.e. the original vizaulization shows up)
240  */
241  void updateRobotColor(const std::string& layerName, const std::string& robotName, const armarx::DrawColor& c, const ::Ice::Current& = Ice::emptyCurrent) override;
242  void updateRobotNodeColor(const std::string& layerName, const std::string& robotName, const std::string& robotNodeName, const armarx::DrawColor& c, const ::Ice::Current& = Ice::emptyCurrent) override;
243  void removeRobotVisu(const std::string& layerName, const std::string& robotName, const ::Ice::Current& = Ice::emptyCurrent) override;
244 
245  void clearAll(const ::Ice::Current& = Ice::emptyCurrent) override;
246  void clearLayer(const std::string& layerName, const ::Ice::Current& = Ice::emptyCurrent) override;
247  void clearDebugLayer(const ::Ice::Current& = Ice::emptyCurrent) override;
248 
249  bool hasLayer(const std::string& layerName, const ::Ice::Current& = Ice::emptyCurrent) override;
250  void removeLayer(const std::string& layerName, const ::Ice::Current& = Ice::emptyCurrent) override;
251 
252  void enableLayerVisu(const std::string& layerName, bool visible, const ::Ice::Current& = Ice::emptyCurrent) override;
253  void enableDebugLayerVisu(bool visible, const ::Ice::Current& = Ice::emptyCurrent) override;
254 
255  ::Ice::StringSeq layerNames(const ::Ice::Current& = Ice::emptyCurrent) override;
256  ::armarx::LayerInformationSequence layerInformation(const ::Ice::Current& = Ice::emptyCurrent) override;
257 
258  void disableAllLayers(const ::Ice::Current& = Ice::emptyCurrent) override;
259  void enableAllLayers(const ::Ice::Current& = Ice::emptyCurrent) override;
260 
261  // Methods for selection management
262  void enableSelections(const std::string& layerName, const ::Ice::Current& = Ice::emptyCurrent) override;
263  void disableSelections(const std::string& layerName, const ::Ice::Current& = Ice::emptyCurrent) override;
264  void clearSelections(const std::string& layerName, const ::Ice::Current& = Ice::emptyCurrent) override;
265  void select(const std::string& layerName, const std::string& elementName, const ::Ice::Current& = Ice::emptyCurrent) override;
266  void deselect(const std::string& layerName, const std::string& elementName, const ::Ice::Current& = Ice::emptyCurrent) override;
267 
268  DebugDrawerSelectionList getSelections(const ::Ice::Current& = Ice::emptyCurrent) override;
269 
270  void selectionCallback();
271  void deselectionCallback();
274 
275  void reportSelectionChanged(const DebugDrawerSelectionList& selectedElements, const ::Ice::Current& = Ice::emptyCurrent) override;
276 
277  // This is all total madness. Why do we put mutexes and locks into shared pointers?
278  using RecursiveMutex = std::recursive_mutex;
279  using RecursiveMutexPtr = std::shared_ptr<RecursiveMutex>;
280  using RecursiveMutexLock = std::unique_lock<RecursiveMutex>;
281  using RecursiveMutexLockPtr = std::shared_ptr<RecursiveMutexLock>;
282 
283  /*!
284  * \brief getScopedLock If using the coin visualization it must be ensured that all rendering calls are protected with this mutex
285  * \return The lock that is automatically destructed when leaving the current scope.
286  */
288 
289  /*!
290  * \brief getVisualization Ensure that all access to this node is protected with the scoped lock mutex.
291  * \return The visualization
292  */
293  SoSeparator* getVisualization();
294 
295  void setMutex(RecursiveMutexPtr const& m);
296 
297  ~DebugDrawerComponent() override;
298 
300  {
301  this->defaultLayerVisibility = defaultLayerVisibility;
302  }
303  void setDefaultLayerVisibility(const std::string& layerName, bool defaultLayerVisibility)
304  {
306  }
307  void removeDefaultLayerVisibility(const std::string& layerName)
308  {
309  defaultLayerVisibilityPerLayer.erase(layerName);
310  }
312  {
313  return defaultLayerVisibility;
314  }
315  bool getDefaultLayerVisibility(const std::string& layerName) const
316  {
317  auto elem = defaultLayerVisibilityPerLayer.find(layerName);
318  if (elem != defaultLayerVisibilityPerLayer.end())
319  {
320  return elem->second;
321  }
322  return defaultLayerVisibility;
323  }
324  std::map<std::string, bool> getAllDefaultLayerVisibilities() const
325  {
327  }
328  protected:
329 
330  static void updateVisualizationCB(void* data, SoSensor* sensor);
331 
332  // It turned out, that heavy data traffic (resulting in heavy mutex locking) somehow interferes with coin rendering: the
333  // SoQt timers are misaligned at some point, could be a bug in SoQt, that results in a situation where the GL window is never updated
334  // while the rest of the qt widget works well.
335  // The solution for now: collect all data updates and update the coin scene by qt-timed thread (qt events ensure that no drawing event is active)
336 
337  struct DrawData
338  {
340  {
341  active = false;
342  update = false;
343  }
344  std::string layerName;
345  std::string name;
346  bool active;
347  /**
348  * @brief Whether an existing visu should be updated
349  */
350  bool update;
351  };
352 
353  struct CoordData : public DrawData
354  {
356  float scale;
357  };
358  struct LineData : public DrawData
359  {
360  Eigen::Vector3f p1;
361  Eigen::Vector3f p2;
362  float scale;
364  };
365  struct LineSetData : public DrawData
366  {
367  DebugDrawerLineSet lineSet;
368  };
369  struct BoxData : public DrawData
370  {
372  float width;
373  float height;
374  float depth;
376  };
377  struct TextData : public DrawData
378  {
379  std::string text;
380  Eigen::Vector3f position;
382  int size;
383  };
384  struct SphereData : public DrawData
385  {
386  Eigen::Vector3f position;
388  float radius;
389  };
390  struct CylinderData : public DrawData
391  {
392  Eigen::Vector3f position;
393  Eigen::Vector3f direction;
394  float length;
395  float radius;
397  };
398  struct CircleData : public DrawData
399  {
400  Eigen::Vector3f position;
401  Eigen::Vector3f direction;
402  float radius;
403  float width;
406  };
407  struct PointCloudData : public DrawData
408  {
409  DebugDrawerPointCloud pointCloud;
410  };
412  {
413  DebugDrawerColoredPointCloud pointCloud;
414  };
416  {
417  DebugDrawer24BitColoredPointCloud pointCloud;
418  };
419  struct PolygonData : public DrawData
420  {
421  std::vector< Eigen::Vector3f > points;
422  float lineWidth;
425  };
426  struct TriMeshData : public DrawData
427  {
428  DebugDrawerTriMesh triMesh;
429  };
430 
431  struct ArrowData : public DrawData
432  {
433  Eigen::Vector3f position;
434  Eigen::Vector3f direction;
435  float length;
436  float width;
438  };
439  struct RobotData : public DrawData
440  {
442  {
443  updateColor = false;
444  updatePose = false;
445  updateConfig = false;
446  }
447  std::string robotFile;
448  std::string armarxProject;
449 
452 
454  std::map < std::string, VirtualRobot::VisualizationFactory::Color > nodeColors;
455 
458 
460  std::map < std::string, float > configuration;
461 
462  armarx::DrawStyle drawStyle;
463  };
464 
465  struct UpdateData
466  {
467  std::map<std::string, CoordData> coord;
468  std::map<std::string, LineData> line;
469  std::map<std::string, LineSetData> lineSet;
470  std::map<std::string, BoxData> box;
471  std::map<std::string, TextData> text;
472  std::map<std::string, SphereData> sphere;
473  std::map<std::string, CircleData> circle;
474  std::map<std::string, CylinderData> cylinder;
475  std::map<std::string, PointCloudData> pointcloud;
476  std::map<std::string, ColoredPointCloudData> coloredpointcloud;
477  std::map<std::string, Colored24BitPointCloudData> colored24Bitpointcloud;
478  std::map<std::string, PolygonData> polygons;
479  std::map<std::string, TriMeshData> triMeshes;
480  std::map<std::string, ArrowData> arrows;
481  std::map<std::string, RobotData> robots;
482 
483  std::set< std::string > clearLayers;
484  std::set< std::string > removeLayers;
485  };
486 
488 
489  // Reads accumulatedUpdateData, writes all data to coin visualization and clears accumulatedUpdateData
490  void updateVisualization();
491 
492  /*!
493  * \brief onUpdateVisualization derived methods can overwrite this method to update custom visualizations.
494  */
495  virtual void onUpdateVisualization() {}
496  virtual void onRemoveAccumulatedData(const std::string& layerName) {}
497 
498  virtual void removeCustomVisu(const std::string& layerName, const std::string& name) {}
499 
500  void drawCoordSystem(const CoordData& d);
501  void drawLine(const LineData& d);
502  void drawLineSet(const LineSetData& d);
503  void drawBox(const BoxData& d);
504  void drawText(const TextData& d);
505  void drawSphere(const SphereData& d);
506  void drawCylinder(const CylinderData& d);
508  void drawPointCloud(const PointCloudData& d);
509  void drawColoredPointCloud(const ColoredPointCloudData& d);
510  void draw24BitColoredPointCloud(const Colored24BitPointCloudData& d);
511  void drawPolygon(const PolygonData& d);
512  void drawTriMesh(const TriMeshData& d);
513  void drawArrow(const ArrowData& d);
514  void drawRobot(const RobotData& d);
515 
516  void removeCoordSystem(const std::string& layerName, const std::string& name);
517  void removeLine(const std::string& layerName, const std::string& name);
518  void removeLineSet(const std::string& layerName, const std::string& name);
519  void removeBox(const std::string& layerName, const std::string& name);
520  void removeText(const std::string& layerName, const std::string& name);
521  void removeSphere(const std::string& layerName, const std::string& name);
522  void removeCylinder(const std::string& layerName, const std::string& name);
523  void removeCircle(const std::string& layerName, const std::string& name);
524  void removePointCloud(const std::string& layerName, const std::string& name);
525  void removeColoredPointCloud(const std::string& layerName, const std::string& name);
526  void remove24BitColoredPointCloud(const std::string& layerName, const std::string& name);
527  void removePolygon(const std::string& layerName, const std::string& name);
528  void removeTriMesh(const std::string& layerName, const std::string& name);
529  void removeArrow(const std::string& layerName, const std::string& name);
530  void removeRobot(const std::string& layerName, const std::string& name);
531 
532 
533 
534  /*!
535  * QT safe version, should not be called from an ICE thread
536  */
537  void clearLayerQt(const std::string& layerName);
538  void removeLayerQt(const std::string& layerName);
539 
540  void setLayerVisibility(const std::string& layerName, bool visible);
541 
542  /*!
543  * \brief Contains data for a layer.
544  */
545  struct Layer
546  {
547  SoSeparator* mainNode;
548  std::map<std::string, SoSeparator*> addedCoordVisualizations;
549  std::map<std::string, SoSeparator*> addedLineVisualizations;
550  std::map<std::string, SoSeparator*> addedLineSetVisualizations;
551  std::map<std::string, SoSeparator*> addedBoxVisualizations;
552  std::map<std::string, SoSeparator*> addedTextVisualizations;
553  std::map<std::string, SoSeparator*> addedSphereVisualizations;
554  std::map<std::string, SoSeparator*> addedCylinderVisualizations;
555  std::map<std::string, SoSeparator*> addedCircleVisualizations;
556  std::map<std::string, SoSeparator*> addedPointCloudVisualizations;
557  std::map<std::string, SoSeparator*> addedColoredPointCloudVisualizations;
558  std::map<std::string, SoSeparator*> added24BitColoredPointCloudVisualizations;
559  std::map<std::string, SoSeparator*> addedPolygonVisualizations;
560  std::map<std::string, SoSeparator*> addedTriMeshVisualizations;
561  std::map<std::string, SoSeparator*> addedArrowVisualizations;
562  std::map<std::string, SoSeparator*> addedRobotVisualizations;
563  std::map<std::string, SoSeparator*> addedCustomVisualizations; // these separators are only used by derived classes and have to start with a material node
564 
565  bool visible;
566  };
567 
568  /*!
569  * \brief If a layer with layerName exists it is returned. Otherwise a new layer with given name is created and returned.
570  * \param layerName The layer.
571  * \return The requested layer.
572  */
573  Layer& requestLayer(const std::string& layerName);
575 
576  /*!
577  * \brief ensureExistingRobotNodes Checks if all robotnodes of configuration exist in robot. If not the specific configuration entry is removed from the list.
578  * \param d
579  */
581 
582  std::map < std::string, VirtualRobot::RobotPtr > activeRobots;
583  SoSeparator* coinVisu;
584  SoSelection* selectionNode;
585 
586  bool verbose;
587 
588  /*!
589  * \brief Main node for all layers
590  */
591  SoSeparator* layerMainNode;
592 
593  /*!
594  * \brief All existing layers.
595  */
596  std::map<const std::string, Layer> layers;
597 
598  //! The coin mutex
600 
601  //! The data update mutex
603 
605 
606  static std::recursive_mutex selectionMutex;
607  std::set<std::string> selectableLayers;
608 
610 
611  DebugDrawerListenerPrx listenerPrx;
612 
613  float cycleTimeMS;
614  //PeriodicTask<DebugDrawerComponent>::pointer_type execTaskVisuUpdates;
615  SoTimerSensor* timerSensor;
616  std::mutex timerSensorMutex;
617  void removeAccumulatedData(const std::string& layerName);
618 
619  std::map<std::string, VirtualRobot::RobotPtr> loadedRobots;
620 
622  std::map<std::string, bool> defaultLayerVisibilityPerLayer;
623 
624  };
625 
627 
628 }
629 
armarx::DebugDrawerComponent::remove24BitColoredPointCloudVisu
void remove24BitColoredPointCloudVisu(const std::string &layerName, const std::string &pointCloudName, const ::Ice::Current &=Ice::emptyCurrent) override
Definition: DebugDrawerComponent.cpp:2881
armarx::DebugDrawerComponent::LineData::scale
float scale
Definition: DebugDrawerComponent.h:362
armarx::DebugDrawerComponent::Layer
Contains data for a layer.
Definition: DebugDrawerComponent.h:545
armarx::DebugDrawerComponent::removeSelectionCallbacks
void removeSelectionCallbacks()
Definition: DebugDrawerComponent.cpp:243
armarx::DebugDrawerComponent::removeArrowDebugLayerVisu
void removeArrowDebugLayerVisu(const std::string &arrowName, const ::Ice::Current &=Ice::emptyCurrent) override
Definition: DebugDrawerComponent.cpp:2107
armarx::DebugDrawerComponent::setArrowVisu
void setArrowVisu(const std::string &layerName, const std::string &arrowName, const ::armarx::Vector3BasePtr &position, const ::armarx::Vector3BasePtr &direction, const DrawColor &color, float length, float width, const ::Ice::Current &=Ice::emptyCurrent) override
Definition: DebugDrawerComponent.cpp:2073
armarx::DebugDrawerComponent::drawPointCloud
void drawPointCloud(const PointCloudData &d)
Definition: DebugDrawerComponent.cpp:877
armarx::DebugDrawerComponent::CircleData::circleCompletion
float circleCompletion
Definition: DebugDrawerComponent.h:404
armarx::DebugDrawerComponent::setColoredPointCloudVisu
void setColoredPointCloudVisu(const std::string &layerName, const std::string &pointCloudName, const DebugDrawerColoredPointCloud &pointCloud, const ::Ice::Current &=Ice::emptyCurrent) override
Definition: DebugDrawerComponent.cpp:2747
armarx::DebugDrawerComponent::remove24BitColoredPointCloud
void remove24BitColoredPointCloud(const std::string &layerName, const std::string &name)
Definition: DebugDrawerComponent.cpp:2843
armarx::DebugDrawerComponent::ColoredPointCloudData
Definition: DebugDrawerComponent.h:411
armarx::DebugDrawerComponent::Layer::added24BitColoredPointCloudVisualizations
std::map< std::string, SoSeparator * > added24BitColoredPointCloudVisualizations
Definition: DebugDrawerComponent.h:558
armarx::DebugDrawerComponent::drawPolygon
void drawPolygon(const PolygonData &d)
Definition: DebugDrawerComponent.cpp:926
armarx::DebugDrawerComponent::layerInformation
::armarx::LayerInformationSequence layerInformation(const ::Ice::Current &=Ice::emptyCurrent) override
Definition: DebugDrawerComponent.cpp:2637
armarx::DebugDrawerComponent::removeArrowVisu
void removeArrowVisu(const std::string &layerName, const std::string &arrowName, const ::Ice::Current &=Ice::emptyCurrent) override
Definition: DebugDrawerComponent.cpp:2095
armarx::DebugDrawerComponent::setTriMeshVisu
void setTriMeshVisu(const std::string &layerName, const std::string &triMeshName, const DebugDrawerTriMesh &triMesh, const ::Ice::Current &=Ice::emptyCurrent) override
Definition: DebugDrawerComponent.cpp:2038
armarx::DebugDrawerComponent::selectionMutex
static std::recursive_mutex selectionMutex
Definition: DebugDrawerComponent.h:606
armarx::DebugDrawerComponent::drawRobot
void drawRobot(const RobotData &d)
Definition: DebugDrawerComponent.cpp:1065
armarx::DebugDrawerComponent::setCylinderDebugLayerVisu
void setCylinderDebugLayerVisu(const std::string &cylinderName, const ::armarx::Vector3BasePtr &globalPosition, const ::armarx::Vector3BasePtr &direction, float length, float radius, const DrawColor &color, const ::Ice::Current &=Ice::emptyCurrent) override
Definition: DebugDrawerComponent.cpp:1932
armarx::DebugDrawerComponent::setSphereDebugLayerVisu
void setSphereDebugLayerVisu(const std::string &sphereName, const ::armarx::Vector3BasePtr &globalPosition, const DrawColor &color, float radius, const ::Ice::Current &=Ice::emptyCurrent) override
Definition: DebugDrawerComponent.cpp:1892
armarx::DebugDrawerComponent::activeRobots
std::map< std::string, VirtualRobot::RobotPtr > activeRobots
Definition: DebugDrawerComponent.h:582
armarx::DebugDrawerComponent::setDefaultLayerVisibility
void setDefaultLayerVisibility(const std::string &layerName, bool defaultLayerVisibility)
Definition: DebugDrawerComponent.h:303
armarx::DebugDrawerComponent::RobotData::updatePose
bool updatePose
Definition: DebugDrawerComponent.h:456
armarx::VariantType::Float
const VariantTypeId Float
Definition: Variant.h:918
armarx::DebugDrawerComponent
The DebugDrawerComponent class.
Definition: DebugDrawerComponent.h:108
armarx::DebugDrawerComponent::getDefaultName
std::string getDefaultName() const override
Retrieve default name of component.
Definition: DebugDrawerComponent.h:126
armarx::DebugDrawerComponent::PolygonData::colorBorder
VirtualRobot::VisualizationFactory::Color colorBorder
Definition: DebugDrawerComponent.h:424
armarx::DebugDrawerComponent::updateRobotColor
void updateRobotColor(const std::string &layerName, const std::string &robotName, const armarx::DrawColor &c, const ::Ice::Current &=Ice::emptyCurrent) override
updateRobotColor Colorizes the robot visualization
Definition: DebugDrawerComponent.cpp:2166
armarx::DebugDrawerComponent::Layer::addedPolygonVisualizations
std::map< std::string, SoSeparator * > addedPolygonVisualizations
Definition: DebugDrawerComponent.h:559
armarx::DebugDrawerComponent::BoxData::color
VirtualRobot::VisualizationFactory::Color color
Definition: DebugDrawerComponent.h:375
armarx::DebugDrawerComponent::setRobotVisu
void setRobotVisu(const std::string &layerName, const std::string &robotName, const std::string &robotFile, const std::string &armarxProject, DrawStyle drawStyle, const ::Ice::Current &=Ice::emptyCurrent) override
setRobotVisu Initializes a robot visualization
Definition: DebugDrawerComponent.cpp:2112
armarx::DebugDrawerComponent::onInitComponent
void onInitComponent() override
Pure virtual hook for the subclass.
Definition: DebugDrawerComponent.cpp:352
armarx::DebugDrawerComponent::removeAccumulatedData
void removeAccumulatedData(const std::string &layerName)
Definition: DebugDrawerComponent.cpp:2591
armarx::DebugDrawerComponent::Colored24BitPointCloudData::pointCloud
DebugDrawer24BitColoredPointCloud pointCloud
Definition: DebugDrawerComponent.h:417
armarx::DebugDrawerComponent::TextData::position
Eigen::Vector3f position
Definition: DebugDrawerComponent.h:380
armarx::DebugDrawerComponent::UpdateData::circle
std::map< std::string, CircleData > circle
Definition: DebugDrawerComponent.h:473
armarx::DebugDrawerComponent::removeCircleDebugLayerVisu
void removeCircleDebugLayerVisu(const std::string &circleName, const Ice::Current &=Ice::emptyCurrent) override
Definition: DebugDrawerComponent.cpp:2933
armarx::DebugDrawerComponent::Layer::addedCircleVisualizations
std::map< std::string, SoSeparator * > addedCircleVisualizations
Definition: DebugDrawerComponent.h:555
armarx::DebugDrawerComponent::RobotData::drawStyle
armarx::DrawStyle drawStyle
Definition: DebugDrawerComponent.h:462
armarx::DebugDrawerComponent::CylinderData::radius
float radius
Definition: DebugDrawerComponent.h:395
armarx::DebugDrawerComponent::getDefaultLayerVisibility
bool getDefaultLayerVisibility(const std::string &layerName) const
Definition: DebugDrawerComponent.h:315
armarx::DebugDrawerComponent::RobotData::configuration
std::map< std::string, float > configuration
Definition: DebugDrawerComponent.h:460
armarx::DebugDrawerComponent::createPropertyDefinitions
PropertyDefinitionsPtr createPropertyDefinitions() override
Definition: DebugDrawerComponent.h:140
armarx::DebugDrawerComponent::removePoseDebugLayerVisu
void removePoseDebugLayerVisu(const std::string &poseName, const ::Ice::Current &=Ice::emptyCurrent) override
Definition: DebugDrawerComponent.cpp:1714
armarx::DebugDrawerComponent::ArrowData::width
float width
Definition: DebugDrawerComponent.h:436
armarx::DebugDrawerComponent::accumulatedUpdateData
UpdateData accumulatedUpdateData
Definition: DebugDrawerComponent.h:487
armarx::DebugDrawerComponent::onRemoveAccumulatedData
virtual void onRemoveAccumulatedData(const std::string &layerName)
Definition: DebugDrawerComponent.h:496
armarx::DebugDrawerComponent::TextData::color
VirtualRobot::VisualizationFactory::Color color
Definition: DebugDrawerComponent.h:381
armarx::DebugDrawerComponent::getScopedVisuLock
RecursiveMutexLockPtr getScopedVisuLock()
getScopedLock If using the coin visualization it must be ensured that all rendering calls are protect...
Definition: DebugDrawerComponent.cpp:2365
armarx::DebugDrawerComponent::reportSelectionChanged
void reportSelectionChanged(const DebugDrawerSelectionList &selectedElements, const ::Ice::Current &=Ice::emptyCurrent) override
Definition: DebugDrawerComponent.cpp:250
armarx::DebugDrawerComponent::defaultLayerVisibilityPerLayer
std::map< std::string, bool > defaultLayerVisibilityPerLayer
Definition: DebugDrawerComponent.h:622
armarx::DebugDrawerComponent::set24BitColoredPointCloudDebugLayerVisu
void set24BitColoredPointCloudDebugLayerVisu(const std::string &pointCloudName, const DebugDrawer24BitColoredPointCloud &pointCloud, const ::Ice::Current &=Ice::emptyCurrent) override
Definition: DebugDrawerComponent.cpp:2876
armarx::DebugDrawerComponent::removeSphereVisu
void removeSphereVisu(const std::string &layerName, const std::string &sphereName, const ::Ice::Current &=Ice::emptyCurrent) override
Definition: DebugDrawerComponent.cpp:1897
armarx::DebugDrawerComponent::UpdateData::pointcloud
std::map< std::string, PointCloudData > pointcloud
Definition: DebugDrawerComponent.h:475
armarx::DebugDrawerComponent::Layer::addedColoredPointCloudVisualizations
std::map< std::string, SoSeparator * > addedColoredPointCloudVisualizations
Definition: DebugDrawerComponent.h:557
Pose.h
armarx::DebugDrawerComponent::Layer::addedLineVisualizations
std::map< std::string, SoSeparator * > addedLineVisualizations
Definition: DebugDrawerComponent.h:549
armarx::DebugDrawerComponent::selectableLayers
std::set< std::string > selectableLayers
Definition: DebugDrawerComponent.h:607
armarx::DebugDrawerComponent::removePointCloudDebugLayerVisu
void removePointCloudDebugLayerVisu(const std::string &pointCloudName, const ::Ice::Current &=Ice::emptyCurrent) override
Definition: DebugDrawerComponent.cpp:1985
armarx::DebugDrawerComponent::verbose
bool verbose
Definition: DebugDrawerComponent.h:586
armarx::DebugDrawerComponent::updateVisualization
void updateVisualization()
Definition: DebugDrawerComponent.cpp:2416
armarx::DebugDrawerComponent::Layer::addedCoordVisualizations
std::map< std::string, SoSeparator * > addedCoordVisualizations
Definition: DebugDrawerComponent.h:548
armarx::DebugDrawerComponent::CylinderData
Definition: DebugDrawerComponent.h:390
armarx::DebugDrawerComponent::deselect
void deselect(const std::string &layerName, const std::string &elementName, const ::Ice::Current &=Ice::emptyCurrent) override
Definition: DebugDrawerComponent.cpp:199
armarx::DebugDrawerComponent::Layer::mainNode
SoSeparator * mainNode
Definition: DebugDrawerComponent.h:547
armarx::DebugDrawerComponent::enableDebugLayerVisu
void enableDebugLayerVisu(bool visible, const ::Ice::Current &=Ice::emptyCurrent) override
Definition: DebugDrawerComponent.cpp:2619
armarx::DebugDrawerComponent::DrawData::update
bool update
Whether an existing visu should be updated.
Definition: DebugDrawerComponent.h:350
armarx::DebugDrawerComponent::clearLayerQt
void clearLayerQt(const std::string &layerName)
Definition: DebugDrawerComponent.cpp:2248
armarx::DebugDrawerComponent::BoxData::globalPose
Eigen::Matrix4f globalPose
Definition: DebugDrawerComponent.h:371
armarx::DebugDrawerComponent::ArrowData
Definition: DebugDrawerComponent.h:431
armarx::PropertyDefinitionContainer::prefix
std::string prefix
Prefix of the properties such as namespace, domain, component name, etc.
Definition: PropertyDefinitionContainer.h:333
armarx::DebugDrawerComponent::UpdateData::sphere
std::map< std::string, SphereData > sphere
Definition: DebugDrawerComponent.h:472
armarx::DebugDrawerPropertyDefinitions::DebugDrawerPropertyDefinitions
DebugDrawerPropertyDefinitions(std::string prefix)
Definition: DebugDrawerComponent.h:62
armarx::DebugDrawerComponent::enableLayerVisu
void enableLayerVisu(const std::string &layerName, bool visible, const ::Ice::Current &=Ice::emptyCurrent) override
Definition: DebugDrawerComponent.cpp:2614
armarx::DebugDrawerComponent::setTriMeshDebugLayerVisu
void setTriMeshDebugLayerVisu(const std::string &triMeshName, const DebugDrawerTriMesh &triMesh, const ::Ice::Current &=Ice::emptyCurrent) override
Definition: DebugDrawerComponent.cpp:2051
armarx::DebugDrawerComponent::UpdateData::colored24Bitpointcloud
std::map< std::string, Colored24BitPointCloudData > colored24Bitpointcloud
Definition: DebugDrawerComponent.h:477
armarx::DebugDrawerComponent::UpdateData::triMeshes
std::map< std::string, TriMeshData > triMeshes
Definition: DebugDrawerComponent.h:479
PeriodicTask.h
armarx::DebugDrawerComponent::removePointCloudVisu
void removePointCloudVisu(const std::string &layerName, const std::string &pointCloudName, const ::Ice::Current &=Ice::emptyCurrent) override
Definition: DebugDrawerComponent.cpp:1973
armarx::DebugDrawerComponent::setPolygonDebugLayerVisu
void setPolygonDebugLayerVisu(const std::string &polygonName, const std::vector< ::armarx::Vector3BasePtr > &polygonPoints, const DrawColor &colorInner, const DrawColor &colorBorder, float lineWidth, const ::Ice::Current &=Ice::emptyCurrent) override
Definition: DebugDrawerComponent.cpp:2016
armarx::DebugDrawerComponent::LineData::color
VirtualRobot::VisualizationFactory::Color color
Definition: DebugDrawerComponent.h:363
armarx::DebugDrawerComponent::timerSensor
SoTimerSensor * timerSensor
Definition: DebugDrawerComponent.h:615
armarx::DebugDrawerComponent::drawCircle
void drawCircle(const DebugDrawerComponent::CircleData &d)
Definition: DebugDrawerComponent.cpp:830
c
constexpr T c
Definition: UnscentedKalmanFilterTest.cpp:43
armarx::DebugDrawerComponent::hasLayer
bool hasLayer(const std::string &layerName, const ::Ice::Current &=Ice::emptyCurrent) override
Definition: DebugDrawerComponent.cpp:2533
armarx::DebugDrawerComponent::drawTriMesh
void drawTriMesh(const TriMeshData &d)
Definition: DebugDrawerComponent.cpp:953
armarx::DebugDrawerComponent::removeLineSet
void removeLineSet(const std::string &layerName, const std::string &name)
Definition: DebugDrawerComponent.cpp:1349
armarx::DebugDrawerComponent::SphereData::position
Eigen::Vector3f position
Definition: DebugDrawerComponent.h:386
armarx::DebugDrawerComponent::setLineSetDebugLayerVisu
void setLineSetDebugLayerVisu(const std::string &lineSetName, const DebugDrawerLineSet &lineSet, const ::Ice::Current &=Ice::emptyCurrent) override
Definition: DebugDrawerComponent.cpp:1774
armarx::DebugDrawerComponent::Layer::addedArrowVisualizations
std::map< std::string, SoSeparator * > addedArrowVisualizations
Definition: DebugDrawerComponent.h:561
armarx::DebugDrawerComponent::clearAll
void clearAll(const ::Ice::Current &=Ice::emptyCurrent) override
Definition: DebugDrawerComponent.cpp:2229
armarx::DebugDrawerComponent::removeLineSetVisu
void removeLineSetVisu(const std::string &layerName, const std::string &lineSetName, const ::Ice::Current &=Ice::emptyCurrent) override
Definition: DebugDrawerComponent.cpp:1779
armarx::DebugDrawerComponent::ensureExistingRobotNodes
void ensureExistingRobotNodes(DebugDrawerComponent::RobotData &d)
ensureExistingRobotNodes Checks if all robotnodes of configuration exist in robot....
Definition: DebugDrawerComponent.cpp:1032
armarx::DebugDrawerComponent::RobotData::updateNodeColor
bool updateNodeColor
Definition: DebugDrawerComponent.h:453
armarx::DebugDrawerComponent::RobotData::RobotData
RobotData()
Definition: DebugDrawerComponent.h:441
armarx::DebugDrawerComponent::getSelections
DebugDrawerSelectionList getSelections(const ::Ice::Current &=Ice::emptyCurrent) override
Definition: DebugDrawerComponent.cpp:273
armarx::DebugDrawerComponent::removeRobotVisu
void removeRobotVisu(const std::string &layerName, const std::string &robotName, const ::Ice::Current &=Ice::emptyCurrent) override
Definition: DebugDrawerComponent.cpp:2217
armarx::DebugDrawerComponent::PolygonData::colorInner
VirtualRobot::VisualizationFactory::Color colorInner
Definition: DebugDrawerComponent.h:423
armarx::DebugDrawerComponent::exportLayer
void exportLayer(const std::string &filename, const std::string &layerName, const ::Ice::Current &=Ice::emptyCurrent) override
Definition: DebugDrawerComponent.cpp:472
RunningTask.h
armarx::DebugDrawerComponent::mutex
RecursiveMutexPtr mutex
The coin mutex.
Definition: DebugDrawerComponent.h:599
armarx::DebugDrawerComponent::DrawData::name
std::string name
Definition: DebugDrawerComponent.h:345
armarx::DebugDrawerComponent::topicMutex
RecursiveMutexPtr topicMutex
Definition: DebugDrawerComponent.h:604
armarx::DebugDrawerComponent::removeBoxDebugLayerVisu
void removeBoxDebugLayerVisu(const std::string &boxName, const ::Ice::Current &=Ice::emptyCurrent) override
Definition: DebugDrawerComponent.cpp:1832
armarx::DebugDrawerComponent::updateVisualizationCB
static void updateVisualizationCB(void *data, SoSensor *sensor)
Definition: DebugDrawerComponent.cpp:380
armarx::DebugDrawerComponent::removeColoredPointCloudVisu
void removeColoredPointCloudVisu(const std::string &layerName, const std::string &pointCloudName, const ::Ice::Current &=Ice::emptyCurrent) override
Definition: DebugDrawerComponent.cpp:2765
armarx::DebugDrawerComponent::removeCoordSystem
void removeCoordSystem(const std::string &layerName, const std::string &name)
Definition: DebugDrawerComponent.cpp:1603
armarx::DebugDrawerComponent::Layer::visible
bool visible
Definition: DebugDrawerComponent.h:565
armarx::DebugDrawerComponent::Layer::addedTextVisualizations
std::map< std::string, SoSeparator * > addedTextVisualizations
Definition: DebugDrawerComponent.h:552
armarx::DebugDrawerComponent::getDefaultLayerVisibility
bool getDefaultLayerVisibility() const
Definition: DebugDrawerComponent.h:311
armarx::DebugDrawerComponent::coinVisu
SoSeparator * coinVisu
Definition: DebugDrawerComponent.h:583
armarx::DebugDrawerComponent::requestRobot
VirtualRobot::RobotPtr requestRobot(const RobotData &d)
Definition: DebugDrawerComponent.cpp:1220
armarx::DebugDrawerComponent::removeRobot
void removeRobot(const std::string &layerName, const std::string &name)
Definition: DebugDrawerComponent.cpp:1549
armarx::DebugDrawerComponent::removeColoredPointCloudDebugLayerVisu
void removeColoredPointCloudDebugLayerVisu(const std::string &pointCloudName, const ::Ice::Current &=Ice::emptyCurrent) override
Definition: DebugDrawerComponent.cpp:2777
armarx::DebugDrawerComponent::removeSphere
void removeSphere(const std::string &layerName, const std::string &name)
Definition: DebugDrawerComponent.cpp:1409
armarx::DebugDrawerComponent::setBoxDebugLayerVisu
void setBoxDebugLayerVisu(const std::string &boxName, const ::armarx::PoseBasePtr &globalPose, const ::armarx::Vector3BasePtr &dimensions, const DrawColor &color, const ::Ice::Current &=Ice::emptyCurrent) override
Definition: DebugDrawerComponent.cpp:1815
armarx::DebugDrawerComponent::removePolygonDebugLayerVisu
void removePolygonDebugLayerVisu(const std::string &polygonName, const ::Ice::Current &=Ice::emptyCurrent) override
Definition: DebugDrawerComponent.cpp:2033
armarx::DebugDrawerComponent::updateRobotPose
void updateRobotPose(const std::string &layerName, const std::string &robotName, const ::armarx::PoseBasePtr &globalPose, const ::Ice::Current &=Ice::emptyCurrent) override
Definition: DebugDrawerComponent.cpp:2128
IceInternal::Handle< DebugDrawerComponent >
armarx::DebugDrawerComponent::PolygonData::points
std::vector< Eigen::Vector3f > points
Definition: DebugDrawerComponent.h:421
armarx::DebugDrawerComponent::PointCloudData
Definition: DebugDrawerComponent.h:407
armarx::DebugDrawerComponent::removeSphereDebugLayerVisu
void removeSphereDebugLayerVisu(const std::string &sphereName, const ::Ice::Current &=Ice::emptyCurrent) override
Definition: DebugDrawerComponent.cpp:1909
armarx::DebugDrawerComponent::RecursiveMutexLock
std::unique_lock< RecursiveMutex > RecursiveMutexLock
Definition: DebugDrawerComponent.h:280
armarx::DebugDrawerComponent::clearDebugLayer
void clearDebugLayer(const ::Ice::Current &=Ice::emptyCurrent) override
Definition: DebugDrawerComponent.cpp:2355
armarx::DebugDrawerComponent::UpdateData::box
std::map< std::string, BoxData > box
Definition: DebugDrawerComponent.h:470
armarx::DebugDrawerComponent::RobotData::color
VirtualRobot::VisualizationFactory::Color color
Definition: DebugDrawerComponent.h:451
armarx::DebugDrawerComponent::setLineVisu
void setLineVisu(const std::string &layerName, const std::string &lineName, const ::armarx::Vector3BasePtr &globalPosition1, const ::armarx::Vector3BasePtr &globalPosition2, float lineWidth, const ::armarx::DrawColor &color, const ::Ice::Current &=Ice::emptyCurrent) override
Definition: DebugDrawerComponent.cpp:1719
armarx::DebugDrawerComponent::removePoseVisu
void removePoseVisu(const std::string &layerName, const std::string &poseName, const ::Ice::Current &=Ice::emptyCurrent) override
Definition: DebugDrawerComponent.cpp:1702
armarx::DebugDrawerComponent::drawCylinder
void drawCylinder(const CylinderData &d)
Definition: DebugDrawerComponent.cpp:769
armarx::DebugDrawerComponent::UpdateData::robots
std::map< std::string, RobotData > robots
Definition: DebugDrawerComponent.h:481
armarx::DebugDrawerComponent::setDefaultLayerVisibility
void setDefaultLayerVisibility(bool defaultLayerVisibility)
Definition: DebugDrawerComponent.h:299
armarx::DebugDrawerComponent::RobotData::updateColor
bool updateColor
Definition: DebugDrawerComponent.h:450
armarx::DebugDrawerComponent::RobotData
Definition: DebugDrawerComponent.h:439
armarx::DebugDrawerComponent::removeLineVisu
void removeLineVisu(const std::string &layerName, const std::string &lineName, const ::Ice::Current &=Ice::emptyCurrent) override
Definition: DebugDrawerComponent.cpp:1743
armarx::DebugDrawerComponent::Layer::addedCylinderVisualizations
std::map< std::string, SoSeparator * > addedCylinderVisualizations
Definition: DebugDrawerComponent.h:554
armarx::DebugDrawerComponent::removeCylinderVisu
void removeCylinderVisu(const std::string &layerName, const std::string &cylinderName, const ::Ice::Current &=Ice::emptyCurrent) override
Definition: DebugDrawerComponent.cpp:1937
armarx::DebugDrawerComponent::CoordData
Definition: DebugDrawerComponent.h:353
armarx::DebugDrawerComponent::getVisualization
SoSeparator * getVisualization()
getVisualization Ensure that all access to this node is protected with the scoped lock mutex.
Definition: DebugDrawerComponent.cpp:2388
armarx::DebugDrawerComponent::deselectionCallback
void deselectionCallback()
Definition: DebugDrawerComponent.cpp:230
Color
uint32_t Color
RGBA color.
Definition: color.h:8
armarx::DebugDrawerComponent::Layer::addedCustomVisualizations
std::map< std::string, SoSeparator * > addedCustomVisualizations
Definition: DebugDrawerComponent.h:563
armarx::DebugDrawerComponent::setSphereVisu
void setSphereVisu(const std::string &layerName, const std::string &sphereName, const ::armarx::Vector3BasePtr &globalPosition, const DrawColor &color, float radius, const ::Ice::Current &=Ice::emptyCurrent) override
Definition: DebugDrawerComponent.cpp:1876
armarx::DebugDrawerComponent::removeTextVisu
void removeTextVisu(const std::string &layerName, const std::string &textName, const ::Ice::Current &=Ice::emptyCurrent) override
Definition: DebugDrawerComponent.cpp:1859
armarx::DebugDrawerComponent::loadedRobots
std::map< std::string, VirtualRobot::RobotPtr > loadedRobots
Definition: DebugDrawerComponent.h:619
armarx::DebugDrawerComponent::setScaledPoseVisu
void setScaledPoseVisu(const std::string &layerName, const std::string &poseName, const ::armarx::PoseBasePtr &globalPose, const ::Ice::Float scale, const ::Ice::Current &=Ice::emptyCurrent) override
Definition: DebugDrawerComponent.cpp:1671
armarx::DebugDrawerComponent::LineData::p1
Eigen::Vector3f p1
Definition: DebugDrawerComponent.h:360
armarx::DebugDrawerComponent::SphereData
Definition: DebugDrawerComponent.h:384
armarx::DebugDrawerComponent::drawArrow
void drawArrow(const ArrowData &d)
Definition: DebugDrawerComponent.cpp:1007
armarx::DebugDrawerComponent::CircleData::radius
float radius
Definition: DebugDrawerComponent.h:402
armarx::DebugDrawerComponent::CylinderData::color
VirtualRobot::VisualizationFactory::Color color
Definition: DebugDrawerComponent.h:396
armarx::DebugDrawerComponent::updateRobotConfig
void updateRobotConfig(const std::string &layerName, const std::string &robotName, const std::map< std::string, float > &configuration, const ::Ice::Current &=Ice::emptyCurrent) override
Definition: DebugDrawerComponent.cpp:2145
armarx::DebugDrawerComponent::Layer::addedBoxVisualizations
std::map< std::string, SoSeparator * > addedBoxVisualizations
Definition: DebugDrawerComponent.h:551
armarx::DebugDrawerComponent::SphereData::color
VirtualRobot::VisualizationFactory::Color color
Definition: DebugDrawerComponent.h:387
armarx::DebugDrawerComponent::BoxData::height
float height
Definition: DebugDrawerComponent.h:373
armarx::DebugDrawerComponent::onUpdateVisualization
virtual void onUpdateVisualization()
onUpdateVisualization derived methods can overwrite this method to update custom visualizations.
Definition: DebugDrawerComponent.h:495
armarx::DebugDrawerComponent::removeTriMeshVisu
void removeTriMeshVisu(const std::string &layerName, const std::string &triMeshName, const ::Ice::Current &=Ice::emptyCurrent) override
Definition: DebugDrawerComponent.cpp:2056
armarx::DebugDrawerComponent::DrawData::active
bool active
Definition: DebugDrawerComponent.h:346
armarx::DebugDrawerComponent::Layer::addedPointCloudVisualizations
std::map< std::string, SoSeparator * > addedPointCloudVisualizations
Definition: DebugDrawerComponent.h:556
armarx::DebugDrawerComponent::RobotData::updateConfig
bool updateConfig
Definition: DebugDrawerComponent.h:459
armarx::DebugDrawerComponent::enableSelections
void enableSelections(const std::string &layerName, const ::Ice::Current &=Ice::emptyCurrent) override
Definition: DebugDrawerComponent.cpp:124
armarx::DebugDrawerComponent::setMutex
void setMutex(RecursiveMutexPtr const &m)
Definition: DebugDrawerComponent.cpp:2360
armarx::DebugDrawerComponent::TextData
Definition: DebugDrawerComponent.h:377
armarx::DebugDrawerComponent::CircleData::width
float width
Definition: DebugDrawerComponent.h:403
data
uint8_t data[1]
Definition: EtherCATFrame.h:68
armarx::DebugDrawerComponent::RecursiveMutex
std::recursive_mutex RecursiveMutex
Definition: DebugDrawerComponent.h:278
armarx::DebugDrawerComponent::setPoseVisu
void setPoseVisu(const std::string &layerName, const std::string &poseName, const ::armarx::PoseBasePtr &globalPose, const ::Ice::Current &=Ice::emptyCurrent) override
Definition: DebugDrawerComponent.cpp:1692
armarx::DebugDrawerComponent::setTextVisu
void setTextVisu(const std::string &layerName, const std::string &textName, const std::string &text, const ::armarx::Vector3BasePtr &globalPosition, const DrawColor &color, int size, const ::Ice::Current &=Ice::emptyCurrent) override
Definition: DebugDrawerComponent.cpp:1837
armarx::DebugDrawerComponent::TriMeshData
Definition: DebugDrawerComponent.h:426
armarx::DebugDrawerComponent::removeBox
void removeBox(const std::string &layerName, const std::string &name)
Definition: DebugDrawerComponent.cpp:1369
armarx::DebugDrawerComponent::UpdateData::clearLayers
std::set< std::string > clearLayers
Definition: DebugDrawerComponent.h:483
armarx::DebugDrawerComponent::listenerPrx
DebugDrawerListenerPrx listenerPrx
Definition: DebugDrawerComponent.h:611
armarx::DebugDrawerComponent::setPolygonVisu
void setPolygonVisu(const std::string &layerName, const std::string &polygonName, const std::vector< ::armarx::Vector3BasePtr > &polygonPoints, const DrawColor &colorInner, const DrawColor &colorBorder, float lineWidth, const ::Ice::Current &=Ice::emptyCurrent) override
Definition: DebugDrawerComponent.cpp:1990
armarx::DebugDrawerComponent::ArrowData::length
float length
Definition: DebugDrawerComponent.h:435
armarx::DebugDrawerComponent::setLineSetVisu
void setLineSetVisu(const std::string &layerName, const std::string &lineSetName, const DebugDrawerLineSet &lineSet, const ::Ice::Current &=Ice::emptyCurrent) override
Definition: DebugDrawerComponent.cpp:1760
armarx::DebugDrawerComponent::remove24BitColoredPointCloudDebugLayerVisu
void remove24BitColoredPointCloudDebugLayerVisu(const std::string &pointCloudName, const ::Ice::Current &=Ice::emptyCurrent) override
Definition: DebugDrawerComponent.cpp:2893
armarx::DebugDrawerComponent::CylinderData::length
float length
Definition: DebugDrawerComponent.h:394
armarx::DebugDrawerComponent::updateRobotNodeColor
void updateRobotNodeColor(const std::string &layerName, const std::string &robotName, const std::string &robotNodeName, const armarx::DrawColor &c, const ::Ice::Current &=Ice::emptyCurrent) override
Definition: DebugDrawerComponent.cpp:2191
armarx::DebugDrawerComponent::TextData::text
std::string text
Definition: DebugDrawerComponent.h:379
armarx::DebugDrawerComponent::CylinderData::direction
Eigen::Vector3f direction
Definition: DebugDrawerComponent.h:393
armarx::DebugDrawerComponent::getScopedAccumulatedDataLock
RecursiveMutexLockPtr getScopedAccumulatedDataLock()
Definition: DebugDrawerComponent.cpp:2382
armarx::DebugDrawerComponent::removeCylinderDebugLayerVisu
void removeCylinderDebugLayerVisu(const std::string &cylinderName, const ::Ice::Current &=Ice::emptyCurrent) override
Definition: DebugDrawerComponent.cpp:1949
armarx::DebugDrawerComponent::timerSensorMutex
std::mutex timerSensorMutex
Definition: DebugDrawerComponent.h:616
armarx::DebugDrawerComponent::removePolygon
void removePolygon(const std::string &layerName, const std::string &name)
Definition: DebugDrawerComponent.cpp:1489
filename
std::string filename
Definition: VisualizationRobot.cpp:84
armarx::DebugDrawerComponent::exportScene
void exportScene(const std::string &filename, const ::Ice::Current &=Ice::emptyCurrent) override
Definition: DebugDrawerComponent.cpp:451
armarx::DebugDrawerComponent::CircleData
Definition: DebugDrawerComponent.h:398
armarx::DebugDrawerComponent::draw24BitColoredPointCloud
void draw24BitColoredPointCloud(const Colored24BitPointCloudData &d)
Definition: DebugDrawerComponent.cpp:2782
armarx::DebugDrawerComponent::ColoredPointCloudData::pointCloud
DebugDrawerColoredPointCloud pointCloud
Definition: DebugDrawerComponent.h:413
armarx::DebugDrawerComponent::setColoredPointCloudDebugLayerVisu
virtual void setColoredPointCloudDebugLayerVisu(const std::string &pointCloudName, const DebugDrawerColoredPointCloud &pointCloud, const ::Ice::Current &=Ice::emptyCurrent)
Definition: DebugDrawerComponent.cpp:2760
armarx::DebugDrawerComponent::setLayerVisibility
void setLayerVisibility(const std::string &layerName, bool visible)
Definition: DebugDrawerComponent.cpp:1623
armarx::DebugDrawerComponent::UpdateData::removeLayers
std::set< std::string > removeLayers
Definition: DebugDrawerComponent.h:484
armarx::DebugDrawerComponent::removeCircleVisu
void removeCircleVisu(const std::string &layerName, const std::string &circleName, const Ice::Current &=Ice::emptyCurrent) override
Definition: DebugDrawerComponent.cpp:2921
armarx::DebugDrawerComponent::BoxData
Definition: DebugDrawerComponent.h:369
armarx::DebugDrawerComponent::requestLayer
Layer & requestLayer(const std::string &layerName)
If a layer with layerName exists it is returned. Otherwise a new layer with given name is created and...
Definition: DebugDrawerComponent.cpp:2393
armarx::DebugDrawerComponent::PointCloudData::pointCloud
DebugDrawerPointCloud pointCloud
Definition: DebugDrawerComponent.h:409
armarx::DebugDrawerComponent::removeCylinder
void removeCylinder(const std::string &layerName, const std::string &name)
Definition: DebugDrawerComponent.cpp:1429
armarx::DebugDrawerComponent::RobotData::nodeColors
std::map< std::string, VirtualRobot::VisualizationFactory::Color > nodeColors
Definition: DebugDrawerComponent.h:454
armarx::DebugDrawerComponent::CircleData::color
VirtualRobot::VisualizationFactory::Color color
Definition: DebugDrawerComponent.h:405
armarx::DebugDrawerComponent::DrawData::DrawData
DrawData()
Definition: DebugDrawerComponent.h:339
armarx::DebugDrawerComponent::UpdateData::cylinder
std::map< std::string, CylinderData > cylinder
Definition: DebugDrawerComponent.h:474
Component.h
armarx::DebugDrawerComponent::cycleTimeMS
float cycleTimeMS
Definition: DebugDrawerComponent.h:613
armarx::DebugDrawerComponent::RobotData::armarxProject
std::string armarxProject
Definition: DebugDrawerComponent.h:448
armarx::Component
Baseclass for all ArmarX ManagedIceObjects requiring properties.
Definition: Component.h:95
armarx::DebugDrawerComponent::setBoxVisu
void setBoxVisu(const std::string &layerName, const std::string &boxName, const ::armarx::PoseBasePtr &globalPose, const ::armarx::Vector3BasePtr &dimensions, const DrawColor &color, const ::Ice::Current &=Ice::emptyCurrent) override
Definition: DebugDrawerComponent.cpp:1796
armarx::DebugDrawerComponent::Layer::addedSphereVisualizations
std::map< std::string, SoSeparator * > addedSphereVisualizations
Definition: DebugDrawerComponent.h:553
armarx::DebugDrawerComponent::defaultLayerVisibility
bool defaultLayerVisibility
Definition: DebugDrawerComponent.h:621
armarx::DebugDrawerComponent::enableAllLayers
void enableAllLayers(const ::Ice::Current &=Ice::emptyCurrent) override
Definition: DebugDrawerComponent.cpp:1661
armarx::DebugDrawerComponent::removeCircle
void removeCircle(const std::string &layerName, const std::string &name)
Definition: DebugDrawerComponent.cpp:1449
armarx::DebugDrawerComponent::dataUpdateMutex
RecursiveMutexPtr dataUpdateMutex
The data update mutex.
Definition: DebugDrawerComponent.h:602
armarx::DebugDrawerComponent::UpdateData::text
std::map< std::string, TextData > text
Definition: DebugDrawerComponent.h:471
armarx::DebugDrawerComponent::setArrowDebugLayerVisu
void setArrowDebugLayerVisu(const std::string &arrowName, const ::armarx::Vector3BasePtr &position, const ::armarx::Vector3BasePtr &direction, const DrawColor &color, float length, float width, const ::Ice::Current &=Ice::emptyCurrent) override
Definition: DebugDrawerComponent.cpp:2090
armarx::DebugDrawerComponent::RecursiveMutexPtr
std::shared_ptr< RecursiveMutex > RecursiveMutexPtr
Definition: DebugDrawerComponent.h:279
armarx::DebugDrawerComponent::removeDefaultLayerVisibility
void removeDefaultLayerVisibility(const std::string &layerName)
Definition: DebugDrawerComponent.h:307
armarx::DebugDrawerComponent::PolygonData
Definition: DebugDrawerComponent.h:419
armarx::Component::getConfigIdentifier
std::string getConfigIdentifier()
Retrieve config identifier for this component as set in constructor.
Definition: Component.cpp:74
armarx::DebugDrawerComponent::removeLayerQt
void removeLayerQt(const std::string &layerName)
Definition: DebugDrawerComponent.cpp:2549
armarx::DebugDrawerComponent::RobotData::robotFile
std::string robotFile
Definition: DebugDrawerComponent.h:447
armarx::DebugDrawerComponent::setCircleArrowVisu
void setCircleArrowVisu(const std::string &layerName, const std::string &circleName, const Vector3BasePtr &globalPosition, const Vector3BasePtr &directionVec, Ice::Float radius, Ice::Float circleCompletion, Ice::Float width, const DrawColor &color, const Ice::Current &=Ice::emptyCurrent) override
Definition: DebugDrawerComponent.cpp:2898
armarx::DebugDrawerComponent::removeCustomVisu
virtual void removeCustomVisu(const std::string &layerName, const std::string &name)
Definition: DebugDrawerComponent.h:498
GfxTL::Matrix4f
MatrixXX< 4, 4, float > Matrix4f
Definition: MatrixXX.h:601
armarx::DebugDrawerComponent::clearLayer
void clearLayer(const std::string &layerName, const ::Ice::Current &=Ice::emptyCurrent) override
Definition: DebugDrawerComponent.cpp:2237
armarx::DebugDrawerComponent::setLineDebugLayerVisu
void setLineDebugLayerVisu(const std::string &lineName, const ::armarx::Vector3BasePtr &globalPosition1, const ::armarx::Vector3BasePtr &globalPosition2, float lineWidth, const ::armarx::DrawColor &color, const ::Ice::Current &=Ice::emptyCurrent) override
Definition: DebugDrawerComponent.cpp:1738
armarx::DebugDrawerComponent::drawLine
void drawLine(const LineData &d)
Definition: DebugDrawerComponent.cpp:531
armarx::DebugDrawerComponent::setCircleDebugLayerVisu
void setCircleDebugLayerVisu(const std::string &circleName, const Vector3BasePtr &globalPosition, const Vector3BasePtr &directionVec, Ice::Float radius, Ice::Float circleCompletion, Ice::Float width, const DrawColor &color, const Ice::Current &=Ice::emptyCurrent) override
Definition: DebugDrawerComponent.cpp:2916
armarx::DebugDrawerComponent::RobotData::globalPose
Eigen::Matrix4f globalPose
Definition: DebugDrawerComponent.h:457
armarx::DebugDrawerComponent::Layer::addedLineSetVisualizations
std::map< std::string, SoSeparator * > addedLineSetVisualizations
Definition: DebugDrawerComponent.h:550
armarx::ComponentPropertyDefinitions
Default component property definition container.
Definition: Component.h:70
armarx::DebugDrawerComponent::setPointCloudDebugLayerVisu
void setPointCloudDebugLayerVisu(const std::string &pointCloudName, const DebugDrawerPointCloud &pointCloud, const ::Ice::Current &=Ice::emptyCurrent) override
Definition: DebugDrawerComponent.cpp:1968
armarx::DebugDrawerComponent::removeTriMeshDebugLayerVisu
void removeTriMeshDebugLayerVisu(const std::string &triMeshName, const ::Ice::Current &=Ice::emptyCurrent) override
Definition: DebugDrawerComponent.cpp:2068
armarx::DebugDrawerComponent::removeText
void removeText(const std::string &layerName, const std::string &name)
Definition: DebugDrawerComponent.cpp:1389
armarx::DebugDrawerComponent::UpdateData::arrows
std::map< std::string, ArrowData > arrows
Definition: DebugDrawerComponent.h:480
armarx::DebugDrawerComponent::UpdateData::polygons
std::map< std::string, PolygonData > polygons
Definition: DebugDrawerComponent.h:478
armarx::DebugDrawerComponent::CircleData::position
Eigen::Vector3f position
Definition: DebugDrawerComponent.h:400
IceUtil::Handle< class PropertyDefinitionContainer >
armarx::DebugDrawerComponent::removeColoredPointCloud
void removeColoredPointCloud(const std::string &layerName, const std::string &name)
Definition: DebugDrawerComponent.cpp:2727
armarx::DebugDrawerComponent::CylinderData::position
Eigen::Vector3f position
Definition: DebugDrawerComponent.h:392
armarx::DebugDrawerComponent::DebugDrawerComponent
DebugDrawerComponent()
DebugDrawerComponent Constructs a debug drawer.
Definition: DebugDrawerComponent.cpp:97
armarx::DebugDrawerComponent::installSelectionCallbacks
void installSelectionCallbacks()
Definition: DebugDrawerComponent.cpp:236
armarx::DebugDrawerComponent::CircleData::direction
Eigen::Vector3f direction
Definition: DebugDrawerComponent.h:401
armarx::DebugDrawerComponent::UpdateData::coloredpointcloud
std::map< std::string, ColoredPointCloudData > coloredpointcloud
Definition: DebugDrawerComponent.h:476
armarx::DebugDrawerComponent::BoxData::depth
float depth
Definition: DebugDrawerComponent.h:374
armarx::DebugDrawerComponent::onConnectComponent
void onConnectComponent() override
Pure virtual hook for the subclass.
Definition: DebugDrawerComponent.cpp:394
armarx::DebugDrawerComponent::LineSetData::lineSet
DebugDrawerLineSet lineSet
Definition: DebugDrawerComponent.h:367
armarx::DebugDrawerComponent::Layer::addedTriMeshVisualizations
std::map< std::string, SoSeparator * > addedTriMeshVisualizations
Definition: DebugDrawerComponent.h:560
armarx::DebugDrawerComponent::LineData
Definition: DebugDrawerComponent.h:358
armarx::DebugDrawerComponent::removeLineDebugLayerVisu
void removeLineDebugLayerVisu(const std::string &lineName, const ::Ice::Current &=Ice::emptyCurrent) override
Definition: DebugDrawerComponent.cpp:1755
armarx::DebugDrawerComponent::drawBox
void drawBox(const BoxData &d)
Definition: DebugDrawerComponent.cpp:648
armarx::DebugDrawerComponent::setCylinderVisu
void setCylinderVisu(const std::string &layerName, const std::string &cylinderName, const ::armarx::Vector3BasePtr &globalPosition, const ::armarx::Vector3BasePtr &direction, float length, float radius, const DrawColor &color, const ::Ice::Current &=Ice::emptyCurrent) override
Definition: DebugDrawerComponent.cpp:1914
armarx::DebugDrawerComponent::removePointCloud
void removePointCloud(const std::string &layerName, const std::string &name)
Definition: DebugDrawerComponent.cpp:1469
armarx::DebugDrawerComponent::layerNames
::Ice::StringSeq layerNames(const ::Ice::Current &=Ice::emptyCurrent) override
Definition: DebugDrawerComponent.cpp:2624
armarx::DebugDrawerComponent::LineData::p2
Eigen::Vector3f p2
Definition: DebugDrawerComponent.h:361
armarx::DebugDrawerComponent::removeLineSetDebugLayerVisu
void removeLineSetDebugLayerVisu(const std::string &lineSetName, const ::Ice::Current &=Ice::emptyCurrent) override
Definition: DebugDrawerComponent.cpp:1791
armarx::DebugDrawerComponent::setPoseDebugLayerVisu
void setPoseDebugLayerVisu(const std::string &poseName, const ::armarx::PoseBasePtr &globalPose, const ::Ice::Current &=Ice::emptyCurrent) override
Definition: DebugDrawerComponent.cpp:1697
armarx::DebugDrawerComponent::RecursiveMutexLockPtr
std::shared_ptr< RecursiveMutexLock > RecursiveMutexLockPtr
Definition: DebugDrawerComponent.h:281
armarx::DebugDrawerComponent::removePolygonVisu
void removePolygonVisu(const std::string &layerName, const std::string &polygonName, const ::Ice::Current &=Ice::emptyCurrent) override
Definition: DebugDrawerComponent.cpp:2021
armarx::DebugDrawerComponent::onExitComponent
void onExitComponent() override
Hook for subclass.
Definition: DebugDrawerComponent.cpp:419
Logging.h
armarx::DebugDrawerComponent::CoordData::globalPose
Eigen::Matrix4f globalPose
Definition: DebugDrawerComponent.h:355
armarx::DebugDrawerComponent::removeTriMesh
void removeTriMesh(const std::string &layerName, const std::string &name)
Definition: DebugDrawerComponent.cpp:1509
armarx::DebugDrawerComponent::selectionCallback
void selectionCallback()
Definition: DebugDrawerComponent.cpp:224
armarx::DebugDrawerComponent::UpdateData::coord
std::map< std::string, CoordData > coord
Definition: DebugDrawerComponent.h:467
armarx::DebugDrawerComponent::drawLineSet
void drawLineSet(const LineSetData &d)
Definition: DebugDrawerComponent.cpp:552
armarx::DebugDrawerComponent::drawColoredPointCloud
void drawColoredPointCloud(const ColoredPointCloudData &d)
Definition: DebugDrawerComponent.cpp:2667
armarx::DebugDrawerComponent::ArrowData::color
VirtualRobot::VisualizationFactory::Color color
Definition: DebugDrawerComponent.h:437
armarx::DebugDrawerComponent::UpdateData::line
std::map< std::string, LineData > line
Definition: DebugDrawerComponent.h:468
armarx::DebugDrawerComponent::TriMeshData::triMesh
DebugDrawerTriMesh triMesh
Definition: DebugDrawerComponent.h:428
armarx::PropertyDefinitionsPtr
IceUtil::Handle< class PropertyDefinitionContainer > PropertyDefinitionsPtr
PropertyDefinitions smart pointer type.
Definition: forward_declarations.h:34
armarx::DebugDrawerComponent::removeArrow
void removeArrow(const std::string &layerName, const std::string &name)
Definition: DebugDrawerComponent.cpp:1529
armarx::DebugDrawerComponent::removeBoxVisu
void removeBoxVisu(const std::string &layerName, const std::string &boxName, const ::Ice::Current &=Ice::emptyCurrent) override
Definition: DebugDrawerComponent.cpp:1820
armarx::DebugDrawerComponent::drawSphere
void drawSphere(const SphereData &d)
Definition: DebugDrawerComponent.cpp:729
armarx::DebugDrawerComponent::onDisconnectComponent
void onDisconnectComponent() override
Hook for subclass.
Definition: DebugDrawerComponent.cpp:401
armarx::DebugDrawerComponent::setScaledPoseDebugLayerVisu
void setScaledPoseDebugLayerVisu(const std::string &poseName, const ::armarx::PoseBasePtr &globalPose, const ::Ice::Float scale, const ::Ice::Current &=Ice::emptyCurrent) override
Definition: DebugDrawerComponent.cpp:1687
armarx::DebugDrawerComponent::setPointCloudVisu
void setPointCloudVisu(const std::string &layerName, const std::string &pointCloudName, const DebugDrawerPointCloud &pointCloud, const ::Ice::Current &=Ice::emptyCurrent) override
Definition: DebugDrawerComponent.cpp:1954
armarx::DebugDrawerComponent::removeTextDebugLayerVisu
void removeTextDebugLayerVisu(const std::string &textName, const ::Ice::Current &=Ice::emptyCurrent) override
Definition: DebugDrawerComponent.cpp:1871
armarx::DebugDrawerComponent::ArrowData::position
Eigen::Vector3f position
Definition: DebugDrawerComponent.h:433
armarx::DebugDrawerComponent::SphereData::radius
float radius
Definition: DebugDrawerComponent.h:388
armarx::DebugDrawerComponent::DrawData::layerName
std::string layerName
Definition: DebugDrawerComponent.h:344
armarx::DebugDrawerComponent::setVisuUpdateTime
void setVisuUpdateTime(float visuUpdatesPerSec)
setVisuUpdateTime Specifies how often the accumulated draw commands should be applied to the visualiz...
Definition: DebugDrawerComponent.cpp:325
armarx::DebugDrawerComponent::getAllDefaultLayerVisibilities
std::map< std::string, bool > getAllDefaultLayerVisibilities() const
Definition: DebugDrawerComponent.h:324
armarx::DebugDrawerComponent::LineSetData
Definition: DebugDrawerComponent.h:365
armarx::DebugDrawerComponent::set24BitColoredPointCloudVisu
void set24BitColoredPointCloudVisu(const std::string &layerName, const std::string &pointCloudName, const DebugDrawer24BitColoredPointCloud &pointCloud, const ::Ice::Current &=Ice::emptyCurrent) override
Definition: DebugDrawerComponent.cpp:2863
armarx::DebugDrawerComponent::~DebugDrawerComponent
~DebugDrawerComponent() override
Definition: DebugDrawerComponent.cpp:343
armarx::DebugDrawerComponent::PolygonData::lineWidth
float lineWidth
Definition: DebugDrawerComponent.h:422
armarx::DebugDrawerComponent::layerMainNode
SoSeparator * layerMainNode
Main node for all layers.
Definition: DebugDrawerComponent.h:591
armarx::DebugDrawerComponent::drawCoordSystem
void drawCoordSystem(const CoordData &d)
Definition: DebugDrawerComponent.cpp:499
armarx::DebugDrawerComponent::clearSelections
void clearSelections(const std::string &layerName, const ::Ice::Current &=Ice::emptyCurrent) override
Definition: DebugDrawerComponent.cpp:147
armarx::DebugDrawerComponent::TextData::size
int size
Definition: DebugDrawerComponent.h:382
armarx::DebugDrawerComponent::disableSelections
void disableSelections(const std::string &layerName, const ::Ice::Current &=Ice::emptyCurrent) override
Definition: DebugDrawerComponent.cpp:132
armarx::DebugDrawerComponent::CoordData::scale
float scale
Definition: DebugDrawerComponent.h:356
armarx::DebugDrawerComponent::Colored24BitPointCloudData
Definition: DebugDrawerComponent.h:415
armarx::DebugDrawerComponent::drawText
void drawText(const TextData &d)
Definition: DebugDrawerComponent.cpp:683
armarx
This file offers overloads of toIce() and fromIce() functions for STL container types.
Definition: ArmarXTimeserver.cpp:28
armarx::DebugDrawerComponent::UpdateData::lineSet
std::map< std::string, LineSetData > lineSet
Definition: DebugDrawerComponent.h:469
armarx::DebugDrawerComponent::DrawData
Definition: DebugDrawerComponent.h:337
armarx::DebugDrawerComponent::ArrowData::direction
Eigen::Vector3f direction
Definition: DebugDrawerComponent.h:434
armarx::DebugDrawerComponent::setTextDebugLayerVisu
void setTextDebugLayerVisu(const std::string &textName, const std::string &text, const ::armarx::Vector3BasePtr &globalPosition, const DrawColor &color, int size, const ::Ice::Current &=Ice::emptyCurrent) override
Definition: DebugDrawerComponent.cpp:1854
armarx::DebugDrawerComponent::removeLayer
void removeLayer(const std::string &layerName, const ::Ice::Current &=Ice::emptyCurrent) override
Definition: DebugDrawerComponent.cpp:2539
armarx::DebugDrawerPropertyDefinitions
Definition: DebugDrawerComponent.h:58
VirtualRobot::RobotPtr
std::shared_ptr< class Robot > RobotPtr
Definition: Bus.h:18
armarx::DebugDrawerComponent::select
void select(const std::string &layerName, const std::string &elementName, const ::Ice::Current &=Ice::emptyCurrent) override
Definition: DebugDrawerComponent.cpp:174
armarx::DebugDrawerComponent::Layer::addedRobotVisualizations
std::map< std::string, SoSeparator * > addedRobotVisualizations
Definition: DebugDrawerComponent.h:562
armarx::DebugDrawerComponent::BoxData::width
float width
Definition: DebugDrawerComponent.h:372
armarx::DebugDrawerComponent::disableAllLayers
void disableAllLayers(const ::Ice::Current &=Ice::emptyCurrent) override
Definition: DebugDrawerComponent.cpp:1651
armarx::DebugDrawerComponent::selectionNode
SoSelection * selectionNode
Definition: DebugDrawerComponent.h:584
armarx::DebugDrawerComponent::removeLine
void removeLine(const std::string &layerName, const std::string &name)
Definition: DebugDrawerComponent.cpp:1329
armarx::DebugDrawerComponent::UpdateData
Definition: DebugDrawerComponent.h:465
armarx::DebugDrawerComponent::layers
std::map< const std::string, Layer > layers
All existing layers.
Definition: DebugDrawerComponent.h:596