Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
externals
Box2D
Box2D
Dynamics
Joints
b2MotorJoint.h
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2006-2012 Erin Catto http://www.box2d.org
3
*
4
* This software is provided 'as-is', without any express or implied
5
* warranty. In no event will the authors be held liable for any damages
6
* arising from the use of this software.
7
* Permission is granted to anyone to use this software for any purpose,
8
* including commercial applications, and to alter it and redistribute it
9
* freely, subject to the following restrictions:
10
* 1. The origin of this software must not be misrepresented; you must not
11
* claim that you wrote the original software. If you use this software
12
* in a product, an acknowledgment in the product documentation would be
13
* appreciated but is not required.
14
* 2. Altered source versions must be plainly marked as such, and must not be
15
* misrepresented as being the original software.
16
* 3. This notice may not be removed or altered from any source distribution.
17
*/
18
19
#ifndef B2_MOTOR_JOINT_H
20
#define B2_MOTOR_JOINT_H
21
22
#include <
Box2D/Dynamics/Joints/b2Joint.h
>
23
25
struct
b2MotorJointDef
:
public
b2JointDef
26
{
27
b2MotorJointDef
()
28
{
29
type
=
e_motorJoint
;
30
linearOffset
.
SetZero
();
31
angularOffset
= 0.0f;
32
maxForce
= 1.0f;
33
maxTorque
= 1.0f;
34
correctionFactor
= 0.3f;
35
}
36
38
void
Initialize
(
b2Body
*
bodyA
,
b2Body
*
bodyB
);
39
41
b2Vec2
linearOffset
;
42
44
float32
angularOffset
;
45
47
float32
maxForce
;
48
50
float32
maxTorque
;
51
53
float32
correctionFactor
;
54
};
55
59
class
b2MotorJoint
:
public
b2Joint
60
{
61
public
:
62
b2Vec2
GetAnchorA()
const
;
63
b2Vec2
GetAnchorB()
const
;
64
65
b2Vec2
GetReactionForce(
float32
inv_dt)
const
;
66
float32
GetReactionTorque(
float32
inv_dt)
const
;
67
69
void
SetLinearOffset(
const
b2Vec2
&
linearOffset
);
70
const
b2Vec2
& GetLinearOffset()
const
;
71
73
void
SetAngularOffset(
float32
angularOffset
);
74
float32
GetAngularOffset()
const
;
75
77
void
SetMaxForce(
float32
force);
78
80
float32
GetMaxForce()
const
;
81
83
void
SetMaxTorque(
float32
torque);
84
86
float32
GetMaxTorque()
const
;
87
89
void
SetCorrectionFactor(
float32
factor);
90
92
float32
GetCorrectionFactor()
const
;
93
95
void
Dump();
96
97
protected
:
98
99
friend
class
b2Joint
;
100
101
b2MotorJoint
(
const
b2MotorJointDef
* def);
102
103
void
InitVelocityConstraints
(
const
b2SolverData
&
data
);
104
void
SolveVelocityConstraints
(
const
b2SolverData
&
data
);
105
bool
SolvePositionConstraints
(
const
b2SolverData
&
data
);
106
107
// Solver shared
108
b2Vec2
m_linearOffset
;
109
float32
m_angularOffset
;
110
b2Vec2
m_linearImpulse
;
111
float32
m_angularImpulse
;
112
float32
m_maxForce
;
113
float32
m_maxTorque
;
114
float32
m_correctionFactor
;
115
116
// Solver temp
117
int32
m_indexA
;
118
int32
m_indexB
;
119
b2Vec2
m_rA
;
120
b2Vec2
m_rB
;
121
b2Vec2
m_localCenterA
;
122
b2Vec2
m_localCenterB
;
123
b2Vec2
m_linearError
;
124
float32
m_angularError
;
125
float32
m_invMassA
;
126
float32
m_invMassB
;
127
float32
m_invIA
;
128
float32
m_invIB
;
129
b2Mat22
m_linearMass
;
130
float32
m_angularMass
;
131
};
132
133
#endif
b2MotorJoint::m_indexB
int32 m_indexB
Definition:
b2MotorJoint.h:118
b2MotorJoint::m_rA
b2Vec2 m_rA
Definition:
b2MotorJoint.h:119
b2Joint::SolveVelocityConstraints
virtual void SolveVelocityConstraints(const b2SolverData &data)=0
b2MotorJoint
Definition:
b2MotorJoint.h:59
b2MotorJoint::m_angularOffset
float32 m_angularOffset
Definition:
b2MotorJoint.h:109
b2JointDef
Joint definitions are used to construct joints.
Definition:
b2Joint.h:74
b2MotorJointDef::Initialize
void Initialize(b2Body *bodyA, b2Body *bodyB)
Initialize the bodies and offsets using the current transforms.
Definition:
b2MotorJoint.cpp:35
b2MotorJoint::m_maxTorque
float32 m_maxTorque
Definition:
b2MotorJoint.h:113
b2MotorJointDef::maxTorque
float32 maxTorque
The maximum motor torque in N-m.
Definition:
b2MotorJoint.h:50
b2MotorJointDef::linearOffset
b2Vec2 linearOffset
Position of bodyB minus the position of bodyA, in bodyA's frame, in meters.
Definition:
b2MotorJoint.h:41
b2MotorJoint::m_localCenterB
b2Vec2 m_localCenterB
Definition:
b2MotorJoint.h:122
b2MotorJoint::m_rB
b2Vec2 m_rB
Definition:
b2MotorJoint.h:120
b2MotorJoint::m_invIA
float32 m_invIA
Definition:
b2MotorJoint.h:127
b2SolverData
Solver Data.
Definition:
b2TimeStep.h:63
b2Vec2::SetZero
void SetZero()
Set this vector to all zeros.
Definition:
b2Math.h:61
b2Vec2
A 2D column vector.
Definition:
b2Math.h:52
b2MotorJoint::m_invMassB
float32 m_invMassB
Definition:
b2MotorJoint.h:126
int32
signed int int32
Definition:
b2Settings.h:31
b2Body
A rigid body. These are created via b2World::CreateBody.
Definition:
b2Body.h:126
b2MotorJoint::m_maxForce
float32 m_maxForce
Definition:
b2MotorJoint.h:112
b2Joint::InitVelocityConstraints
virtual void InitVelocityConstraints(const b2SolverData &data)=0
b2Joint.h
b2Joint::SolvePositionConstraints
virtual bool SolvePositionConstraints(const b2SolverData &data)=0
data
GLint GLenum GLsizei GLint GLsizei const GLvoid * data
b2MotorJointDef::correctionFactor
float32 correctionFactor
Position correction factor in the range [0,1].
Definition:
b2MotorJoint.h:53
b2MotorJoint::m_linearMass
b2Mat22 m_linearMass
Definition:
b2MotorJoint.h:129
b2MotorJointDef::maxForce
float32 maxForce
The maximum motor force in N.
Definition:
b2MotorJoint.h:47
b2MotorJoint::m_angularImpulse
float32 m_angularImpulse
Definition:
b2MotorJoint.h:111
b2MotorJoint::m_correctionFactor
float32 m_correctionFactor
Definition:
b2MotorJoint.h:114
b2MotorJointDef::b2MotorJointDef
b2MotorJointDef()
Definition:
b2MotorJoint.h:27
b2MotorJoint::m_localCenterA
b2Vec2 m_localCenterA
Definition:
b2MotorJoint.h:121
b2MotorJoint::m_angularError
float32 m_angularError
Definition:
b2MotorJoint.h:124
b2MotorJoint::m_indexA
int32 m_indexA
Definition:
b2MotorJoint.h:117
b2MotorJoint::m_linearError
b2Vec2 m_linearError
Definition:
b2MotorJoint.h:123
b2Joint
Definition:
b2Joint.h:103
b2MotorJoint::m_angularMass
float32 m_angularMass
Definition:
b2MotorJoint.h:130
b2MotorJoint::m_linearImpulse
b2Vec2 m_linearImpulse
Definition:
b2MotorJoint.h:110
b2Mat22
A 2-by-2 matrix. Stored in column-major order.
Definition:
b2Math.h:182
b2MotorJoint::m_invIB
float32 m_invIB
Definition:
b2MotorJoint.h:128
e_motorJoint
Definition:
b2Joint.h:42
type
GLuint GLuint GLsizei GLenum type
b2MotorJoint::m_invMassA
float32 m_invMassA
Definition:
b2MotorJoint.h:125
b2JointDef::bodyA
b2Body * bodyA
The first attached body.
Definition:
b2Joint.h:92
b2MotorJoint::m_linearOffset
b2Vec2 m_linearOffset
Definition:
b2MotorJoint.h:108
b2MotorJointDef
Motor joint definition.
Definition:
b2MotorJoint.h:25
b2MotorJointDef::angularOffset
float32 angularOffset
The bodyB angle minus bodyA angle in radians.
Definition:
b2MotorJoint.h:44
b2JointDef::bodyB
b2Body * bodyB
The second attached body.
Definition:
b2Joint.h:95
float32
float float32
Definition:
b2Settings.h:35
mvsim
Author(s):
autogenerated on Fri May 7 2021 03:05:51