Skip to content
Snippets Groups Projects
Commit e85a2b1d authored by Peter Kaiser's avatar Peter Kaiser
Browse files

Documentation: Reworked DebugDrawer

parent 4c9608d5
No related branches found
No related tags found
No related merge requests found
/**
\addtogroup Components 5. Components
Components are the main building blocks of ArmarX and offer services for other applications via Ice.
Each component usually implements one Ice interface by which it offers its services.
They can be configured with \ref armarx-componentproperties via config files.
\defgroup RobotAPI-Components RobotAPI Components
\ingroup RobotAPI Components
Robot related components like RobotStateComponent
\brief  
...
Components are the main building blocks of ArmarX and offer services to other applications via Ice.
Each component usually implements an interface through which it can be accessed.
*/
......@@ -24,9 +24,6 @@
\defgroup RobotAPI-SensorActorUnits-util Sensor-Actor Units Utility
\ingroup RobotAPI-SensorActorUnits
Utility and helper classes associated with Sensor-Actor Units.
*/
/**
\defgroup RobotAPI-Statecharts RobotAPI Statecharts
\ingroup RobotAPI Statecharts
Statecharts related to RobotAPI
\brief  
*/
......@@ -64,44 +64,36 @@ public:
};
/*!
\class DebugDrawerComponent
\ingroup RobotAPI-Components
* \brief The DebugDrawerComponent class implements a component that listens to layered / debug drawer commands and creates internal representations of the visualization
* which can be conveniently used by gui components to visualize the content.
* \class DebugDrawerComponent
* \ingroup RobotAPI-Components
* \brief Visualizes debug information.
*
* An exemplary usage looks like this:
\verbatim
DebugDrawerInterfacePrx prxDD = getTopic<DebugDrawerInterfacePrx>("DebugDrawerUpdates");
if (prxDD)
{
// draw in global coordinate system
Eigen::Matrix4f p;
p.setIdentity();
p(2,3) = 1000.0f;
PosePtr gp(new Pose(p));
prxDD->setPoseDebugLayerVisu("testPose",gp);
armarx::Vector3Ptr p1(new armarx::Vector3());
p1->x = 0;
p1->y = 0;
p1->z = 0;
armarx::Vector3Ptr p2(new armarx::Vector3());
p2->x = 1000.0f;
p2->y = 1000.0f;
p2->z = 1000.0f;
armarx::DrawColor c;
c.r = 1.0f;
c.g = 0;
c.b = 0;
c.a = 1;
prxDD->setLineDebugLayerVisu("testLine", p1, p2, 2.0f, c);
}
\endverbatim
* The DebugDrawerComponent implements the DebugDrawerInterface and provides a convenient way for visualizing debug information.
* It creates a scene graph representation of the debug content and offers it to visualization components.
* Several GUI plugins visualize this debug scene graph, among others:
* - RobotViewer (RobotAPI)
* - WorkingMemoryGui (MemoryX)
* - SimulatorViewer (SimulationX)
*
* The following plugins listen to the DebugDrawer topic:
* \see armarx::SimulatorControlGuiPlugin
* \see memoryx::WorkingMemoryGuiPlugin
* The following example shows an exemplary debug drawing:
\code
DebugDrawerInterfacePrx prxDD = getTopic<DebugDrawerInterfacePrx>("DebugDrawerUpdates");
if (prxDD)
{
// draw in global coordinate system
Eigen::Matrix4f p;
p.setIdentity();
p(2,3) = 1000.0f;
PosePtr gp(new Pose(p));
prxDD->setPoseDebugLayerVisu("testPose",gp);
armarx::Vector3Ptr p1(new armarx::Vector3(0, 0, 0));
armarx::Vector3Ptr p2(new armarx::Vector3(1000, 1000, 1000));
armarx::DrawColor c = {1, 0, 0, 1}; // RGBA
prxDD->setLineDebugLayerVisu("testLine", p1, p2, 2.0f, c);
}
\endcode
*/
class DebugDrawerComponent :
virtual public armarx::DebugDrawerInterface,
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment