DynamicLines.hh
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2012 Open Source Robotics Foundation
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 */
17 #ifndef GAZEBO_RENDERING_DYNAMICLINES_HH
18 #define GAZEBO_RENDERING_DYNAMICLINES_HH
19 
20 #include <memory>
21 #include <vector>
22 #include <string>
23 #include <ignition/math/Color.hh>
24 
28 #include "gazebo/util/system.hh"
29 
30 namespace gazebo
31 {
32  namespace rendering
33  {
36 
38  class DynamicLinesPrivate;
39 
42  class GZ_RENDERING_VISIBLE DynamicLines : public DynamicRenderable
43  {
46  public: explicit DynamicLines(
48 
50  public: virtual ~DynamicLines();
51 
54  public: static std::string GetMovableType();
55 
58  public: virtual const Ogre::String &getMovableType() const;
59 
63  public: void AddPoint(const ignition::math::Vector3d &_pt,
64  const ignition::math::Color &_color = ignition::math::Color::White);
65 
71  public: void AddPoint(const double _x, const double _y, const double _z,
72  const ignition::math::Color &_color = ignition::math::Color::White);
73 
77  public: void SetPoint(const unsigned int _index,
78  const ignition::math::Vector3d &_value);
79 
84  public: void SetColor(const unsigned int _index,
85  const ignition::math::Color &_color);
86 
93  public: ignition::math::Vector3d Point(const unsigned int _index) const;
94 
97  public: unsigned int GetPointCount() const;
98 
100  public: void Clear();
101 
103  public: void Update();
104 
107  private: virtual void CreateVertexDeclaration();
108 
111  private: virtual void FillHardwareBuffers();
112 
114  private: std::vector<ignition::math::Vector3d> points;
115 
117  private: bool dirty;
118 
120  private: std::unique_ptr<DynamicLinesPrivate> dataPtr;
121  };
123  }
124 }
125 #endif
rendering
Definition: RenderEngine.hh:31
Class for drawing lines that can change.
Definition: DynamicLines.hh:43
virtual const Ogre::String & getMovableType() const
Overridden function from Ogre's base class.
unsigned int GetPointCount() const
Return the total number of points in the point list.
void AddPoint(const ignition::math::Vector3d &_pt, const ignition::math::Color &_color=ignition::math::Color::White)
Add a point to the point list.
void SetColor(const unsigned int _index, const ignition::math::Color &_color)
Change the color of an existing point in the point list.
ignition::math::Vector3d Point(const unsigned int _index) const
Return the location of an existing point in the point list.
void AddPoint(const double _x, const double _y, const double _z, const ignition::math::Color &_color=ignition::math::Color::White)
Add a point to the point list.
DynamicLines(RenderOpType _opType=RENDERING_LINE_STRIP)
Constructor.
static std::string GetMovableType()
Get type of movable.
void Clear()
Remove all points from the point list.
virtual ~DynamicLines()
Destructor.
void SetPoint(const unsigned int _index, const ignition::math::Vector3d &_value)
Change the location of an existing point in the point list.
void Update()
Call this to update the hardware buffer after making changes.
Abstract base class providing mechanisms for dynamically growing hardware buffers.
Definition: DynamicRenderable.hh:36
RenderOpType
Type of render operation for a drawable.
Definition: RenderTypes.hh:217
@ RENDERING_LINE_STRIP
A strip of connected lines, 1 vertex per line plus 1 start vertex.
Definition: RenderTypes.hh:226
Forward declarations for the common classes.
Definition: Animation.hh:27