Go to the documentation of this file.
30 #include <Inventor/nodes/SoNode.h>
31 #include <Inventor/nodes/SoSeparator.h>
32 #include <Inventor/nodes/SoSelection.h>
33 #include <Inventor/sensors/SoTimerSensor.h>
40 #include <RobotAPI/interface/visualization/DebugDrawerInterface.h>
44 #include <VirtualRobot/VirtualRobot.h>
45 #include <VirtualRobot/Visualization/VisualizationFactory.h>
65 defineOptionalProperty<bool>(
"ShowDebugDrawing",
true,
"The simulator implements the DebugDrawerInterface. The debug visualizations (e.g. coordinate systems) can enabled/disbaled with this flag.");
66 defineOptionalProperty<std::string>(
"DebugDrawerTopic",
"DebugDrawerUpdates",
"Name of the DebugDrawerTopic");
67 defineOptionalProperty<std::string>(
"DebugDrawerSelectionTopic",
"DebugDrawerSelections",
"Name of the DebugDrawerSelectionTopic");
109 virtual public armarx::DebugDrawerInterfaceAndListener,
128 return "DebugDrawer";
147 void exportScene(
const std::string&
filename, const ::Ice::Current& = Ice::emptyCurrent)
override;
148 void exportLayer(
const std::string&
filename,
const std::string& layerName, const ::Ice::Current& = Ice::emptyCurrent)
override;
150 void setPoseVisu(
const std::string& layerName,
const std::string& poseName, const ::armarx::PoseBasePtr& globalPose, const ::Ice::Current& = Ice::emptyCurrent)
override;
151 void setScaledPoseVisu(
const std::string& layerName,
const std::string& poseName, const ::armarx::PoseBasePtr& globalPose,
const ::Ice::Float scale, const ::Ice::Current& = Ice::emptyCurrent)
override;
152 void setPoseDebugLayerVisu(
const std::string& poseName, const ::armarx::PoseBasePtr& globalPose, const ::Ice::Current& = Ice::emptyCurrent)
override;
154 void removePoseVisu(
const std::string& layerName,
const std::string& poseName, const ::Ice::Current& = Ice::emptyCurrent)
override;
157 void setLineVisu(
const std::string& layerName,
const std::string& lineName, const ::armarx::Vector3BasePtr& globalPosition1, const ::armarx::Vector3BasePtr& globalPosition2,
float lineWidth, const ::armarx::DrawColor& color, const ::Ice::Current& = Ice::emptyCurrent)
override;
158 void setLineDebugLayerVisu(
const std::string& lineName, const ::armarx::Vector3BasePtr& globalPosition1, const ::armarx::Vector3BasePtr& globalPosition2,
float lineWidth, const ::armarx::DrawColor& color, const ::Ice::Current& = Ice::emptyCurrent)
override;
159 void removeLineVisu(
const std::string& layerName,
const std::string& lineName, const ::Ice::Current& = Ice::emptyCurrent)
override;
162 void setLineSetVisu(
const std::string& layerName,
const std::string& lineSetName,
const DebugDrawerLineSet& lineSet, const ::Ice::Current& = Ice::emptyCurrent)
override;
163 void setLineSetDebugLayerVisu(
const std::string& lineSetName,
const DebugDrawerLineSet& lineSet, const ::Ice::Current& = Ice::emptyCurrent)
override;
164 void removeLineSetVisu(
const std::string& layerName,
const std::string& lineSetName, const ::Ice::Current& = Ice::emptyCurrent)
override;
167 void setBoxVisu(
const std::string& layerName,
const std::string& boxName, const ::armarx::PoseBasePtr& globalPose, const ::armarx::Vector3BasePtr& dimensions,
const DrawColor& color, const ::Ice::Current& = Ice::emptyCurrent)
override;
168 void setBoxDebugLayerVisu(
const std::string& boxName, const ::armarx::PoseBasePtr& globalPose, const ::armarx::Vector3BasePtr& dimensions,
const DrawColor& color, const ::Ice::Current& = Ice::emptyCurrent)
override;
169 void removeBoxVisu(
const std::string& layerName,
const std::string& boxName, const ::Ice::Current& = Ice::emptyCurrent)
override;
172 void setTextVisu(
const std::string& layerName,
const std::string& textName,
const std::string& text, const ::armarx::Vector3BasePtr& globalPosition,
const DrawColor& color,
int size, const ::Ice::Current& = Ice::emptyCurrent)
override;
173 void setTextDebugLayerVisu(
const std::string& textName,
const std::string& text, const ::armarx::Vector3BasePtr& globalPosition,
const DrawColor& color,
int size, const ::Ice::Current& = Ice::emptyCurrent)
override;
174 void removeTextVisu(
const std::string& layerName,
const std::string& textName, const ::Ice::Current& = Ice::emptyCurrent)
override;
177 void setSphereVisu(
const std::string& layerName,
const std::string& sphereName, const ::armarx::Vector3BasePtr& globalPosition,
const DrawColor& color,
float radius, const ::Ice::Current& = Ice::emptyCurrent)
override;
178 void setSphereDebugLayerVisu(
const std::string& sphereName, const ::armarx::Vector3BasePtr& globalPosition,
const DrawColor& color,
float radius, const ::Ice::Current& = Ice::emptyCurrent)
override;
179 void removeSphereVisu(
const std::string& layerName,
const std::string& sphereName, const ::Ice::Current& = Ice::emptyCurrent)
override;
182 void setCylinderVisu(
const std::string& layerName,
const std::string& cylinderName, const ::armarx::Vector3BasePtr& globalPosition, const ::armarx::Vector3BasePtr& direction,
float length,
float radius,
const DrawColor& color, const ::Ice::Current& = Ice::emptyCurrent)
override;
183 void setCylinderDebugLayerVisu(
const std::string& cylinderName, const ::armarx::Vector3BasePtr& globalPosition, const ::armarx::Vector3BasePtr& direction,
float length,
float radius,
const DrawColor& color, const ::Ice::Current& = Ice::emptyCurrent)
override;
184 void removeCylinderVisu(
const std::string& layerName,
const std::string& cylinderName, const ::Ice::Current& = Ice::emptyCurrent)
override;
187 void setPointCloudVisu(
const std::string& layerName,
const std::string& pointCloudName,
const DebugDrawerPointCloud& pointCloud, const ::Ice::Current& = Ice::emptyCurrent)
override;
188 void setPointCloudDebugLayerVisu(
const std::string& pointCloudName,
const DebugDrawerPointCloud& pointCloud, const ::Ice::Current& = Ice::emptyCurrent)
override;
189 void removePointCloudVisu(
const std::string& layerName,
const std::string& pointCloudName, const ::Ice::Current& = Ice::emptyCurrent)
override;
192 virtual void setColoredPointCloudDebugLayerVisu(
const std::string& pointCloudName,
const DebugDrawerColoredPointCloud& pointCloud, const ::Ice::Current& = Ice::emptyCurrent);
193 void setColoredPointCloudVisu(
const std::string& layerName,
const std::string& pointCloudName,
const DebugDrawerColoredPointCloud& pointCloud, const ::Ice::Current& = Ice::emptyCurrent)
override;
194 void removeColoredPointCloudVisu(
const std::string& layerName,
const std::string& pointCloudName, const ::Ice::Current& = Ice::emptyCurrent)
override;
198 void set24BitColoredPointCloudVisu(
const std::string& layerName,
const std::string& pointCloudName,
const DebugDrawer24BitColoredPointCloud& pointCloud, const ::Ice::Current& = Ice::emptyCurrent)
override;
203 void setPolygonVisu(
const std::string& layerName,
const std::string& polygonName,
const std::vector< ::armarx::Vector3BasePtr >& polygonPoints,
const DrawColor& colorInner,
const DrawColor& colorBorder,
float lineWidth, const ::Ice::Current& = Ice::emptyCurrent)
override;
204 void setPolygonDebugLayerVisu(
const std::string& polygonName,
const std::vector< ::armarx::Vector3BasePtr >& polygonPoints,
const DrawColor& colorInner,
const DrawColor& colorBorder,
float lineWidth, const ::Ice::Current& = Ice::emptyCurrent)
override;
205 void removePolygonVisu(
const std::string& layerName,
const std::string& polygonName, const ::Ice::Current& = Ice::emptyCurrent)
override;
208 void setTriMeshVisu(
const std::string& layerName,
const std::string& triMeshName,
const DebugDrawerTriMesh& triMesh, const ::Ice::Current& = Ice::emptyCurrent)
override;
209 void setTriMeshDebugLayerVisu(
const std::string& triMeshName,
const DebugDrawerTriMesh& triMesh, const ::Ice::Current& = Ice::emptyCurrent)
override;
210 void removeTriMeshVisu(
const std::string& layerName,
const std::string& triMeshName, const ::Ice::Current& = Ice::emptyCurrent)
override;
213 void setArrowVisu(
const std::string& layerName,
const std::string& arrowName, const ::armarx::Vector3BasePtr& position, const ::armarx::Vector3BasePtr& direction,
const DrawColor& color,
float length,
float width, const ::Ice::Current& = Ice::emptyCurrent)
override;
214 void setArrowDebugLayerVisu(
const std::string& arrowName, const ::armarx::Vector3BasePtr& position, const ::armarx::Vector3BasePtr& direction,
const DrawColor& color,
float length,
float width, const ::Ice::Current& = Ice::emptyCurrent)
override;
215 void removeArrowVisu(
const std::string& layerName,
const std::string& arrowName, const ::Ice::Current& = Ice::emptyCurrent)
override;
218 void setCircleArrowVisu(
const std::string& layerName,
const std::string& circleName,
const Vector3BasePtr& globalPosition,
const Vector3BasePtr& directionVec,
Ice::Float radius,
Ice::Float circleCompletion,
Ice::Float width,
const DrawColor& color,
const Ice::Current& = Ice::emptyCurrent)
override;
219 void setCircleDebugLayerVisu(
const std::string& circleName,
const Vector3BasePtr& globalPosition,
const Vector3BasePtr& directionVec,
Ice::Float radius,
Ice::Float circleCompletion,
Ice::Float width,
const DrawColor& color,
const Ice::Current& = Ice::emptyCurrent)
override;
220 void removeCircleVisu(
const std::string& layerName,
const std::string& circleName,
const Ice::Current& = Ice::emptyCurrent)
override;
232 void setRobotVisu(
const std::string& layerName,
const std::string& robotName,
const std::string& robotFile,
const std::string& armarxProject, DrawStyle drawStyle, const ::Ice::Current& = Ice::emptyCurrent)
override;
233 void updateRobotPose(
const std::string& layerName,
const std::string& robotName, const ::armarx::PoseBasePtr& globalPose, const ::Ice::Current& = Ice::emptyCurrent)
override;
234 void updateRobotConfig(
const std::string& layerName,
const std::string& robotName,
const std::map< std::string, float>& configuration, const ::Ice::Current& = Ice::emptyCurrent)
override;
241 void updateRobotColor(
const std::string& layerName,
const std::string& robotName,
const armarx::DrawColor&
c, const ::Ice::Current& = Ice::emptyCurrent)
override;
242 void updateRobotNodeColor(
const std::string& layerName,
const std::string& robotName,
const std::string& robotNodeName,
const armarx::DrawColor&
c, const ::Ice::Current& = Ice::emptyCurrent)
override;
243 void removeRobotVisu(
const std::string& layerName,
const std::string& robotName, const ::Ice::Current& = Ice::emptyCurrent)
override;
245 void clearAll(const ::Ice::Current& = Ice::emptyCurrent)
override;
246 void clearLayer(
const std::string& layerName, const ::Ice::Current& = Ice::emptyCurrent)
override;
247 void clearDebugLayer(const ::Ice::Current& = Ice::emptyCurrent)
override;
249 bool hasLayer(
const std::string& layerName, const ::Ice::Current& = Ice::emptyCurrent)
override;
250 void removeLayer(
const std::string& layerName, const ::Ice::Current& = Ice::emptyCurrent)
override;
252 void enableLayerVisu(
const std::string& layerName,
bool visible, const ::Ice::Current& = Ice::emptyCurrent)
override;
255 ::Ice::StringSeq
layerNames(const ::Ice::Current& = Ice::emptyCurrent)
override;
256 ::armarx::LayerInformationSequence
layerInformation(const ::Ice::Current& = Ice::emptyCurrent)
override;
259 void enableAllLayers(const ::Ice::Current& = Ice::emptyCurrent)
override;
262 void enableSelections(
const std::string& layerName, const ::Ice::Current& = Ice::emptyCurrent)
override;
263 void disableSelections(
const std::string& layerName, const ::Ice::Current& = Ice::emptyCurrent)
override;
264 void clearSelections(
const std::string& layerName, const ::Ice::Current& = Ice::emptyCurrent)
override;
265 void select(
const std::string& layerName,
const std::string& elementName, const ::Ice::Current& = Ice::emptyCurrent)
override;
266 void deselect(
const std::string& layerName,
const std::string& elementName, const ::Ice::Current& = Ice::emptyCurrent)
override;
268 DebugDrawerSelectionList
getSelections(const ::Ice::Current& = Ice::emptyCurrent)
override;
275 void reportSelectionChanged(
const DebugDrawerSelectionList& selectedElements, const ::Ice::Current& = Ice::emptyCurrent)
override;
454 std::map < std::string, VirtualRobot::VisualizationFactory::Color >
nodeColors;
467 std::map<std::string, CoordData>
coord;
468 std::map<std::string, LineData>
line;
470 std::map<std::string, BoxData>
box;
471 std::map<std::string, TextData>
text;
472 std::map<std::string, SphereData>
sphere;
473 std::map<std::string, CircleData>
circle;
503 void drawBox(
const BoxData& d);
517 void removeLine(
const std::string& layerName,
const std::string& name);
518 void removeLineSet(
const std::string& layerName,
const std::string& name);
519 void removeBox(
const std::string& layerName,
const std::string& name);
520 void removeText(
const std::string& layerName,
const std::string& name);
521 void removeSphere(
const std::string& layerName,
const std::string& name);
522 void removeCylinder(
const std::string& layerName,
const std::string& name);
523 void removeCircle(
const std::string& layerName,
const std::string& name);
524 void removePointCloud(
const std::string& layerName,
const std::string& name);
527 void removePolygon(
const std::string& layerName,
const std::string& name);
528 void removeTriMesh(
const std::string& layerName,
const std::string& name);
529 void removeArrow(
const std::string& layerName,
const std::string& name);
530 void removeRobot(
const std::string& layerName,
const std::string& name);
596 std::map<const std::string, Layer>
layers;
void remove24BitColoredPointCloudVisu(const std::string &layerName, const std::string &pointCloudName, const ::Ice::Current &=Ice::emptyCurrent) override
Contains data for a layer.
void removeSelectionCallbacks()
void removeArrowDebugLayerVisu(const std::string &arrowName, const ::Ice::Current &=Ice::emptyCurrent) override
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 drawPointCloud(const PointCloudData &d)
void setColoredPointCloudVisu(const std::string &layerName, const std::string &pointCloudName, const DebugDrawerColoredPointCloud &pointCloud, const ::Ice::Current &=Ice::emptyCurrent) override
void remove24BitColoredPointCloud(const std::string &layerName, const std::string &name)
std::map< std::string, SoSeparator * > added24BitColoredPointCloudVisualizations
void drawPolygon(const PolygonData &d)
::armarx::LayerInformationSequence layerInformation(const ::Ice::Current &=Ice::emptyCurrent) override
void removeArrowVisu(const std::string &layerName, const std::string &arrowName, 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
static std::recursive_mutex selectionMutex
void drawRobot(const RobotData &d)
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
void setSphereDebugLayerVisu(const std::string &sphereName, const ::armarx::Vector3BasePtr &globalPosition, const DrawColor &color, float radius, const ::Ice::Current &=Ice::emptyCurrent) override
std::map< std::string, VirtualRobot::RobotPtr > activeRobots
void setDefaultLayerVisibility(const std::string &layerName, bool defaultLayerVisibility)
const VariantTypeId Float
The DebugDrawerComponent class.
std::string getDefaultName() const override
Retrieve default name of component.
VirtualRobot::VisualizationFactory::Color colorBorder
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
std::map< std::string, SoSeparator * > addedPolygonVisualizations
VirtualRobot::VisualizationFactory::Color color
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 onInitComponent() override
Pure virtual hook for the subclass.
void removeAccumulatedData(const std::string &layerName)
DebugDrawer24BitColoredPointCloud pointCloud
std::map< std::string, CircleData > circle
void removeCircleDebugLayerVisu(const std::string &circleName, const Ice::Current &=Ice::emptyCurrent) override
std::map< std::string, SoSeparator * > addedCircleVisualizations
armarx::DrawStyle drawStyle
bool getDefaultLayerVisibility(const std::string &layerName) const
std::map< std::string, float > configuration
PropertyDefinitionsPtr createPropertyDefinitions() override
void removePoseDebugLayerVisu(const std::string &poseName, const ::Ice::Current &=Ice::emptyCurrent) override
UpdateData accumulatedUpdateData
virtual void onRemoveAccumulatedData(const std::string &layerName)
VirtualRobot::VisualizationFactory::Color color
RecursiveMutexLockPtr getScopedVisuLock()
getScopedLock If using the coin visualization it must be ensured that all rendering calls are protect...
void reportSelectionChanged(const DebugDrawerSelectionList &selectedElements, const ::Ice::Current &=Ice::emptyCurrent) override
std::map< std::string, bool > defaultLayerVisibilityPerLayer
void set24BitColoredPointCloudDebugLayerVisu(const std::string &pointCloudName, const DebugDrawer24BitColoredPointCloud &pointCloud, const ::Ice::Current &=Ice::emptyCurrent) override
void removeSphereVisu(const std::string &layerName, const std::string &sphereName, const ::Ice::Current &=Ice::emptyCurrent) override
std::map< std::string, PointCloudData > pointcloud
std::map< std::string, SoSeparator * > addedColoredPointCloudVisualizations
std::map< std::string, SoSeparator * > addedLineVisualizations
std::set< std::string > selectableLayers
void removePointCloudDebugLayerVisu(const std::string &pointCloudName, const ::Ice::Current &=Ice::emptyCurrent) override
void updateVisualization()
std::map< std::string, SoSeparator * > addedCoordVisualizations
void deselect(const std::string &layerName, const std::string &elementName, const ::Ice::Current &=Ice::emptyCurrent) override
void enableDebugLayerVisu(bool visible, const ::Ice::Current &=Ice::emptyCurrent) override
bool update
Whether an existing visu should be updated.
void clearLayerQt(const std::string &layerName)
Eigen::Matrix4f globalPose
std::string prefix
Prefix of the properties such as namespace, domain, component name, etc.
std::map< std::string, SphereData > sphere
DebugDrawerPropertyDefinitions(std::string prefix)
void enableLayerVisu(const std::string &layerName, bool visible, const ::Ice::Current &=Ice::emptyCurrent) override
void setTriMeshDebugLayerVisu(const std::string &triMeshName, const DebugDrawerTriMesh &triMesh, const ::Ice::Current &=Ice::emptyCurrent) override
std::map< std::string, Colored24BitPointCloudData > colored24Bitpointcloud
std::map< std::string, TriMeshData > triMeshes
void removePointCloudVisu(const std::string &layerName, const std::string &pointCloudName, 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
VirtualRobot::VisualizationFactory::Color color
SoTimerSensor * timerSensor
void drawCircle(const DebugDrawerComponent::CircleData &d)
bool hasLayer(const std::string &layerName, const ::Ice::Current &=Ice::emptyCurrent) override
void drawTriMesh(const TriMeshData &d)
void removeLineSet(const std::string &layerName, const std::string &name)
void setLineSetDebugLayerVisu(const std::string &lineSetName, const DebugDrawerLineSet &lineSet, const ::Ice::Current &=Ice::emptyCurrent) override
std::map< std::string, SoSeparator * > addedArrowVisualizations
void clearAll(const ::Ice::Current &=Ice::emptyCurrent) override
void removeLineSetVisu(const std::string &layerName, const std::string &lineSetName, const ::Ice::Current &=Ice::emptyCurrent) override
void ensureExistingRobotNodes(DebugDrawerComponent::RobotData &d)
ensureExistingRobotNodes Checks if all robotnodes of configuration exist in robot....
DebugDrawerSelectionList getSelections(const ::Ice::Current &=Ice::emptyCurrent) override
void removeRobotVisu(const std::string &layerName, const std::string &robotName, const ::Ice::Current &=Ice::emptyCurrent) override
VirtualRobot::VisualizationFactory::Color colorInner
void exportLayer(const std::string &filename, const std::string &layerName, const ::Ice::Current &=Ice::emptyCurrent) override
RecursiveMutexPtr mutex
The coin mutex.
RecursiveMutexPtr topicMutex
void removeBoxDebugLayerVisu(const std::string &boxName, const ::Ice::Current &=Ice::emptyCurrent) override
static void updateVisualizationCB(void *data, SoSensor *sensor)
void removeColoredPointCloudVisu(const std::string &layerName, const std::string &pointCloudName, const ::Ice::Current &=Ice::emptyCurrent) override
void removeCoordSystem(const std::string &layerName, const std::string &name)
std::map< std::string, SoSeparator * > addedTextVisualizations
bool getDefaultLayerVisibility() const
VirtualRobot::RobotPtr requestRobot(const RobotData &d)
void removeRobot(const std::string &layerName, const std::string &name)
void removeColoredPointCloudDebugLayerVisu(const std::string &pointCloudName, const ::Ice::Current &=Ice::emptyCurrent) override
void removeSphere(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 removePolygonDebugLayerVisu(const std::string &polygonName, 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
std::vector< Eigen::Vector3f > points
void removeSphereDebugLayerVisu(const std::string &sphereName, const ::Ice::Current &=Ice::emptyCurrent) override
std::unique_lock< RecursiveMutex > RecursiveMutexLock
void clearDebugLayer(const ::Ice::Current &=Ice::emptyCurrent) override
std::map< std::string, BoxData > box
VirtualRobot::VisualizationFactory::Color color
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 removePoseVisu(const std::string &layerName, const std::string &poseName, const ::Ice::Current &=Ice::emptyCurrent) override
void drawCylinder(const CylinderData &d)
std::map< std::string, RobotData > robots
void setDefaultLayerVisibility(bool defaultLayerVisibility)
void removeLineVisu(const std::string &layerName, const std::string &lineName, const ::Ice::Current &=Ice::emptyCurrent) override
std::map< std::string, SoSeparator * > addedCylinderVisualizations
void removeCylinderVisu(const std::string &layerName, const std::string &cylinderName, const ::Ice::Current &=Ice::emptyCurrent) override
SoSeparator * getVisualization()
getVisualization Ensure that all access to this node is protected with the scoped lock mutex.
void deselectionCallback()
uint32_t Color
RGBA color.
std::map< std::string, SoSeparator * > addedCustomVisualizations
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 removeTextVisu(const std::string &layerName, const std::string &textName, const ::Ice::Current &=Ice::emptyCurrent) override
std::map< std::string, VirtualRobot::RobotPtr > loadedRobots
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 drawArrow(const ArrowData &d)
VirtualRobot::VisualizationFactory::Color color
void updateRobotConfig(const std::string &layerName, const std::string &robotName, const std::map< std::string, float > &configuration, const ::Ice::Current &=Ice::emptyCurrent) override
std::map< std::string, SoSeparator * > addedBoxVisualizations
VirtualRobot::VisualizationFactory::Color color
virtual void onUpdateVisualization()
onUpdateVisualization derived methods can overwrite this method to update custom visualizations.
void removeTriMeshVisu(const std::string &layerName, const std::string &triMeshName, const ::Ice::Current &=Ice::emptyCurrent) override
std::map< std::string, SoSeparator * > addedPointCloudVisualizations
void enableSelections(const std::string &layerName, const ::Ice::Current &=Ice::emptyCurrent) override
void setMutex(RecursiveMutexPtr const &m)
std::recursive_mutex RecursiveMutex
void setPoseVisu(const std::string &layerName, const std::string &poseName, const ::armarx::PoseBasePtr &globalPose, const ::Ice::Current &=Ice::emptyCurrent) override
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 removeBox(const std::string &layerName, const std::string &name)
std::set< std::string > clearLayers
DebugDrawerListenerPrx listenerPrx
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 setLineSetVisu(const std::string &layerName, const std::string &lineSetName, const DebugDrawerLineSet &lineSet, const ::Ice::Current &=Ice::emptyCurrent) override
void remove24BitColoredPointCloudDebugLayerVisu(const std::string &pointCloudName, const ::Ice::Current &=Ice::emptyCurrent) override
void updateRobotNodeColor(const std::string &layerName, const std::string &robotName, const std::string &robotNodeName, const armarx::DrawColor &c, const ::Ice::Current &=Ice::emptyCurrent) override
Eigen::Vector3f direction
RecursiveMutexLockPtr getScopedAccumulatedDataLock()
void removeCylinderDebugLayerVisu(const std::string &cylinderName, const ::Ice::Current &=Ice::emptyCurrent) override
std::mutex timerSensorMutex
void removePolygon(const std::string &layerName, const std::string &name)
void exportScene(const std::string &filename, const ::Ice::Current &=Ice::emptyCurrent) override
void draw24BitColoredPointCloud(const Colored24BitPointCloudData &d)
DebugDrawerColoredPointCloud pointCloud
virtual void setColoredPointCloudDebugLayerVisu(const std::string &pointCloudName, const DebugDrawerColoredPointCloud &pointCloud, const ::Ice::Current &=Ice::emptyCurrent)
void setLayerVisibility(const std::string &layerName, bool visible)
std::set< std::string > removeLayers
void removeCircleVisu(const std::string &layerName, const std::string &circleName, 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...
DebugDrawerPointCloud pointCloud
void removeCylinder(const std::string &layerName, const std::string &name)
std::map< std::string, VirtualRobot::VisualizationFactory::Color > nodeColors
VirtualRobot::VisualizationFactory::Color color
std::map< std::string, CylinderData > cylinder
std::string armarxProject
Baseclass for all ArmarX ManagedIceObjects requiring properties.
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
std::map< std::string, SoSeparator * > addedSphereVisualizations
bool defaultLayerVisibility
void enableAllLayers(const ::Ice::Current &=Ice::emptyCurrent) override
void removeCircle(const std::string &layerName, const std::string &name)
RecursiveMutexPtr dataUpdateMutex
The data update mutex.
std::map< std::string, TextData > text
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
std::shared_ptr< RecursiveMutex > RecursiveMutexPtr
void removeDefaultLayerVisibility(const std::string &layerName)
std::string getConfigIdentifier()
Retrieve config identifier for this component as set in constructor.
void removeLayerQt(const std::string &layerName)
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
virtual void removeCustomVisu(const std::string &layerName, const std::string &name)
MatrixXX< 4, 4, float > Matrix4f
void clearLayer(const std::string &layerName, 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 drawLine(const LineData &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
Eigen::Matrix4f globalPose
std::map< std::string, SoSeparator * > addedLineSetVisualizations
Default component property definition container.
void setPointCloudDebugLayerVisu(const std::string &pointCloudName, const DebugDrawerPointCloud &pointCloud, const ::Ice::Current &=Ice::emptyCurrent) override
void removeTriMeshDebugLayerVisu(const std::string &triMeshName, const ::Ice::Current &=Ice::emptyCurrent) override
void removeText(const std::string &layerName, const std::string &name)
std::map< std::string, ArrowData > arrows
std::map< std::string, PolygonData > polygons
void removeColoredPointCloud(const std::string &layerName, const std::string &name)
DebugDrawerComponent()
DebugDrawerComponent Constructs a debug drawer.
void installSelectionCallbacks()
Eigen::Vector3f direction
std::map< std::string, ColoredPointCloudData > coloredpointcloud
void onConnectComponent() override
Pure virtual hook for the subclass.
DebugDrawerLineSet lineSet
std::map< std::string, SoSeparator * > addedTriMeshVisualizations
void removeLineDebugLayerVisu(const std::string &lineName, const ::Ice::Current &=Ice::emptyCurrent) override
void drawBox(const BoxData &d)
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 removePointCloud(const std::string &layerName, const std::string &name)
::Ice::StringSeq layerNames(const ::Ice::Current &=Ice::emptyCurrent) override
void removeLineSetDebugLayerVisu(const std::string &lineSetName, const ::Ice::Current &=Ice::emptyCurrent) override
void setPoseDebugLayerVisu(const std::string &poseName, const ::armarx::PoseBasePtr &globalPose, const ::Ice::Current &=Ice::emptyCurrent) override
std::shared_ptr< RecursiveMutexLock > RecursiveMutexLockPtr
void removePolygonVisu(const std::string &layerName, const std::string &polygonName, const ::Ice::Current &=Ice::emptyCurrent) override
void onExitComponent() override
Hook for subclass.
Eigen::Matrix4f globalPose
void removeTriMesh(const std::string &layerName, const std::string &name)
std::map< std::string, CoordData > coord
void drawLineSet(const LineSetData &d)
void drawColoredPointCloud(const ColoredPointCloudData &d)
VirtualRobot::VisualizationFactory::Color color
std::map< std::string, LineData > line
DebugDrawerTriMesh triMesh
IceUtil::Handle< class PropertyDefinitionContainer > PropertyDefinitionsPtr
PropertyDefinitions smart pointer type.
void removeArrow(const std::string &layerName, const std::string &name)
void removeBoxVisu(const std::string &layerName, const std::string &boxName, const ::Ice::Current &=Ice::emptyCurrent) override
void drawSphere(const SphereData &d)
void onDisconnectComponent() override
Hook for subclass.
void setScaledPoseDebugLayerVisu(const std::string &poseName, const ::armarx::PoseBasePtr &globalPose, const ::Ice::Float scale, const ::Ice::Current &=Ice::emptyCurrent) override
void setPointCloudVisu(const std::string &layerName, 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 setVisuUpdateTime(float visuUpdatesPerSec)
setVisuUpdateTime Specifies how often the accumulated draw commands should be applied to the visualiz...
std::map< std::string, bool > getAllDefaultLayerVisibilities() const
void set24BitColoredPointCloudVisu(const std::string &layerName, const std::string &pointCloudName, const DebugDrawer24BitColoredPointCloud &pointCloud, const ::Ice::Current &=Ice::emptyCurrent) override
~DebugDrawerComponent() override
SoSeparator * layerMainNode
Main node for all layers.
void drawCoordSystem(const CoordData &d)
void clearSelections(const std::string &layerName, const ::Ice::Current &=Ice::emptyCurrent) override
void disableSelections(const std::string &layerName, const ::Ice::Current &=Ice::emptyCurrent) override
void drawText(const TextData &d)
This file offers overloads of toIce() and fromIce() functions for STL container types.
std::map< std::string, LineSetData > lineSet
Eigen::Vector3f direction
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 removeLayer(const std::string &layerName, const ::Ice::Current &=Ice::emptyCurrent) override
std::shared_ptr< class Robot > RobotPtr
void select(const std::string &layerName, const std::string &elementName, const ::Ice::Current &=Ice::emptyCurrent) override
std::map< std::string, SoSeparator * > addedRobotVisualizations
void disableAllLayers(const ::Ice::Current &=Ice::emptyCurrent) override
SoSelection * selectionNode
void removeLine(const std::string &layerName, const std::string &name)
std::map< const std::string, Layer > layers
All existing layers.