|
@@ -54,13 +54,22 @@ typedef float JPC_Real;
|
|
extern "C" {
|
|
extern "C" {
|
|
#endif
|
|
#endif
|
|
|
|
|
|
|
|
+#ifndef ENSURE_TESTS
|
|
|
|
+ #define ENSURE_EQUAL(a, b)
|
|
|
|
+ #define ENSURE_ENUM_EQ(a, b)
|
|
|
|
+ #define ENSURE_SIZE_ALIGN(a, b)
|
|
|
|
+ #define ENSURE_FIELD(a, b, c, d)
|
|
|
|
+#endif
|
|
|
|
+
|
|
// JPC_JobSystem_Create()
|
|
// JPC_JobSystem_Create()
|
|
-enum JPC_JobSystemConstants
|
|
|
|
-{
|
|
|
|
|
|
+enum JPC_JobSystemConstants {
|
|
JPC_MAX_PHYSICS_JOBS = 2048,
|
|
JPC_MAX_PHYSICS_JOBS = 2048,
|
|
JPC_MAX_PHYSICS_BARRIERS = 8
|
|
JPC_MAX_PHYSICS_BARRIERS = 8
|
|
};
|
|
};
|
|
|
|
|
|
|
|
+ENSURE_EQUAL(JPC_MAX_PHYSICS_JOBS, JPH::cMaxPhysicsJobs);
|
|
|
|
+ENSURE_EQUAL(JPC_MAX_PHYSICS_BARRIERS, JPH::cMaxPhysicsBarriers);
|
|
|
|
+
|
|
typedef enum JPC_ShapeType: uint8_t {
|
|
typedef enum JPC_ShapeType: uint8_t {
|
|
JPC_SHAPE_TYPE_CONVEX,
|
|
JPC_SHAPE_TYPE_CONVEX,
|
|
JPC_SHAPE_TYPE_COMPOUND,
|
|
JPC_SHAPE_TYPE_COMPOUND,
|
|
@@ -74,6 +83,16 @@ typedef enum JPC_ShapeType: uint8_t {
|
|
JPC_SHAPE_TYPE_USER4,
|
|
JPC_SHAPE_TYPE_USER4,
|
|
} JPC_ShapeType;
|
|
} JPC_ShapeType;
|
|
|
|
|
|
|
|
+ENSURE_ENUM_EQ(JPC_SHAPE_TYPE_CONVEX, JPH::EShapeType::Convex)
|
|
|
|
+ENSURE_ENUM_EQ(JPC_SHAPE_TYPE_COMPOUND, JPH::EShapeType::Compound)
|
|
|
|
+ENSURE_ENUM_EQ(JPC_SHAPE_TYPE_DECORATED, JPH::EShapeType::Decorated)
|
|
|
|
+ENSURE_ENUM_EQ(JPC_SHAPE_TYPE_MESH, JPH::EShapeType::Mesh)
|
|
|
|
+ENSURE_ENUM_EQ(JPC_SHAPE_TYPE_HEIGHT_FIELD, JPH::EShapeType::HeightField)
|
|
|
|
+ENSURE_ENUM_EQ(JPC_SHAPE_TYPE_USER1, JPH::EShapeType::User1)
|
|
|
|
+ENSURE_ENUM_EQ(JPC_SHAPE_TYPE_USER2, JPH::EShapeType::User2)
|
|
|
|
+ENSURE_ENUM_EQ(JPC_SHAPE_TYPE_USER3, JPH::EShapeType::User3)
|
|
|
|
+ENSURE_ENUM_EQ(JPC_SHAPE_TYPE_USER4, JPH::EShapeType::User4)
|
|
|
|
+
|
|
typedef enum JPC_ShapeSubType: uint8_t {
|
|
typedef enum JPC_ShapeSubType: uint8_t {
|
|
JPC_SHAPE_SUB_TYPE_SPHERE,
|
|
JPC_SHAPE_SUB_TYPE_SPHERE,
|
|
JPC_SHAPE_SUB_TYPE_BOX,
|
|
JPC_SHAPE_SUB_TYPE_BOX,
|
|
@@ -108,6 +127,38 @@ typedef enum JPC_ShapeSubType: uint8_t {
|
|
JPC_SHAPE_SUB_TYPE_USER_CONVEX8,
|
|
JPC_SHAPE_SUB_TYPE_USER_CONVEX8,
|
|
} JPC_ShapeSubType;
|
|
} JPC_ShapeSubType;
|
|
|
|
|
|
|
|
+ENSURE_ENUM_EQ(JPC_SHAPE_SUB_TYPE_SPHERE, JPH::EShapeSubType::Sphere)
|
|
|
|
+ENSURE_ENUM_EQ(JPC_SHAPE_SUB_TYPE_BOX, JPH::EShapeSubType::Box)
|
|
|
|
+ENSURE_ENUM_EQ(JPC_SHAPE_SUB_TYPE_TRIANGLE, JPH::EShapeSubType::Triangle)
|
|
|
|
+ENSURE_ENUM_EQ(JPC_SHAPE_SUB_TYPE_CAPSULE, JPH::EShapeSubType::Capsule)
|
|
|
|
+ENSURE_ENUM_EQ(JPC_SHAPE_SUB_TYPE_TAPEREDCAPSULE, JPH::EShapeSubType::TaperedCapsule)
|
|
|
|
+ENSURE_ENUM_EQ(JPC_SHAPE_SUB_TYPE_CYLINDER, JPH::EShapeSubType::Cylinder)
|
|
|
|
+ENSURE_ENUM_EQ(JPC_SHAPE_SUB_TYPE_CONVEX_HULL, JPH::EShapeSubType::ConvexHull)
|
|
|
|
+ENSURE_ENUM_EQ(JPC_SHAPE_SUB_TYPE_STATIC_COMPOUND, JPH::EShapeSubType::StaticCompound)
|
|
|
|
+ENSURE_ENUM_EQ(JPC_SHAPE_SUB_TYPE_MUTABLE_COMPOUND, JPH::EShapeSubType::MutableCompound)
|
|
|
|
+ENSURE_ENUM_EQ(JPC_SHAPE_SUB_TYPE_ROTATED_TRANSLATED, JPH::EShapeSubType::RotatedTranslated)
|
|
|
|
+ENSURE_ENUM_EQ(JPC_SHAPE_SUB_TYPE_SCALED, JPH::EShapeSubType::Scaled)
|
|
|
|
+ENSURE_ENUM_EQ(JPC_SHAPE_SUB_TYPE_OFFSET_CENTER_OF_MASS, JPH::EShapeSubType::OffsetCenterOfMass)
|
|
|
|
+ENSURE_ENUM_EQ(JPC_SHAPE_SUB_TYPE_MESH, JPH::EShapeSubType::Mesh)
|
|
|
|
+ENSURE_ENUM_EQ(JPC_SHAPE_SUB_TYPE_HEIGHT_FIELD, JPH::EShapeSubType::HeightField)
|
|
|
|
+ENSURE_ENUM_EQ(JPC_SHAPE_SUB_TYPE_SOFT_BODY, JPH::EShapeSubType::SoftBody)
|
|
|
|
+ENSURE_ENUM_EQ(JPC_SHAPE_SUB_TYPE_USER1, JPH::EShapeSubType::User1)
|
|
|
|
+ENSURE_ENUM_EQ(JPC_SHAPE_SUB_TYPE_USER2, JPH::EShapeSubType::User2)
|
|
|
|
+ENSURE_ENUM_EQ(JPC_SHAPE_SUB_TYPE_USER3, JPH::EShapeSubType::User3)
|
|
|
|
+ENSURE_ENUM_EQ(JPC_SHAPE_SUB_TYPE_USER4, JPH::EShapeSubType::User4)
|
|
|
|
+ENSURE_ENUM_EQ(JPC_SHAPE_SUB_TYPE_USER5, JPH::EShapeSubType::User5)
|
|
|
|
+ENSURE_ENUM_EQ(JPC_SHAPE_SUB_TYPE_USER6, JPH::EShapeSubType::User6)
|
|
|
|
+ENSURE_ENUM_EQ(JPC_SHAPE_SUB_TYPE_USER7, JPH::EShapeSubType::User7)
|
|
|
|
+ENSURE_ENUM_EQ(JPC_SHAPE_SUB_TYPE_USER8, JPH::EShapeSubType::User8)
|
|
|
|
+ENSURE_ENUM_EQ(JPC_SHAPE_SUB_TYPE_USER_CONVEX1, JPH::EShapeSubType::UserConvex1)
|
|
|
|
+ENSURE_ENUM_EQ(JPC_SHAPE_SUB_TYPE_USER_CONVEX2, JPH::EShapeSubType::UserConvex2)
|
|
|
|
+ENSURE_ENUM_EQ(JPC_SHAPE_SUB_TYPE_USER_CONVEX3, JPH::EShapeSubType::UserConvex3)
|
|
|
|
+ENSURE_ENUM_EQ(JPC_SHAPE_SUB_TYPE_USER_CONVEX4, JPH::EShapeSubType::UserConvex4)
|
|
|
|
+ENSURE_ENUM_EQ(JPC_SHAPE_SUB_TYPE_USER_CONVEX5, JPH::EShapeSubType::UserConvex5)
|
|
|
|
+ENSURE_ENUM_EQ(JPC_SHAPE_SUB_TYPE_USER_CONVEX6, JPH::EShapeSubType::UserConvex6)
|
|
|
|
+ENSURE_ENUM_EQ(JPC_SHAPE_SUB_TYPE_USER_CONVEX7, JPH::EShapeSubType::UserConvex7)
|
|
|
|
+ENSURE_ENUM_EQ(JPC_SHAPE_SUB_TYPE_USER_CONVEX8, JPH::EShapeSubType::UserConvex8)
|
|
|
|
+
|
|
typedef enum JPC_PhysicsUpdateError: uint32_t {
|
|
typedef enum JPC_PhysicsUpdateError: uint32_t {
|
|
JPC_PHYSICS_UPDATE_ERROR_NONE = 0,
|
|
JPC_PHYSICS_UPDATE_ERROR_NONE = 0,
|
|
JPC_PHYSICS_UPDATE_ERROR_MANIFOLD_CACHE_FULL = 1 << 0,
|
|
JPC_PHYSICS_UPDATE_ERROR_MANIFOLD_CACHE_FULL = 1 << 0,
|
|
@@ -115,106 +166,149 @@ typedef enum JPC_PhysicsUpdateError: uint32_t {
|
|
JPC_PHYSICS_UPDATE_ERROR_CONTACT_CONSTRAINTS_FULL = 1 << 2,
|
|
JPC_PHYSICS_UPDATE_ERROR_CONTACT_CONSTRAINTS_FULL = 1 << 2,
|
|
} JPC_PhysicsUpdateError;
|
|
} JPC_PhysicsUpdateError;
|
|
|
|
|
|
-typedef enum JPC_ConstraintType
|
|
|
|
-{
|
|
|
|
- JPC_CONSTRAINT_TYPE_CONSTRAINT = 0,
|
|
|
|
- JPC_CONSTRAINT_TYPE_TWO_BODY_CONSTRAINT = 1,
|
|
|
|
- _JPC_CONSTRAINT_TYPE_FORCEU32 = 0x7fffffff
|
|
|
|
|
|
+ENSURE_ENUM_EQ(JPC_PHYSICS_UPDATE_ERROR_NONE, JPH::EPhysicsUpdateError::None)
|
|
|
|
+ENSURE_ENUM_EQ(JPC_PHYSICS_UPDATE_ERROR_MANIFOLD_CACHE_FULL, JPH::EPhysicsUpdateError::ManifoldCacheFull)
|
|
|
|
+ENSURE_ENUM_EQ(JPC_PHYSICS_UPDATE_ERROR_BODY_PAIR_CACHE_FULL, JPH::EPhysicsUpdateError::BodyPairCacheFull)
|
|
|
|
+ENSURE_ENUM_EQ(JPC_PHYSICS_UPDATE_ERROR_CONTACT_CONSTRAINTS_FULL, JPH::EPhysicsUpdateError::ContactConstraintsFull)
|
|
|
|
+
|
|
|
|
+typedef enum JPC_ConstraintType: uint32_t {
|
|
|
|
+ JPC_CONSTRAINT_TYPE_CONSTRAINT,
|
|
|
|
+ JPC_CONSTRAINT_TYPE_TWO_BODY_CONSTRAINT,
|
|
} JPC_ConstraintType;
|
|
} JPC_ConstraintType;
|
|
|
|
|
|
-typedef enum JPC_ConstraintSubType
|
|
|
|
-{
|
|
|
|
- JPC_CONSTRAINT_SUB_TYPE_FIXED = 0,
|
|
|
|
- JPC_CONSTRAINT_SUB_TYPE_POINT = 1,
|
|
|
|
- JPC_CONSTRAINT_SUB_TYPE_HINGE = 2,
|
|
|
|
- JPC_CONSTRAINT_SUB_TYPE_SLIDER = 3,
|
|
|
|
- JPC_CONSTRAINT_SUB_TYPE_DISTANCE = 4,
|
|
|
|
- JPC_CONSTRAINT_SUB_TYPE_CONE = 5,
|
|
|
|
- JPC_CONSTRAINT_SUB_TYPE_SWING_TWIST = 6,
|
|
|
|
- JPC_CONSTRAINT_SUB_TYPE_SIX_DOF = 7,
|
|
|
|
- JPC_CONSTRAINT_SUB_TYPE_PATH = 8,
|
|
|
|
- JPC_CONSTRAINT_SUB_TYPE_VEHICLE = 9,
|
|
|
|
- JPC_CONSTRAINT_SUB_TYPE_RACK_AND_PINION = 10,
|
|
|
|
- JPC_CONSTRAINT_SUB_TYPE_GEAR = 11,
|
|
|
|
- JPC_CONSTRAINT_SUB_TYPE_PULLEY = 12,
|
|
|
|
- JPC_CONSTRAINT_SUB_TYPE_USER1 = 13,
|
|
|
|
- JPC_CONSTRAINT_SUB_TYPE_USER2 = 14,
|
|
|
|
- JPC_CONSTRAINT_SUB_TYPE_USER3 = 15,
|
|
|
|
- JPC_CONSTRAINT_SUB_TYPE_USER4 = 16,
|
|
|
|
- _JPC_CONSTRAINT_SUB_TYPE_FORCEU32 = 0x7fffffff
|
|
|
|
|
|
+ENSURE_ENUM_EQ(JPC_CONSTRAINT_TYPE_CONSTRAINT, JPH::EConstraintType::Constraint)
|
|
|
|
+ENSURE_ENUM_EQ(JPC_CONSTRAINT_TYPE_TWO_BODY_CONSTRAINT, JPH::EConstraintType::TwoBodyConstraint)
|
|
|
|
+
|
|
|
|
+typedef enum JPC_ConstraintSubType: uint32_t {
|
|
|
|
+ JPC_CONSTRAINT_SUB_TYPE_FIXED,
|
|
|
|
+ JPC_CONSTRAINT_SUB_TYPE_POINT,
|
|
|
|
+ JPC_CONSTRAINT_SUB_TYPE_HINGE,
|
|
|
|
+ JPC_CONSTRAINT_SUB_TYPE_SLIDER,
|
|
|
|
+ JPC_CONSTRAINT_SUB_TYPE_DISTANCE,
|
|
|
|
+ JPC_CONSTRAINT_SUB_TYPE_CONE,
|
|
|
|
+ JPC_CONSTRAINT_SUB_TYPE_SWING_TWIST,
|
|
|
|
+ JPC_CONSTRAINT_SUB_TYPE_SIX_DOF,
|
|
|
|
+ JPC_CONSTRAINT_SUB_TYPE_PATH,
|
|
|
|
+ JPC_CONSTRAINT_SUB_TYPE_VEHICLE,
|
|
|
|
+ JPC_CONSTRAINT_SUB_TYPE_RACK_AND_PINION,
|
|
|
|
+ JPC_CONSTRAINT_SUB_TYPE_GEAR,
|
|
|
|
+ JPC_CONSTRAINT_SUB_TYPE_PULLEY,
|
|
|
|
+ JPC_CONSTRAINT_SUB_TYPE_USER1,
|
|
|
|
+ JPC_CONSTRAINT_SUB_TYPE_USER2,
|
|
|
|
+ JPC_CONSTRAINT_SUB_TYPE_USER3,
|
|
|
|
+ JPC_CONSTRAINT_SUB_TYPE_USER4,
|
|
} JPC_ConstraintSubType;
|
|
} JPC_ConstraintSubType;
|
|
|
|
|
|
-typedef enum JPC_ConstraintSpace
|
|
|
|
-{
|
|
|
|
- JPC_CONSTRAINT_SPACE_LOCAL_TO_BODY_COM = 0,
|
|
|
|
- JPC_CONSTRAINT_SPACE_WORLD_SPACE = 1,
|
|
|
|
- _JPC_CONSTRAINT_SPACE_FORCEU32 = 0x7fffffff
|
|
|
|
|
|
+ENSURE_ENUM_EQ(JPC_CONSTRAINT_SUB_TYPE_FIXED, JPH::EConstraintSubType::Fixed)
|
|
|
|
+ENSURE_ENUM_EQ(JPC_CONSTRAINT_SUB_TYPE_POINT, JPH::EConstraintSubType::Point)
|
|
|
|
+ENSURE_ENUM_EQ(JPC_CONSTRAINT_SUB_TYPE_HINGE, JPH::EConstraintSubType::Hinge)
|
|
|
|
+ENSURE_ENUM_EQ(JPC_CONSTRAINT_SUB_TYPE_SLIDER, JPH::EConstraintSubType::Slider)
|
|
|
|
+ENSURE_ENUM_EQ(JPC_CONSTRAINT_SUB_TYPE_DISTANCE, JPH::EConstraintSubType::Distance)
|
|
|
|
+ENSURE_ENUM_EQ(JPC_CONSTRAINT_SUB_TYPE_CONE, JPH::EConstraintSubType::Cone)
|
|
|
|
+ENSURE_ENUM_EQ(JPC_CONSTRAINT_SUB_TYPE_SWING_TWIST, JPH::EConstraintSubType::SwingTwist)
|
|
|
|
+ENSURE_ENUM_EQ(JPC_CONSTRAINT_SUB_TYPE_SIX_DOF, JPH::EConstraintSubType::SixDOF)
|
|
|
|
+ENSURE_ENUM_EQ(JPC_CONSTRAINT_SUB_TYPE_PATH, JPH::EConstraintSubType::Path)
|
|
|
|
+ENSURE_ENUM_EQ(JPC_CONSTRAINT_SUB_TYPE_VEHICLE, JPH::EConstraintSubType::Vehicle)
|
|
|
|
+ENSURE_ENUM_EQ(JPC_CONSTRAINT_SUB_TYPE_RACK_AND_PINION, JPH::EConstraintSubType::RackAndPinion)
|
|
|
|
+ENSURE_ENUM_EQ(JPC_CONSTRAINT_SUB_TYPE_GEAR, JPH::EConstraintSubType::Gear)
|
|
|
|
+ENSURE_ENUM_EQ(JPC_CONSTRAINT_SUB_TYPE_PULLEY, JPH::EConstraintSubType::Pulley)
|
|
|
|
+ENSURE_ENUM_EQ(JPC_CONSTRAINT_SUB_TYPE_USER1, JPH::EConstraintSubType::User1)
|
|
|
|
+ENSURE_ENUM_EQ(JPC_CONSTRAINT_SUB_TYPE_USER2, JPH::EConstraintSubType::User2)
|
|
|
|
+ENSURE_ENUM_EQ(JPC_CONSTRAINT_SUB_TYPE_USER3, JPH::EConstraintSubType::User3)
|
|
|
|
+ENSURE_ENUM_EQ(JPC_CONSTRAINT_SUB_TYPE_USER4, JPH::EConstraintSubType::User4)
|
|
|
|
+
|
|
|
|
+typedef enum JPC_ConstraintSpace: uint32_t {
|
|
|
|
+ JPC_CONSTRAINT_SPACE_LOCAL_TO_BODY_COM,
|
|
|
|
+ JPC_CONSTRAINT_SPACE_WORLD_SPACE,
|
|
} JPC_ConstraintSpace;
|
|
} JPC_ConstraintSpace;
|
|
|
|
|
|
-typedef uint8_t JPC_MotionType;
|
|
|
|
-typedef enum JPC_EMotionType
|
|
|
|
-{
|
|
|
|
- JPC_MOTION_TYPE_STATIC = 0,
|
|
|
|
- JPC_MOTION_TYPE_KINEMATIC = 1,
|
|
|
|
- JPC_MOTION_TYPE_DYNAMIC = 2
|
|
|
|
-} JPC_EMotionType;
|
|
|
|
-
|
|
|
|
-typedef uint8_t JPC_MotionQuality;
|
|
|
|
-typedef enum JPC_EMotionQuality
|
|
|
|
-{
|
|
|
|
- JPC_MOTION_QUALITY_DISCRETE = 0,
|
|
|
|
- JPC_MOTION_QUALITY_LINEAR_CAST = 1
|
|
|
|
-} JPC_EMotionQuality;
|
|
|
|
-
|
|
|
|
-typedef uint8_t JPC_OverrideMassProperties;
|
|
|
|
-typedef enum JPC_EOverrideMassProperties
|
|
|
|
-{
|
|
|
|
- JPC_OVERRIDE_MASS_PROPS_CALC_MASS_INERTIA = 0,
|
|
|
|
- JPC_OVERRIDE_MASS_PROPS_CALC_INERTIA = 1,
|
|
|
|
- JPC_OVERRIDE_MASS_PROPS_MASS_INERTIA_PROVIDED = 2
|
|
|
|
-} JPC_EOverrideMassProperties;
|
|
|
|
-
|
|
|
|
-typedef enum JPC_CharacterGroundState
|
|
|
|
-{
|
|
|
|
- JPC_CHARACTER_GROUND_STATE_ON_GROUND = 0,
|
|
|
|
- JPC_CHARACTER_GROUND_STATE_ON_STEEP_GROUND = 1,
|
|
|
|
- JPC_CHARACTER_GROUND_STATE_NOT_SUPPORTED = 2,
|
|
|
|
- JPC_CHARACTER_GROUND_STATE_IN_AIR = 3,
|
|
|
|
- _JPC_CHARACTER_GROUND_FORCEU32 = 0x7fffffff
|
|
|
|
-} JPC_CharacterGroundState;
|
|
|
|
-
|
|
|
|
-typedef enum JPC_Activation
|
|
|
|
-{
|
|
|
|
|
|
+ENSURE_ENUM_EQ(JPC_CONSTRAINT_SPACE_LOCAL_TO_BODY_COM, JPH::EConstraintSpace::LocalToBodyCOM)
|
|
|
|
+ENSURE_ENUM_EQ(JPC_CONSTRAINT_SPACE_WORLD_SPACE, JPH::EConstraintSpace::WorldSpace)
|
|
|
|
+
|
|
|
|
+typedef enum JPC_MotionType: uint8_t {
|
|
|
|
+ JPC_MOTION_TYPE_STATIC,
|
|
|
|
+ JPC_MOTION_TYPE_KINEMATIC,
|
|
|
|
+ JPC_MOTION_TYPE_DYNAMIC,
|
|
|
|
+} JPC_MotionType;
|
|
|
|
+
|
|
|
|
+ENSURE_ENUM_EQ(JPC_MOTION_TYPE_STATIC, JPH::EMotionType::Static)
|
|
|
|
+ENSURE_ENUM_EQ(JPC_MOTION_TYPE_KINEMATIC, JPH::EMotionType::Kinematic)
|
|
|
|
+ENSURE_ENUM_EQ(JPC_MOTION_TYPE_DYNAMIC, JPH::EMotionType::Dynamic)
|
|
|
|
+
|
|
|
|
+typedef enum JPC_MotionQuality: uint8_t {
|
|
|
|
+ JPC_MOTION_QUALITY_DISCRETE,
|
|
|
|
+ JPC_MOTION_QUALITY_LINEAR_CAST,
|
|
|
|
+} JPC_MotionQuality;
|
|
|
|
+
|
|
|
|
+ENSURE_ENUM_EQ(JPC_MOTION_QUALITY_DISCRETE, JPH::EMotionQuality::Discrete)
|
|
|
|
+ENSURE_ENUM_EQ(JPC_MOTION_QUALITY_LINEAR_CAST, JPH::EMotionQuality::LinearCast)
|
|
|
|
+
|
|
|
|
+typedef enum JPC_OverrideMassProperties: uint8_t {
|
|
|
|
+ JPC_OVERRIDE_MASS_PROPS_CALC_MASS_INERTIA,
|
|
|
|
+ JPC_OVERRIDE_MASS_PROPS_CALC_INERTIA,
|
|
|
|
+ JPC_OVERRIDE_MASS_PROPS_MASS_INERTIA_PROVIDED,
|
|
|
|
+} JPC_OverrideMassProperties;
|
|
|
|
+
|
|
|
|
+ENSURE_ENUM_EQ(JPC_OVERRIDE_MASS_PROPS_CALC_MASS_INERTIA,
|
|
|
|
+ JPH::EOverrideMassProperties::CalculateMassAndInertia);
|
|
|
|
+ENSURE_ENUM_EQ(JPC_OVERRIDE_MASS_PROPS_CALC_INERTIA,
|
|
|
|
+ JPH::EOverrideMassProperties::CalculateInertia);
|
|
|
|
+ENSURE_ENUM_EQ(JPC_OVERRIDE_MASS_PROPS_MASS_INERTIA_PROVIDED,
|
|
|
|
+ JPH::EOverrideMassProperties::MassAndInertiaProvided);
|
|
|
|
+
|
|
|
|
+typedef enum JPC_GroundState: uint32_t {
|
|
|
|
+ JPC_CHARACTER_GROUND_STATE_ON_GROUND,
|
|
|
|
+ JPC_CHARACTER_GROUND_STATE_ON_STEEP_GROUND,
|
|
|
|
+ JPC_CHARACTER_GROUND_STATE_NOT_SUPPORTED,
|
|
|
|
+ JPC_CHARACTER_GROUND_STATE_IN_AIR,
|
|
|
|
+} JPC_GroundState;
|
|
|
|
+
|
|
|
|
+// ENSURE_ENUM_EQ(JPC_CHARACTER_GROUND_STATE_ON_GROUND, JPH::EGroundState::OnGround)
|
|
|
|
+// ENSURE_ENUM_EQ(JPC_CHARACTER_GROUND_STATE_ON_STEEP_GROUND, JPH::EGroundState::OnSteepGround)
|
|
|
|
+// ENSURE_ENUM_EQ(JPC_CHARACTER_GROUND_STATE_NOT_SUPPORTED, JPH::EGroundState::NotSupported)
|
|
|
|
+// ENSURE_ENUM_EQ(JPC_CHARACTER_GROUND_STATE_IN_AIR, JPH::EGroundState::InAir)
|
|
|
|
+
|
|
|
|
+typedef enum JPC_Activation: uint32_t {
|
|
JPC_ACTIVATION_ACTIVATE = 0,
|
|
JPC_ACTIVATION_ACTIVATE = 0,
|
|
JPC_ACTIVATION_DONT_ACTIVATE = 1,
|
|
JPC_ACTIVATION_DONT_ACTIVATE = 1,
|
|
- _JPC_ACTIVATION_FORCEU32 = 0x7fffffff
|
|
|
|
} JPC_Activation;
|
|
} JPC_Activation;
|
|
|
|
|
|
-typedef enum JPC_ValidateResult
|
|
|
|
-{
|
|
|
|
- JPC_VALIDATE_RESULT_ACCEPT_ALL_CONTACTS = 0,
|
|
|
|
- JPC_VALIDATE_RESULT_ACCEPT_CONTACT = 1,
|
|
|
|
- JPC_VALIDATE_RESULT_REJECT_CONTACT = 2,
|
|
|
|
- JPC_VALIDATE_RESULT_REJECT_ALL_CONTACTS = 3,
|
|
|
|
- _JPC_VALIDATE_RESULT_FORCEU32 = 0x7fffffff
|
|
|
|
|
|
+ENSURE_ENUM_EQ(JPC_ACTIVATION_ACTIVATE, JPH::EActivation::Activate)
|
|
|
|
+ENSURE_ENUM_EQ(JPC_ACTIVATION_DONT_ACTIVATE, JPH::EActivation::DontActivate)
|
|
|
|
+
|
|
|
|
+typedef enum JPC_ValidateResult: uint32_t {
|
|
|
|
+ JPC_VALIDATE_RESULT_ACCEPT_ALL_CONTACTS,
|
|
|
|
+ JPC_VALIDATE_RESULT_ACCEPT_CONTACT,
|
|
|
|
+ JPC_VALIDATE_RESULT_REJECT_CONTACT,
|
|
|
|
+ JPC_VALIDATE_RESULT_REJECT_ALL_CONTACTS,
|
|
} JPC_ValidateResult;
|
|
} JPC_ValidateResult;
|
|
|
|
|
|
-typedef uint8_t JPC_BackFaceMode;
|
|
|
|
-typedef enum JPC_EBackFaceMode
|
|
|
|
-{
|
|
|
|
- JPC_BACK_FACE_IGNORE = 0,
|
|
|
|
- JPC_BACK_FACE_COLLIDE = 1
|
|
|
|
-} JPC_EBackFaceMode;
|
|
|
|
|
|
+ENSURE_ENUM_EQ(JPC_VALIDATE_RESULT_ACCEPT_ALL_CONTACTS,
|
|
|
|
+ JPH::ValidateResult::AcceptAllContactsForThisBodyPair);
|
|
|
|
+ENSURE_ENUM_EQ(JPC_VALIDATE_RESULT_ACCEPT_CONTACT,
|
|
|
|
+ JPH::ValidateResult::AcceptContact);
|
|
|
|
+ENSURE_ENUM_EQ(JPC_VALIDATE_RESULT_REJECT_CONTACT,
|
|
|
|
+ JPH::ValidateResult::RejectContact);
|
|
|
|
+ENSURE_ENUM_EQ(JPC_VALIDATE_RESULT_REJECT_ALL_CONTACTS,
|
|
|
|
+ JPH::ValidateResult::RejectAllContactsForThisBodyPair);
|
|
|
|
|
|
-typedef uint8_t JPC_BodyType;
|
|
|
|
-typedef enum JPC_EBodyType
|
|
|
|
-{
|
|
|
|
|
|
+typedef enum JPC_BackFaceMode: uint8_t {
|
|
|
|
+ JPC_BACK_FACE_IGNORE,
|
|
|
|
+ JPC_BACK_FACE_COLLIDE,
|
|
|
|
+} JPC_BackFaceMode;
|
|
|
|
+
|
|
|
|
+ENSURE_ENUM_EQ(JPC_BACK_FACE_IGNORE, JPH::EBackFaceMode::IgnoreBackFaces)
|
|
|
|
+ENSURE_ENUM_EQ(JPC_BACK_FACE_COLLIDE, JPH::EBackFaceMode::CollideWithBackFaces)
|
|
|
|
+
|
|
|
|
+typedef enum JPC_BodyType: uint8_t {
|
|
JPC_BODY_TYPE_RIGID_BODY = 0,
|
|
JPC_BODY_TYPE_RIGID_BODY = 0,
|
|
JPC_BODY_TYPE_SOFT_BODY = 1,
|
|
JPC_BODY_TYPE_SOFT_BODY = 1,
|
|
-} JPC_EBodyType;
|
|
|
|
|
|
+} JPC_BodyType;
|
|
|
|
+
|
|
|
|
+ENSURE_ENUM_EQ(JPC_BODY_TYPE_RIGID_BODY, JPH::EBodyType::RigidBody)
|
|
|
|
+ENSURE_ENUM_EQ(JPC_BODY_TYPE_SOFT_BODY, JPH::EBodyType::SoftBody)
|
|
|
|
|
|
-typedef uint8_t JPC_AllowedDOFs;
|
|
|
|
-typedef enum JPC_EAllowedDOFs {
|
|
|
|
|
|
+typedef enum JPC_AllowedDOFs: uint8_t {
|
|
JPC_ALLOWED_DOFS_NONE = 0b000000,
|
|
JPC_ALLOWED_DOFS_NONE = 0b000000,
|
|
JPC_ALLOWED_DOFS_ALL = 0b111111,
|
|
JPC_ALLOWED_DOFS_ALL = 0b111111,
|
|
JPC_ALLOWED_DOFS_TRANSLATIONX = 0b000001,
|
|
JPC_ALLOWED_DOFS_TRANSLATIONX = 0b000001,
|
|
@@ -223,8 +317,18 @@ typedef enum JPC_EAllowedDOFs {
|
|
JPC_ALLOWED_DOFS_ROTATIONX = 0b001000,
|
|
JPC_ALLOWED_DOFS_ROTATIONX = 0b001000,
|
|
JPC_ALLOWED_DOFS_ROTATIONY = 0b010000,
|
|
JPC_ALLOWED_DOFS_ROTATIONY = 0b010000,
|
|
JPC_ALLOWED_DOFS_ROTATIONZ = 0b100000,
|
|
JPC_ALLOWED_DOFS_ROTATIONZ = 0b100000,
|
|
- JPC_ALLOWED_DOFS_PLANE2D = JPC_ALLOWED_DOFS_TRANSLATIONX | JPC_ALLOWED_DOFS_TRANSLATIONY | JPC_ALLOWED_DOFS_TRANSLATIONZ,
|
|
|
|
-} JPC_EAllowedDOFs;
|
|
|
|
|
|
+ JPC_ALLOWED_DOFS_PLANE2D = JPC_ALLOWED_DOFS_TRANSLATIONX | JPC_ALLOWED_DOFS_TRANSLATIONY | JPC_ALLOWED_DOFS_ROTATIONZ,
|
|
|
|
+} JPC_AllowedDOFs;
|
|
|
|
+
|
|
|
|
+ENSURE_ENUM_EQ(JPC_ALLOWED_DOFS_NONE, JPH::EAllowedDOFs::None)
|
|
|
|
+ENSURE_ENUM_EQ(JPC_ALLOWED_DOFS_ALL, JPH::EAllowedDOFs::All)
|
|
|
|
+ENSURE_ENUM_EQ(JPC_ALLOWED_DOFS_TRANSLATIONX, JPH::EAllowedDOFs::TranslationX)
|
|
|
|
+ENSURE_ENUM_EQ(JPC_ALLOWED_DOFS_TRANSLATIONY, JPH::EAllowedDOFs::TranslationY)
|
|
|
|
+ENSURE_ENUM_EQ(JPC_ALLOWED_DOFS_TRANSLATIONZ, JPH::EAllowedDOFs::TranslationZ)
|
|
|
|
+ENSURE_ENUM_EQ(JPC_ALLOWED_DOFS_ROTATIONX, JPH::EAllowedDOFs::RotationX)
|
|
|
|
+ENSURE_ENUM_EQ(JPC_ALLOWED_DOFS_ROTATIONY, JPH::EAllowedDOFs::RotationY)
|
|
|
|
+ENSURE_ENUM_EQ(JPC_ALLOWED_DOFS_ROTATIONZ, JPH::EAllowedDOFs::RotationZ)
|
|
|
|
+ENSURE_ENUM_EQ(JPC_ALLOWED_DOFS_PLANE2D, JPH::EAllowedDOFs::Plane2D)
|
|
|
|
|
|
typedef uint32_t JPC_Features;
|
|
typedef uint32_t JPC_Features;
|
|
typedef enum JPC_EFeatures {
|
|
typedef enum JPC_EFeatures {
|
|
@@ -358,6 +462,10 @@ typedef struct JPC_MassProperties
|
|
alignas(16) float inertia[16];
|
|
alignas(16) float inertia[16];
|
|
} JPC_MassProperties;
|
|
} JPC_MassProperties;
|
|
|
|
|
|
|
|
+ENSURE_SIZE_ALIGN(JPC_MassProperties, JPH::MassProperties)
|
|
|
|
+ENSURE_FIELD(JPC_MassProperties, mass, JPH::MassProperties, mMass)
|
|
|
|
+ENSURE_FIELD(JPC_MassProperties, inertia, JPH::MassProperties, mInertia)
|
|
|
|
+
|
|
// NOTE: Needs to be kept in sync with JPH::MotionProperties
|
|
// NOTE: Needs to be kept in sync with JPH::MotionProperties
|
|
typedef struct JPC_MotionProperties
|
|
typedef struct JPC_MotionProperties
|
|
{
|
|
{
|
|
@@ -1055,7 +1163,7 @@ JPC_MotionProperties_SetGravityFactor(JPC_MotionProperties *in_properties,
|
|
float in_gravity_factor);
|
|
float in_gravity_factor);
|
|
JPC_API void
|
|
JPC_API void
|
|
JPC_MotionProperties_SetMassProperties(JPC_MotionProperties *in_properties,
|
|
JPC_MotionProperties_SetMassProperties(JPC_MotionProperties *in_properties,
|
|
- JPC_EAllowedDOFs allowed_dofs,
|
|
|
|
|
|
+ JPC_AllowedDOFs allowed_dofs,
|
|
const JPC_MassProperties *in_mass_properties);
|
|
const JPC_MassProperties *in_mass_properties);
|
|
JPC_API float
|
|
JPC_API float
|
|
JPC_MotionProperties_GetInverseMass(const JPC_MotionProperties *in_properties);
|
|
JPC_MotionProperties_GetInverseMass(const JPC_MotionProperties *in_properties);
|
|
@@ -2096,7 +2204,7 @@ JPC_CharacterVirtual_UpdateGroundVelocity(JPC_CharacterVirtual *in_character);
|
|
JPC_API void
|
|
JPC_API void
|
|
JPC_CharacterVirtual_GetGroundVelocity(const JPC_CharacterVirtual *in_character, float out_ground_velocity[3]);
|
|
JPC_CharacterVirtual_GetGroundVelocity(const JPC_CharacterVirtual *in_character, float out_ground_velocity[3]);
|
|
|
|
|
|
-JPC_API JPC_CharacterGroundState
|
|
|
|
|
|
+JPC_API JPC_GroundState
|
|
JPC_CharacterVirtual_GetGroundState(JPC_CharacterVirtual *in_character);
|
|
JPC_CharacterVirtual_GetGroundState(JPC_CharacterVirtual *in_character);
|
|
|
|
|
|
JPC_API void
|
|
JPC_API void
|