Prechádzať zdrojové kódy

Implement defaults for JPC_ShapeCastSettings

Lucien Greathouse 11 mesiacov pred
rodič
commit
4d249e2394
3 zmenil súbory, kde vykonal 19 pridanie a 0 odobranie
  1. 2 0
      JoltC/Enums.h
  2. 2 0
      JoltC/Functions.h
  3. 15 0
      JoltC/JoltC.cpp

+ 2 - 0
JoltC/Enums.h

@@ -4,6 +4,8 @@
 
 const int JPC_MAX_PHYSICS_JOBS = 2048;
 const int JPC_MAX_PHYSICS_BARRIERS = 8;
+const float JPC_DEFAULT_COLLISION_TOLERANCE = 1.0e-4f;
+const float JPC_DEFAULT_PENETRATION_TOLERANCE = 1.0e-4f;
 
 ENSURE_EQUAL(JPC_MAX_PHYSICS_JOBS, JPH::cMaxPhysicsJobs);
 ENSURE_EQUAL(JPC_MAX_PHYSICS_BARRIERS, JPH::cMaxPhysicsBarriers);

+ 2 - 0
JoltC/Functions.h

@@ -802,6 +802,8 @@ typedef struct JPC_ShapeCastSettings {
 	bool ReturnDeepestPoint;
 } JPC_ShapeCastSettings;
 
+JPC_API void JPC_ShapeCastSettings_default(JPC_ShapeCastSettings* object);
+
 typedef struct JPC_NarrowPhaseQuery_CastShapeArgs {
 	JPC_RShapeCast ShapeCast;
 	JPC_ShapeCastSettings Settings;

+ 15 - 0
JoltC/JoltC.cpp

@@ -1467,6 +1467,21 @@ JPC_API bool JPC_NarrowPhaseQuery_CastRay(const JPC_NarrowPhaseQuery* self, JPC_
 	return hit;
 }
 
+JPC_API void JPC_ShapeCastSettings_default(JPC_ShapeCastSettings* object) {
+	// JPH::CollideSettingsBase
+	// EActiveEdgeMode ActiveEdgeMode;
+	// ECollectFacesMode CollectFacesMode;
+	object->CollisionTolerance = JPC_DEFAULT_COLLISION_TOLERANCE;
+	object->PenetrationTolerance = JPC_DEFAULT_PENETRATION_TOLERANCE;
+	object->ActiveEdgeMovementDirection = JPC_Vec3{0};
+
+	// JPH::ShapeCastSettings
+	// EBackFaceMode BackFaceModeTriangles;
+	// EBackFaceMode BackFaceModeConvex;
+	object->UseShrunkenShapeAndConvexRadius;
+	object->ReturnDeepestPoint;
+}
+
 JPC_API void JPC_NarrowPhaseQuery_CastShape(const JPC_NarrowPhaseQuery* self, JPC_NarrowPhaseQuery_CastShapeArgs* args) {
 	JPH::ShapeCastSettings settings{};