Fix ConcavePolygonShape3D
always enabling backface_collision
when using Jolt Physics
#104310
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixes #104309.
This fixes the issue of
ConcavePolygonShape3D
always behaving as if itsbackface_collision
was enabled when using Jolt Physics as the 3D physics engine.Prior to godot-jolt/godot-jolt#967 the
JoltCustomDoubleSidedShape
decorator shape was conditionally wrapped around theConcavePolygonShape3D
's underlyingJPH::MeshShape
, which meant we could always overrideJPH::CollideShapeSettings::mBackFaceMode
andJPH::ShapeCastSettings::mBackFaceModeTriangles
withJPH::EBackFaceMode::CollideWithBackFaces
.However, godot-jolt/godot-jolt#967 changed this so that we always wrapped the underlying
JPH::MeshShape
, and instead provided a boolean member variable (JoltCustomDoubleSidedShape::back_face_collision
) to indicate whether back-face collisions were enabled or not, and I forgot to add a condition to the above mentioned overrides ofmBackFaceMode
andmBackFaceModeTriangles
in the process.So this PR fixes this by simply adding said conditions.