16 #ifndef SURGSIM_GRAPHICS_OSGVECTORFIELDREPRESENTATION_H 17 #define SURGSIM_GRAPHICS_OSGVECTORFIELDREPRESENTATION_H 19 #include "SurgSim/Framework/LockedContainer.h" 20 #include "SurgSim/Graphics/OsgRepresentation.h" 21 #include "SurgSim/Graphics/VectorFieldRepresentation.h" 22 #include "SurgSim/Graphics/VectorField.h" 25 #include <osg/Geometry> 26 #include <osg/LineWidth> 34 SURGSIM_STATIC_REGISTRATION(OsgVectorFieldRepresentation);
38 #pragma warning(disable:4250) 58 void setScale(
double scale)
override;
69 void doUpdate(
double dt)
override;
78 std::shared_ptr<SurgSim::Graphics::VectorField> m_vectorField;
83 osg::ref_ptr<osg::Vec3Array> m_vertexData;
86 osg::ref_ptr<osg::Geometry> m_lineGeometry;
88 osg::ref_ptr<osg::Geometry> m_pointGeometry;
91 osg::ref_ptr<osg::DrawArrays> m_drawArrays;
93 osg::ref_ptr<osg::DrawElementsUInt> m_drawPoints;
96 osg::ref_ptr<osg::LineWidth> m_line;
98 osg::ref_ptr<osg::Point> m_point;
101 osg::ref_ptr<osg::Vec4Array> m_colors;
107 #if defined(_MSC_VER) 114 #endif // SURGSIM_GRAPHICS_OSGVECTORFIELDREPRESENTATION_H double getScale() const override
Gets the scale applied to all vectors.
Definition: OsgVectorFieldRepresentation.cpp:184
Wraps glewInit() to separate the glew opengl definitions from the osg opengl definitions only imgui n...
Definition: AddRandomSphereBehavior.cpp:36
OSG vector field representation, implements a VectorFieldRepresenation using OSG. ...
Definition: OsgVectorFieldRepresentation.h:42
virtual double getPointSize() const
Gets the size of starting point of a vector.
Definition: OsgVectorFieldRepresentation.cpp:194
Graphic representation of a vector field Each point/location, i.e.
Definition: VectorFieldRepresentation.h:30
void setLineWidth(double width) override
Sets vector line width.
Definition: OsgVectorFieldRepresentation.cpp:169
std::shared_ptr< VectorField > getVectorField() const override
Gets the vector field.
Definition: OsgVectorFieldRepresentation.cpp:164
Vertex structure for meshes.
Definition: Vertex.h:44
void setScale(double scale) override
Sets the scale to be applied to all vectors.
Definition: OsgVectorFieldRepresentation.cpp:179
virtual void setPointSize(double size)
Sets the size of point indicating the starting of vector.
Definition: OsgVectorFieldRepresentation.cpp:189
void updateVectorField(const VectorField &vectorfield) override
Updates the vector field in a threadsafe manner.
Definition: OsgVectorFieldRepresentation.cpp:159
A simple thread-safe data container that can support multiple writers and readers.
Definition: LockedContainer.h:54
OsgVectorFieldRepresentation(const std::string &name)
Constructor.
Definition: OsgVectorFieldRepresentation.cpp:36
~OsgVectorFieldRepresentation()
Destructor.
Definition: OsgVectorFieldRepresentation.cpp:78
double getLineWidth() const override
Gets line width.
Definition: OsgVectorFieldRepresentation.cpp:174
Base OSG implementation of a graphics representation.
Definition: OsgRepresentation.h:55
Base class for mesh structures, handling basic vertex functionality.
Definition: Vertices.h:51