Gazebo Rendering
API Reference
8.2.1
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
include
gz
rendering
TransformController.hh
Go to the documentation of this file.
1
/*
2
* Copyright (C) 2019 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_TRANSFORMCONTROLLER_HH_
18
#define GZ_RENDERING_TRANSFORMCONTROLLER_HH_
19
20
#include <memory>
21
22
#include <gz/utils/SuppressWarning.hh>
23
24
#include <gz/math/Quaternion.hh>
25
#include <gz/math/Plane.hh>
26
#include <gz/math/Vector3.hh>
27
28
#include "gz/rendering/config.hh"
29
#include "
gz/rendering/Camera.hh
"
30
#include "
gz/rendering/GizmoVisual.hh
"
31
#include "
gz/rendering/TransformType.hh
"
32
33
namespace
gz
34
{
35
namespace
rendering
36
{
37
inline
namespace
GZ_RENDERING_VERSION_NAMESPACE {
38
//
39
// forward declarations
40
class
TransformControllerPrivate;
41
42
/* \class TransformController TransformController.hh \
43
* gz/rendering/TransformController.hh
44
*/
46
class
GZ_RENDERING_VISIBLE
TransformController
47
{
49
public
:
TransformController
();
50
52
public
:
virtual
~TransformController
();
53
56
public
:
virtual
void
Update
();
57
60
public
:
virtual
void
SetCamera
(
const
CameraPtr
&_camera);
61
64
public
:
virtual
CameraPtr
Camera
()
const
;
65
69
public
:
virtual
NodePtr
Node
()
const
;
70
73
public
:
virtual
void
Attach
(
NodePtr
_node);
74
77
public
:
virtual
void
Detach
();
78
81
public
:
virtual
void
SetTransformMode
(
TransformMode
_mode);
82
85
public
:
virtual
TransformMode
Mode
()
const
;
86
89
public
:
virtual
void
SetTransformSpace
(
TransformSpace
_space);
90
93
public
:
virtual
TransformSpace
Space
()
const
;
94
97
public
:
virtual
void
SetActiveAxis
(
const
math::Vector3d
&_axis);
98
101
public
:
virtual
math::Vector3d
ActiveAxis
()
const
;
102
106
public
:
virtual
math::Vector3d
AxisById
(
unsigned
int
_id)
const
;
107
112
public
:
virtual
void
Translate
(
const
math::Vector3d
&_translation,
113
bool
_snap =
false
);
114
119
public
:
virtual
void
Rotate
(
const
math::Quaterniond
&_rotation,
120
bool
_snap =
false
);
121
126
public
:
virtual
void
Scale
(
const
math::Vector3d
&_scale,
127
bool
_snap =
false
);
128
137
public
:
static
gz::math::Vector3d
SnapPoint
(
138
const
gz::math::Vector3d
&_point,
const
double
_interval = 1.0,
139
const
double
_sensitivity = 0.4);
140
144
public
:
virtual
void
Start
();
145
149
public
:
virtual
void
Stop
();
150
153
public
:
virtual
bool
Active
()
const
;
154
164
public
:
math::Vector3d
TranslationFrom2d
(
const
math::Vector3d
&_axis,
165
const
math::Vector2d
&_start,
const
math::Vector2d
&_end);
166
176
public
:
math::Quaterniond
RotationFrom2d
(
const
math::Vector3d
&_axis,
177
const
math::Vector2d
&_start,
const
math::Vector2d
&_end);
178
188
public
:
math::Vector3d
ScaleFrom2d
(
const
math::Vector3d
&_axis,
189
const
math::Vector2d
&_start,
const
math::Vector2d
&_end);
190
194
public
:
static
math::Vector3d
ToAxis
(
TransformAxis
_axis);
195
203
protected
:
math::Planed
CreatePlaneForTransform
(
204
const
math::Vector3d
&_axis,
const
math::Vector2d
&_pt2d);
205
212
protected
:
bool
RayPlaneIntersection
(
RayQueryPtr
_ray,
213
const
math::Planed
&_plane,
math::Vector3d
&_result);
214
216
GZ_UTILS_WARN_IGNORE__DLL_INTERFACE_MISSING
217
public
:
std::unique_ptr<TransformControllerPrivate>
dataPtr
;
218
GZ_UTILS_WARN_RESUME__DLL_INTERFACE_MISSING
219
};
220
}
221
}
222
}
223
#endif