opensurgsim
VectorFieldRepresentation.h
1 // This file is a part of the OpenSurgSim project.
2 // Copyright 2013, SimQuest Solutions Inc.
3 //
4 // Licensed under the Apache License, Version 2.0 (the "License");
5 // you may not use this file except in compliance with the License.
6 // You may obtain a copy of the License at
7 //
8 // http://www.apache.org/licenses/LICENSE-2.0
9 //
10 // Unless required by applicable law or agreed to in writing, software
11 // distributed under the License is distributed on an "AS IS" BASIS,
12 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 // See the License for the specific language governing permissions and
14 // limitations under the License.
15 
16 #ifndef SURGSIM_GRAPHICS_VECTORFIELDREPRESENTATION_H
17 #define SURGSIM_GRAPHICS_VECTORFIELDREPRESENTATION_H
18 
19 #include "SurgSim/Graphics/Representation.h"
20 #include "SurgSim/Graphics/VectorField.h"
21 
22 namespace SurgSim
23 {
24 namespace Graphics
25 {
26 
27 
31 {
32 public:
35  explicit VectorFieldRepresentation(const std::string& name) : Representation(name)
36  {
37  }
38 
41  {
42  }
43 
46  virtual std::shared_ptr<SurgSim::Graphics::VectorField> getVectorField() const = 0;
47 
50  virtual void updateVectorField(const SurgSim::Graphics::VectorField& vectorfield) = 0;
51 
54  virtual void setLineWidth(double width) = 0;
57  virtual double getLineWidth() const = 0;
58 
61  virtual void setScale(double scale) = 0;
64  virtual double getScale() const = 0;
65 
68  virtual void setPointSize(double size) = 0;
71  virtual double getPointSize() const = 0;
72 };
73 
74 }; // Graphics
75 }; // SurgSim
76 
77 #endif // SURGSIM_GRAPHICS_VECTORFIELDREPRESENTATION_H
virtual void updateVectorField(const SurgSim::Graphics::VectorField &vectorfield)=0
Updates the vector field in a threadsafe manner.
virtual void setPointSize(double size)=0
Sets the size of point indicating the starting of vector.
Wraps glewInit() to separate the glew opengl definitions from the osg opengl definitions only imgui n...
Definition: AddRandomSphereBehavior.cpp:36
Graphic representation of a vector field Each point/location, i.e.
Definition: VectorFieldRepresentation.h:30
virtual double getScale() const =0
Gets the scale applied to all vectors.
virtual void setScale(double scale)=0
Sets the scale to be applied to all vectors.
virtual double getLineWidth() const =0
Gets line width.
virtual void setLineWidth(double width)=0
Sets vector line width.
Base graphics representation class, which defines the interface that all graphics representations mus...
Definition: Representation.h:40
VectorFieldRepresentation(const std::string &name)
Constructor.
Definition: VectorFieldRepresentation.h:35
virtual ~VectorFieldRepresentation()
Destructor.
Definition: VectorFieldRepresentation.h:40
virtual double getPointSize() const =0
Gets the size of starting point of a vector.
virtual std::shared_ptr< SurgSim::Graphics::VectorField > getVectorField() const =0
Gets the vector field.
Base class for mesh structures, handling basic vertex functionality.
Definition: Vertices.h:51