Gazebo Rendering

API Reference

9.0.0
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"
32
33namespace 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 {
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
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
165 const math::Vector2d &_start, const math::Vector2d &_end);
166
177 const math::Vector2d &_start, const math::Vector2d &_end);
178
189 const math::Vector2d &_start, const math::Vector2d &_end);
190
194 public: static math::Vector3d ToAxis(TransformAxis _axis);
195
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
218 GZ_UTILS_WARN_RESUME__DLL_INTERFACE_MISSING
219 };
220 }
221 }
222}
223#endif