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/SoSelection.h>
32 #include <Inventor/nodes/SoSeparator.h>
33 #include <Inventor/sensors/SoTimerSensor.h>
34 
35 // ArmarX
36 #include <VirtualRobot/VirtualRobot.h>
37 #include <VirtualRobot/Visualization/VisualizationFactory.h>
38 
43 
44 #include <RobotAPI/interface/visualization/DebugDrawerInterface.h>
46 
47 //std
48 #include <memory>
49 #include <mutex>
50 
51 namespace armarx
52 {
53 
54  /*!
55  * \class DebugDrawerPropertyDefinitions
56  * \brief
57  */
59  {
60  public:
62  {
63  defineOptionalProperty<bool>(
64  "ShowDebugDrawing",
65  true,
66  "The simulator implements the DebugDrawerInterface. The debug visualizations (e.g. "
67  "coordinate systems) can enabled/disbaled with this flag.");
68  defineOptionalProperty<std::string>(
69  "DebugDrawerTopic", "DebugDrawerUpdates", "Name of the DebugDrawerTopic");
70  defineOptionalProperty<std::string>("DebugDrawerSelectionTopic",
71  "DebugDrawerSelections",
72  "Name of the DebugDrawerSelectionTopic");
73  }
74  };
75 
76  /*!
77  * \defgroup Component-DebugDrawerComponent DebugDrawerComponent
78  * \ingroup RobotAPI-Components
79  * \brief Visualizes debug information.
80  *
81  * The DebugDrawerComponent implements the DebugDrawerInterface and provides a convenient way for visualizing debug information.
82  * It creates a scene graph representation of the debug content and offers it to visualization components.
83  * Several GUI plugins visualize this debug scene graph, among others:
84  * - RobotViewer (RobotAPI)
85  * - WorkingMemoryGui (MemoryX)
86  * - SimulatorViewer (ArmarXSimulation)
87  *
88  * The following example shows an exemplary debug drawing:
89  \code
90  DebugDrawerInterfacePrx prxDD = getTopic<DebugDrawerInterfacePrx>("DebugDrawerUpdates");
91  if (prxDD)
92  {
93  // draw in global coordinate system
94  Eigen::Matrix4f p;
95  p.setIdentity();
96  p(2,3) = 1000.0f;
97  PosePtr gp(new Pose(p));
98  prxDD->setPoseDebugLayerVisu("testPose",gp);
99 
100  armarx::Vector3Ptr p1(new armarx::Vector3(0, 0, 0));
101  armarx::Vector3Ptr p2(new armarx::Vector3(1000, 1000, 1000));
102 
103  armarx::DrawColor c = {1, 0, 0, 1}; // RGBA
104  prxDD->setLineDebugLayerVisu("testLine", p1, p2, 2.0f, c);
105  }
106  \endcode
107  */
108 
109  /**
110  * @brief The DebugDrawerComponent class
111  * @ingroup Component-DebugDrawerComponent
112  */
114  virtual public armarx::DebugDrawerInterfaceAndListener,
115  virtual public Component
116  {
117  public:
118  /*!
119  * \brief DebugDrawerComponent Constructs a debug drawer
120  */
122 
123  /*!
124  * \brief setVisuUpdateTime Specifies how often the accumulated draw commands should be applied to the visualization (default 30). Has to be called before init.
125  * \param visuUpdatesPerSec All topic requests are collected asynchronously. This parameter specifies how often the rendering should be updated according to the accumulated updates.
126  */
127  void setVisuUpdateTime(float visuUpdatesPerSec);
128 
129  // inherited from Component
130  std::string
131  getDefaultName() const override
132  {
133  return "DebugDrawer";
134  }
135 
136  void onInitComponent() override;
137  void onConnectComponent() override;
138  void onDisconnectComponent() override;
139  void onExitComponent() override;
140 
141  /*!
142  * \see PropertyUser::createPropertyDefinitions()
143  */
146  {
147  return PropertyDefinitionsPtr(
149  }
150 
151  /* Inherited from DebugDrawerInterface. */
152  void exportScene(const std::string& filename,
153  const ::Ice::Current& = Ice::emptyCurrent) override;
154  void exportLayer(const std::string& filename,
155  const std::string& layerName,
156  const ::Ice::Current& = Ice::emptyCurrent) override;
157 
158  void setPoseVisu(const std::string& layerName,
159  const std::string& poseName,
160  const ::armarx::PoseBasePtr& globalPose,
161  const ::Ice::Current& = Ice::emptyCurrent) override;
162  void setScaledPoseVisu(const std::string& layerName,
163  const std::string& poseName,
164  const ::armarx::PoseBasePtr& globalPose,
165  const ::Ice::Float scale,
166  const ::Ice::Current& = Ice::emptyCurrent) override;
167  void setPoseDebugLayerVisu(const std::string& poseName,
168  const ::armarx::PoseBasePtr& globalPose,
169  const ::Ice::Current& = Ice::emptyCurrent) override;
170  void setScaledPoseDebugLayerVisu(const std::string& poseName,
171  const ::armarx::PoseBasePtr& globalPose,
172  const ::Ice::Float scale,
173  const ::Ice::Current& = Ice::emptyCurrent) override;
174  void removePoseVisu(const std::string& layerName,
175  const std::string& poseName,
176  const ::Ice::Current& = Ice::emptyCurrent) override;
177  void removePoseDebugLayerVisu(const std::string& poseName,
178  const ::Ice::Current& = Ice::emptyCurrent) override;
179 
180  void setLineVisu(const std::string& layerName,
181  const std::string& lineName,
182  const ::armarx::Vector3BasePtr& globalPosition1,
183  const ::armarx::Vector3BasePtr& globalPosition2,
184  float lineWidth,
185  const ::armarx::DrawColor& color,
186  const ::Ice::Current& = Ice::emptyCurrent) override;
187  void setLineDebugLayerVisu(const std::string& lineName,
188  const ::armarx::Vector3BasePtr& globalPosition1,
189  const ::armarx::Vector3BasePtr& globalPosition2,
190  float lineWidth,
191  const ::armarx::DrawColor& color,
192  const ::Ice::Current& = Ice::emptyCurrent) override;
193  void removeLineVisu(const std::string& layerName,
194  const std::string& lineName,
195  const ::Ice::Current& = Ice::emptyCurrent) override;
196  void removeLineDebugLayerVisu(const std::string& lineName,
197  const ::Ice::Current& = Ice::emptyCurrent) override;
198 
199  void setLineSetVisu(const std::string& layerName,
200  const std::string& lineSetName,
201  const DebugDrawerLineSet& lineSet,
202  const ::Ice::Current& = Ice::emptyCurrent) override;
203  void setLineSetDebugLayerVisu(const std::string& lineSetName,
204  const DebugDrawerLineSet& lineSet,
205  const ::Ice::Current& = Ice::emptyCurrent) override;
206  void removeLineSetVisu(const std::string& layerName,
207  const std::string& lineSetName,
208  const ::Ice::Current& = Ice::emptyCurrent) override;
209  void removeLineSetDebugLayerVisu(const std::string& lineSetName,
210  const ::Ice::Current& = Ice::emptyCurrent) override;
211 
212  void setBoxVisu(const std::string& layerName,
213  const std::string& boxName,
214  const ::armarx::PoseBasePtr& globalPose,
215  const ::armarx::Vector3BasePtr& dimensions,
216  const DrawColor& color,
217  const ::Ice::Current& = Ice::emptyCurrent) override;
218  void setBoxDebugLayerVisu(const std::string& boxName,
219  const ::armarx::PoseBasePtr& globalPose,
220  const ::armarx::Vector3BasePtr& dimensions,
221  const DrawColor& color,
222  const ::Ice::Current& = Ice::emptyCurrent) override;
223  void removeBoxVisu(const std::string& layerName,
224  const std::string& boxName,
225  const ::Ice::Current& = Ice::emptyCurrent) override;
226  void removeBoxDebugLayerVisu(const std::string& boxName,
227  const ::Ice::Current& = Ice::emptyCurrent) override;
228 
229  void setTextVisu(const std::string& layerName,
230  const std::string& textName,
231  const std::string& text,
232  const ::armarx::Vector3BasePtr& globalPosition,
233  const DrawColor& color,
234  int size,
235  const ::Ice::Current& = Ice::emptyCurrent) override;
236  void setTextDebugLayerVisu(const std::string& textName,
237  const std::string& text,
238  const ::armarx::Vector3BasePtr& globalPosition,
239  const DrawColor& color,
240  int size,
241  const ::Ice::Current& = Ice::emptyCurrent) override;
242  void removeTextVisu(const std::string& layerName,
243  const std::string& textName,
244  const ::Ice::Current& = Ice::emptyCurrent) override;
245  void removeTextDebugLayerVisu(const std::string& textName,
246  const ::Ice::Current& = Ice::emptyCurrent) override;
247 
248  void setSphereVisu(const std::string& layerName,
249  const std::string& sphereName,
250  const ::armarx::Vector3BasePtr& globalPosition,
251  const DrawColor& color,
252  float radius,
253  const ::Ice::Current& = Ice::emptyCurrent) override;
254  void setSphereDebugLayerVisu(const std::string& sphereName,
255  const ::armarx::Vector3BasePtr& globalPosition,
256  const DrawColor& color,
257  float radius,
258  const ::Ice::Current& = Ice::emptyCurrent) override;
259  void removeSphereVisu(const std::string& layerName,
260  const std::string& sphereName,
261  const ::Ice::Current& = Ice::emptyCurrent) override;
262  void removeSphereDebugLayerVisu(const std::string& sphereName,
263  const ::Ice::Current& = Ice::emptyCurrent) override;
264 
265  void setCylinderVisu(const std::string& layerName,
266  const std::string& cylinderName,
267  const ::armarx::Vector3BasePtr& globalPosition,
268  const ::armarx::Vector3BasePtr& direction,
269  float length,
270  float radius,
271  const DrawColor& color,
272  const ::Ice::Current& = Ice::emptyCurrent) override;
273  void setCylinderDebugLayerVisu(const std::string& cylinderName,
274  const ::armarx::Vector3BasePtr& globalPosition,
275  const ::armarx::Vector3BasePtr& direction,
276  float length,
277  float radius,
278  const DrawColor& color,
279  const ::Ice::Current& = Ice::emptyCurrent) override;
280  void removeCylinderVisu(const std::string& layerName,
281  const std::string& cylinderName,
282  const ::Ice::Current& = Ice::emptyCurrent) override;
283  void removeCylinderDebugLayerVisu(const std::string& cylinderName,
284  const ::Ice::Current& = Ice::emptyCurrent) override;
285 
286  void setPointCloudVisu(const std::string& layerName,
287  const std::string& pointCloudName,
288  const DebugDrawerPointCloud& pointCloud,
289  const ::Ice::Current& = Ice::emptyCurrent) override;
290  void setPointCloudDebugLayerVisu(const std::string& pointCloudName,
291  const DebugDrawerPointCloud& pointCloud,
292  const ::Ice::Current& = Ice::emptyCurrent) override;
293  void removePointCloudVisu(const std::string& layerName,
294  const std::string& pointCloudName,
295  const ::Ice::Current& = Ice::emptyCurrent) override;
296  void removePointCloudDebugLayerVisu(const std::string& pointCloudName,
297  const ::Ice::Current& = Ice::emptyCurrent) override;
298 
299  virtual void
300  setColoredPointCloudDebugLayerVisu(const std::string& pointCloudName,
301  const DebugDrawerColoredPointCloud& pointCloud,
302  const ::Ice::Current& = Ice::emptyCurrent);
303  void setColoredPointCloudVisu(const std::string& layerName,
304  const std::string& pointCloudName,
305  const DebugDrawerColoredPointCloud& pointCloud,
306  const ::Ice::Current& = Ice::emptyCurrent) override;
307  void removeColoredPointCloudVisu(const std::string& layerName,
308  const std::string& pointCloudName,
309  const ::Ice::Current& = Ice::emptyCurrent) override;
310  void
311  removeColoredPointCloudDebugLayerVisu(const std::string& pointCloudName,
312  const ::Ice::Current& = Ice::emptyCurrent) override;
313 
314  void
315  set24BitColoredPointCloudDebugLayerVisu(const std::string& pointCloudName,
316  const DebugDrawer24BitColoredPointCloud& pointCloud,
317  const ::Ice::Current& = Ice::emptyCurrent) override;
318  void set24BitColoredPointCloudVisu(const std::string& layerName,
319  const std::string& pointCloudName,
320  const DebugDrawer24BitColoredPointCloud& pointCloud,
321  const ::Ice::Current& = Ice::emptyCurrent) override;
322  void remove24BitColoredPointCloudVisu(const std::string& layerName,
323  const std::string& pointCloudName,
324  const ::Ice::Current& = Ice::emptyCurrent) override;
326  const std::string& pointCloudName,
327  const ::Ice::Current& = Ice::emptyCurrent) override;
328 
329 
330  void setPolygonVisu(const std::string& layerName,
331  const std::string& polygonName,
332  const std::vector<::armarx::Vector3BasePtr>& polygonPoints,
333  const DrawColor& colorInner,
334  const DrawColor& colorBorder,
335  float lineWidth,
336  const ::Ice::Current& = Ice::emptyCurrent) override;
337  void setPolygonDebugLayerVisu(const std::string& polygonName,
338  const std::vector<::armarx::Vector3BasePtr>& polygonPoints,
339  const DrawColor& colorInner,
340  const DrawColor& colorBorder,
341  float lineWidth,
342  const ::Ice::Current& = Ice::emptyCurrent) override;
343  void removePolygonVisu(const std::string& layerName,
344  const std::string& polygonName,
345  const ::Ice::Current& = Ice::emptyCurrent) override;
346  void removePolygonDebugLayerVisu(const std::string& polygonName,
347  const ::Ice::Current& = Ice::emptyCurrent) override;
348 
349  void setTriMeshVisu(const std::string& layerName,
350  const std::string& triMeshName,
351  const DebugDrawerTriMesh& triMesh,
352  const ::Ice::Current& = Ice::emptyCurrent) override;
353  void setTriMeshDebugLayerVisu(const std::string& triMeshName,
354  const DebugDrawerTriMesh& triMesh,
355  const ::Ice::Current& = Ice::emptyCurrent) override;
356  void removeTriMeshVisu(const std::string& layerName,
357  const std::string& triMeshName,
358  const ::Ice::Current& = Ice::emptyCurrent) override;
359  void removeTriMeshDebugLayerVisu(const std::string& triMeshName,
360  const ::Ice::Current& = Ice::emptyCurrent) override;
361 
362  void setArrowVisu(const std::string& layerName,
363  const std::string& arrowName,
364  const ::armarx::Vector3BasePtr& position,
365  const ::armarx::Vector3BasePtr& direction,
366  const DrawColor& color,
367  float length,
368  float width,
369  const ::Ice::Current& = Ice::emptyCurrent) override;
370  void setArrowDebugLayerVisu(const std::string& arrowName,
371  const ::armarx::Vector3BasePtr& position,
372  const ::armarx::Vector3BasePtr& direction,
373  const DrawColor& color,
374  float length,
375  float width,
376  const ::Ice::Current& = Ice::emptyCurrent) override;
377  void removeArrowVisu(const std::string& layerName,
378  const std::string& arrowName,
379  const ::Ice::Current& = Ice::emptyCurrent) override;
380  void removeArrowDebugLayerVisu(const std::string& arrowName,
381  const ::Ice::Current& = Ice::emptyCurrent) override;
382 
383  void setCircleArrowVisu(const std::string& layerName,
384  const std::string& circleName,
385  const Vector3BasePtr& globalPosition,
386  const Vector3BasePtr& directionVec,
387  Ice::Float radius,
388  Ice::Float circleCompletion,
389  Ice::Float width,
390  const DrawColor& color,
391  const Ice::Current& = Ice::emptyCurrent) override;
392  void setCircleDebugLayerVisu(const std::string& circleName,
393  const Vector3BasePtr& globalPosition,
394  const Vector3BasePtr& directionVec,
395  Ice::Float radius,
396  Ice::Float circleCompletion,
397  Ice::Float width,
398  const DrawColor& color,
399  const Ice::Current& = Ice::emptyCurrent) override;
400  void removeCircleVisu(const std::string& layerName,
401  const std::string& circleName,
402  const Ice::Current& = Ice::emptyCurrent) override;
403  void removeCircleDebugLayerVisu(const std::string& circleName,
404  const Ice::Current& = Ice::emptyCurrent) override;
405 
406 
407  /*!
408  * \brief setRobotVisu Initializes a robot visualization
409  * \param layerName The layer
410  * \param robotName The identifier of the robot
411  * \param robotFile The filename of the robot. The robot must be locally present in a project.
412  * \param DrawStyle Either FullModel ior CollisionModel.
413  * \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.
414  */
415  void setRobotVisu(const std::string& layerName,
416  const std::string& robotName,
417  const std::string& robotFile,
418  const std::string& armarxProject,
419  DrawStyle drawStyle,
420  const ::Ice::Current& = Ice::emptyCurrent) override;
421  void updateRobotPose(const std::string& layerName,
422  const std::string& robotName,
423  const ::armarx::PoseBasePtr& globalPose,
424  const ::Ice::Current& = Ice::emptyCurrent) override;
425  void updateRobotConfig(const std::string& layerName,
426  const std::string& robotName,
427  const std::map<std::string, float>& configuration,
428  const ::Ice::Current& = Ice::emptyCurrent) override;
429  /*!
430  * \brief updateRobotColor Colorizes the robot visualization
431  * \param layerName The layer
432  * \param robotName The robot identifyer
433  * \param c The draw color, if all is set to 0, the colorization is disabled (i.e. the original vizaulization shows up)
434  */
435  void updateRobotColor(const std::string& layerName,
436  const std::string& robotName,
437  const armarx::DrawColor& c,
438  const ::Ice::Current& = Ice::emptyCurrent) override;
439  void updateRobotNodeColor(const std::string& layerName,
440  const std::string& robotName,
441  const std::string& robotNodeName,
442  const armarx::DrawColor& c,
443  const ::Ice::Current& = Ice::emptyCurrent) override;
444  void removeRobotVisu(const std::string& layerName,
445  const std::string& robotName,
446  const ::Ice::Current& = Ice::emptyCurrent) override;
447 
448  void clearAll(const ::Ice::Current& = Ice::emptyCurrent) override;
449  void clearLayer(const std::string& layerName,
450  const ::Ice::Current& = Ice::emptyCurrent) override;
451  void clearDebugLayer(const ::Ice::Current& = Ice::emptyCurrent) override;
452 
453  bool hasLayer(const std::string& layerName,
454  const ::Ice::Current& = Ice::emptyCurrent) override;
455  void removeLayer(const std::string& layerName,
456  const ::Ice::Current& = Ice::emptyCurrent) override;
457 
458  void enableLayerVisu(const std::string& layerName,
459  bool visible,
460  const ::Ice::Current& = Ice::emptyCurrent) override;
461  void enableDebugLayerVisu(bool visible, const ::Ice::Current& = Ice::emptyCurrent) override;
462 
463  ::Ice::StringSeq layerNames(const ::Ice::Current& = Ice::emptyCurrent) override;
464  ::armarx::LayerInformationSequence
465  layerInformation(const ::Ice::Current& = Ice::emptyCurrent) override;
466 
467  void disableAllLayers(const ::Ice::Current& = Ice::emptyCurrent) override;
468  void enableAllLayers(const ::Ice::Current& = Ice::emptyCurrent) override;
469 
470  // Methods for selection management
471  void enableSelections(const std::string& layerName,
472  const ::Ice::Current& = Ice::emptyCurrent) override;
473  void disableSelections(const std::string& layerName,
474  const ::Ice::Current& = Ice::emptyCurrent) override;
475  void clearSelections(const std::string& layerName,
476  const ::Ice::Current& = Ice::emptyCurrent) override;
477  void select(const std::string& layerName,
478  const std::string& elementName,
479  const ::Ice::Current& = Ice::emptyCurrent) override;
480  void deselect(const std::string& layerName,
481  const std::string& elementName,
482  const ::Ice::Current& = Ice::emptyCurrent) override;
483 
484  DebugDrawerSelectionList getSelections(const ::Ice::Current& = Ice::emptyCurrent) override;
485 
486  void selectionCallback();
487  void deselectionCallback();
490 
491  void reportSelectionChanged(const DebugDrawerSelectionList& selectedElements,
492  const ::Ice::Current& = Ice::emptyCurrent) override;
493 
494  // This is all total madness. Why do we put mutexes and locks into shared pointers?
495  using RecursiveMutex = std::recursive_mutex;
496  using RecursiveMutexPtr = std::shared_ptr<RecursiveMutex>;
497  using RecursiveMutexLock = std::unique_lock<RecursiveMutex>;
498  using RecursiveMutexLockPtr = std::shared_ptr<RecursiveMutexLock>;
499 
500  /*!
501  * \brief getScopedLock If using the coin visualization it must be ensured that all rendering calls are protected with this mutex
502  * \return The lock that is automatically destructed when leaving the current scope.
503  */
505 
506  /*!
507  * \brief getVisualization Ensure that all access to this node is protected with the scoped lock mutex.
508  * \return The visualization
509  */
510  SoSeparator* getVisualization();
511 
512  void setMutex(RecursiveMutexPtr const& m);
513 
514  ~DebugDrawerComponent() override;
515 
516  void
518  {
519  this->defaultLayerVisibility = defaultLayerVisibility;
520  }
521 
522  void
523  setDefaultLayerVisibility(const std::string& layerName, bool defaultLayerVisibility)
524  {
526  }
527 
528  void
529  removeDefaultLayerVisibility(const std::string& layerName)
530  {
531  defaultLayerVisibilityPerLayer.erase(layerName);
532  }
533 
534  bool
536  {
537  return defaultLayerVisibility;
538  }
539 
540  bool
541  getDefaultLayerVisibility(const std::string& layerName) const
542  {
543  auto elem = defaultLayerVisibilityPerLayer.find(layerName);
544  if (elem != defaultLayerVisibilityPerLayer.end())
545  {
546  return elem->second;
547  }
548  return defaultLayerVisibility;
549  }
550 
551  std::map<std::string, bool>
553  {
555  }
556 
557  protected:
558  static void updateVisualizationCB(void* data, SoSensor* sensor);
559 
560  // It turned out, that heavy data traffic (resulting in heavy mutex locking) somehow interferes with coin rendering: the
561  // 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
562  // while the rest of the qt widget works well.
563  // 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)
564 
565  struct DrawData
566  {
568  {
569  active = false;
570  update = false;
571  }
572 
573  std::string layerName;
574  std::string name;
575  bool active;
576  /**
577  * @brief Whether an existing visu should be updated
578  */
579  bool update;
580  };
581 
582  struct CoordData : public DrawData
583  {
585  float scale;
586  };
587 
588  struct LineData : public DrawData
589  {
590  Eigen::Vector3f p1;
591  Eigen::Vector3f p2;
592  float scale;
594  };
595 
596  struct LineSetData : public DrawData
597  {
598  DebugDrawerLineSet lineSet;
599  };
600 
601  struct BoxData : public DrawData
602  {
604  float width;
605  float height;
606  float depth;
608  };
609 
610  struct TextData : public DrawData
611  {
612  std::string text;
613  Eigen::Vector3f position;
615  int size;
616  };
617 
618  struct SphereData : public DrawData
619  {
620  Eigen::Vector3f position;
622  float radius;
623  };
624 
625  struct CylinderData : public DrawData
626  {
627  Eigen::Vector3f position;
628  Eigen::Vector3f direction;
629  float length;
630  float radius;
632  };
633 
634  struct CircleData : public DrawData
635  {
636  Eigen::Vector3f position;
637  Eigen::Vector3f direction;
638  float radius;
639  float width;
642  };
643 
644  struct PointCloudData : public DrawData
645  {
646  DebugDrawerPointCloud pointCloud;
647  };
648 
650  {
651  DebugDrawerColoredPointCloud pointCloud;
652  };
653 
655  {
656  DebugDrawer24BitColoredPointCloud pointCloud;
657  };
658 
659  struct PolygonData : public DrawData
660  {
661  std::vector<Eigen::Vector3f> points;
662  float lineWidth;
665  };
666 
667  struct TriMeshData : public DrawData
668  {
669  DebugDrawerTriMesh triMesh;
670  };
671 
672  struct ArrowData : public DrawData
673  {
674  Eigen::Vector3f position;
675  Eigen::Vector3f direction;
676  float length;
677  float width;
679  };
680 
681  struct RobotData : public DrawData
682  {
684  {
685  updateColor = false;
686  updatePose = false;
687  updateConfig = false;
688  }
689 
690  std::string robotFile;
691  std::string armarxProject;
692 
695 
697  std::map<std::string, VirtualRobot::VisualizationFactory::Color> nodeColors;
698 
701 
703  std::map<std::string, float> configuration;
704 
705  armarx::DrawStyle drawStyle;
706  };
707 
708  struct UpdateData
709  {
710  std::map<std::string, CoordData> coord;
711  std::map<std::string, LineData> line;
712  std::map<std::string, LineSetData> lineSet;
713  std::map<std::string, BoxData> box;
714  std::map<std::string, TextData> text;
715  std::map<std::string, SphereData> sphere;
716  std::map<std::string, CircleData> circle;
717  std::map<std::string, CylinderData> cylinder;
718  std::map<std::string, PointCloudData> pointcloud;
719  std::map<std::string, ColoredPointCloudData> coloredpointcloud;
720  std::map<std::string, Colored24BitPointCloudData> colored24Bitpointcloud;
721  std::map<std::string, PolygonData> polygons;
722  std::map<std::string, TriMeshData> triMeshes;
723  std::map<std::string, ArrowData> arrows;
724  std::map<std::string, RobotData> robots;
725 
726  std::set<std::string> clearLayers;
727  std::set<std::string> removeLayers;
728  };
729 
731 
732  // Reads accumulatedUpdateData, writes all data to coin visualization and clears accumulatedUpdateData
733  void updateVisualization();
734 
735  /*!
736  * \brief onUpdateVisualization derived methods can overwrite this method to update custom visualizations.
737  */
738  virtual void
740  {
741  }
742 
743  virtual void
744  onRemoveAccumulatedData(const std::string& layerName)
745  {
746  }
747 
748  virtual void
749  removeCustomVisu(const std::string& layerName, const std::string& name)
750  {
751  }
752 
753  void drawCoordSystem(const CoordData& d);
754  void drawLine(const LineData& d);
755  void drawLineSet(const LineSetData& d);
756  void drawBox(const BoxData& d);
757  void drawText(const TextData& d);
758  void drawSphere(const SphereData& d);
759  void drawCylinder(const CylinderData& d);
761  void drawPointCloud(const PointCloudData& d);
762  void drawColoredPointCloud(const ColoredPointCloudData& d);
763  void draw24BitColoredPointCloud(const Colored24BitPointCloudData& d);
764  void drawPolygon(const PolygonData& d);
765  void drawTriMesh(const TriMeshData& d);
766  void drawArrow(const ArrowData& d);
767  void drawRobot(const RobotData& d);
768 
769  void removeCoordSystem(const std::string& layerName, const std::string& name);
770  void removeLine(const std::string& layerName, const std::string& name);
771  void removeLineSet(const std::string& layerName, const std::string& name);
772  void removeBox(const std::string& layerName, const std::string& name);
773  void removeText(const std::string& layerName, const std::string& name);
774  void removeSphere(const std::string& layerName, const std::string& name);
775  void removeCylinder(const std::string& layerName, const std::string& name);
776  void removeCircle(const std::string& layerName, const std::string& name);
777  void removePointCloud(const std::string& layerName, const std::string& name);
778  void removeColoredPointCloud(const std::string& layerName, const std::string& name);
779  void remove24BitColoredPointCloud(const std::string& layerName, const std::string& name);
780  void removePolygon(const std::string& layerName, const std::string& name);
781  void removeTriMesh(const std::string& layerName, const std::string& name);
782  void removeArrow(const std::string& layerName, const std::string& name);
783  void removeRobot(const std::string& layerName, const std::string& name);
784 
785 
786  /*!
787  * QT safe version, should not be called from an ICE thread
788  */
789  void clearLayerQt(const std::string& layerName);
790  void removeLayerQt(const std::string& layerName);
791 
792  void setLayerVisibility(const std::string& layerName, bool visible);
793 
794  /*!
795  * \brief Contains data for a layer.
796  */
797  struct Layer
798  {
799  SoSeparator* mainNode;
800  std::map<std::string, SoSeparator*> addedCoordVisualizations;
801  std::map<std::string, SoSeparator*> addedLineVisualizations;
802  std::map<std::string, SoSeparator*> addedLineSetVisualizations;
803  std::map<std::string, SoSeparator*> addedBoxVisualizations;
804  std::map<std::string, SoSeparator*> addedTextVisualizations;
805  std::map<std::string, SoSeparator*> addedSphereVisualizations;
806  std::map<std::string, SoSeparator*> addedCylinderVisualizations;
807  std::map<std::string, SoSeparator*> addedCircleVisualizations;
808  std::map<std::string, SoSeparator*> addedPointCloudVisualizations;
809  std::map<std::string, SoSeparator*> addedColoredPointCloudVisualizations;
810  std::map<std::string, SoSeparator*> added24BitColoredPointCloudVisualizations;
811  std::map<std::string, SoSeparator*> addedPolygonVisualizations;
812  std::map<std::string, SoSeparator*> addedTriMeshVisualizations;
813  std::map<std::string, SoSeparator*> addedArrowVisualizations;
814  std::map<std::string, SoSeparator*> addedRobotVisualizations;
815  std::map<std::string, SoSeparator*>
816  addedCustomVisualizations; // these separators are only used by derived classes and have to start with a material node
817 
818  bool visible;
819  };
820 
821  /*!
822  * \brief If a layer with layerName exists it is returned. Otherwise a new layer with given name is created and returned.
823  * \param layerName The layer.
824  * \return The requested layer.
825  */
826  Layer& requestLayer(const std::string& layerName);
828 
829  /*!
830  * \brief ensureExistingRobotNodes Checks if all robotnodes of configuration exist in robot. If not the specific configuration entry is removed from the list.
831  * \param d
832  */
834 
835  std::map<std::string, VirtualRobot::RobotPtr> activeRobots;
836  SoSeparator* coinVisu;
837  SoSelection* selectionNode;
838 
839  bool verbose;
840 
841  /*!
842  * \brief Main node for all layers
843  */
844  SoSeparator* layerMainNode;
845 
846  /*!
847  * \brief All existing layers.
848  */
849  std::map<const std::string, Layer> layers;
850 
851  //! The coin mutex
853 
854  //! The data update mutex
856 
858 
859  static std::recursive_mutex selectionMutex;
860  std::set<std::string> selectableLayers;
861 
863 
864  DebugDrawerListenerPrx listenerPrx;
865 
866  float cycleTimeMS;
867  //PeriodicTask<DebugDrawerComponent>::pointer_type execTaskVisuUpdates;
868  SoTimerSensor* timerSensor;
869  std::mutex timerSensorMutex;
870  void removeAccumulatedData(const std::string& layerName);
871 
872  std::map<std::string, VirtualRobot::RobotPtr> loadedRobots;
873 
875  std::map<std::string, bool> defaultLayerVisibilityPerLayer;
876  };
877 
879 
880 } // namespace armarx
armarx::DebugDrawerComponent::remove24BitColoredPointCloudVisu
void remove24BitColoredPointCloudVisu(const std::string &layerName, const std::string &pointCloudName, const ::Ice::Current &=Ice::emptyCurrent) override
Definition: DebugDrawerComponent.cpp:3280
armarx::DebugDrawerComponent::LineData::scale
float scale
Definition: DebugDrawerComponent.h:592
armarx::DebugDrawerComponent::Layer
Contains data for a layer.
Definition: DebugDrawerComponent.h:797
armarx::DebugDrawerComponent::removeSelectionCallbacks
void removeSelectionCallbacks()
Definition: DebugDrawerComponent.cpp:263
armarx::DebugDrawerComponent::removeArrowDebugLayerVisu
void removeArrowDebugLayerVisu(const std::string &arrowName, const ::Ice::Current &=Ice::emptyCurrent) override
Definition: DebugDrawerComponent.cpp:2419
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:2363
armarx::DebugDrawerComponent::drawPointCloud
void drawPointCloud(const PointCloudData &d)
Definition: DebugDrawerComponent.cpp:934
armarx::DebugDrawerComponent::CircleData::circleCompletion
float circleCompletion
Definition: DebugDrawerComponent.h:640
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:3116
armarx::DebugDrawerComponent::remove24BitColoredPointCloud
void remove24BitColoredPointCloud(const std::string &layerName, const std::string &name)
Definition: DebugDrawerComponent.cpp:3229
armarx::DebugDrawerComponent::ColoredPointCloudData
Definition: DebugDrawerComponent.h:649
armarx::DebugDrawerComponent::Layer::added24BitColoredPointCloudVisualizations
std::map< std::string, SoSeparator * > added24BitColoredPointCloudVisualizations
Definition: DebugDrawerComponent.h:810
armarx::DebugDrawerComponent::drawPolygon
void drawPolygon(const PolygonData &d)
Definition: DebugDrawerComponent.cpp:983
armarx::DebugDrawerComponent::layerInformation
::armarx::LayerInformationSequence layerInformation(const ::Ice::Current &=Ice::emptyCurrent) override
Definition: DebugDrawerComponent.cpp:3003
armarx::DebugDrawerComponent::removeArrowVisu
void removeArrowVisu(const std::string &layerName, const std::string &arrowName, const ::Ice::Current &=Ice::emptyCurrent) override
Definition: DebugDrawerComponent.cpp:2403
armarx::DebugDrawerComponent::UpdateData::removeLayers
std::set< std::string > removeLayers
Definition: DebugDrawerComponent.h:727
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:2314
armarx::DebugDrawerComponent::selectionMutex
static std::recursive_mutex selectionMutex
Definition: DebugDrawerComponent.h:859
armarx::DebugDrawerComponent::drawRobot
void drawRobot(const RobotData &d)
Definition: DebugDrawerComponent.cpp:1130
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:2154
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:2093
armarx::DebugDrawerComponent::setDefaultLayerVisibility
void setDefaultLayerVisibility(const std::string &layerName, bool defaultLayerVisibility)
Definition: DebugDrawerComponent.h:523
armarx::DebugDrawerComponent::RobotData::updatePose
bool updatePose
Definition: DebugDrawerComponent.h:699
armarx::VariantType::Float
const VariantTypeId Float
Definition: Variant.h:919
armarx::DebugDrawerComponent
The DebugDrawerComponent class.
Definition: DebugDrawerComponent.h:113
armarx::DebugDrawerComponent::getDefaultName
std::string getDefaultName() const override
Retrieve default name of component.
Definition: DebugDrawerComponent.h:131
armarx::DebugDrawerComponent::PolygonData::colorBorder
VirtualRobot::VisualizationFactory::Color colorBorder
Definition: DebugDrawerComponent.h:664
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:2497
armarx::DebugDrawerComponent::Layer::addedPolygonVisualizations
std::map< std::string, SoSeparator * > addedPolygonVisualizations
Definition: DebugDrawerComponent.h:811
armarx::DebugDrawerComponent::BoxData::color
VirtualRobot::VisualizationFactory::Color color
Definition: DebugDrawerComponent.h:607
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:2426
armarx::DebugDrawerComponent::onInitComponent
void onInitComponent() override
Pure virtual hook for the subclass.
Definition: DebugDrawerComponent.cpp:382
armarx::DebugDrawerComponent::removeAccumulatedData
void removeAccumulatedData(const std::string &layerName)
Definition: DebugDrawerComponent.cpp:2952
armarx::DebugDrawerComponent::Colored24BitPointCloudData::pointCloud
DebugDrawer24BitColoredPointCloud pointCloud
Definition: DebugDrawerComponent.h:656
armarx::DebugDrawerComponent::TextData::position
Eigen::Vector3f position
Definition: DebugDrawerComponent.h:613
armarx::DebugDrawerComponent::UpdateData::circle
std::map< std::string, CircleData > circle
Definition: DebugDrawerComponent.h:716
armarx::DebugDrawerComponent::removeCircleDebugLayerVisu
void removeCircleDebugLayerVisu(const std::string &circleName, const Ice::Current &=Ice::emptyCurrent) override
Definition: DebugDrawerComponent.cpp:3367
armarx::DebugDrawerComponent::Layer::addedCircleVisualizations
std::map< std::string, SoSeparator * > addedCircleVisualizations
Definition: DebugDrawerComponent.h:807
armarx::DebugDrawerComponent::RobotData::drawStyle
armarx::DrawStyle drawStyle
Definition: DebugDrawerComponent.h:705
armarx::DebugDrawerComponent::CylinderData::radius
float radius
Definition: DebugDrawerComponent.h:630
armarx::DebugDrawerComponent::getDefaultLayerVisibility
bool getDefaultLayerVisibility(const std::string &layerName) const
Definition: DebugDrawerComponent.h:541
armarx::DebugDrawerComponent::RobotData::configuration
std::map< std::string, float > configuration
Definition: DebugDrawerComponent.h:703
armarx::DebugDrawerComponent::createPropertyDefinitions
PropertyDefinitionsPtr createPropertyDefinitions() override
Definition: DebugDrawerComponent.h:145
armarx::DebugDrawerComponent::removePoseDebugLayerVisu
void removePoseDebugLayerVisu(const std::string &poseName, const ::Ice::Current &=Ice::emptyCurrent) override
Definition: DebugDrawerComponent.cpp:1836
armarx::DebugDrawerComponent::ArrowData::width
float width
Definition: DebugDrawerComponent.h:677
armarx::DebugDrawerComponent::accumulatedUpdateData
UpdateData accumulatedUpdateData
Definition: DebugDrawerComponent.h:730
armarx::DebugDrawerComponent::onRemoveAccumulatedData
virtual void onRemoveAccumulatedData(const std::string &layerName)
Definition: DebugDrawerComponent.h:744
armarx::DebugDrawerComponent::TextData::color
VirtualRobot::VisualizationFactory::Color color
Definition: DebugDrawerComponent.h:614
armarx::DebugDrawerComponent::getScopedVisuLock
RecursiveMutexLockPtr getScopedVisuLock()
getScopedLock If using the coin visualization it must be ensured that all rendering calls are protect...
Definition: DebugDrawerComponent.cpp:2715
armarx::DebugDrawerComponent::reportSelectionChanged
void reportSelectionChanged(const DebugDrawerSelectionList &selectedElements, const ::Ice::Current &=Ice::emptyCurrent) override
Definition: DebugDrawerComponent.cpp:271
armarx::DebugDrawerComponent::defaultLayerVisibilityPerLayer
std::map< std::string, bool > defaultLayerVisibilityPerLayer
Definition: DebugDrawerComponent.h:875
GfxTL::Matrix4f
MatrixXX< 4, 4, float > Matrix4f
Definition: MatrixXX.h:650
armarx::DebugDrawerComponent::set24BitColoredPointCloudDebugLayerVisu
void set24BitColoredPointCloudDebugLayerVisu(const std::string &pointCloudName, const DebugDrawer24BitColoredPointCloud &pointCloud, const ::Ice::Current &=Ice::emptyCurrent) override
Definition: DebugDrawerComponent.cpp:3271
armarx::DebugDrawerComponent::removeSphereVisu
void removeSphereVisu(const std::string &layerName, const std::string &sphereName, const ::Ice::Current &=Ice::emptyCurrent) override
Definition: DebugDrawerComponent.cpp:2103
armarx::DebugDrawerComponent::UpdateData::pointcloud
std::map< std::string, PointCloudData > pointcloud
Definition: DebugDrawerComponent.h:718
armarx::DebugDrawerComponent::Layer::addedColoredPointCloudVisualizations
std::map< std::string, SoSeparator * > addedColoredPointCloudVisualizations
Definition: DebugDrawerComponent.h:809
Pose.h
armarx::DebugDrawerComponent::Layer::addedLineVisualizations
std::map< std::string, SoSeparator * > addedLineVisualizations
Definition: DebugDrawerComponent.h:801
armarx::DebugDrawerComponent::selectableLayers
std::set< std::string > selectableLayers
Definition: DebugDrawerComponent.h:860
armarx::DebugDrawerComponent::removePointCloudDebugLayerVisu
void removePointCloudDebugLayerVisu(const std::string &pointCloudName, const ::Ice::Current &=Ice::emptyCurrent) override
Definition: DebugDrawerComponent.cpp:2233
armarx::DebugDrawerComponent::verbose
bool verbose
Definition: DebugDrawerComponent.h:839
armarx::DebugDrawerComponent::updateVisualization
void updateVisualization()
Definition: DebugDrawerComponent.cpp:2770
armarx::DebugDrawerComponent::Layer::addedCoordVisualizations
std::map< std::string, SoSeparator * > addedCoordVisualizations
Definition: DebugDrawerComponent.h:800
armarx::DebugDrawerComponent::CylinderData
Definition: DebugDrawerComponent.h:625
armarx::DebugDrawerComponent::deselect
void deselect(const std::string &layerName, const std::string &elementName, const ::Ice::Current &=Ice::emptyCurrent) override
Definition: DebugDrawerComponent.cpp:212
armarx::DebugDrawerComponent::Layer::mainNode
SoSeparator * mainNode
Definition: DebugDrawerComponent.h:799
armarx::DebugDrawerComponent::enableDebugLayerVisu
void enableDebugLayerVisu(bool visible, const ::Ice::Current &=Ice::emptyCurrent) override
Definition: DebugDrawerComponent.cpp:2983
armarx::DebugDrawerComponent::DrawData::update
bool update
Whether an existing visu should be updated.
Definition: DebugDrawerComponent.h:579
armarx::DebugDrawerComponent::clearLayerQt
void clearLayerQt(const std::string &layerName)
Definition: DebugDrawerComponent.cpp:2594
armarx::DebugDrawerComponent::BoxData::globalPose
Eigen::Matrix4f globalPose
Definition: DebugDrawerComponent.h:603
armarx::DebugDrawerComponent::ArrowData
Definition: DebugDrawerComponent.h:672
armarx::PropertyDefinitionContainer::prefix
std::string prefix
Prefix of the properties such as namespace, domain, component name, etc.
Definition: PropertyDefinitionContainer.h:345
armarx::DebugDrawerComponent::UpdateData::sphere
std::map< std::string, SphereData > sphere
Definition: DebugDrawerComponent.h:715
armarx::DebugDrawerPropertyDefinitions::DebugDrawerPropertyDefinitions
DebugDrawerPropertyDefinitions(std::string prefix)
Definition: DebugDrawerComponent.h:61
armarx::DebugDrawerComponent::enableLayerVisu
void enableLayerVisu(const std::string &layerName, bool visible, const ::Ice::Current &=Ice::emptyCurrent) override
Definition: DebugDrawerComponent.cpp:2975
armarx::DebugDrawerComponent::setTriMeshDebugLayerVisu
void setTriMeshDebugLayerVisu(const std::string &triMeshName, const DebugDrawerTriMesh &triMesh, const ::Ice::Current &=Ice::emptyCurrent) override
Definition: DebugDrawerComponent.cpp:2332
armarx::DebugDrawerComponent::UpdateData::colored24Bitpointcloud
std::map< std::string, Colored24BitPointCloudData > colored24Bitpointcloud
Definition: DebugDrawerComponent.h:720
armarx::DebugDrawerComponent::UpdateData::triMeshes
std::map< std::string, TriMeshData > triMeshes
Definition: DebugDrawerComponent.h:722
PeriodicTask.h
armarx::DebugDrawerComponent::removePointCloudVisu
void removePointCloudVisu(const std::string &layerName, const std::string &pointCloudName, const ::Ice::Current &=Ice::emptyCurrent) override
Definition: DebugDrawerComponent.cpp:2217
armarx::DebugDrawerComponent::LineData::color
VirtualRobot::VisualizationFactory::Color color
Definition: DebugDrawerComponent.h:593
armarx::DebugDrawerComponent::timerSensor
SoTimerSensor * timerSensor
Definition: DebugDrawerComponent.h:868
armarx::DebugDrawerComponent::drawCircle
void drawCircle(const DebugDrawerComponent::CircleData &d)
Definition: DebugDrawerComponent.cpp:889
c
constexpr T c
Definition: UnscentedKalmanFilterTest.cpp:46
armarx::DebugDrawerComponent::hasLayer
bool hasLayer(const std::string &layerName, const ::Ice::Current &=Ice::emptyCurrent) override
Definition: DebugDrawerComponent.cpp:2888
armarx::DebugDrawerComponent::drawTriMesh
void drawTriMesh(const TriMeshData &d)
Definition: DebugDrawerComponent.cpp:1012
armarx::DebugDrawerComponent::removeLineSet
void removeLineSet(const std::string &layerName, const std::string &name)
Definition: DebugDrawerComponent.cpp:1426
armarx::DebugDrawerComponent::SphereData::position
Eigen::Vector3f position
Definition: DebugDrawerComponent.h:620
armarx::DebugDrawerComponent::setLineSetDebugLayerVisu
void setLineSetDebugLayerVisu(const std::string &lineSetName, const DebugDrawerLineSet &lineSet, const ::Ice::Current &=Ice::emptyCurrent) override
Definition: DebugDrawerComponent.cpp:1921
armarx::DebugDrawerComponent::Layer::addedArrowVisualizations
std::map< std::string, SoSeparator * > addedArrowVisualizations
Definition: DebugDrawerComponent.h:813
armarx::DebugDrawerComponent::clearAll
void clearAll(const ::Ice::Current &=Ice::emptyCurrent) override
Definition: DebugDrawerComponent.cpp:2574
armarx::DebugDrawerComponent::removeLineSetVisu
void removeLineSetVisu(const std::string &layerName, const std::string &lineSetName, const ::Ice::Current &=Ice::emptyCurrent) override
Definition: DebugDrawerComponent.cpp:1929
armarx::DebugDrawerComponent::ensureExistingRobotNodes
void ensureExistingRobotNodes(DebugDrawerComponent::RobotData &d)
ensureExistingRobotNodes Checks if all robotnodes of configuration exist in robot....
Definition: DebugDrawerComponent.cpp:1094
armarx::DebugDrawerComponent::RobotData::updateNodeColor
bool updateNodeColor
Definition: DebugDrawerComponent.h:696
armarx::DebugDrawerComponent::RobotData::RobotData
RobotData()
Definition: DebugDrawerComponent.h:683
armarx::DebugDrawerComponent::getSelections
DebugDrawerSelectionList getSelections(const ::Ice::Current &=Ice::emptyCurrent) override
Definition: DebugDrawerComponent.cpp:296
armarx::DebugDrawerComponent::removeRobotVisu
void removeRobotVisu(const std::string &layerName, const std::string &robotName, const ::Ice::Current &=Ice::emptyCurrent) override
Definition: DebugDrawerComponent.cpp:2558
armarx::DebugDrawerComponent::PolygonData::colorInner
VirtualRobot::VisualizationFactory::Color colorInner
Definition: DebugDrawerComponent.h:663
armarx::DebugDrawerComponent::exportLayer
void exportLayer(const std::string &filename, const std::string &layerName, const ::Ice::Current &=Ice::emptyCurrent) override
Definition: DebugDrawerComponent.cpp:508
RunningTask.h
armarx::DebugDrawerComponent::mutex
RecursiveMutexPtr mutex
The coin mutex.
Definition: DebugDrawerComponent.h:852
armarx::DebugDrawerComponent::DrawData::name
std::string name
Definition: DebugDrawerComponent.h:574
armarx::DebugDrawerComponent::topicMutex
RecursiveMutexPtr topicMutex
Definition: DebugDrawerComponent.h:857
armarx::DebugDrawerComponent::removeBoxDebugLayerVisu
void removeBoxDebugLayerVisu(const std::string &boxName, const ::Ice::Current &=Ice::emptyCurrent) override
Definition: DebugDrawerComponent.cpp:2004
armarx::DebugDrawerComponent::updateVisualizationCB
static void updateVisualizationCB(void *data, SoSensor *sensor)
Definition: DebugDrawerComponent.cpp:411
armarx::DebugDrawerComponent::removeColoredPointCloudVisu
void removeColoredPointCloudVisu(const std::string &layerName, const std::string &pointCloudName, const ::Ice::Current &=Ice::emptyCurrent) override
Definition: DebugDrawerComponent.cpp:3143
armarx::DebugDrawerComponent::removeCoordSystem
void removeCoordSystem(const std::string &layerName, const std::string &name)
Definition: DebugDrawerComponent.cpp:1700
armarx::DebugDrawerComponent::Layer::visible
bool visible
Definition: DebugDrawerComponent.h:818
armarx::DebugDrawerComponent::Layer::addedTextVisualizations
std::map< std::string, SoSeparator * > addedTextVisualizations
Definition: DebugDrawerComponent.h:804
armarx::DebugDrawerComponent::getDefaultLayerVisibility
bool getDefaultLayerVisibility() const
Definition: DebugDrawerComponent.h:535
armarx::DebugDrawerComponent::coinVisu
SoSeparator * coinVisu
Definition: DebugDrawerComponent.h:836
armarx::DebugDrawerComponent::requestRobot
VirtualRobot::RobotPtr requestRobot(const RobotData &d)
Definition: DebugDrawerComponent.cpp:1289
armarx::DebugDrawerComponent::removeRobot
void removeRobot(const std::string &layerName, const std::string &name)
Definition: DebugDrawerComponent.cpp:1637
armarx::DebugDrawerComponent::removeColoredPointCloudDebugLayerVisu
void removeColoredPointCloudDebugLayerVisu(const std::string &pointCloudName, const ::Ice::Current &=Ice::emptyCurrent) override
Definition: DebugDrawerComponent.cpp:3159
armarx::DebugDrawerComponent::removeSphere
void removeSphere(const std::string &layerName, const std::string &name)
Definition: DebugDrawerComponent.cpp:1489
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:1978
armarx::DebugDrawerComponent::removePolygonDebugLayerVisu
void removePolygonDebugLayerVisu(const std::string &polygonName, const ::Ice::Current &=Ice::emptyCurrent) override
Definition: DebugDrawerComponent.cpp:2307
armarx::DebugDrawerComponent::UpdateData::clearLayers
std::set< std::string > clearLayers
Definition: DebugDrawerComponent.h:726
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:2449
IceInternal::Handle< DebugDrawerComponent >
armarx::DebugDrawerComponent::PointCloudData
Definition: DebugDrawerComponent.h:644
armarx::DebugDrawerComponent::removeSphereDebugLayerVisu
void removeSphereDebugLayerVisu(const std::string &sphereName, const ::Ice::Current &=Ice::emptyCurrent) override
Definition: DebugDrawerComponent.cpp:2119
armarx::DebugDrawerComponent::RecursiveMutexLock
std::unique_lock< RecursiveMutex > RecursiveMutexLock
Definition: DebugDrawerComponent.h:497
armarx::DebugDrawerComponent::clearDebugLayer
void clearDebugLayer(const ::Ice::Current &=Ice::emptyCurrent) override
Definition: DebugDrawerComponent.cpp:2703
armarx::DebugDrawerComponent::UpdateData::box
std::map< std::string, BoxData > box
Definition: DebugDrawerComponent.h:713
armarx::DebugDrawerComponent::RobotData::color
VirtualRobot::VisualizationFactory::Color color
Definition: DebugDrawerComponent.h:694
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:1842
armarx::DebugDrawerComponent::removePoseVisu
void removePoseVisu(const std::string &layerName, const std::string &poseName, const ::Ice::Current &=Ice::emptyCurrent) override
Definition: DebugDrawerComponent.cpp:1820
armarx::DebugDrawerComponent::drawCylinder
void drawCylinder(const CylinderData &d)
Definition: DebugDrawerComponent.cpp:828
armarx::DebugDrawerComponent::UpdateData::robots
std::map< std::string, RobotData > robots
Definition: DebugDrawerComponent.h:724
armarx::DebugDrawerComponent::setDefaultLayerVisibility
void setDefaultLayerVisibility(bool defaultLayerVisibility)
Definition: DebugDrawerComponent.h:517
armarx::DebugDrawerComponent::RobotData::updateColor
bool updateColor
Definition: DebugDrawerComponent.h:693
armarx::DebugDrawerComponent::RobotData
Definition: DebugDrawerComponent.h:681
armarx::DebugDrawerComponent::removeLineVisu
void removeLineVisu(const std::string &layerName, const std::string &lineName, const ::Ice::Current &=Ice::emptyCurrent) override
Definition: DebugDrawerComponent.cpp:1880
armarx::DebugDrawerComponent::Layer::addedCylinderVisualizations
std::map< std::string, SoSeparator * > addedCylinderVisualizations
Definition: DebugDrawerComponent.h:806
armarx::DebugDrawerComponent::removeCylinderVisu
void removeCylinderVisu(const std::string &layerName, const std::string &cylinderName, const ::Ice::Current &=Ice::emptyCurrent) override
Definition: DebugDrawerComponent.cpp:2167
armarx::DebugDrawerComponent::CoordData
Definition: DebugDrawerComponent.h:582
armarx::DebugDrawerComponent::getVisualization
SoSeparator * getVisualization()
getVisualization Ensure that all access to this node is protected with the scoped lock mutex.
Definition: DebugDrawerComponent.cpp:2740
armarx::DebugDrawerComponent::deselectionCallback
void deselectionCallback()
Definition: DebugDrawerComponent.cpp:248
Color
uint32_t Color
RGBA color.
Definition: color.h:8
armarx::DebugDrawerComponent::Layer::addedCustomVisualizations
std::map< std::string, SoSeparator * > addedCustomVisualizations
Definition: DebugDrawerComponent.h:816
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:2069
armarx::DebugDrawerComponent::removeTextVisu
void removeTextVisu(const std::string &layerName, const std::string &textName, const ::Ice::Current &=Ice::emptyCurrent) override
Definition: DebugDrawerComponent.cpp:2047
armarx::DebugDrawerComponent::loadedRobots
std::map< std::string, VirtualRobot::RobotPtr > loadedRobots
Definition: DebugDrawerComponent.h:872
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:1772
armarx::DebugDrawerComponent::LineData::p1
Eigen::Vector3f p1
Definition: DebugDrawerComponent.h:590
armarx::DebugDrawerComponent::SphereData
Definition: DebugDrawerComponent.h:618
armarx::DebugDrawerComponent::drawArrow
void drawArrow(const ArrowData &d)
Definition: DebugDrawerComponent.cpp:1067
armarx::DebugDrawerComponent::CircleData::radius
float radius
Definition: DebugDrawerComponent.h:638
armarx::DebugDrawerComponent::CylinderData::color
VirtualRobot::VisualizationFactory::Color color
Definition: DebugDrawerComponent.h:631
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:2471
armarx::DebugDrawerComponent::Layer::addedBoxVisualizations
std::map< std::string, SoSeparator * > addedBoxVisualizations
Definition: DebugDrawerComponent.h:803
armarx::DebugDrawerComponent::SphereData::color
VirtualRobot::VisualizationFactory::Color color
Definition: DebugDrawerComponent.h:621
armarx::DebugDrawerComponent::BoxData::height
float height
Definition: DebugDrawerComponent.h:605
armarx::DebugDrawerComponent::onUpdateVisualization
virtual void onUpdateVisualization()
onUpdateVisualization derived methods can overwrite this method to update custom visualizations.
Definition: DebugDrawerComponent.h:739
armarx::DebugDrawerComponent::removeTriMeshVisu
void removeTriMeshVisu(const std::string &layerName, const std::string &triMeshName, const ::Ice::Current &=Ice::emptyCurrent) override
Definition: DebugDrawerComponent.cpp:2340
armarx::DebugDrawerComponent::DrawData::active
bool active
Definition: DebugDrawerComponent.h:575
armarx::DebugDrawerComponent::Layer::addedPointCloudVisualizations
std::map< std::string, SoSeparator * > addedPointCloudVisualizations
Definition: DebugDrawerComponent.h:808
armarx::DebugDrawerComponent::RobotData::updateConfig
bool updateConfig
Definition: DebugDrawerComponent.h:702
armarx::DebugDrawerComponent::enableSelections
void enableSelections(const std::string &layerName, const ::Ice::Current &=Ice::emptyCurrent) override
Definition: DebugDrawerComponent.cpp:130
armarx::DebugDrawerComponent::setMutex
void setMutex(RecursiveMutexPtr const &m)
Definition: DebugDrawerComponent.cpp:2709
armarx::DebugDrawerComponent::TextData
Definition: DebugDrawerComponent.h:610
armarx::DebugDrawerComponent::CircleData::width
float width
Definition: DebugDrawerComponent.h:639
data
uint8_t data[1]
Definition: EtherCATFrame.h:68
armarx::DebugDrawerComponent::RecursiveMutex
std::recursive_mutex RecursiveMutex
Definition: DebugDrawerComponent.h:495
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:1803
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:2010
armarx::DebugDrawerComponent::TriMeshData
Definition: DebugDrawerComponent.h:667
armarx::DebugDrawerComponent::removeBox
void removeBox(const std::string &layerName, const std::string &name)
Definition: DebugDrawerComponent.cpp:1447
armarx::DebugDrawerComponent::listenerPrx
DebugDrawerListenerPrx listenerPrx
Definition: DebugDrawerComponent.h:864
armarx::DebugDrawerComponent::ArrowData::length
float length
Definition: DebugDrawerComponent.h:676
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:1902
armarx::DebugDrawerComponent::remove24BitColoredPointCloudDebugLayerVisu
void remove24BitColoredPointCloudDebugLayerVisu(const std::string &pointCloudName, const ::Ice::Current &=Ice::emptyCurrent) override
Definition: DebugDrawerComponent.cpp:3296
armarx::DebugDrawerComponent::CylinderData::length
float length
Definition: DebugDrawerComponent.h:629
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:2527
armarx::DebugDrawerComponent::TextData::text
std::string text
Definition: DebugDrawerComponent.h:612
armarx::DebugDrawerComponent::CylinderData::direction
Eigen::Vector3f direction
Definition: DebugDrawerComponent.h:628
armarx::DebugDrawerComponent::RobotData::nodeColors
std::map< std::string, VirtualRobot::VisualizationFactory::Color > nodeColors
Definition: DebugDrawerComponent.h:697
armarx::DebugDrawerComponent::getScopedAccumulatedDataLock
RecursiveMutexLockPtr getScopedAccumulatedDataLock()
Definition: DebugDrawerComponent.cpp:2733
armarx::DebugDrawerComponent::removeCylinderDebugLayerVisu
void removeCylinderDebugLayerVisu(const std::string &cylinderName, const ::Ice::Current &=Ice::emptyCurrent) override
Definition: DebugDrawerComponent.cpp:2183
armarx::DebugDrawerComponent::PolygonData::points
std::vector< Eigen::Vector3f > points
Definition: DebugDrawerComponent.h:661
armarx::DebugDrawerComponent::timerSensorMutex
std::mutex timerSensorMutex
Definition: DebugDrawerComponent.h:869
armarx::DebugDrawerComponent::removePolygon
void removePolygon(const std::string &layerName, const std::string &name)
Definition: DebugDrawerComponent.cpp:1574
filename
std::string filename
Definition: VisualizationRobot.cpp:86
armarx::DebugDrawerComponent::exportScene
void exportScene(const std::string &filename, const ::Ice::Current &=Ice::emptyCurrent) override
Definition: DebugDrawerComponent.cpp:486
armarx::DebugDrawerComponent::CircleData
Definition: DebugDrawerComponent.h:634
armarx::DebugDrawerComponent::draw24BitColoredPointCloud
void draw24BitColoredPointCloud(const Colored24BitPointCloudData &d)
Definition: DebugDrawerComponent.cpp:3166
armarx::DebugDrawerComponent::ColoredPointCloudData::pointCloud
DebugDrawerColoredPointCloud pointCloud
Definition: DebugDrawerComponent.h:651
armarx::DebugDrawerComponent::setColoredPointCloudDebugLayerVisu
virtual void setColoredPointCloudDebugLayerVisu(const std::string &pointCloudName, const DebugDrawerColoredPointCloud &pointCloud, const ::Ice::Current &=Ice::emptyCurrent)
Definition: DebugDrawerComponent.cpp:3134
armarx::DebugDrawerComponent::setLayerVisibility
void setLayerVisibility(const std::string &layerName, bool visible)
Definition: DebugDrawerComponent.cpp:1721
armarx::DebugDrawerComponent::removeCircleVisu
void removeCircleVisu(const std::string &layerName, const std::string &circleName, const Ice::Current &=Ice::emptyCurrent) override
Definition: DebugDrawerComponent.cpp:3352
armarx::DebugDrawerComponent::BoxData
Definition: DebugDrawerComponent.h:601
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:2746
armarx::DebugDrawerComponent::PointCloudData::pointCloud
DebugDrawerPointCloud pointCloud
Definition: DebugDrawerComponent.h:646
armarx::DebugDrawerComponent::removeCylinder
void removeCylinder(const std::string &layerName, const std::string &name)
Definition: DebugDrawerComponent.cpp:1510
armarx::DebugDrawerComponent::CircleData::color
VirtualRobot::VisualizationFactory::Color color
Definition: DebugDrawerComponent.h:641
armarx::DebugDrawerComponent::DrawData::DrawData
DrawData()
Definition: DebugDrawerComponent.h:567
armarx::DebugDrawerComponent::UpdateData::cylinder
std::map< std::string, CylinderData > cylinder
Definition: DebugDrawerComponent.h:717
Component.h
armarx::DebugDrawerComponent::cycleTimeMS
float cycleTimeMS
Definition: DebugDrawerComponent.h:866
armarx::DebugDrawerComponent::RobotData::armarxProject
std::string armarxProject
Definition: DebugDrawerComponent.h:691
armarx::Component
Baseclass for all ArmarX ManagedIceObjects requiring properties.
Definition: Component.h:91
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:1952
armarx::DebugDrawerComponent::Layer::addedSphereVisualizations
std::map< std::string, SoSeparator * > addedSphereVisualizations
Definition: DebugDrawerComponent.h:805
armarx::DebugDrawerComponent::defaultLayerVisibility
bool defaultLayerVisibility
Definition: DebugDrawerComponent.h:874
armarx::DebugDrawerComponent::enableAllLayers
void enableAllLayers(const ::Ice::Current &=Ice::emptyCurrent) override
Definition: DebugDrawerComponent.cpp:1761
armarx::DebugDrawerComponent::removeCircle
void removeCircle(const std::string &layerName, const std::string &name)
Definition: DebugDrawerComponent.cpp:1531
armarx::DebugDrawerComponent::dataUpdateMutex
RecursiveMutexPtr dataUpdateMutex
The data update mutex.
Definition: DebugDrawerComponent.h:855
armarx::DebugDrawerComponent::UpdateData::text
std::map< std::string, TextData > text
Definition: DebugDrawerComponent.h:714
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:2391
armarx::DebugDrawerComponent::RecursiveMutexPtr
std::shared_ptr< RecursiveMutex > RecursiveMutexPtr
Definition: DebugDrawerComponent.h:496
armarx::DebugDrawerComponent::removeDefaultLayerVisibility
void removeDefaultLayerVisibility(const std::string &layerName)
Definition: DebugDrawerComponent.h:529
armarx::DebugDrawerComponent::PolygonData
Definition: DebugDrawerComponent.h:659
armarx::Component::getConfigIdentifier
std::string getConfigIdentifier()
Retrieve config identifier for this component as set in constructor.
Definition: Component.cpp:79
armarx::DebugDrawerComponent::removeLayerQt
void removeLayerQt(const std::string &layerName)
Definition: DebugDrawerComponent.cpp:2906
armarx::DebugDrawerComponent::RobotData::robotFile
std::string robotFile
Definition: DebugDrawerComponent.h:690
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:3304
armarx::DebugDrawerComponent::removeCustomVisu
virtual void removeCustomVisu(const std::string &layerName, const std::string &name)
Definition: DebugDrawerComponent.h:749
armarx::DebugDrawerComponent::clearLayer
void clearLayer(const std::string &layerName, const ::Ice::Current &=Ice::emptyCurrent) override
Definition: DebugDrawerComponent.cpp:2583
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:1869
armarx::DebugDrawerComponent::drawLine
void drawLine(const LineData &d)
Definition: DebugDrawerComponent.cpp:571
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:3331
armarx::DebugDrawerComponent::RobotData::globalPose
Eigen::Matrix4f globalPose
Definition: DebugDrawerComponent.h:700
armarx::DebugDrawerComponent::Layer::addedLineSetVisualizations
std::map< std::string, SoSeparator * > addedLineSetVisualizations
Definition: DebugDrawerComponent.h:802
armarx::ComponentPropertyDefinitions
Default component property definition container.
Definition: Component.h:69
armarx::DebugDrawerComponent::setPointCloudDebugLayerVisu
void setPointCloudDebugLayerVisu(const std::string &pointCloudName, const DebugDrawerPointCloud &pointCloud, const ::Ice::Current &=Ice::emptyCurrent) override
Definition: DebugDrawerComponent.cpp:2209
armarx::DebugDrawerComponent::removeTriMeshDebugLayerVisu
void removeTriMeshDebugLayerVisu(const std::string &triMeshName, const ::Ice::Current &=Ice::emptyCurrent) override
Definition: DebugDrawerComponent.cpp:2356
armarx::DebugDrawerComponent::removeText
void removeText(const std::string &layerName, const std::string &name)
Definition: DebugDrawerComponent.cpp:1468
armarx::DebugDrawerComponent::UpdateData::arrows
std::map< std::string, ArrowData > arrows
Definition: DebugDrawerComponent.h:723
armarx::DebugDrawerComponent::UpdateData::polygons
std::map< std::string, PolygonData > polygons
Definition: DebugDrawerComponent.h:721
armarx::DebugDrawerComponent::CircleData::position
Eigen::Vector3f position
Definition: DebugDrawerComponent.h:636
IceUtil::Handle
Definition: forward_declarations.h:30
armarx::DebugDrawerComponent::removeColoredPointCloud
void removeColoredPointCloud(const std::string &layerName, const std::string &name)
Definition: DebugDrawerComponent.cpp:3093
armarx::DebugDrawerComponent::CylinderData::position
Eigen::Vector3f position
Definition: DebugDrawerComponent.h:627
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:2279
armarx::DebugDrawerComponent::DebugDrawerComponent
DebugDrawerComponent()
DebugDrawerComponent Constructs a debug drawer.
Definition: DebugDrawerComponent.cpp:102
armarx::DebugDrawerComponent::installSelectionCallbacks
void installSelectionCallbacks()
Definition: DebugDrawerComponent.cpp:255
armarx::DebugDrawerComponent::CircleData::direction
Eigen::Vector3f direction
Definition: DebugDrawerComponent.h:637
armarx::DebugDrawerComponent::UpdateData::coloredpointcloud
std::map< std::string, ColoredPointCloudData > coloredpointcloud
Definition: DebugDrawerComponent.h:719
armarx::DebugDrawerComponent::BoxData::depth
float depth
Definition: DebugDrawerComponent.h:606
armarx::DebugDrawerComponent::onConnectComponent
void onConnectComponent() override
Pure virtual hook for the subclass.
Definition: DebugDrawerComponent.cpp:425
armarx::DebugDrawerComponent::LineSetData::lineSet
DebugDrawerLineSet lineSet
Definition: DebugDrawerComponent.h:598
armarx::DebugDrawerComponent::Layer::addedTriMeshVisualizations
std::map< std::string, SoSeparator * > addedTriMeshVisualizations
Definition: DebugDrawerComponent.h:812
armarx::DebugDrawerComponent::LineData
Definition: DebugDrawerComponent.h:588
armarx::DebugDrawerComponent::removeLineDebugLayerVisu
void removeLineDebugLayerVisu(const std::string &lineName, const ::Ice::Current &=Ice::emptyCurrent) override
Definition: DebugDrawerComponent.cpp:1896
armarx::DebugDrawerComponent::drawBox
void drawBox(const BoxData &d)
Definition: DebugDrawerComponent.cpp:702
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:2126
armarx::DebugDrawerComponent::removePointCloud
void removePointCloud(const std::string &layerName, const std::string &name)
Definition: DebugDrawerComponent.cpp:1552
armarx::DebugDrawerComponent::layerNames
::Ice::StringSeq layerNames(const ::Ice::Current &=Ice::emptyCurrent) override
Definition: DebugDrawerComponent.cpp:2989
armarx::DebugDrawerComponent::LineData::p2
Eigen::Vector3f p2
Definition: DebugDrawerComponent.h:591
armarx::DebugDrawerComponent::removeLineSetDebugLayerVisu
void removeLineSetDebugLayerVisu(const std::string &lineSetName, const ::Ice::Current &=Ice::emptyCurrent) override
Definition: DebugDrawerComponent.cpp:1945
armarx::DebugDrawerComponent::setPoseDebugLayerVisu
void setPoseDebugLayerVisu(const std::string &poseName, const ::armarx::PoseBasePtr &globalPose, const ::Ice::Current &=Ice::emptyCurrent) override
Definition: DebugDrawerComponent.cpp:1812
armarx::DebugDrawerComponent::RecursiveMutexLockPtr
std::shared_ptr< RecursiveMutexLock > RecursiveMutexLockPtr
Definition: DebugDrawerComponent.h:498
armarx::DebugDrawerComponent::removePolygonVisu
void removePolygonVisu(const std::string &layerName, const std::string &polygonName, const ::Ice::Current &=Ice::emptyCurrent) override
Definition: DebugDrawerComponent.cpp:2291
armarx::DebugDrawerComponent::onExitComponent
void onExitComponent() override
Hook for subclass.
Definition: DebugDrawerComponent.cpp:453
Logging.h
armarx::DebugDrawerComponent::CoordData::globalPose
Eigen::Matrix4f globalPose
Definition: DebugDrawerComponent.h:584
armarx::DebugDrawerComponent::removeTriMesh
void removeTriMesh(const std::string &layerName, const std::string &name)
Definition: DebugDrawerComponent.cpp:1595
armarx::DebugDrawerComponent::selectionCallback
void selectionCallback()
Definition: DebugDrawerComponent.cpp:241
armarx::DebugDrawerComponent::UpdateData::coord
std::map< std::string, CoordData > coord
Definition: DebugDrawerComponent.h:710
armarx::DebugDrawerComponent::drawLineSet
void drawLineSet(const LineSetData &d)
Definition: DebugDrawerComponent.cpp:593
armarx::DebugDrawerComponent::drawColoredPointCloud
void drawColoredPointCloud(const ColoredPointCloudData &d)
Definition: DebugDrawerComponent.cpp:3034
armarx::DebugDrawerComponent::ArrowData::color
VirtualRobot::VisualizationFactory::Color color
Definition: DebugDrawerComponent.h:678
armarx::DebugDrawerComponent::UpdateData::line
std::map< std::string, LineData > line
Definition: DebugDrawerComponent.h:711
armarx::DebugDrawerComponent::TriMeshData::triMesh
DebugDrawerTriMesh triMesh
Definition: DebugDrawerComponent.h:669
armarx::DebugDrawerComponent::activeRobots
std::map< std::string, VirtualRobot::RobotPtr > activeRobots
Definition: DebugDrawerComponent.h:835
armarx::PropertyDefinitionsPtr
IceUtil::Handle< class PropertyDefinitionContainer > PropertyDefinitionsPtr
PropertyDefinitions smart pointer type.
Definition: forward_declarations.h:35
armarx::DebugDrawerComponent::removeArrow
void removeArrow(const std::string &layerName, const std::string &name)
Definition: DebugDrawerComponent.cpp:1616
armarx::DebugDrawerComponent::removeBoxVisu
void removeBoxVisu(const std::string &layerName, const std::string &boxName, const ::Ice::Current &=Ice::emptyCurrent) override
Definition: DebugDrawerComponent.cpp:1988
armarx::DebugDrawerComponent::drawSphere
void drawSphere(const SphereData &d)
Definition: DebugDrawerComponent.cpp:784
armarx::DebugDrawerComponent::onDisconnectComponent
void onDisconnectComponent() override
Hook for subclass.
Definition: DebugDrawerComponent.cpp:434
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:1794
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:2190
armarx::DebugDrawerComponent::removeTextDebugLayerVisu
void removeTextDebugLayerVisu(const std::string &textName, const ::Ice::Current &=Ice::emptyCurrent) override
Definition: DebugDrawerComponent.cpp:2063
armarx::DebugDrawerComponent::ArrowData::position
Eigen::Vector3f position
Definition: DebugDrawerComponent.h:674
armarx::DebugDrawerComponent::SphereData::radius
float radius
Definition: DebugDrawerComponent.h:622
armarx::DebugDrawerComponent::DrawData::layerName
std::string layerName
Definition: DebugDrawerComponent.h:573
armarx::DebugDrawerComponent::setVisuUpdateTime
void setVisuUpdateTime(float visuUpdatesPerSec)
setVisuUpdateTime Specifies how often the accumulated draw commands should be applied to the visualiz...
Definition: DebugDrawerComponent.cpp:354
armarx::DebugDrawerComponent::getAllDefaultLayerVisibilities
std::map< std::string, bool > getAllDefaultLayerVisibilities() const
Definition: DebugDrawerComponent.h:552
armarx::DebugDrawerComponent::LineSetData
Definition: DebugDrawerComponent.h:596
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:3252
armarx::DebugDrawerComponent::~DebugDrawerComponent
~DebugDrawerComponent() override
Definition: DebugDrawerComponent.cpp:372
armarx::DebugDrawerComponent::PolygonData::lineWidth
float lineWidth
Definition: DebugDrawerComponent.h:662
armarx::DebugDrawerComponent::layerMainNode
SoSeparator * layerMainNode
Main node for all layers.
Definition: DebugDrawerComponent.h:844
armarx::DebugDrawerComponent::drawCoordSystem
void drawCoordSystem(const CoordData &d)
Definition: DebugDrawerComponent.cpp:538
armarx::DebugDrawerComponent::clearSelections
void clearSelections(const std::string &layerName, const ::Ice::Current &=Ice::emptyCurrent) override
Definition: DebugDrawerComponent.cpp:155
armarx::DebugDrawerComponent::TextData::size
int size
Definition: DebugDrawerComponent.h:615
armarx::DebugDrawerComponent::disableSelections
void disableSelections(const std::string &layerName, const ::Ice::Current &=Ice::emptyCurrent) override
Definition: DebugDrawerComponent.cpp:139
armarx::DebugDrawerComponent::CoordData::scale
float scale
Definition: DebugDrawerComponent.h:585
armarx::DebugDrawerComponent::Colored24BitPointCloudData
Definition: DebugDrawerComponent.h:654
armarx::DebugDrawerComponent::drawText
void drawText(const TextData &d)
Definition: DebugDrawerComponent.cpp:738
armarx
This file offers overloads of toIce() and fromIce() functions for STL container types.
Definition: ArmarXTimeserver.cpp:27
armarx::DebugDrawerComponent::UpdateData::lineSet
std::map< std::string, LineSetData > lineSet
Definition: DebugDrawerComponent.h:712
armarx::DebugDrawerComponent::DrawData
Definition: DebugDrawerComponent.h:565
armarx::DebugDrawerComponent::ArrowData::direction
Eigen::Vector3f direction
Definition: DebugDrawerComponent.h:675
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:2240
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:2036
armarx::DebugDrawerComponent::removeLayer
void removeLayer(const std::string &layerName, const ::Ice::Current &=Ice::emptyCurrent) override
Definition: DebugDrawerComponent.cpp:2895
armarx::DebugDrawerPropertyDefinitions
Definition: DebugDrawerComponent.h:58
VirtualRobot::RobotPtr
std::shared_ptr< class Robot > RobotPtr
Definition: Bus.h:19
armarx::DebugDrawerComponent::select
void select(const std::string &layerName, const std::string &elementName, const ::Ice::Current &=Ice::emptyCurrent) override
Definition: DebugDrawerComponent.cpp:183
armarx::DebugDrawerComponent::Layer::addedRobotVisualizations
std::map< std::string, SoSeparator * > addedRobotVisualizations
Definition: DebugDrawerComponent.h:814
armarx::DebugDrawerComponent::BoxData::width
float width
Definition: DebugDrawerComponent.h:604
armarx::DebugDrawerComponent::disableAllLayers
void disableAllLayers(const ::Ice::Current &=Ice::emptyCurrent) override
Definition: DebugDrawerComponent.cpp:1750
armarx::DebugDrawerComponent::selectionNode
SoSelection * selectionNode
Definition: DebugDrawerComponent.h:837
armarx::DebugDrawerComponent::removeLine
void removeLine(const std::string &layerName, const std::string &name)
Definition: DebugDrawerComponent.cpp:1405
armarx::DebugDrawerComponent::UpdateData
Definition: DebugDrawerComponent.h:708
armarx::DebugDrawerComponent::layers
std::map< const std::string, Layer > layers
All existing layers.
Definition: DebugDrawerComponent.h:849