Gazebo Rendering
API Reference
9.0.0
insert_drive_file
Tutorials
library_books
Classes
toc
Namespaces
insert_drive_file
Files
launch
Gazebo Website
Index
List
Hierarchy
Members: All
Members: Functions
Members: Variables
Members: Typedefs
Members: Enumerations
Members: Enumerator
List
Members
Functions
Typedefs
Variables
Enumerations
Enumerator
src
gz-rendering
ogre2
include
gz
rendering
ogre2
Ogre2DynamicRenderable.hh
Go to the documentation of this file.
1
/*
2
* Copyright (C) 2020 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 GZ_RENDERING_OGRE2_OGRE2DYNAMICRENDERABLE_HH_
18
#define GZ_RENDERING_OGRE2_OGRE2DYNAMICRENDERABLE_HH_
19
20
#include <memory>
21
#include <string>
22
#include <vector>
23
24
#include "gz/rendering/ogre2/Export.hh"
25
#include "
gz/rendering/ogre2/Ogre2RenderTypes.hh
"
26
#include "
gz/rendering/Marker.hh
"
27
28
#ifdef _MSC_VER
29
#pragma warning(push, 0)
30
#endif
31
#include <OgreHlmsPso.h>
32
#ifdef _MSC_VER
33
#pragma warning(pop)
34
#endif
35
36
namespace
Ogre
37
{
38
class
MovableObject;
39
}
40
41
namespace
gz
42
{
43
namespace
rendering
44
{
45
inline
namespace
GZ_RENDERING_VERSION_NAMESPACE {
46
//
47
// forward declarations
48
class
Ogre2DynamicRenderablePrivate;
49
50
/* \class Ogre2DynamicRenderable Ogre2DynamicRenderable.hh \
51
* gz/rendering/ogre2/Ogre2DynamicRenderable.hh
52
*/
55
class
GZ_RENDERING_OGRE2_VISIBLE
Ogre2DynamicRenderable
56
{
59
public
:
explicit
Ogre2DynamicRenderable
(
ScenePtr
_scene);
60
62
public
:
virtual
~Ogre2DynamicRenderable
();
63
66
public
:
void
SetOperationType
(
MarkerType
_opType);
67
70
public
:
MarkerType
OperationType
()
const
;
71
73
public
:
void
Update
();
74
76
public
: Ogre::MovableObject *
OgreObject
()
const
;
77
81
public
:
void
AddPoint
(
const
gz::math::Vector3d
&_pt,
82
const
gz::math::Color
&_color =
gz::math::Color::White
);
83
89
public
:
void
AddPoint
(
const
double
_x,
const
double
_y,
const
double
_z,
90
const
gz::math::Color
&_color =
gz::math::Color::White
);
91
95
public
:
void
SetPoint
(
unsigned
int
_index,
96
const
gz::math::Vector3d
&_value);
97
101
public
:
void
SetColor
(
unsigned
int
_index,
102
const
gz::math::Color
&_color);
103
110
public
:
gz::math::Vector3d
Point
(
unsigned
int
_index)
const
;
111
114
public
:
unsigned
int
PointCount
()
const
;
115
117
public
:
void
Clear
();
118
120
public
:
void
Destroy
();
121
125
public
:
void
SetMaterial
(
MaterialPtr
_material,
bool
_unique =
true
);
126
128
private
:
void
CreateDynamicMesh();
129
131
private
:
void
UpdateBuffer();
132
137
private
:
void
GenerateNormals(Ogre::OperationType _opType,
138
const
std::vector<math::Vector3d>
&_vertices,
float
*_vbuffer);
139
145
private
:
void
GenerateColors(Ogre::OperationType _opType,
146
const
std::vector<math::Vector3d>
&_vertices,
float
*_vbuffer);
147
149
private
:
void
DestroyBuffer();
150
152
private
:
std::unique_ptr<Ogre2DynamicRenderablePrivate>
dataPtr;
153
};
154
}
155
}
156
}
157
#endif