Gazebo Sim
API Reference
9.3.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-sim
include
gz
sim
Link.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_SIM_LINK_HH_
18
#define GZ_SIM_LINK_HH_
19
20
#include <memory>
21
#include <optional>
22
#include <string>
23
#include <vector>
24
25
#include <
gz/math/Inertial.hh
>
26
#include <
gz/math/Matrix3.hh
>
27
#include <
gz/math/Matrix6.hh
>
28
#include <
gz/math/Pose3.hh
>
29
#include <
gz/math/Quaternion.hh
>
30
#include <
gz/math/Vector3.hh
>
31
#include <
gz/math/AxisAlignedBox.hh
>
32
33
#include <gz/sim/config.hh>
34
#include <
gz/sim/EntityComponentManager.hh
>
35
#include <gz/sim/Export.hh>
36
#include <
gz/sim/Model.hh
>
37
#include <
gz/sim/Types.hh
>
38
39
namespace
gz
40
{
41
namespace
sim
42
{
43
// Inline bracket to help doxygen filtering.
44
inline
namespace
GZ_SIM_VERSION_NAMESPACE {
45
// Forward declarations.
46
class
GZ_SIM_HIDDEN
LinkPrivate
;
47
//
67
class
GZ_SIM_VISIBLE
Link
68
{
71
public
:
explicit
Link
(
sim::Entity
_entity = kNullEntity);
72
75
public
:
Link
(
const
Link
&_link);
76
79
public
:
Link
(
Link
&&_link)
noexcept
;
80
84
public
:
Link
&
operator=
(
Link
&&_link)
noexcept
;
85
89
public
:
Link
&
operator=
(
const
Link
&_link);
90
92
public
:
~Link
();
93
96
public
:
sim::Entity
Entity
()
const
;
97
100
public
:
void
ResetEntity
(
sim::Entity
_newEntity);
101
106
public
:
bool
Valid
(
const
EntityComponentManager
&_ecm)
const
;
107
112
public
: std::optional<std::string>
Name
(
113
const
EntityComponentManager
&_ecm)
const
;
114
119
public
: std::optional<Model>
ParentModel
(
120
const
EntityComponentManager
&_ecm)
const
;
121
125
public
:
bool
IsCanonical
(
const
EntityComponentManager
&_ecm)
const
;
126
130
public
:
bool
WindMode
(
const
EntityComponentManager
&_ecm)
const
;
131
137
public
:
sim::Entity
CollisionByName
(
const
EntityComponentManager
&_ecm,
138
const
std::string
&_name)
const
;
139
145
public
:
sim::Entity
SensorByName
(
const
EntityComponentManager
&_ecm,
146
const
std::string
&_name)
const
;
147
153
public
:
sim::Entity
VisualByName
(
const
EntityComponentManager
&_ecm,
154
const
std::string
&_name)
const
;
155
159
public
:
std::vector<sim::Entity>
Collisions
(
160
const
EntityComponentManager
&_ecm)
const
;
161
165
public
:
std::vector<sim::Entity>
Sensors
(
166
const
EntityComponentManager
&_ecm)
const
;
167
171
public
:
std::vector<sim::Entity>
Visuals
(
172
const
EntityComponentManager
&_ecm)
const
;
173
178
public
: uint64_t
CollisionCount
(
const
EntityComponentManager
&_ecm)
const
;
179
184
public
: uint64_t
SensorCount
(
const
EntityComponentManager
&_ecm)
const
;
185
190
public
: uint64_t
VisualCount
(
const
EntityComponentManager
&_ecm)
const
;
191
196
public
: std::optional<math::Pose3d>
WorldPose
(
197
const
EntityComponentManager
&_ecm)
const
;
198
203
public
: std::optional<math::Inertiald>
WorldInertial
(
204
const
EntityComponentManager
&_ecm)
const
;
205
211
public
: std::optional<math::Pose3d>
WorldInertialPose
(
212
const
EntityComponentManager
&_ecm)
const
;
213
222
public
: std::optional<math::Vector3d>
WorldLinearVelocity
(
223
const
EntityComponentManager
&_ecm)
const
;
224
233
public
: std::optional<math::Vector3d>
WorldLinearVelocity
(
234
const
EntityComponentManager
&_ecm,
235
const
math::Vector3d
&_offset)
const
;
236
242
public
: std::optional<math::Vector3d>
WorldAngularVelocity
(
243
const
EntityComponentManager
&_ecm)
const
;
244
251
public
:
void
EnableVelocityChecks
(
EntityComponentManager
&_ecm,
252
bool
_enable =
true
)
const
;
253
258
public
:
void
SetLinearVelocity
(
EntityComponentManager
&_ecm,
259
const
math::Vector3d
&_vel)
const
;
260
261
266
public
:
void
SetAngularVelocity
(
EntityComponentManager
&_ecm,
267
const
math::Vector3d
&_vel)
const
;
268
274
public
: std::optional<math::Vector3d>
WorldAngularAcceleration
(
275
const
EntityComponentManager
&_ecm)
const
;
276
282
public
: std::optional<math::Vector3d>
WorldLinearAcceleration
(
283
const
EntityComponentManager
&_ecm)
const
;
284
291
public
:
void
EnableAccelerationChecks
(
EntityComponentManager
&_ecm,
292
bool
_enable =
true
)
const
;
293
299
public
: std::optional<math::Matrix3d>
WorldInertiaMatrix
(
300
const
EntityComponentManager
&_ecm)
const
;
301
307
public
: std::optional<math::Matrix6d>
WorldFluidAddedMassMatrix
(
308
const
EntityComponentManager
&_ecm)
const
;
309
317
public
: std::optional<double>
WorldKineticEnergy
(
318
const
EntityComponentManager
&_ecm)
const
;
319
324
public
:
void
AddWorldForce
(
EntityComponentManager
&_ecm,
325
const
math::Vector3d
&_force)
const
;
326
333
public
:
void
AddWorldForce
(
EntityComponentManager
&_ecm,
334
const
math::Vector3d
&_force,
335
const
math::Vector3d
&_position)
const
;
336
343
public
:
void
AddWorldWrench
(
EntityComponentManager
&_ecm,
344
const
math::Vector3d
&_force,
345
const
math::Vector3d
&_torque)
const
;
346
355
public
:
void
AddWorldWrench
(
EntityComponentManager
&_ecm,
356
const
math::Vector3d
&_force,
357
const
math::Vector3d
&_torque,
358
const
math::Vector3d
&_offset)
const
;
359
368
public
:
void
EnableBoundingBoxChecks
(
369
EntityComponentManager
&_ecm,
370
bool
_enable =
true
)
const
;
371
377
public
: std::optional<math::AxisAlignedBox>
AxisAlignedBox
(
378
const
EntityComponentManager
&_ecm)
const
;
379
385
public
: std::optional<math::AxisAlignedBox>
WorldAxisAlignedBox
(
386
const
EntityComponentManager
&_ecm)
const
;
387
397
public
: std::optional<math::AxisAlignedBox>
ComputeAxisAlignedBox
(
398
const
EntityComponentManager
&_ecm)
const
;
399
401
private
:
std::unique_ptr<LinkPrivate>
dataPtr;
402
};
403
}
404
}
405
}
406
#endif