Class
List
Heirarchy
Modules
Common
Events
Math
Messages
Physics
Rendering
Sensors
Transport
Links
Gazebo Website
Wiki
Tutorials
Download
•
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
gazebo
physics
bullet
BulletHingeJoint.hh
Go to the documentation of this file.
1
/*
2
* Copyright 2011 Nate Koenig
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
/* Desc: A body that has a box shape
18
* Author: Nate Koenig, Andrew Howard
19
* Date: 21 May 2003
20
*/
21
22
#ifndef _BULLETHINGEJOINT_HH_
23
#define _BULLETHINGEJOINT_HH_
24
25
#include "
math/Angle.hh
"
26
#include "
math/Vector3.hh
"
27
#include "
physics/HingeJoint.hh
"
28
#include "
physics/bullet/BulletJoint.hh
"
29
#include "
physics/bullet/BulletPhysics.hh
"
30
31
class
btHingeConstraint;
32
33
namespace
gazebo
34
{
35
namespace
physics
36
{
40
42
class
BulletHingeJoint
:
public
HingeJoint
<BulletJoint>
43
{
45
public
:
BulletHingeJoint
(btDynamicsWorld *
world
,
BasePtr
_parent);
46
48
public
:
virtual
~BulletHingeJoint
();
49
51
protected
:
virtual
void
Load
(
sdf::ElementPtr
_sdf);
52
54
public
:
virtual
void
Attach
(
LinkPtr
_one,
LinkPtr
_two);
55
57
public
:
virtual
math::Vector3
GetAnchor
(
int
_index)
const
;
58
60
public
:
virtual
void
SetAnchor
(
int
_index,
const
math::Vector3
&_anchor);
61
63
public
:
void
SetAxis
(
int
_index,
const
math::Vector3
&_axis);
64
66
public
:
virtual
void
SetDamping
(
int
_index,
double
_damping);
67
69
public
:
virtual
math::Angle
GetAngle
(
int
_index)
const
;
70
72
public
:
virtual
void
SetVelocity
(
int
_index,
double
_angle);
73
75
public
:
virtual
double
GetVelocity
(
int
_index)
const
;
76
78
public
:
virtual
void
SetMaxForce
(
int
_index,
double
_t);
79
81
public
:
virtual
double
GetMaxForce
(
int
_index);
82
84
public
:
void
SetForce
(
int
_index,
double
_torque);
85
87
public
:
virtual
double
GetForce
(
int
_index);
88
90
public
:
virtual
void
SetHighStop
(
int
_index,
const
math::Angle
&_angle);
91
93
public
:
virtual
void
SetLowStop
(
int
_index,
const
math::Angle
&_angle);
94
96
public
:
virtual
math::Angle
GetHighStop
(
int
_index);
97
99
public
:
virtual
math::Angle
GetLowStop
(
int
_index);
100
102
public
:
virtual
math::Vector3
GetGlobalAxis
(
int
_index)
const
;
103
105
public
:
virtual
math::Angle
GetAngleImpl
(
int
_index)
const
;
106
107
private
: btHingeConstraint *btHinge;
108
};
110
}
111
}
112
#endif