22#ifndef ADVANCEDVISUALIZATIONFACTORY_H
23#define ADVANCEDVISUALIZATIONFACTORY_H
27#include <VirtualRobot/Primitive.h>
28#include <VirtualRobot/Robot.h>
29#include <VirtualRobot/Visualization/VisualizationFactory.h>
30#include <VirtualRobot/Visualization/VisualizationNode.h>
33#include "VirtualRobot/BoundingBox.h"
34#include "VirtualRobot/MathTools.h"
35#include "VirtualRobot/Trajectory.h"
36#include "VirtualRobot/Visualization/TriMeshModel.h"
60 init(
int& argc,
char* argv[],
const std::string& appName)
override
64 virtual VirtualRobot::VisualizationNodePtr
66 const std::vector<VirtualRobot::Primitive::PrimitivePtr>& primitives,
67 bool boundingBox =
false,
68 Color color = Color::Gray())
override
70 return component.getVisualizationFromPrimitives(primitives, boundingBox, color);
73 virtual VirtualRobot::VisualizationNodePtr
75 bool boundingBox =
false,
78 float scaleZ = 1.0f)
override
80 return component.getVisualizationFromFile(
81 filename, boundingBox, scaleX, scaleY, scaleZ);
84 virtual VirtualRobot::VisualizationNodePtr
86 bool boundingBox =
false,
89 float scaleZ = 1.0f)
override
91 return component.getVisualizationFromFile(ifs, boundingBox, scaleX, scaleY, scaleZ);
94 virtual VirtualRobot::VisualizationNodePtr
100 float colorB = 0.5f)
override
102 return component.createBox(width, height, depth, colorR, colorG, colorB);
105 virtual VirtualRobot::VisualizationNodePtr
107 const Eigen::Vector3f& to,
111 float colorB = 0.5f)
override
113 return component.createLine(from, to, width, colorR, colorG, colorB);
116 virtual VirtualRobot::VisualizationNodePtr
118 const Eigen::Matrix4f& to,
122 float colorB = 0.5f)
override
124 return component.createLine(from, to, width, colorR, colorG, colorB);
127 virtual VirtualRobot::VisualizationNodePtr
131 float colorB = 0.5f)
override
133 return component.createSphere(radius, colorR, colorG, colorB);
136 virtual VirtualRobot::VisualizationNodePtr
138 float circleCompletion,
143 size_t numberOfCircleParts = 30)
override
146 radius, circleCompletion, width, colorR, colorG, colorB, numberOfCircleParts);
149 virtual VirtualRobot::VisualizationNodePtr
152 float completion = 1.0f,
156 float transparency = 0.0f,
158 int rings = 30)
override
161 radius, tubeRadius, completion, colorR, colorG, colorB, transparency, sides, rings);
164 virtual VirtualRobot::VisualizationNodePtr
167 float completion = 1,
171 float transparency = 0.0f,
173 int rings = 30)
override
176 radius, tubeRadius, completion, colorR, colorG, colorB, transparency, sides, rings);
179 virtual VirtualRobot::VisualizationNodePtr
184 float colorB = 0.5f)
override
186 return component.createCylinder(radius, height, colorR, colorG, colorB);
189 virtual VirtualRobot::VisualizationNodePtr
191 std::string* text = NULL,
192 float axisLength = 100.0f,
193 float axisSize = 3.0f,
194 int nrOfBlocks = 10)
override
196 return component.createCoordSystem(scaling, text, axisLength, axisSize, nrOfBlocks);
199 virtual VirtualRobot::VisualizationNodePtr
202 return component.createBoundingBox(bbox, wireFrame);
205 virtual VirtualRobot::VisualizationNodePtr
211 float colorB = 0.5f)
override
213 return component.createVertexVisualization(
214 position, radius, transparency, colorR, colorG, colorB);
217 virtual VirtualRobot::VisualizationNodePtr
219 Eigen::Matrix4f& pose,
222 float scaleZ = 1.0f)
override
224 return component.createTriMeshModelVisualization(model, pose, scaleX, scaleY, scaleZ);
227 virtual VirtualRobot::VisualizationNodePtr
230 Eigen::Matrix4f& pose,
231 bool showLines =
true)
override
233 return component.createTriMeshModelVisualization(model, showNormals, pose, showLines);
236 virtual VirtualRobot::VisualizationNodePtr
238 const Eigen::Vector3f& normal,
243 float colorB = 0.5f)
override
246 position, normal, extend, transparency, colorR, colorG, colorB);
249 virtual VirtualRobot::VisualizationNodePtr
255 float colorB = 0.5f)
override
257 return component.createPlane(plane, extend, transparency, colorR, colorG, colorB);
260 virtual VirtualRobot::VisualizationNodePtr
262 float length = 50.0f,
264 const Color& color = Color::Gray())
override
266 return component.createArrow(n, length, width, color);
269 virtual VirtualRobot::VisualizationNodePtr
271 Color colorNode = Color::Blue(),
272 Color colorLine = Color::Gray(),
273 float nodeSize = 15.0f,
274 float lineSize = 4.0f)
override
276 return component.createTrajectory(t, colorNode, colorLine, nodeSize, lineSize);
279 virtual VirtualRobot::VisualizationNodePtr
281 bool billboard =
false,
282 float scaling = 1.0f,
284 float offsetX = 20.0f,
285 float offsetY = 20.0f,
286 float offsetZ = 0.0f)
override
288 return component.createText(text, billboard, scaling,
c, offsetX, offsetY, offsetZ);
291 virtual VirtualRobot::VisualizationNodePtr
295 bool showAxes =
true,
296 float axesHeight = 4.0f,
297 float axesWidth = 8.0f)
override
299 return component.createEllipse(
x, y, z, showAxes, axesHeight, axesWidth);
307 virtual VirtualRobot::VisualizationNodePtr
313 virtual VirtualRobot::VisualizationNodePtr
315 const std::vector<VirtualRobot::VisualizationNodePtr>& visualizations)
const override
317 return component.createUnitedVisualization(visualizations);
326 virtual VirtualRobot::VisualizationNodePtr
327 createCurve(
const std::vector<PoseBasePtr> transition,
bool highligt);
The AdvancedVisualizationFactory class is the abstract decorator of the Decorator-Pattern and decorat...
virtual VirtualRobot::VisualizationNodePtr createCoordSystem(float scaling=1.0f, std::string *text=NULL, float axisLength=100.0f, float axisSize=3.0f, int nrOfBlocks=10) override
virtual VirtualRobot::VisualizationNodePtr createCurve(const std::vector< PoseBasePtr > transition, bool highligt)
createCurve creates the visualization of a curve that goes through the Waypoints in transition
virtual VirtualRobot::VisualizationNodePtr createEllipse(float x, float y, float z, bool showAxes=true, float axesHeight=4.0f, float axesWidth=8.0f) override
virtual VirtualRobot::VisualizationNodePtr getVisualizationFromFile(const std::string &filename, bool boundingBox=false, float scaleX=1.0f, float scaleY=1.0f, float scaleZ=1.0f) override
virtual VirtualRobot::VisualizationNodePtr createCircleArrow(float radius, float tubeRadius, float completion=1, float colorR=0.5f, float colorG=0.5f, float colorB=0.5f, float transparency=0.0f, int sides=8, int rings=30) override
AbstractManipulatorVisualizationPtr createManipulator(VirtualRobot::RobotNodeSetPtr kc, VirtualRobot::RobotPtr robot)
createManipulator
virtual VirtualRobot::VisualizationNodePtr createTorus(float radius, float tubeRadius, float completion=1.0f, float colorR=0.5f, float colorG=0.5f, float colorB=0.5f, float transparency=0.0f, int sides=8, int rings=30) override
virtual VirtualRobot::VisualizationNodePtr createTriMeshModelVisualization(VirtualRobot::TriMeshModelPtr model, Eigen::Matrix4f &pose, float scaleX=1.0f, float scaleY=1.0f, float scaleZ=1.0f) override
virtual VirtualRobot::VisualizationNodePtr createLine(const Eigen::Vector3f &from, const Eigen::Vector3f &to, float width=1.0f, float colorR=0.5f, float colorG=0.5f, float colorB=0.5f) override
virtual void applyDisplacement(VirtualRobot::VisualizationNodePtr o, Eigen::Matrix4f &m) override
virtual VirtualRobot::VisualizationNodePtr getVisualizationFromPrimitives(const std::vector< VirtualRobot::Primitive::PrimitivePtr > &primitives, bool boundingBox=false, Color color=Color::Gray()) override
virtual VirtualRobot::VisualizationNodePtr createVertexVisualization(const Eigen::Vector3f &position, float radius, float transparency, float colorR=0.5f, float colorG=0.5f, float colorB=0.5f) override
virtual VirtualRobot::VisualizationNodePtr getVisualizationFromFile(const std::ifstream &ifs, bool boundingBox=false, float scaleX=1.0f, float scaleY=1.0f, float scaleZ=1.0f) override
virtual VirtualRobot::VisualizationNodePtr createVisualization() override
VisualizationFactory component
virtual VirtualRobot::VisualizationNodePtr createLine(const Eigen::Matrix4f &from, const Eigen::Matrix4f &to, float width=1.0f, float colorR=0.5f, float colorG=0.5f, float colorB=0.5f) override
virtual VirtualRobot::VisualizationNodePtr createSphere(float radius, float colorR=0.5f, float colorG=0.5f, float colorB=0.5f) override
virtual VirtualRobot::VisualizationNodePtr createTriMeshModelVisualization(VirtualRobot::TriMeshModelPtr model, bool showNormals, Eigen::Matrix4f &pose, bool showLines=true) override
virtual VirtualRobot::VisualizationNodePtr createArrow(const Eigen::Vector3f &n, float length=50.0f, float width=2.0f, const Color &color=Color::Gray()) override
virtual void init(int &argc, char *argv[], const std::string &appName) override
virtual VirtualRobot::VisualizationNodePtr createTrajectory(VirtualRobot::TrajectoryPtr t, Color colorNode=Color::Blue(), Color colorLine=Color::Gray(), float nodeSize=15.0f, float lineSize=4.0f) override
virtual VirtualRobot::VisualizationNodePtr createBoundingBox(const VirtualRobot::BoundingBox &bbox, bool wireFrame=false) override
virtual VirtualRobot::VisualizationNodePtr createBox(float width, float height, float depth, float colorR=0.5f, float colorG=0.5f, float colorB=0.5f) override
virtual VirtualRobot::VisualizationNodePtr createCylinder(float radius, float height, float colorR=0.5f, float colorG=0.5f, float colorB=0.5f) override
virtual VirtualRobot::VisualizationNodePtr createUnitedVisualization(const std::vector< VirtualRobot::VisualizationNodePtr > &visualizations) const override
virtual VirtualRobot::VisualizationNodePtr createPlane(const VirtualRobot::MathTools::Plane &plane, float extend, float transparency, float colorR=0.5f, float colorG=0.5f, float colorB=0.5f) override
virtual VirtualRobot::VisualizationNodePtr createText(const std::string &text, bool billboard=false, float scaling=1.0f, Color c=Color::Black(), float offsetX=20.0f, float offsetY=20.0f, float offsetZ=0.0f) override
virtual VirtualRobot::VisualizationNodePtr createPlane(const Eigen::Vector3f &position, const Eigen::Vector3f &normal, float extend, float transparency, float colorR=0.5f, float colorG=0.5f, float colorB=0.5f) override
virtual VirtualRobot::VisualizationNodePtr createCircle(float radius, float circleCompletion, float width, float colorR=1.0f, float colorG=0.5f, float colorB=0.5f, size_t numberOfCircleParts=30) override
uint32_t Color
RGBA color.
std::shared_ptr< class Robot > RobotPtr
This file offers overloads of toIce() and fromIce() functions for STL container types.
std::shared_ptr< AdvancedVisualizationFactory > AdvancedVisualizationFactoryPtr
std::shared_ptr< AbstractManipulatorVisualization > AbstractManipulatorVisualizationPtr