00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030 #ifndef PX_VEHICLE_SDK_H
00031 #define PX_VEHICLE_SDK_H
00032
00036 #include "foundation/Px.h"
00037 #include "common/PxTypeInfo.h"
00038
00039 #if !PX_DOXYGEN
00040 namespace physx
00041 {
00042 #endif
00043
00044 class PxPhysics;
00045 class PxSerializationRegistry;
00046
00060 PX_C_EXPORT bool PX_CALL_CONV PxInitVehicleSDK(PxPhysics& physics, PxSerializationRegistry* serializationRegistry = NULL);
00061
00062
00075 PX_C_EXPORT void PX_CALL_CONV PxCloseVehicleSDK(PxSerializationRegistry* serializationRegistry = NULL);
00076
00077
00081 #define PX_MAX_NB_WHEELS (20)
00082
00083
00089 #define PX_DEBUG_VEHICLE_ON (1)
00090
00091
00095 struct PxVehicleTypes
00096 {
00097 enum Enum
00098 {
00099 eDRIVE4W=0,
00100 eDRIVENW,
00101 eDRIVETANK,
00102 eNODRIVE,
00103 eUSER1,
00104 eUSER2,
00105 eUSER3,
00106 eMAX_NB_VEHICLE_TYPES
00107 };
00108 };
00109
00110
00116 struct PxVehicleConcreteType
00117 {
00118 enum Enum
00119 {
00120 eVehicleNoDrive = PxConcreteType::eFIRST_VEHICLE_EXTENSION,
00121 eVehicleDrive4W,
00122 eVehicleDriveNW,
00123 eVehicleDriveTank
00124 };
00125 };
00126
00127
00135 void PxVehicleSetBasisVectors(const PxVec3& up, const PxVec3& forward);
00136
00137
00141 struct PxVehicleUpdateMode
00142 {
00143 enum Enum
00144 {
00145 eVELOCITY_CHANGE,
00146 eACCELERATION
00147 };
00148 };
00149
00150
00162 void PxVehicleSetUpdateMode(PxVehicleUpdateMode::Enum vehicleUpdateMode);
00163
00216 void PxVehicleSetSweepHitRejectionAngles(const PxF32 pointRejectAngle, const PxF32 normalRejectAngle);
00217
00218
00230 void PxVehicleSetMaxHitActorAcceleration(const PxF32 maxHitActorAcceleration);
00231
00232 #if !PX_DOXYGEN
00233 }
00234 #endif
00235
00237 #endif //PX_VEHICLE_SDK_H