Bullet Collision Detection & Physics Library
Main Page
Namespaces
Classes
Files
File List
File Members
src
BulletDynamics
Vehicle
btWheelInfo.cpp
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2005 Erwin Coumans http://continuousphysics.com/Bullet/
3
*
4
* Permission to use, copy, modify, distribute and sell this software
5
* and its documentation for any purpose is hereby granted without fee,
6
* provided that the above copyright notice appear in all copies.
7
* Erwin Coumans makes no representations about the suitability
8
* of this software for any purpose.
9
* It is provided "as is" without express or implied warranty.
10
*/
11
#include "
btWheelInfo.h
"
12
#include "
BulletDynamics/Dynamics/btRigidBody.h
"
// for pointvelocity
13
14
15
btScalar
btWheelInfo::getSuspensionRestLength
()
const
16
{
17
18
return
m_suspensionRestLength1
;
19
20
}
21
22
void
btWheelInfo::updateWheel
(
const
btRigidBody
& chassis,
RaycastInfo
& raycastInfo)
23
{
24
(void)raycastInfo;
25
26
27
if
(
m_raycastInfo
.
m_isInContact
)
28
29
{
30
btScalar
project=
m_raycastInfo
.
m_contactNormalWS
.
dot
(
m_raycastInfo
.
m_wheelDirectionWS
);
31
btVector3
chassis_velocity_at_contactPoint;
32
btVector3
relpos =
m_raycastInfo
.
m_contactPointWS
- chassis.
getCenterOfMassPosition
();
33
chassis_velocity_at_contactPoint = chassis.
getVelocityInLocalPoint
( relpos );
34
btScalar
projVel =
m_raycastInfo
.
m_contactNormalWS
.
dot
( chassis_velocity_at_contactPoint );
35
if
( project >=
btScalar
(-0.1))
36
{
37
m_suspensionRelativeVelocity
=
btScalar
(0.0);
38
m_clippedInvContactDotSuspension
=
btScalar
(1.0) /
btScalar
(0.1);
39
}
40
else
41
{
42
btScalar
inv =
btScalar
(-1.) / project;
43
m_suspensionRelativeVelocity
= projVel * inv;
44
m_clippedInvContactDotSuspension
= inv;
45
}
46
47
}
48
49
else
// Not in contact : position wheel in a nice (rest length) position
50
{
51
m_raycastInfo
.
m_suspensionLength
= this->
getSuspensionRestLength
();
52
m_suspensionRelativeVelocity
=
btScalar
(0.0);
53
m_raycastInfo
.
m_contactNormalWS
= -
m_raycastInfo
.
m_wheelDirectionWS
;
54
m_clippedInvContactDotSuspension
=
btScalar
(1.0);
55
}
56
}
Generated on Thu Oct 3 2013 18:25:07 for Bullet Collision Detection & Physics Library by
1.8.4