Class
List
Hierarchy
Modules
Common
Events
Math
Messages
Physics
Rendering
Sensors
Transport
Links
Gazebo Website
Wiki
Tutorials
Download
Report Documentation Issues
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
gazebo
physics
Base.hh
Go to the documentation of this file.
1
/*
2
* Copyright 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
18
/* Desc: Base class shared by all classes in Gazebo.
19
* Author: Nate Koenig
20
* Date: 09 Sept. 2008
21
*/
22
23
#ifndef _GAZEBO_PHYSICS_BASE_HH_
24
#define _GAZEBO_PHYSICS_BASE_HH_
25
26
#include <boost/enable_shared_from_this.hpp>
27
#include <string>
28
29
#include "
gazebo/sdf/sdf.hh
"
30
#include "
gazebo/common/CommonTypes.hh
"
31
#include "
gazebo/physics/PhysicsTypes.hh
"
32
33
namespace
gazebo
34
{
36
namespace
physics
37
{
40
42
static
std::string
EntityTypename
[] = {
43
"common"
,
44
"entity"
,
45
"model"
,
46
"actor"
,
47
"link"
,
48
"collision"
,
49
"light"
,
50
"visual"
,
51
"joint"
,
52
"ball"
,
53
"hinge2"
,
54
"hinge"
,
55
"slider"
,
56
"universal"
,
57
"shape"
,
58
"box"
,
59
"cylinder"
,
60
"heightmap"
,
61
"map"
,
62
"multiray"
,
63
"ray"
,
64
"plane"
,
65
"sphere"
,
66
"trimesh"
67
};
68
71
class
Base
:
public
boost::enable_shared_from_this<Base>
72
{
75
public
:
enum
EntityType
{
77
BASE
= 0x00000000,
79
ENTITY
= 0x00000001,
81
MODEL
= 0x00000002,
83
LINK
= 0x00000004,
85
COLLISION
= 0x00000008,
87
ACTOR
= 0x00000016,
89
LIGHT
= 0x00000010,
91
VISUAL
= 0x00000020,
92
94
JOINT
= 0x00000040,
96
BALL_JOINT
= 0x00000080,
98
HINGE2_JOINT
= 0x00000100,
100
HINGE_JOINT
= 0x00000200,
102
SLIDER_JOINT
= 0x00000400,
104
SCREW_JOINT
= 0x00000800,
106
UNIVERSAL_JOINT
= 0x00001000,
107
109
SHAPE
= 0x00002000,
111
BOX_SHAPE
= 0x00004000,
113
CYLINDER_SHAPE
= 0x00008000,
115
HEIGHTMAP_SHAPE
= 0x00010000,
117
MAP_SHAPE
= 0x00020000,
119
MULTIRAY_SHAPE
= 0x00040000,
121
RAY_SHAPE
= 0x00080000,
123
PLANE_SHAPE
= 0x00100000,
125
SPHERE_SHAPE
= 0x00200000,
127
TRIMESH_SHAPE
= 0x00400000
128
};
129
132
public
:
explicit
Base
(
BasePtr
_parent);
133
135
public
:
virtual
~Base
();
136
139
public
:
virtual
void
Load
(
sdf::ElementPtr
_sdf);
140
142
public
:
virtual
void
Fini
();
143
145
public
:
virtual
void
Init
() {}
146
148
public
:
virtual
void
Reset
();
149
152
public
:
virtual
void
Reset
(
Base::EntityType
_resetType);
153
155
public
:
virtual
void
Update
() {}
156
160
public
:
virtual
void
UpdateParameters
(
sdf::ElementPtr
_sdf);
161
164
public
:
virtual
void
SetName
(
const
std::string &_name);
165
168
public
: std::string
GetName
()
const
;
169
172
public
:
unsigned
int
GetId
()
const
;
173
177
public
:
void
SetSaveable
(
bool
_v);
178
182
public
:
bool
GetSaveable
()
const
;
183
186
public
:
int
GetParentId
()
const
;
187
190
public
:
void
SetParent
(
BasePtr
_parent);
191
194
public
:
BasePtr
GetParent
()
const
;
195
198
public
:
void
AddChild
(
BasePtr
_child);
199
202
public
:
virtual
void
RemoveChild
(
unsigned
int
_id);
203
205
public
:
void
RemoveChildren
();
206
209
public
:
unsigned
int
GetChildCount
()
const
;
210
216
public
:
BasePtr
GetById
(
unsigned
int
_id)
const
;
218
222
public
:
BasePtr
GetByName
(
const
std::string &_name);
223
227
public
:
BasePtr
GetChild
(
unsigned
int
_i)
const
;
228
232
public
:
BasePtr
GetChild
(
const
std::string &_name);
233
236
public
:
void
RemoveChild
(
const
std::string &_name);
237
241
public
:
void
AddType
(
EntityType
_type);
242
247
public
:
bool
HasType
(
const
EntityType
&_t)
const
;
248
251
public
:
unsigned
int
GetType
()
const
;
252
256
public
: std::string
GetScopedName
()
const
;
257
260
public
:
void
Print
(
const
std::string &_prefix);
261
265
public
:
virtual
bool
SetSelected
(
bool
_show);
266
269
public
:
bool
IsSelected
()
const
;
270
275
public
:
bool
operator ==
(
const
Base
&_ent)
const
;
276
280
public
:
void
SetWorld
(
const
WorldPtr
&_newWorld);
281
284
public
:
const
WorldPtr
&
GetWorld
()
const
;
285
288
public
:
virtual
const
sdf::ElementPtr
GetSDF
();
289
291
protected
:
sdf::ElementPtr
sdf
;
292
294
protected
:
BasePtr
parent
;
295
297
protected
:
Base_V
children
;
298
300
protected
: Base_V::iterator
childrenEnd
;
301
303
protected
:
WorldPtr
world
;
304
306
private
:
bool
saveable;
307
309
private
:
unsigned
int
id;
310
312
private
:
static
unsigned
int
idCounter;
313
315
private
:
unsigned
int
type;
316
318
private
:
bool
selected;
319
320
protected
:
friend
class
Entity
;
321
};
323
}
324
}
325
#endif