30#include <Inventor/nodes/SoNode.h>
31#include <Inventor/nodes/SoSelection.h>
32#include <Inventor/nodes/SoSeparator.h>
33#include <Inventor/sensors/SoTimerSensor.h>
36#include <VirtualRobot/VirtualRobot.h>
37#include <VirtualRobot/Visualization/VisualizationFactory.h>
44#include <RobotAPI/interface/visualization/DebugDrawerInterface.h>
66 "The simulator implements the DebugDrawerInterface. The debug visualizations (e.g. "
67 "coordinate systems) can enabled/disbaled with this flag.");
69 "DebugDrawerTopic",
"DebugDrawerUpdates",
"Name of the DebugDrawerTopic");
71 "DebugDrawerSelections",
72 "Name of the DebugDrawerSelectionTopic");
114 virtual public armarx::DebugDrawerInterfaceAndListener,
133 return "DebugDrawer";
153 const ::Ice::Current& = Ice::emptyCurrent)
override;
155 const std::string& layerName,
156 const ::Ice::Current& = Ice::emptyCurrent)
override;
159 const std::string& poseName,
160 const ::armarx::PoseBasePtr& globalPose,
161 const ::Ice::Current& = Ice::emptyCurrent)
override;
163 const std::string& poseName,
164 const ::armarx::PoseBasePtr& globalPose,
165 const ::Ice::Float scale,
166 const ::Ice::Current& = Ice::emptyCurrent)
override;
168 const ::armarx::PoseBasePtr& globalPose,
169 const ::Ice::Current& = Ice::emptyCurrent)
override;
171 const ::armarx::PoseBasePtr& globalPose,
172 const ::Ice::Float scale,
173 const ::Ice::Current& = Ice::emptyCurrent)
override;
175 const std::string& poseName,
176 const ::Ice::Current& = Ice::emptyCurrent)
override;
178 const ::Ice::Current& = Ice::emptyCurrent)
override;
181 const std::string& lineName,
182 const ::armarx::Vector3BasePtr& globalPosition1,
183 const ::armarx::Vector3BasePtr& globalPosition2,
185 const ::armarx::DrawColor& color,
186 const ::Ice::Current& = Ice::emptyCurrent)
override;
188 const ::armarx::Vector3BasePtr& globalPosition1,
189 const ::armarx::Vector3BasePtr& globalPosition2,
191 const ::armarx::DrawColor& color,
192 const ::Ice::Current& = Ice::emptyCurrent)
override;
194 const std::string& lineName,
195 const ::Ice::Current& = Ice::emptyCurrent)
override;
197 const ::Ice::Current& = Ice::emptyCurrent)
override;
200 const std::string& lineSetName,
201 const DebugDrawerLineSet& lineSet,
202 const ::Ice::Current& = Ice::emptyCurrent)
override;
204 const DebugDrawerLineSet& lineSet,
205 const ::Ice::Current& = Ice::emptyCurrent)
override;
207 const std::string& lineSetName,
208 const ::Ice::Current& = Ice::emptyCurrent)
override;
210 const ::Ice::Current& = Ice::emptyCurrent)
override;
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;
219 const ::armarx::PoseBasePtr& globalPose,
220 const ::armarx::Vector3BasePtr& dimensions,
221 const DrawColor& color,
222 const ::Ice::Current& = Ice::emptyCurrent)
override;
224 const std::string& boxName,
225 const ::Ice::Current& = Ice::emptyCurrent)
override;
227 const ::Ice::Current& = Ice::emptyCurrent)
override;
230 const std::string& textName,
231 const std::string& text,
232 const ::armarx::Vector3BasePtr& globalPosition,
233 const DrawColor& color,
235 const ::Ice::Current& = Ice::emptyCurrent)
override;
237 const std::string& text,
238 const ::armarx::Vector3BasePtr& globalPosition,
239 const DrawColor& color,
241 const ::Ice::Current& = Ice::emptyCurrent)
override;
243 const std::string& textName,
244 const ::Ice::Current& = Ice::emptyCurrent)
override;
246 const ::Ice::Current& = Ice::emptyCurrent)
override;
249 const std::string& sphereName,
250 const ::armarx::Vector3BasePtr& globalPosition,
251 const DrawColor& color,
253 const ::Ice::Current& = Ice::emptyCurrent)
override;
255 const ::armarx::Vector3BasePtr& globalPosition,
256 const DrawColor& color,
258 const ::Ice::Current& = Ice::emptyCurrent)
override;
260 const std::string& sphereName,
261 const ::Ice::Current& = Ice::emptyCurrent)
override;
263 const ::Ice::Current& = Ice::emptyCurrent)
override;
266 const std::string& cylinderName,
267 const ::armarx::Vector3BasePtr& globalPosition,
268 const ::armarx::Vector3BasePtr& direction,
271 const DrawColor& color,
272 const ::Ice::Current& = Ice::emptyCurrent)
override;
274 const ::armarx::Vector3BasePtr& globalPosition,
275 const ::armarx::Vector3BasePtr& direction,
278 const DrawColor& color,
279 const ::Ice::Current& = Ice::emptyCurrent)
override;
281 const std::string& cylinderName,
282 const ::Ice::Current& = Ice::emptyCurrent)
override;
284 const ::Ice::Current& = Ice::emptyCurrent)
override;
287 const std::string& pointCloudName,
288 const DebugDrawerPointCloud& pointCloud,
289 const ::Ice::Current& = Ice::emptyCurrent)
override;
291 const DebugDrawerPointCloud& pointCloud,
292 const ::Ice::Current& = Ice::emptyCurrent)
override;
294 const std::string& pointCloudName,
295 const ::Ice::Current& = Ice::emptyCurrent)
override;
297 const ::Ice::Current& = Ice::emptyCurrent)
override;
301 const DebugDrawerColoredPointCloud& pointCloud,
302 const ::Ice::Current& = Ice::emptyCurrent);
304 const std::string& pointCloudName,
305 const DebugDrawerColoredPointCloud& pointCloud,
306 const ::Ice::Current& = Ice::emptyCurrent)
override;
308 const std::string& pointCloudName,
309 const ::Ice::Current& = Ice::emptyCurrent)
override;
312 const ::Ice::Current& = Ice::emptyCurrent)
override;
316 const DebugDrawer24BitColoredPointCloud& pointCloud,
317 const ::Ice::Current& = Ice::emptyCurrent)
override;
319 const std::string& pointCloudName,
320 const DebugDrawer24BitColoredPointCloud& pointCloud,
321 const ::Ice::Current& = Ice::emptyCurrent)
override;
323 const std::string& pointCloudName,
324 const ::Ice::Current& = Ice::emptyCurrent)
override;
326 const std::string& pointCloudName,
327 const ::Ice::Current& = Ice::emptyCurrent)
override;
331 const std::string& polygonName,
332 const std::vector<::armarx::Vector3BasePtr>& polygonPoints,
333 const DrawColor& colorInner,
334 const DrawColor& colorBorder,
336 const ::Ice::Current& = Ice::emptyCurrent)
override;
338 const std::vector<::armarx::Vector3BasePtr>& polygonPoints,
339 const DrawColor& colorInner,
340 const DrawColor& colorBorder,
342 const ::Ice::Current& = Ice::emptyCurrent)
override;
344 const std::string& polygonName,
345 const ::Ice::Current& = Ice::emptyCurrent)
override;
347 const ::Ice::Current& = Ice::emptyCurrent)
override;
350 const std::string& triMeshName,
351 const DebugDrawerTriMesh& triMesh,
352 const ::Ice::Current& = Ice::emptyCurrent)
override;
354 const DebugDrawerTriMesh& triMesh,
355 const ::Ice::Current& = Ice::emptyCurrent)
override;
357 const std::string& triMeshName,
358 const ::Ice::Current& = Ice::emptyCurrent)
override;
360 const ::Ice::Current& = Ice::emptyCurrent)
override;
363 const std::string& arrowName,
364 const ::armarx::Vector3BasePtr& position,
365 const ::armarx::Vector3BasePtr& direction,
366 const DrawColor& color,
369 const ::Ice::Current& = Ice::emptyCurrent)
override;
371 const ::armarx::Vector3BasePtr& position,
372 const ::armarx::Vector3BasePtr& direction,
373 const DrawColor& color,
376 const ::Ice::Current& = Ice::emptyCurrent)
override;
378 const std::string& arrowName,
379 const ::Ice::Current& = Ice::emptyCurrent)
override;
381 const ::Ice::Current& = Ice::emptyCurrent)
override;
384 const std::string& circleName,
385 const Vector3BasePtr& globalPosition,
386 const Vector3BasePtr& directionVec,
388 Ice::Float circleCompletion,
390 const DrawColor& color,
391 const Ice::Current& = Ice::emptyCurrent)
override;
393 const Vector3BasePtr& globalPosition,
394 const Vector3BasePtr& directionVec,
396 Ice::Float circleCompletion,
398 const DrawColor& color,
399 const Ice::Current& = Ice::emptyCurrent)
override;
401 const std::string& circleName,
402 const Ice::Current& = Ice::emptyCurrent)
override;
404 const Ice::Current& = Ice::emptyCurrent)
override;
416 const std::string& robotName,
417 const std::string& robotFile,
418 const std::string& armarxProject,
420 const ::Ice::Current& = Ice::emptyCurrent)
override;
422 const std::string& robotName,
423 const ::armarx::PoseBasePtr& globalPose,
424 const ::Ice::Current& = Ice::emptyCurrent)
override;
426 const std::string& robotName,
427 const std::map<std::string, float>& configuration,
428 const ::Ice::Current& = Ice::emptyCurrent)
override;
436 const std::string& robotName,
437 const armarx::DrawColor&
c,
438 const ::Ice::Current& = Ice::emptyCurrent)
override;
440 const std::string& robotName,
441 const std::string& robotNodeName,
442 const armarx::DrawColor&
c,
443 const ::Ice::Current& = Ice::emptyCurrent)
override;
445 const std::string& robotName,
446 const ::Ice::Current& = Ice::emptyCurrent)
override;
448 void clearAll(const ::Ice::Current& = Ice::emptyCurrent)
override;
450 const ::Ice::Current& = Ice::emptyCurrent)
override;
451 void clearDebugLayer(const ::Ice::Current& = Ice::emptyCurrent)
override;
453 bool hasLayer(
const std::string& layerName,
454 const ::Ice::Current& = Ice::emptyCurrent)
override;
456 const ::Ice::Current& = Ice::emptyCurrent)
override;
460 const ::Ice::Current& = Ice::emptyCurrent)
override;
463 ::Ice::StringSeq
layerNames(const ::Ice::Current& = Ice::emptyCurrent)
override;
464 ::armarx::LayerInformationSequence
468 void enableAllLayers(const ::Ice::Current& = Ice::emptyCurrent)
override;
472 const ::Ice::Current& = Ice::emptyCurrent)
override;
474 const ::Ice::Current& = Ice::emptyCurrent)
override;
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;
484 DebugDrawerSelectionList
getSelections(const ::Ice::Current& = Ice::emptyCurrent)
override;
492 const ::Ice::Current& = Ice::emptyCurrent)
override;
551 std::map<std::string, bool>
593 VirtualRobot::VisualizationFactory::Color
color;
607 VirtualRobot::VisualizationFactory::Color
color;
614 VirtualRobot::VisualizationFactory::Color
color;
621 VirtualRobot::VisualizationFactory::Color
color;
631 VirtualRobot::VisualizationFactory::Color
color;
641 VirtualRobot::VisualizationFactory::Color
color;
678 VirtualRobot::VisualizationFactory::Color
color;
694 VirtualRobot::VisualizationFactory::Color
color;
697 std::map<std::string, VirtualRobot::VisualizationFactory::Color>
nodeColors;
710 std::map<std::string, CoordData>
coord;
711 std::map<std::string, LineData>
line;
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;
756 void drawBox(
const BoxData& d);
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);
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);
815 std::map<std::string, SoSeparator*>
849 std::map<const std::string, Layer>
layers;
ComponentPropertyDefinitions(std::string prefix, bool hasObjectNameParameter=true)
Component()
Protected default constructor. Used for virtual inheritance. Use createManagedIceObject() instead.
std::string getConfigIdentifier()
Retrieve config identifier for this component as set in constructor.
void removeCylinderVisu(const std::string &layerName, const std::string &cylinderName, const ::Ice::Current &=Ice::emptyCurrent) override
DebugDrawerComponent()
DebugDrawerComponent Constructs a debug drawer.
RecursiveMutexPtr topicMutex
void setLineSetVisu(const std::string &layerName, const std::string &lineSetName, const DebugDrawerLineSet &lineSet, const ::Ice::Current &=Ice::emptyCurrent) override
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
void removeSphere(const std::string &layerName, const std::string &name)
void onInitComponent() override
Pure virtual hook for the subclass.
void setPointCloudVisu(const std::string &layerName, const std::string &pointCloudName, const DebugDrawerPointCloud &pointCloud, const ::Ice::Current &=Ice::emptyCurrent) override
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
void removePointCloud(const std::string &layerName, const std::string &name)
void setPointCloudDebugLayerVisu(const std::string &pointCloudName, const DebugDrawerPointCloud &pointCloud, const ::Ice::Current &=Ice::emptyCurrent) override
void removeTextDebugLayerVisu(const std::string &textName, const ::Ice::Current &=Ice::emptyCurrent) override
void drawLineSet(const LineSetData &d)
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
void removePolygonDebugLayerVisu(const std::string &polygonName, const ::Ice::Current &=Ice::emptyCurrent) override
std::recursive_mutex RecursiveMutex
void removePolygon(const std::string &layerName, const std::string &name)
void setBoxDebugLayerVisu(const std::string &boxName, const ::armarx::PoseBasePtr &globalPose, const ::armarx::Vector3BasePtr &dimensions, const DrawColor &color, const ::Ice::Current &=Ice::emptyCurrent) override
void clearDebugLayer(const ::Ice::Current &=Ice::emptyCurrent) override
void removeRobotVisu(const std::string &layerName, const std::string &robotName, const ::Ice::Current &=Ice::emptyCurrent) override
void removeBox(const std::string &layerName, const std::string &name)
bool getDefaultLayerVisibility() const
void setVisuUpdateTime(float visuUpdatesPerSec)
setVisuUpdateTime Specifies how often the accumulated draw commands should be applied to the visualiz...
void removeTriMeshVisu(const std::string &layerName, const std::string &triMeshName, const ::Ice::Current &=Ice::emptyCurrent) override
void setSphereDebugLayerVisu(const std::string &sphereName, const ::armarx::Vector3BasePtr &globalPosition, const DrawColor &color, float radius, const ::Ice::Current &=Ice::emptyCurrent) override
void reportSelectionChanged(const DebugDrawerSelectionList &selectedElements, const ::Ice::Current &=Ice::emptyCurrent) override
bool defaultLayerVisibility
void updateRobotNodeColor(const std::string &layerName, const std::string &robotName, const std::string &robotNodeName, const armarx::DrawColor &c, const ::Ice::Current &=Ice::emptyCurrent) override
void removeLineSetVisu(const std::string &layerName, const std::string &lineSetName, const ::Ice::Current &=Ice::emptyCurrent) override
void removeLineVisu(const std::string &layerName, const std::string &lineName, const ::Ice::Current &=Ice::emptyCurrent) override
void removeLineDebugLayerVisu(const std::string &lineName, const ::Ice::Current &=Ice::emptyCurrent) override
void setDefaultLayerVisibility(bool defaultLayerVisibility)
void removeBoxVisu(const std::string &layerName, const std::string &boxName, const ::Ice::Current &=Ice::emptyCurrent) override
void updateRobotPose(const std::string &layerName, const std::string &robotName, const ::armarx::PoseBasePtr &globalPose, const ::Ice::Current &=Ice::emptyCurrent) override
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
void enableLayerVisu(const std::string &layerName, bool visible, const ::Ice::Current &=Ice::emptyCurrent) override
void onDisconnectComponent() override
Hook for subclass.
void removeTextVisu(const std::string &layerName, const std::string &textName, const ::Ice::Current &=Ice::emptyCurrent) override
std::shared_ptr< RecursiveMutexLock > RecursiveMutexLockPtr
void removeCircleVisu(const std::string &layerName, const std::string &circleName, const Ice::Current &=Ice::emptyCurrent) override
void removePolygonVisu(const std::string &layerName, const std::string &polygonName, const ::Ice::Current &=Ice::emptyCurrent) override
virtual void onUpdateVisualization()
onUpdateVisualization derived methods can overwrite this method to update custom visualizations.
RecursiveMutexLockPtr getScopedVisuLock()
getScopedLock If using the coin visualization it must be ensured that all rendering calls are protect...
void drawBox(const BoxData &d)
void removeBoxDebugLayerVisu(const std::string &boxName, const ::Ice::Current &=Ice::emptyCurrent) override
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
void removeSelectionCallbacks()
virtual void setColoredPointCloudDebugLayerVisu(const std::string &pointCloudName, const DebugDrawerColoredPointCloud &pointCloud, const ::Ice::Current &=Ice::emptyCurrent)
void setTriMeshDebugLayerVisu(const std::string &triMeshName, const DebugDrawerTriMesh &triMesh, const ::Ice::Current &=Ice::emptyCurrent) override
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
void remove24BitColoredPointCloud(const std::string &layerName, const std::string &name)
std::shared_ptr< RecursiveMutex > RecursiveMutexPtr
void removeLine(const std::string &layerName, const std::string &name)
std::map< std::string, bool > defaultLayerVisibilityPerLayer
void removeCylinder(const std::string &layerName, const std::string &name)
void drawText(const TextData &d)
SoSeparator * getVisualization()
getVisualization Ensure that all access to this node is protected with the scoped lock mutex.
void enableSelections(const std::string &layerName, const ::Ice::Current &=Ice::emptyCurrent) override
void removeCoordSystem(const std::string &layerName, const std::string &name)
void set24BitColoredPointCloudDebugLayerVisu(const std::string &pointCloudName, const DebugDrawer24BitColoredPointCloud &pointCloud, const ::Ice::Current &=Ice::emptyCurrent) override
void setPoseDebugLayerVisu(const std::string &poseName, const ::armarx::PoseBasePtr &globalPose, const ::Ice::Current &=Ice::emptyCurrent) override
void drawCoordSystem(const CoordData &d)
::armarx::LayerInformationSequence layerInformation(const ::Ice::Current &=Ice::emptyCurrent) override
void removeSphereVisu(const std::string &layerName, const std::string &sphereName, const ::Ice::Current &=Ice::emptyCurrent) override
void setLineSetDebugLayerVisu(const std::string &lineSetName, const DebugDrawerLineSet &lineSet, const ::Ice::Current &=Ice::emptyCurrent) override
SoSeparator * layerMainNode
Main node for all layers.
void exportScene(const std::string &filename, const ::Ice::Current &=Ice::emptyCurrent) override
void removeTriMeshDebugLayerVisu(const std::string &triMeshName, const ::Ice::Current &=Ice::emptyCurrent) override
void drawPointCloud(const PointCloudData &d)
void removeArrowDebugLayerVisu(const std::string &arrowName, const ::Ice::Current &=Ice::emptyCurrent) override
void select(const std::string &layerName, const std::string &elementName, const ::Ice::Current &=Ice::emptyCurrent) override
std::unique_lock< RecursiveMutex > RecursiveMutexLock
void removePoseDebugLayerVisu(const std::string &poseName, const ::Ice::Current &=Ice::emptyCurrent) override
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
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
void clearLayerQt(const std::string &layerName)
void removeArrowVisu(const std::string &layerName, const std::string &arrowName, const ::Ice::Current &=Ice::emptyCurrent) override
void drawCylinder(const CylinderData &d)
SoSelection * selectionNode
void removeColoredPointCloudVisu(const std::string &layerName, const std::string &pointCloudName, const ::Ice::Current &=Ice::emptyCurrent) override
void deselect(const std::string &layerName, const std::string &elementName, const ::Ice::Current &=Ice::emptyCurrent) override
void remove24BitColoredPointCloudDebugLayerVisu(const std::string &pointCloudName, const ::Ice::Current &=Ice::emptyCurrent) override
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
void updateRobotConfig(const std::string &layerName, const std::string &robotName, const std::map< std::string, float > &configuration, const ::Ice::Current &=Ice::emptyCurrent) override
DebugDrawerListenerPrx listenerPrx
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
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
void removePointCloudDebugLayerVisu(const std::string &pointCloudName, const ::Ice::Current &=Ice::emptyCurrent) override
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...
void removeCircle(const std::string &layerName, const std::string &name)
std::map< std::string, bool > getAllDefaultLayerVisibilities() const
void removeCylinderDebugLayerVisu(const std::string &cylinderName, const ::Ice::Current &=Ice::emptyCurrent) override
bool getDefaultLayerVisibility(const std::string &layerName) const
RecursiveMutexPtr dataUpdateMutex
The data update mutex.
std::map< std::string, VirtualRobot::RobotPtr > activeRobots
void enableAllLayers(const ::Ice::Current &=Ice::emptyCurrent) override
void setDefaultLayerVisibility(const std::string &layerName, bool defaultLayerVisibility)
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
void removePointCloudVisu(const std::string &layerName, const std::string &pointCloudName, const ::Ice::Current &=Ice::emptyCurrent) override
bool hasLayer(const std::string &layerName, const ::Ice::Current &=Ice::emptyCurrent) override
void exportLayer(const std::string &filename, const std::string &layerName, const ::Ice::Current &=Ice::emptyCurrent) override
void removeColoredPointCloud(const std::string &layerName, const std::string &name)
void set24BitColoredPointCloudVisu(const std::string &layerName, const std::string &pointCloudName, const DebugDrawer24BitColoredPointCloud &pointCloud, const ::Ice::Current &=Ice::emptyCurrent) override
void removeRobot(const std::string &layerName, const std::string &name)
void draw24BitColoredPointCloud(const Colored24BitPointCloudData &d)
void onConnectComponent() override
Pure virtual hook for the subclass.
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
::Ice::StringSeq layerNames(const ::Ice::Current &=Ice::emptyCurrent) override
RecursiveMutexLockPtr getScopedAccumulatedDataLock()
static std::recursive_mutex selectionMutex
VirtualRobot::RobotPtr requestRobot(const RobotData &d)
PropertyDefinitionsPtr createPropertyDefinitions() override
void drawLine(const LineData &d)
virtual void removeCustomVisu(const std::string &layerName, const std::string &name)
void removeTriMesh(const std::string &layerName, const std::string &name)
void setColoredPointCloudVisu(const std::string &layerName, const std::string &pointCloudName, const DebugDrawerColoredPointCloud &pointCloud, const ::Ice::Current &=Ice::emptyCurrent) override
void removeSphereDebugLayerVisu(const std::string &sphereName, const ::Ice::Current &=Ice::emptyCurrent) override
void setMutex(RecursiveMutexPtr const &m)
void remove24BitColoredPointCloudVisu(const std::string &layerName, const std::string &pointCloudName, const ::Ice::Current &=Ice::emptyCurrent) override
void installSelectionCallbacks()
void removeCircleDebugLayerVisu(const std::string &circleName, const Ice::Current &=Ice::emptyCurrent) override
DebugDrawerSelectionList getSelections(const ::Ice::Current &=Ice::emptyCurrent) override
void clearSelections(const std::string &layerName, const ::Ice::Current &=Ice::emptyCurrent) override
void removeColoredPointCloudDebugLayerVisu(const std::string &pointCloudName, const ::Ice::Current &=Ice::emptyCurrent) override
void setTriMeshVisu(const std::string &layerName, const std::string &triMeshName, const DebugDrawerTriMesh &triMesh, const ::Ice::Current &=Ice::emptyCurrent) override
void removePoseVisu(const std::string &layerName, const std::string &poseName, const ::Ice::Current &=Ice::emptyCurrent) override
static void updateVisualizationCB(void *data, SoSensor *sensor)
void setScaledPoseVisu(const std::string &layerName, const std::string &poseName, const ::armarx::PoseBasePtr &globalPose, const ::Ice::Float scale, const ::Ice::Current &=Ice::emptyCurrent) override
void clearLayer(const std::string &layerName, const ::Ice::Current &=Ice::emptyCurrent) override
void enableDebugLayerVisu(bool visible, const ::Ice::Current &=Ice::emptyCurrent) override
void removeArrow(const std::string &layerName, const std::string &name)
void setPoseVisu(const std::string &layerName, const std::string &poseName, const ::armarx::PoseBasePtr &globalPose, const ::Ice::Current &=Ice::emptyCurrent) override
void deselectionCallback()
~DebugDrawerComponent() override
void updateVisualization()
std::mutex timerSensorMutex
void onExitComponent() override
Hook for subclass.
std::map< const std::string, Layer > layers
All existing layers.
void drawRobot(const RobotData &d)
std::map< std::string, VirtualRobot::RobotPtr > loadedRobots
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
void setLayerVisibility(const std::string &layerName, bool visible)
void removeLayer(const std::string &layerName, const ::Ice::Current &=Ice::emptyCurrent) override
SoTimerSensor * timerSensor
virtual void onRemoveAccumulatedData(const std::string &layerName)
void drawColoredPointCloud(const ColoredPointCloudData &d)
UpdateData accumulatedUpdateData
void disableAllLayers(const ::Ice::Current &=Ice::emptyCurrent) override
void drawCircle(const DebugDrawerComponent::CircleData &d)
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
void removeLineSetDebugLayerVisu(const std::string &lineSetName, const ::Ice::Current &=Ice::emptyCurrent) override
void clearAll(const ::Ice::Current &=Ice::emptyCurrent) override
RecursiveMutexPtr mutex
The coin mutex.
void drawSphere(const SphereData &d)
std::set< std::string > selectableLayers
void removeDefaultLayerVisibility(const std::string &layerName)
void disableSelections(const std::string &layerName, const ::Ice::Current &=Ice::emptyCurrent) override
void drawPolygon(const PolygonData &d)
void drawArrow(const ArrowData &d)
void ensureExistingRobotNodes(DebugDrawerComponent::RobotData &d)
ensureExistingRobotNodes Checks if all robotnodes of configuration exist in robot....
std::string getDefaultName() const override
Retrieve default name of component.
void removeAccumulatedData(const std::string &layerName)
void removeLineSet(const std::string &layerName, const std::string &name)
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
void setScaledPoseDebugLayerVisu(const std::string &poseName, const ::armarx::PoseBasePtr &globalPose, const ::Ice::Float scale, const ::Ice::Current &=Ice::emptyCurrent) override
void removeText(const std::string &layerName, const std::string &name)
void drawTriMesh(const TriMeshData &d)
void removeLayerQt(const std::string &layerName)
DebugDrawerPropertyDefinitions(std::string prefix)
std::string prefix
Prefix of the properties such as namespace, domain, component name, etc.
PropertyDefinition< PropertyType > & defineOptionalProperty(const std::string &name, PropertyType defaultValue, const std::string &description="", PropertyDefinitionBase::PropertyConstness constness=PropertyDefinitionBase::eConstant)
std::shared_ptr< class Robot > RobotPtr
This file offers overloads of toIce() and fromIce() functions for STL container types.
IceInternal::Handle< DebugDrawerComponent > DebugDrawerComponentPtr
IceUtil::Handle< class PropertyDefinitionContainer > PropertyDefinitionsPtr
PropertyDefinitions smart pointer type.
Eigen::Vector3f direction
VirtualRobot::VisualizationFactory::Color color
Eigen::Matrix4f globalPose
VirtualRobot::VisualizationFactory::Color color
Eigen::Vector3f direction
VirtualRobot::VisualizationFactory::Color color
DebugDrawer24BitColoredPointCloud pointCloud
DebugDrawerColoredPointCloud pointCloud
Eigen::Matrix4f globalPose
Eigen::Vector3f direction
VirtualRobot::VisualizationFactory::Color color
bool update
Whether an existing visu should be updated.
Contains data for a layer.
std::map< std::string, SoSeparator * > addedTextVisualizations
std::map< std::string, SoSeparator * > addedTriMeshVisualizations
std::map< std::string, SoSeparator * > addedCylinderVisualizations
std::map< std::string, SoSeparator * > addedCoordVisualizations
std::map< std::string, SoSeparator * > addedArrowVisualizations
std::map< std::string, SoSeparator * > addedColoredPointCloudVisualizations
std::map< std::string, SoSeparator * > addedBoxVisualizations
std::map< std::string, SoSeparator * > addedLineSetVisualizations
std::map< std::string, SoSeparator * > addedRobotVisualizations
std::map< std::string, SoSeparator * > addedCircleVisualizations
std::map< std::string, SoSeparator * > addedLineVisualizations
std::map< std::string, SoSeparator * > addedSphereVisualizations
std::map< std::string, SoSeparator * > added24BitColoredPointCloudVisualizations
std::map< std::string, SoSeparator * > addedPolygonVisualizations
std::map< std::string, SoSeparator * > addedPointCloudVisualizations
std::map< std::string, SoSeparator * > addedCustomVisualizations
VirtualRobot::VisualizationFactory::Color color
DebugDrawerLineSet lineSet
DebugDrawerPointCloud pointCloud
VirtualRobot::VisualizationFactory::Color colorInner
std::vector< Eigen::Vector3f > points
VirtualRobot::VisualizationFactory::Color colorBorder
std::map< std::string, float > configuration
armarx::DrawStyle drawStyle
std::string armarxProject
std::map< std::string, VirtualRobot::VisualizationFactory::Color > nodeColors
Eigen::Matrix4f globalPose
VirtualRobot::VisualizationFactory::Color color
VirtualRobot::VisualizationFactory::Color color
VirtualRobot::VisualizationFactory::Color color
DebugDrawerTriMesh triMesh
std::map< std::string, ColoredPointCloudData > coloredpointcloud
std::map< std::string, SphereData > sphere
std::map< std::string, LineSetData > lineSet
std::set< std::string > removeLayers
std::map< std::string, CylinderData > cylinder
std::map< std::string, RobotData > robots
std::map< std::string, CircleData > circle
std::map< std::string, Colored24BitPointCloudData > colored24Bitpointcloud
std::map< std::string, TextData > text
std::map< std::string, PointCloudData > pointcloud
std::map< std::string, ArrowData > arrows
std::set< std::string > clearLayers
std::map< std::string, LineData > line
std::map< std::string, BoxData > box
std::map< std::string, CoordData > coord
std::map< std::string, TriMeshData > triMeshes
std::map< std::string, PolygonData > polygons