35#include "vehicle2/PxVehicleFunctions.h"
37#include "vehicle2/suspension/PxVehicleSuspensionParams.h"
38#include "vehicle2/suspension/PxVehicleSuspensionStates.h"
40#include "PxVehicleWheelParams.h"
41#include "PxVehicleWheelStates.h"
62(
const PxVehicleFrame& frame,
63 const PxVehicleSuspensionParams& suspensionParams,
64 const PxReal camberAngle,
const PxReal toeAngle,
const PxReal steerAngle,
65 const PxReal rotationAngle)
67 const PxQuat wheelLocalOrientation =
68 (suspensionParams.suspensionAttachment.q * PxVehicleComputeRotation(frame, camberAngle, 0.0f, steerAngle + toeAngle))*
69 (suspensionParams.wheelAttachment.q * PxVehicleComputeRotation(frame, 0.0f, rotationAngle, 0.0f));
70 return wheelLocalOrientation;
86(
const PxVehicleFrame& frame,
87 const PxVehicleSuspensionParams& suspensionParams,
88 const PxReal camberAngle,
const PxReal toeAngle,
const PxReal steerAngle,
89 const PxQuat& rigidBodyOrientation,
const PxReal rotationAngle)
91 const PxQuat wheelOrientation = rigidBodyOrientation * PxVehicleComputeWheelLocalOrientation(frame, suspensionParams,
92 camberAngle, toeAngle, steerAngle, rotationAngle);
93 return wheelOrientation;
108(
const PxVehicleFrame& frame,
109 const PxVehicleSuspensionParams& suspensionParams,
110 const PxVehicleSuspensionState& suspensionState,
111 const PxReal camberAngle,
const PxReal toeAngle,
const PxReal steerAngle,
112 const PxReal rotationAngle)
122 const PxF32 suspDist = (suspensionState.jounce != PX_VEHICLE_UNSPECIFIED_JOUNCE) ? (suspensionParams.suspensionTravelDist - suspensionState.jounce) : 0.0f;
123 const PxTransform wheelLocalPose =
125 suspensionParams.suspensionAttachment.p + suspensionParams.suspensionTravelDir*suspDist,
126 suspensionParams.suspensionAttachment.q*PxVehicleComputeRotation(frame, camberAngle, 0.0f, steerAngle + toeAngle))*
128 suspensionParams.wheelAttachment.p,
129 suspensionParams.wheelAttachment.q*PxVehicleComputeRotation(frame, 0.0f, rotationAngle, 0.0f));
130 return wheelLocalPose;
145(
const PxVehicleFrame& frame,
146 const PxVehicleSuspensionParams& suspensionParams,
147 const PxVehicleSuspensionState& suspensionState,
const PxVehicleSuspensionComplianceState& suspensionComplianceState,
148 const PxReal steerAngle,
149 const PxVehicleWheelRigidBody1dState& wheelState)
151 return PxVehicleComputeWheelLocalPose(frame, suspensionParams, suspensionState,
152 suspensionComplianceState.camber, suspensionComplianceState.toe, steerAngle,
153 wheelState.rotationAngle);
169(
const PxVehicleFrame& frame,
170 const PxVehicleSuspensionParams& suspensionParams,
171 const PxVehicleSuspensionState& suspensionState,
172 const PxReal camberAngle,
const PxReal toeAngle,
const PxReal steerAngle,
173 const PxTransform& rigidBodyPose,
const PxReal rotationAngle)
175 const PxTransform wheelPose = rigidBodyPose * PxVehicleComputeWheelLocalPose(frame, suspensionParams, suspensionState,
176 camberAngle, toeAngle, steerAngle, rotationAngle);
193(
const PxVehicleFrame& frame,
194 const PxVehicleSuspensionParams& suspensionParams,
195 const PxVehicleSuspensionState& suspensionState,
const PxVehicleSuspensionComplianceState& suspensionComplianceState,
const PxReal steerAngle,
196 const PxTransform& rigidBodyPose,
const PxVehicleWheelRigidBody1dState& wheelState)
198 return PxVehicleComputeWheelPose(frame, suspensionParams, suspensionState,
199 suspensionComplianceState.camber, suspensionComplianceState.toe, steerAngle,
200 rigidBodyPose, wheelState.rotationAngle);
211PX_FORCE_INLINE bool PxVehicleIsWheelOnGround(
const PxVehicleSuspensionState& suspState)
213 return (suspState.separation <= 0.0f);
#define PX_FORCE_INLINE
Definition PxPreprocessor.h:335
Sorts an array of objects in ascending order, assuming that the predicate implements the < operator:
Definition PxBoxController.h:39