Blender
V3.3
|
rayCast vehicle, very special constraint that turn a rigidbody into a vehicle. More...
#include <btRaycastVehicle.h>
Classes | |
class | btVehicleTuning |
Public Member Functions | |
btRaycastVehicle (const btVehicleTuning &tuning, btRigidBody *chassis, btVehicleRaycaster *raycaster) | |
virtual | ~btRaycastVehicle () |
virtual void | updateAction (btCollisionWorld *collisionWorld, btScalar step) |
btActionInterface interface More... | |
void | debugDraw (btIDebugDraw *debugDrawer) |
btActionInterface interface More... | |
const btTransform & | getChassisWorldTransform () const |
btScalar | rayCast (btWheelInfo &wheel) |
virtual void | updateVehicle (btScalar step) |
void | resetSuspension () |
btScalar | getSteeringValue (int wheel) const |
void | setSteeringValue (btScalar steering, int wheel) |
void | applyEngineForce (btScalar force, int wheel) |
const btTransform & | getWheelTransformWS (int wheelIndex) const |
void | updateWheelTransform (int wheelIndex, bool interpolatedTransform=true) |
btWheelInfo & | addWheel (const btVector3 &connectionPointCS0, const btVector3 &wheelDirectionCS0, const btVector3 &wheelAxleCS, btScalar suspensionRestLength, btScalar wheelRadius, const btVehicleTuning &tuning, bool isFrontWheel) |
int | getNumWheels () const |
const btWheelInfo & | getWheelInfo (int index) const |
btWheelInfo & | getWheelInfo (int index) |
void | updateWheelTransformsWS (btWheelInfo &wheel, bool interpolatedTransform=true) |
void | setBrake (btScalar brake, int wheelIndex) |
void | setPitchControl (btScalar pitch) |
void | updateSuspension (btScalar deltaTime) |
virtual void | updateFriction (btScalar timeStep) |
btRigidBody * | getRigidBody () |
const btRigidBody * | getRigidBody () const |
int | getRightAxis () const |
int | getUpAxis () const |
int | getForwardAxis () const |
btVector3 | getForwardVector () const |
Worldspace forward vector. More... | |
btScalar | getCurrentSpeedKmHour () const |
Velocity of vehicle (positive if velocity vector has same direction as foward vector) More... | |
virtual void | setCoordinateSystem (int rightIndex, int upIndex, int forwardIndex) |
int | getUserConstraintType () const |
backwards compatibility More... | |
void | setUserConstraintType (int userConstraintType) |
void | setUserConstraintId (int uid) |
int | getUserConstraintId () const |
![]() | |
virtual | ~btActionInterface () |
Public Attributes | |
btAlignedObjectArray< btWheelInfo > | m_wheelInfo |
Additional Inherited Members | |
![]() | |
static btRigidBody & | getFixedBody () |
rayCast vehicle, very special constraint that turn a rigidbody into a vehicle.
Definition at line 25 of file btRaycastVehicle.h.
btRaycastVehicle::btRaycastVehicle | ( | const btVehicleTuning & | tuning, |
btRigidBody * | chassis, | ||
btVehicleRaycaster * | raycaster | ||
) |
Definition at line 34 of file btRaycastVehicle.cpp.
|
virtual |
Definition at line 52 of file btRaycastVehicle.cpp.
btWheelInfo & btRaycastVehicle::addWheel | ( | const btVector3 & | connectionPointCS0, |
const btVector3 & | wheelDirectionCS0, | ||
const btVector3 & | wheelAxleCS, | ||
btScalar | suspensionRestLength, | ||
btScalar | wheelRadius, | ||
const btVehicleTuning & | tuning, | ||
bool | isFrontWheel | ||
) |
Definition at line 59 of file btRaycastVehicle.cpp.
References getNumWheels(), btWheelInfoConstructionInfo::m_bIsFrontWheel, btWheelInfoConstructionInfo::m_chassisConnectionCS, btRaycastVehicle::btVehicleTuning::m_frictionSlip, btWheelInfoConstructionInfo::m_frictionSlip, btRaycastVehicle::btVehicleTuning::m_maxSuspensionForce, btWheelInfoConstructionInfo::m_maxSuspensionForce, btRaycastVehicle::btVehicleTuning::m_maxSuspensionTravelCm, btWheelInfoConstructionInfo::m_maxSuspensionTravelCm, btRaycastVehicle::btVehicleTuning::m_suspensionCompression, btRaycastVehicle::btVehicleTuning::m_suspensionDamping, btWheelInfoConstructionInfo::m_suspensionRestLength, btRaycastVehicle::btVehicleTuning::m_suspensionStiffness, btWheelInfoConstructionInfo::m_suspensionStiffness, btWheelInfoConstructionInfo::m_wheelAxleCS, btWheelInfoConstructionInfo::m_wheelDirectionCS, m_wheelInfo, btWheelInfoConstructionInfo::m_wheelRadius, btWheelInfoConstructionInfo::m_wheelsDampingCompression, btWheelInfoConstructionInfo::m_wheelsDampingRelaxation, btAlignedObjectArray< T >::push_back(), updateWheelTransform(), and updateWheelTransformsWS().
Definition at line 357 of file btRaycastVehicle.cpp.
References btAssert, getNumWheels(), getWheelInfo(), and btWheelInfo::m_engineForce.
|
virtual |
btActionInterface interface
Implements btActionInterface.
Definition at line 660 of file btRaycastVehicle.cpp.
References btVector3, btIDebugDraw::drawLine(), getNumWheels(), getRightAxis(), getWheelInfo(), m_worldTransform, btWheelInfo::m_worldTransform, and v.
const btTransform & btRaycastVehicle::getChassisWorldTransform | ( | ) | const |
Definition at line 243 of file btRaycastVehicle.cpp.
References btRigidBody::getCenterOfMassTransform(), and getRigidBody().
Referenced by getForwardVector(), updateVehicle(), and updateWheelTransformsWS().
|
inline |
Velocity of vehicle (positive if velocity vector has same direction as foward vector)
Definition at line 171 of file btRaycastVehicle.h.
|
inline |
Definition at line 152 of file btRaycastVehicle.h.
|
inline |
Worldspace forward vector.
Definition at line 158 of file btRaycastVehicle.h.
References btTransform, btVector3, and getChassisWorldTransform().
|
inline |
Definition at line 109 of file btRaycastVehicle.h.
References m_wheelInfo, and btAlignedObjectArray< T >::size().
Referenced by addWheel(), applyEngineForce(), debugDraw(), getWheelInfo(), getWheelTransformWS(), setBrake(), setSteeringValue(), updateFriction(), updateSuspension(), and updateVehicle().
|
inline |
Definition at line 143 of file btRaycastVehicle.h.
Referenced by debugDraw().
|
inline |
Definition at line 133 of file btRaycastVehicle.h.
Referenced by getChassisWorldTransform(), rayCast(), updateFriction(), updateVehicle(), and updateWheelTransformsWS().
|
inline |
Definition at line 138 of file btRaycastVehicle.h.
btScalar btRaycastVehicle::getSteeringValue | ( | int | wheel | ) | const |
Definition at line 352 of file btRaycastVehicle.cpp.
References getWheelInfo(), and btWheelInfo::m_steering.
|
inline |
Definition at line 147 of file btRaycastVehicle.h.
|
inline |
Definition at line 199 of file btRaycastVehicle.h.
References m_userConstraintId.
|
inline |
backwards compatibility
Definition at line 184 of file btRaycastVehicle.h.
btWheelInfo & btRaycastVehicle::getWheelInfo | ( | int | index | ) |
Definition at line 371 of file btRaycastVehicle.cpp.
References btAssert, getNumWheels(), and m_wheelInfo.
const btWheelInfo & btRaycastVehicle::getWheelInfo | ( | int | index | ) | const |
Definition at line 364 of file btRaycastVehicle.cpp.
References btAssert, getNumWheels(), and m_wheelInfo.
Referenced by applyEngineForce(), debugDraw(), getSteeringValue(), setBrake(), and setSteeringValue().
const btTransform & btRaycastVehicle::getWheelTransformWS | ( | int | wheelIndex | ) | const |
Definition at line 85 of file btRaycastVehicle.cpp.
References btAssert, getNumWheels(), m_wheelInfo, and btWheelInfo::m_worldTransform.
Referenced by updateFriction().
btScalar btRaycastVehicle::rayCast | ( | btWheelInfo & | wheel | ) |
Definition at line 160 of file btRaycastVehicle.cpp.
References btAssert, btVector3, btVehicleRaycaster::castRay(), btRigidBody::getCenterOfMassPosition(), btActionInterface::getFixedBody(), getRigidBody(), btWheelInfo::getSuspensionRestLength(), btRigidBody::getVelocityInLocalPoint(), btWheelInfo::m_clippedInvContactDotSuspension, btWheelInfo::RaycastInfo::m_contactNormalWS, btWheelInfo::RaycastInfo::m_contactPointWS, btVehicleRaycaster::btVehicleRaycasterResult::m_distFraction, btWheelInfo::RaycastInfo::m_groundObject, btWheelInfo::RaycastInfo::m_hardPointWS, btVehicleRaycaster::btVehicleRaycasterResult::m_hitNormalInWorld, btVehicleRaycaster::btVehicleRaycasterResult::m_hitPointInWorld, btWheelInfo::RaycastInfo::m_isInContact, btWheelInfo::m_maxSuspensionTravelCm, btWheelInfo::m_raycastInfo, btWheelInfo::RaycastInfo::m_suspensionLength, btWheelInfo::m_suspensionRelativeVelocity, btWheelInfo::RaycastInfo::m_wheelDirectionWS, btWheelInfo::m_wheelsRadius, and updateWheelTransformsWS().
Referenced by updateVehicle().
void btRaycastVehicle::resetSuspension | ( | ) |
Definition at line 130 of file btRaycastVehicle.cpp.
References btWheelInfo::getSuspensionRestLength(), btWheelInfo::m_clippedInvContactDotSuspension, btWheelInfo::RaycastInfo::m_contactNormalWS, btWheelInfo::m_raycastInfo, btWheelInfo::RaycastInfo::m_suspensionLength, btWheelInfo::m_suspensionRelativeVelocity, btWheelInfo::RaycastInfo::m_wheelDirectionWS, m_wheelInfo, and btAlignedObjectArray< T >::size().
Definition at line 378 of file btRaycastVehicle.cpp.
References btAssert, getNumWheels(), getWheelInfo(), and btWheelInfo::m_brake.
|
inlinevirtual |
Definition at line 176 of file btRaycastVehicle.h.
Definition at line 124 of file btRaycastVehicle.h.
Definition at line 344 of file btRaycastVehicle.cpp.
References btAssert, getNumWheels(), getWheelInfo(), and btWheelInfo::m_steering.
|
inline |
Definition at line 194 of file btRaycastVehicle.h.
References m_userConstraintId.
|
inline |
Definition at line 189 of file btRaycastVehicle.h.
|
inlinevirtual |
btActionInterface interface
Implements btActionInterface.
Definition at line 78 of file btRaycastVehicle.h.
References updateVehicle(), and void.
Definition at line 488 of file btRaycastVehicle.cpp.
References btRigidBody::applyImpulse(), btAssert, btMatrix3x3, btSqrt(), btTransform, btVector3, calcRollingFriction(), btRigidBody::getCenterOfMassPosition(), btRigidBody::getCenterOfMassTransform(), getNumWheels(), getRigidBody(), getWheelTransformWS(), if(), btWheelInfo::m_brake, btWheelInfo::RaycastInfo::m_contactNormalWS, btWheelInfo::RaycastInfo::m_contactPointWS, btWheelInfo::m_engineForce, btWheelInfo::m_frictionSlip, btWheelInfo::RaycastInfo::m_groundObject, btWheelInfo::m_raycastInfo, btWheelInfo::m_rollInfluence, m_wheelInfo, btWheelInfo::m_wheelsSuspensionForce, btAlignedObjectArray< T >::resize(), resolveSingleBilateral(), sideFrictionStiffness2, x, and y.
Referenced by updateVehicle().
Definition at line 384 of file btRaycastVehicle.cpp.
References btRigidBody::getInvMass(), getNumWheels(), btWheelInfo::getSuspensionRestLength(), btWheelInfo::m_clippedInvContactDotSuspension, btWheelInfo::RaycastInfo::m_isInContact, btWheelInfo::m_raycastInfo, btWheelInfo::RaycastInfo::m_suspensionLength, btWheelInfo::m_suspensionRelativeVelocity, btWheelInfo::m_suspensionStiffness, m_wheelInfo, btWheelInfo::m_wheelsDampingCompression, btWheelInfo::m_wheelsDampingRelaxation, btWheelInfo::m_wheelsSuspensionForce, and void.
Referenced by updateVehicle().
Definition at line 256 of file btRaycastVehicle.cpp.
References btRigidBody::applyImpulse(), btTransform, btVector3, btRigidBody::getCenterOfMassPosition(), getChassisWorldTransform(), getLinearVelocity(), btRigidBody::getLinearVelocity(), getNumWheels(), getRigidBody(), btRigidBody::getVelocityInLocalPoint(), btWheelInfo::RaycastInfo::m_contactNormalWS, btWheelInfo::RaycastInfo::m_contactPointWS, btWheelInfo::m_deltaRotation, btWheelInfo::RaycastInfo::m_hardPointWS, btWheelInfo::RaycastInfo::m_isInContact, btWheelInfo::m_maxSuspensionForce, btWheelInfo::m_raycastInfo, btWheelInfo::m_rotation, m_wheelInfo, btWheelInfo::m_wheelsRadius, btWheelInfo::m_wheelsSuspensionForce, rayCast(), btAlignedObjectArray< T >::size(), updateFriction(), updateSuspension(), and updateWheelTransform().
Referenced by updateAction().
Definition at line 92 of file btRaycastVehicle.cpp.
References btMatrix3x3, btVector3, btWheelInfo::RaycastInfo::m_hardPointWS, btWheelInfo::m_raycastInfo, btWheelInfo::m_rotation, btWheelInfo::m_steering, btWheelInfo::RaycastInfo::m_suspensionLength, btWheelInfo::RaycastInfo::m_wheelAxleWS, btWheelInfo::RaycastInfo::m_wheelDirectionWS, m_wheelInfo, btWheelInfo::m_worldTransform, right, and updateWheelTransformsWS().
Referenced by addWheel(), and updateVehicle().
void btRaycastVehicle::updateWheelTransformsWS | ( | btWheelInfo & | wheel, |
bool | interpolatedTransform = true |
||
) |
Definition at line 145 of file btRaycastVehicle.cpp.
References btTransform, getChassisWorldTransform(), btRigidBody::getMotionState(), getRigidBody(), btMotionState::getWorldTransform(), btWheelInfo::m_chassisConnectionPointCS, btWheelInfo::RaycastInfo::m_hardPointWS, btWheelInfo::RaycastInfo::m_isInContact, btWheelInfo::m_raycastInfo, btWheelInfo::m_wheelAxleCS, btWheelInfo::RaycastInfo::m_wheelAxleWS, btWheelInfo::m_wheelDirectionCS, and btWheelInfo::RaycastInfo::m_wheelDirectionWS.
Referenced by addWheel(), rayCast(), and updateWheelTransform().
btAlignedObjectArray<btWheelInfo> btRaycastVehicle::m_wheelInfo |
Definition at line 114 of file btRaycastVehicle.h.
Referenced by addWheel(), getNumWheels(), getWheelInfo(), getWheelTransformWS(), resetSuspension(), updateFriction(), updateSuspension(), updateVehicle(), and updateWheelTransform().