all: Rebase against latest VPhysics Jolt

Bump submodule to 172a99c718bded5faa169ac440517286684fa2f0 and fixup our code to support the latest version.

Additionally, some water changes/fixes.
This commit is contained in:
Joshua Ashton 2023-03-29 18:13:53 +01:00 committed by Joshie
parent 6c3e224561
commit be6b64b31e
13 changed files with 511 additions and 450 deletions

View File

@ -38,6 +38,8 @@ $Configuration "Release"
}
}
$Macro JOLT_PHYSICS_ROOT "src/Jolt"
$Project "$PROJNAME"
{
$Folder "Precompiled Header"
@ -56,379 +58,413 @@ $Project "$PROJNAME"
$Folder "Source Files"
{
$File "src\Jolt\AABBTree\AABBTreeBuilder.cpp"
$File "src\Jolt\AABBTree\AABBTreeBuilder.h"
$File "src\Jolt\AABBTree\AABBTreeToBuffer.h"
$File "src\Jolt\AABBTree\NodeCodec\NodeCodecQuadTreeHalfFloat.h"
$File "src\Jolt\AABBTree\TriangleCodec\TriangleCodecIndexed8BitPackSOA4Flags.h"
$File "src\Jolt\Core\Atomics.h"
$File "src\Jolt\Core\ByteBuffer.h"
$File "src\Jolt\Core\Color.cpp"
$File "src\Jolt\Core\Color.h"
$File "src\Jolt\Core\Core.h"
$File "src\Jolt\Core\Factory.cpp"
$File "src\Jolt\Core\Factory.h"
$File "src\Jolt\Core\FixedSizeFreeList.h"
$File "src\Jolt\Core\FixedSizeFreeList.inl"
$File "src\Jolt\Core\FPControlWord.h"
$File "src\Jolt\Core\FPException.h"
$File "src\Jolt\Core\FPFlushDenormals.h"
$File "src\Jolt\Core\HashCombine.h"
$File "src\Jolt\Core\IssueReporting.cpp"
$File "src\Jolt\Core\IssueReporting.h"
$File "src\Jolt\Core\JobSystem.h"
$File "src\Jolt\Core\JobSystem.inl"
$File "src\Jolt\Core\JobSystemThreadPool.cpp"
$File "src\Jolt\Core\JobSystemThreadPool.h"
$File "src\Jolt\Core\LinearCurve.cpp"
$File "src\Jolt\Core\LinearCurve.h"
$File "src\Jolt\Core\LockFreeHashMap.h"
$File "src\Jolt\Core\LockFreeHashMap.inl"
$File "src\Jolt\Core\Memory.cpp"
$File "src\Jolt\Core\Memory.h"
$File "src\Jolt\Core\Mutex.h"
$File "src\Jolt\Core\MutexArray.h"
$File "src\Jolt\Core\NonCopyable.h"
$File "src\Jolt\Core\Profiler.cpp"
$File "src\Jolt\Core\Profiler.h"
$File "src\Jolt\Core\Profiler.inl"
$File "src\Jolt\Core\Reference.h"
$File "src\Jolt\Core\Result.h"
$File "src\Jolt\Core\RTTI.cpp"
$File "src\Jolt\Core\RTTI.h"
$File "src\Jolt\Core\StaticArray.h"
$File "src\Jolt\Core\StreamIn.h"
$File "src\Jolt\Core\StreamOut.h"
$File "src\Jolt\Core\StreamWrapper.h"
$File "src\Jolt\Core\StringTools.cpp"
$File "src\Jolt\Core\StringTools.h"
$File "src\Jolt\Core\TempAllocator.h"
$File "src\Jolt\Core\TickCounter.cpp"
$File "src\Jolt\Core\TickCounter.h"
$File "src\Jolt\Geometry\AABox.h"
$File "src\Jolt\Geometry\AABox4.h"
$File "src\Jolt\Geometry\ClipPoly.h"
$File "src\Jolt\Geometry\ClosestPoint.h"
$File "src\Jolt\Geometry\ConvexHullBuilder.cpp"
$File "src\Jolt\Geometry\ConvexHullBuilder.h"
$File "src\Jolt\Geometry\ConvexHullBuilder2D.cpp"
$File "src\Jolt\Geometry\ConvexHullBuilder2D.h"
$File "src\Jolt\Geometry\ConvexSupport.h"
$File "src\Jolt\Geometry\Ellipse.h"
$File "src\Jolt\Geometry\EPAConvexHullBuilder.h"
$File "src\Jolt\Geometry\EPAPenetrationDepth.h"
$File "src\Jolt\Geometry\GJKClosestPoint.h"
$File "src\Jolt\Geometry\IndexedTriangle.h"
$File "src\Jolt\Geometry\Indexify.cpp"
$File "src\Jolt\Geometry\Indexify.h"
$File "src\Jolt\Geometry\MortonCode.h"
$File "src\Jolt\Geometry\OrientedBox.cpp"
$File "src\Jolt\Geometry\OrientedBox.h"
$File "src\Jolt\Geometry\Plane.h"
$File "src\Jolt\Geometry\RayAABox.h"
$File "src\Jolt\Geometry\RayAABox8.h"
$File "src\Jolt\Geometry\RayCapsule.h"
$File "src\Jolt\Geometry\RayCylinder.h"
$File "src\Jolt\Geometry\RaySphere.h"
$File "src\Jolt\Geometry\RayTriangle.h"
$File "src\Jolt\Geometry\RayTriangle8.h"
$File "src\Jolt\Geometry\Sphere.h"
$File "src\Jolt\Geometry\Triangle.h"
$File "src\Jolt\Jolt.h"
$File "src\Jolt\Math\DVec3.h"
$File "src\Jolt\Math\DVec3.inl"
$File "src\Jolt\Math\EigenValueSymmetric.h"
$File "src\Jolt\Math\FindRoot.h"
$File "src\Jolt\Math\Float2.h"
$File "src\Jolt\Math\Float3.h"
$File "src\Jolt\Math\Float4.h"
$File "src\Jolt\Math\GaussianElimination.h"
$File "src\Jolt\Math\HalfFloat.h"
$File "src\Jolt\Math\Mat44.h"
$File "src\Jolt\Math\Mat44.inl"
$File "src\Jolt\Math\Math.h"
$File "src\Jolt\Math\MathTypes.h"
$File "src\Jolt\Math\Matrix.h"
$File "src\Jolt\Math\Quat.h"
$File "src\Jolt\Math\Quat.inl"
$File "src\Jolt\Math\Swizzle.h"
$File "src\Jolt\Math\UVec4.cpp"
$File "src\Jolt\Math\UVec4.h"
$File "src\Jolt\Math\UVec4.inl"
$File "src\Jolt\Math\UVec8.h"
$File "src\Jolt\Math\UVec8.inl"
$File "src\Jolt\Math\Vec3.cpp"
$File "src\Jolt\Math\Vec3.h"
$File "src\Jolt\Math\Vec3.inl"
$File "src\Jolt\Math\Vec4.h"
$File "src\Jolt\Math\Vec4.inl"
$File "src\Jolt\Math\Vec8.h"
$File "src\Jolt\Math\Vec8.inl"
$File "src\Jolt\Math\Vector.h"
$File "src\Jolt\ObjectStream\GetPrimitiveTypeOfType.h"
$File "src\Jolt\ObjectStream\ObjectStream.cpp"
$File "src\Jolt\ObjectStream\ObjectStream.h"
$File "src\Jolt\ObjectStream\ObjectStreamBinaryIn.cpp"
$File "src\Jolt\ObjectStream\ObjectStreamBinaryIn.h"
$File "src\Jolt\ObjectStream\ObjectStreamBinaryOut.cpp"
$File "src\Jolt\ObjectStream\ObjectStreamBinaryOut.h"
$File "src\Jolt\ObjectStream\ObjectStreamIn.cpp"
$File "src\Jolt\ObjectStream\ObjectStreamIn.h"
$File "src\Jolt\ObjectStream\ObjectStreamOut.cpp"
$File "src\Jolt\ObjectStream\ObjectStreamOut.h"
$File "src\Jolt\ObjectStream\ObjectStreamTextIn.cpp"
$File "src\Jolt\ObjectStream\ObjectStreamTextIn.h"
$File "src\Jolt\ObjectStream\ObjectStreamTextOut.cpp"
$File "src\Jolt\ObjectStream\ObjectStreamTextOut.h"
$File "src\Jolt\ObjectStream\ObjectStreamTypes.h"
$File "src\Jolt\ObjectStream\SerializableAttribute.h"
$File "src\Jolt\ObjectStream\SerializableAttributeEnum.h"
$File "src\Jolt\ObjectStream\SerializableAttributeTyped.h"
$File "src\Jolt\ObjectStream\SerializableObject.cpp"
$File "src\Jolt\ObjectStream\SerializableObject.h"
$File "src\Jolt\ObjectStream\TypeDeclarations.cpp"
$File "src\Jolt\ObjectStream\TypeDeclarations.h"
$File "src\Jolt\Physics\Body\Body.cpp"
$File "src\Jolt\Physics\Body\Body.h"
$File "src\Jolt\Physics\Body\Body.inl"
$File "src\Jolt\Physics\Body\BodyAccess.cpp"
$File "src\Jolt\Physics\Body\BodyAccess.h"
$File "src\Jolt\Physics\Body\BodyActivationListener.h"
$File "src\Jolt\Physics\Body\BodyCreationSettings.cpp"
$File "src\Jolt\Physics\Body\BodyCreationSettings.h"
$File "src\Jolt\Physics\Body\BodyFilter.h"
$File "src\Jolt\Physics\Body\BodyID.h"
$File "src\Jolt\Physics\Body\BodyInterface.cpp"
$File "src\Jolt\Physics\Body\BodyInterface.h"
$File "src\Jolt\Physics\Body\BodyLock.h"
$File "src\Jolt\Physics\Body\BodyLockInterface.h"
$File "src\Jolt\Physics\Body\BodyLockMulti.h"
$File "src\Jolt\Physics\Body\BodyManager.cpp"
$File "src\Jolt\Physics\Body\BodyManager.h"
$File "src\Jolt\Physics\Body\BodyPair.h"
$File "src\Jolt\Physics\Body\MassProperties.cpp"
$File "src\Jolt\Physics\Body\MassProperties.h"
$File "src\Jolt\Physics\Body\MotionProperties.cpp"
$File "src\Jolt\Physics\Body\MotionProperties.h"
$File "src\Jolt\Physics\Body\MotionProperties.inl"
$File "src\Jolt\Physics\Body\MotionQuality.h"
$File "src\Jolt\Physics\Body\MotionType.h"
$File "src\Jolt\Physics\Character\Character.cpp"
$File "src\Jolt\Physics\Character\Character.h"
$File "src\Jolt\Physics\Collision\AABoxCast.h"
$File "src\Jolt\Physics\Collision\ActiveEdgeMode.h"
$File "src\Jolt\Physics\Collision\ActiveEdges.h"
$File "src\Jolt\Physics\Collision\BackFaceMode.h"
$File "src\Jolt\Physics\Collision\BroadPhase\BroadPhase.cpp"
$File "src\Jolt\Physics\Collision\BroadPhase\BroadPhase.h"
$File "src\Jolt\Physics\Collision\BroadPhase\BroadPhaseBruteForce.cpp"
$File "src\Jolt\Physics\Collision\BroadPhase\BroadPhaseBruteForce.h"
$File "src\Jolt\Physics\Collision\BroadPhase\BroadPhaseLayer.h"
$File "src\Jolt\Physics\Collision\BroadPhase\BroadPhaseQuadTree.cpp"
$File "src\Jolt\Physics\Collision\BroadPhase\BroadPhaseQuadTree.h"
$File "src\Jolt\Physics\Collision\BroadPhase\BroadPhaseQuery.h"
$File "src\Jolt\Physics\Collision\BroadPhase\QuadTree.cpp"
$File "src\Jolt\Physics\Collision\BroadPhase\QuadTree.h"
$File "src\Jolt\Physics\Collision\CastConvexVsTriangles.cpp"
$File "src\Jolt\Physics\Collision\CastConvexVsTriangles.h"
$File "src\Jolt\Physics\Collision\CastSphereVsTriangles.cpp"
$File "src\Jolt\Physics\Collision\CastSphereVsTriangles.h"
$File "src\Jolt\Physics\Collision\CastResult.h"
$File "src\Jolt\Physics\Collision\CollectFacesMode.h"
$File "src\Jolt\Physics\Collision\CollideConvexVsTriangles.cpp"
$File "src\Jolt\Physics\Collision\CollideConvexVsTriangles.h"
$File "src\Jolt\Physics\Collision\CollidePointResult.h"
$File "src\Jolt\Physics\Collision\CollideShape.h"
$File "src\Jolt\Physics\Collision\CollideSphereVsTriangles.cpp"
$File "src\Jolt\Physics\Collision\CollideSphereVsTriangles.h"
$File "src\Jolt\Physics\Collision\CollisionCollector.h"
$File "src\Jolt\Physics\Collision\CollisionCollectorImpl.h"
$File "src\Jolt\Physics\Collision\CollisionDispatch.cpp"
$File "src\Jolt\Physics\Collision\CollisionDispatch.h"
$File "src\Jolt\Physics\Collision\CollisionGroup.cpp"
$File "src\Jolt\Physics\Collision\CollisionGroup.h"
$File "src\Jolt\Physics\Collision\ContactListener.h"
$File "src\Jolt\Physics\Collision\GroupFilter.cpp"
$File "src\Jolt\Physics\Collision\GroupFilter.h"
$File "src\Jolt\Physics\Collision\GroupFilterTable.cpp"
$File "src\Jolt\Physics\Collision\GroupFilterTable.h"
$File "src\Jolt\Physics\Collision\ManifoldBetweenTwoFaces.cpp"
$File "src\Jolt\Physics\Collision\ManifoldBetweenTwoFaces.h"
$File "src\Jolt\Physics\Collision\NarrowPhaseQuery.cpp"
$File "src\Jolt\Physics\Collision\NarrowPhaseQuery.h"
$File "src\Jolt\Physics\Collision\NarrowPhaseStats.cpp"
$File "src\Jolt\Physics\Collision\NarrowPhaseStats.h"
$File "src\Jolt\Physics\Collision\ObjectLayer.h"
$File "src\Jolt\Physics\Collision\PhysicsMaterial.cpp"
$File "src\Jolt\Physics\Collision\PhysicsMaterial.h"
$File "src\Jolt\Physics\Collision\PhysicsMaterialSimple.cpp"
$File "src\Jolt\Physics\Collision\PhysicsMaterialSimple.h"
$File "src\Jolt\Physics\Collision\RayCast.h"
$File "src\Jolt\Physics\Collision\Shape\BoxShape.cpp"
$File "src\Jolt\Physics\Collision\Shape\BoxShape.h"
$File "src\Jolt\Physics\Collision\Shape\CapsuleShape.cpp"
$File "src\Jolt\Physics\Collision\Shape\CapsuleShape.h"
$File "src\Jolt\Physics\Collision\Shape\CompoundShape.cpp"
$File "src\Jolt\Physics\Collision\Shape\CompoundShape.h"
$File "src\Jolt\Physics\Collision\Shape\CompoundShapeVisitors.h"
$File "src\Jolt\Physics\Collision\Shape\ConvexHullShape.cpp"
$File "src\Jolt\Physics\Collision\Shape\ConvexHullShape.h"
$File "src\Jolt\Physics\Collision\Shape\ConvexShape.cpp"
$File "src\Jolt\Physics\Collision\Shape\ConvexShape.h"
$File "src\Jolt\Physics\Collision\Shape\CylinderShape.cpp"
$File "src\Jolt\Physics\Collision\Shape\CylinderShape.h"
$File "src\Jolt\Physics\Collision\Shape\DecoratedShape.cpp"
$File "src\Jolt\Physics\Collision\Shape\DecoratedShape.h"
$File "src\Jolt\Physics\Collision\Shape\GetTrianglesContext.h"
$File "src\Jolt\Physics\Collision\Shape\HeightFieldShape.cpp"
$File "src\Jolt\Physics\Collision\Shape\HeightFieldShape.h"
$File "src\Jolt\Physics\Collision\Shape\MeshShape.cpp"
$File "src\Jolt\Physics\Collision\Shape\MeshShape.h"
$File "src\Jolt\Physics\Collision\Shape\MutableCompoundShape.cpp"
$File "src\Jolt\Physics\Collision\Shape\MutableCompoundShape.h"
$File "src\Jolt\Physics\Collision\Shape\OffsetCenterOfMassShape.cpp"
$File "src\Jolt\Physics\Collision\Shape\OffsetCenterOfMassShape.h"
$File "src\Jolt\Physics\Collision\Shape\PolyhedronSubmergedVolumeCalculator.h"
$File "src\Jolt\Physics\Collision\Shape\RotatedTranslatedShape.cpp"
$File "src\Jolt\Physics\Collision\Shape\RotatedTranslatedShape.h"
$File "src\Jolt\Physics\Collision\Shape\ScaledShape.cpp"
$File "src\Jolt\Physics\Collision\Shape\ScaledShape.h"
$File "src\Jolt\Physics\Collision\Shape\ScaleHelpers.h"
$File "src\Jolt\Physics\Collision\Shape\Shape.cpp"
$File "src\Jolt\Physics\Collision\Shape\Shape.h"
$File "src\Jolt\Physics\Collision\Shape\SphereShape.cpp"
$File "src\Jolt\Physics\Collision\Shape\SphereShape.h"
$File "src\Jolt\Physics\Collision\Shape\StaticCompoundShape.cpp"
$File "src\Jolt\Physics\Collision\Shape\StaticCompoundShape.h"
$File "src\Jolt\Physics\Collision\Shape\SubShapeID.h"
$File "src\Jolt\Physics\Collision\Shape\SubShapeIDPair.h"
$File "src\Jolt\Physics\Collision\Shape\TaperedCapsuleShape.cpp"
$File "src\Jolt\Physics\Collision\Shape\TaperedCapsuleShape.gliffy"
$File "src\Jolt\Physics\Collision\Shape\TaperedCapsuleShape.h"
$File "src\Jolt\Physics\Collision\Shape\TriangleShape.cpp"
$File "src\Jolt\Physics\Collision\Shape\TriangleShape.h"
$File "src\Jolt\Physics\Collision\ShapeCast.h"
$File "src\Jolt\Physics\Collision\ShapeFilter.h"
$File "src\Jolt\Physics\Collision\SortReverseAndStore.h"
$File "src\Jolt\Physics\Collision\TransformedShape.cpp"
$File "src\Jolt\Physics\Collision\TransformedShape.h"
$File "src\Jolt\Physics\Constraints\ConeConstraint.cpp"
$File "src\Jolt\Physics\Constraints\ConeConstraint.h"
$File "src\Jolt\Physics\Constraints\Constraint.cpp"
$File "src\Jolt\Physics\Constraints\Constraint.h"
$File "src\Jolt\Physics\Constraints\ConstraintManager.cpp"
$File "src\Jolt\Physics\Constraints\ConstraintManager.h"
$File "src\Jolt\Physics\Constraints\ConstraintPart\AngleConstraintPart.h"
$File "src\Jolt\Physics\Constraints\ConstraintPart\AxisConstraintPart.h"
$File "src\Jolt\Physics\Constraints\ConstraintPart\DualAxisConstraintPart.h"
$File "src\Jolt\Physics\Constraints\ConstraintPart\GearConstraintPart.h"
$File "src\Jolt\Physics\Constraints\ConstraintPart\HingeRotationConstraintPart.h"
$File "src\Jolt\Physics\Constraints\ConstraintPart\PointConstraintPart.h"
$File "src\Jolt\Physics\Constraints\ConstraintPart\RackAndPinionConstraintPart.h"
$File "src\Jolt\Physics\Constraints\ConstraintPart\RotationEulerConstraintPart.h"
$File "src\Jolt\Physics\Constraints\ConstraintPart\RotationQuatConstraintPart.h"
$File "src\Jolt\Physics\Constraints\ConstraintPart\SpringPart.h"
$File "src\Jolt\Physics\Constraints\ConstraintPart\SwingTwistConstraintPart.h"
$File "src\Jolt\Physics\Constraints\ContactConstraintManager.cpp"
$File "src\Jolt\Physics\Constraints\ContactConstraintManager.h"
$File "src\Jolt\Physics\Constraints\DistanceConstraint.cpp"
$File "src\Jolt\Physics\Constraints\DistanceConstraint.h"
$File "src\Jolt\Physics\Constraints\FixedConstraint.cpp"
$File "src\Jolt\Physics\Constraints\FixedConstraint.h"
$File "src\Jolt\Physics\Constraints\GearConstraint.cpp"
$File "src\Jolt\Physics\Constraints\GearConstraint.h"
$File "src\Jolt\Physics\Constraints\HingeConstraint.cpp"
$File "src\Jolt\Physics\Constraints\HingeConstraint.h"
$File "src\Jolt\Physics\Constraints\MotorSettings.cpp"
$File "src\Jolt\Physics\Constraints\MotorSettings.h"
$File "src\Jolt\Physics\Constraints\PathConstraint.cpp"
$File "src\Jolt\Physics\Constraints\PathConstraint.h"
$File "src\Jolt\Physics\Constraints\PathConstraintPath.cpp"
$File "src\Jolt\Physics\Constraints\PathConstraintPath.h"
$File "src\Jolt\Physics\Constraints\PathConstraintPathHermite.cpp"
$File "src\Jolt\Physics\Constraints\PathConstraintPathHermite.h"
$File "src\Jolt\Physics\Constraints\PointConstraint.cpp"
$File "src\Jolt\Physics\Constraints\PointConstraint.h"
$File "src\Jolt\Physics\Constraints\RackAndPinionConstraint.cpp"
$File "src\Jolt\Physics\Constraints\RackAndPinionConstraint.h"
$File "src\Jolt\Physics\Constraints\SixDOFConstraint.cpp"
$File "src\Jolt\Physics\Constraints\SixDOFConstraint.h"
$File "src\Jolt\Physics\Constraints\SliderConstraint.cpp"
$File "src\Jolt\Physics\Constraints\SliderConstraint.h"
$File "src\Jolt\Physics\Constraints\SwingTwistConstraint.cpp"
$File "src\Jolt\Physics\Constraints\SwingTwistConstraint.h"
$File "src\Jolt\Physics\Constraints\TwoBodyConstraint.cpp"
$File "src\Jolt\Physics\Constraints\TwoBodyConstraint.h"
$File "src\Jolt\Physics\EActivation.h"
$File "src\Jolt\Physics\IslandBuilder.cpp"
$File "src\Jolt\Physics\IslandBuilder.h"
$File "src\Jolt\Physics\PhysicsLock.cpp"
$File "src\Jolt\Physics\PhysicsLock.h"
$File "src\Jolt\Physics\PhysicsScene.cpp"
$File "src\Jolt\Physics\PhysicsScene.h"
$File "src\Jolt\Physics\PhysicsSettings.h"
$File "src\Jolt\Physics\PhysicsStepListener.h"
$File "src\Jolt\Physics\PhysicsSystem.cpp"
$File "src\Jolt\Physics\PhysicsSystem.h"
$File "src\Jolt\Physics\PhysicsUpdateContext.cpp"
$File "src\Jolt\Physics\PhysicsUpdateContext.h"
$File "src\Jolt\Physics\Ragdoll\Ragdoll.cpp"
$File "src\Jolt\Physics\Ragdoll\Ragdoll.h"
$File "src\Jolt\Physics\StateRecorder.h"
$File "src\Jolt\Physics\StateRecorderImpl.cpp"
$File "src\Jolt\Physics\StateRecorderImpl.h"
$File "src\Jolt\Physics\Vehicle\TrackedVehicleController.cpp"
$File "src\Jolt\Physics\Vehicle\TrackedVehicleController.h"
$File "src\Jolt\Physics\Vehicle\VehicleAntiRollBar.cpp"
$File "src\Jolt\Physics\Vehicle\VehicleAntiRollBar.h"
$File "src\Jolt\Physics\Vehicle\VehicleCollisionTester.cpp"
$File "src\Jolt\Physics\Vehicle\VehicleCollisionTester.h"
$File "src\Jolt\Physics\Vehicle\VehicleConstraint.cpp"
$File "src\Jolt\Physics\Vehicle\VehicleConstraint.h"
$File "src\Jolt\Physics\Vehicle\VehicleController.cpp"
$File "src\Jolt\Physics\Vehicle\VehicleController.h"
$File "src\Jolt\Physics\Vehicle\VehicleDifferential.cpp"
$File "src\Jolt\Physics\Vehicle\VehicleDifferential.h"
$File "src\Jolt\Physics\Vehicle\VehicleEngine.cpp"
$File "src\Jolt\Physics\Vehicle\VehicleEngine.h"
$File "src\Jolt\Physics\Vehicle\VehicleTrack.cpp"
$File "src\Jolt\Physics\Vehicle\VehicleTrack.h"
$File "src\Jolt\Physics\Vehicle\VehicleTransmission.cpp"
$File "src\Jolt\Physics\Vehicle\VehicleTransmission.h"
$File "src\Jolt\Physics\Vehicle\Wheel.cpp"
$File "src\Jolt\Physics\Vehicle\Wheel.h"
$File "src\Jolt\Physics\Vehicle\WheeledVehicleController.cpp"
$File "src\Jolt\Physics\Vehicle\WheeledVehicleController.h"
$File "src\Jolt\RegisterTypes.cpp"
$File "src\Jolt\RegisterTypes.h"
$File "src\Jolt\Renderer\DebugRenderer.cpp"
$File "src\Jolt\Renderer\DebugRenderer.h"
$File "src\Jolt\Renderer\DebugRendererPlayback.cpp"
$File "src\Jolt\Renderer\DebugRendererPlayback.h"
$File "src\Jolt\Renderer\DebugRendererRecorder.cpp"
$File "src\Jolt\Renderer\DebugRendererRecorder.h"
$File "src\Jolt\Skeleton\SkeletalAnimation.cpp"
$File "src\Jolt\Skeleton\SkeletalAnimation.h"
$File "src\Jolt\Skeleton\Skeleton.cpp"
$File "src\Jolt\Skeleton\Skeleton.h"
$File "src\Jolt\Skeleton\SkeletonPose.cpp"
$File "src\Jolt\Skeleton\SkeletonPose.h"
$File "src\Jolt\TriangleGrouper\TriangleGrouper.h"
$File "src\Jolt\TriangleGrouper\TriangleGrouperClosestCentroid.cpp"
$File "src\Jolt\TriangleGrouper\TriangleGrouperClosestCentroid.h"
$File "src\Jolt\TriangleGrouper\TriangleGrouperMorton.cpp"
$File "src\Jolt\TriangleGrouper\TriangleGrouperMorton.h"
$File "src\Jolt\TriangleSplitter\TriangleSplitter.cpp"
$File "src\Jolt\TriangleSplitter\TriangleSplitter.h"
$File "src\Jolt\TriangleSplitter\TriangleSplitterBinning.cpp"
$File "src\Jolt\TriangleSplitter\TriangleSplitterBinning.h"
$File "src\Jolt\TriangleSplitter\TriangleSplitterFixedLeafSize.cpp"
$File "src\Jolt\TriangleSplitter\TriangleSplitterFixedLeafSize.h"
$File "src\Jolt\TriangleSplitter\TriangleSplitterLongestAxis.cpp"
$File "src\Jolt\TriangleSplitter\TriangleSplitterLongestAxis.h"
$File "src\Jolt\TriangleSplitter\TriangleSplitterMean.cpp"
$File "src\Jolt\TriangleSplitter\TriangleSplitterMean.h"
$File "src\Jolt\TriangleSplitter\TriangleSplitterMorton.cpp"
$File "src\Jolt\TriangleSplitter\TriangleSplitterMorton.h"
$File "$JOLT_PHYSICS_ROOT/AABBTree/AABBTreeBuilder.cpp"
$File "$JOLT_PHYSICS_ROOT/AABBTree/AABBTreeBuilder.h"
$File "$JOLT_PHYSICS_ROOT/AABBTree/AABBTreeToBuffer.h"
$File "$JOLT_PHYSICS_ROOT/AABBTree/NodeCodec/NodeCodecQuadTreeHalfFloat.h"
$File "$JOLT_PHYSICS_ROOT/AABBTree/TriangleCodec/TriangleCodecIndexed8BitPackSOA4Flags.h"
$File "$JOLT_PHYSICS_ROOT/Core/ARMNeon.h"
$File "$JOLT_PHYSICS_ROOT/Core/Atomics.h"
$File "$JOLT_PHYSICS_ROOT/Core/ByteBuffer.h"
$File "$JOLT_PHYSICS_ROOT/Core/Color.cpp"
$File "$JOLT_PHYSICS_ROOT/Core/Color.h"
$File "$JOLT_PHYSICS_ROOT/Core/Core.h"
$File "$JOLT_PHYSICS_ROOT/Core/Factory.cpp"
$File "$JOLT_PHYSICS_ROOT/Core/Factory.h"
$File "$JOLT_PHYSICS_ROOT/Core/FixedSizeFreeList.h"
$File "$JOLT_PHYSICS_ROOT/Core/FixedSizeFreeList.inl"
$File "$JOLT_PHYSICS_ROOT/Core/FPControlWord.h"
$File "$JOLT_PHYSICS_ROOT/Core/FPException.h"
$File "$JOLT_PHYSICS_ROOT/Core/FPFlushDenormals.h"
$File "$JOLT_PHYSICS_ROOT/Core/HashCombine.h"
$File "$JOLT_PHYSICS_ROOT/Core/InsertionSort.h"
$File "$JOLT_PHYSICS_ROOT/Core/IssueReporting.cpp"
$File "$JOLT_PHYSICS_ROOT/Core/IssueReporting.h"
$File "$JOLT_PHYSICS_ROOT/Core/JobSystem.h"
$File "$JOLT_PHYSICS_ROOT/Core/JobSystem.inl"
$File "$JOLT_PHYSICS_ROOT/Core/JobSystemThreadPool.cpp"
$File "$JOLT_PHYSICS_ROOT/Core/JobSystemThreadPool.h"
$File "$JOLT_PHYSICS_ROOT/Core/JobSystemWithBarrier.cpp"
$File "$JOLT_PHYSICS_ROOT/Core/JobSystemWithBarrier.h"
$File "$JOLT_PHYSICS_ROOT/Core/LinearCurve.cpp"
$File "$JOLT_PHYSICS_ROOT/Core/LinearCurve.h"
$File "$JOLT_PHYSICS_ROOT/Core/LockFreeHashMap.h"
$File "$JOLT_PHYSICS_ROOT/Core/LockFreeHashMap.inl"
$File "$JOLT_PHYSICS_ROOT/Core/Memory.cpp"
$File "$JOLT_PHYSICS_ROOT/Core/Memory.h"
$File "$JOLT_PHYSICS_ROOT/Core/Mutex.h"
$File "$JOLT_PHYSICS_ROOT/Core/MutexArray.h"
$File "$JOLT_PHYSICS_ROOT/Core/NonCopyable.h"
$File "$JOLT_PHYSICS_ROOT/Core/Profiler.cpp"
$File "$JOLT_PHYSICS_ROOT/Core/Profiler.h"
$File "$JOLT_PHYSICS_ROOT/Core/Profiler.inl"
$File "$JOLT_PHYSICS_ROOT/Core/QuickSort.h"
$File "$JOLT_PHYSICS_ROOT/Core/Reference.h"
$File "$JOLT_PHYSICS_ROOT/Core/Result.h"
$File "$JOLT_PHYSICS_ROOT/Core/RTTI.cpp"
$File "$JOLT_PHYSICS_ROOT/Core/RTTI.h"
$File "$JOLT_PHYSICS_ROOT/Core/Semaphore.cpp"
$File "$JOLT_PHYSICS_ROOT/Core/Semaphore.h"
$File "$JOLT_PHYSICS_ROOT/Core/StaticArray.h"
$File "$JOLT_PHYSICS_ROOT/Core/StreamIn.h"
$File "$JOLT_PHYSICS_ROOT/Core/StreamOut.h"
$File "$JOLT_PHYSICS_ROOT/Core/StreamWrapper.h"
$File "$JOLT_PHYSICS_ROOT/Core/StringTools.cpp"
$File "$JOLT_PHYSICS_ROOT/Core/StringTools.h"
$File "$JOLT_PHYSICS_ROOT/Core/STLAlignedAllocator.h"
$File "$JOLT_PHYSICS_ROOT/Core/STLAllocator.h"
$File "$JOLT_PHYSICS_ROOT/Core/STLTempAllocator.h"
$File "$JOLT_PHYSICS_ROOT/Core/TempAllocator.h"
$File "$JOLT_PHYSICS_ROOT/Core/TickCounter.cpp"
$File "$JOLT_PHYSICS_ROOT/Core/TickCounter.h"
$File "$JOLT_PHYSICS_ROOT/Core/UnorderedMap.h"
$File "$JOLT_PHYSICS_ROOT/Core/UnorderedSet.h"
$File "$JOLT_PHYSICS_ROOT/Geometry/AABox.h"
$File "$JOLT_PHYSICS_ROOT/Geometry/AABox4.h"
$File "$JOLT_PHYSICS_ROOT/Geometry/ClipPoly.h"
$File "$JOLT_PHYSICS_ROOT/Geometry/ClosestPoint.h"
$File "$JOLT_PHYSICS_ROOT/Geometry/ConvexHullBuilder.cpp"
$File "$JOLT_PHYSICS_ROOT/Geometry/ConvexHullBuilder.h"
$File "$JOLT_PHYSICS_ROOT/Geometry/ConvexHullBuilder2D.cpp"
$File "$JOLT_PHYSICS_ROOT/Geometry/ConvexHullBuilder2D.h"
$File "$JOLT_PHYSICS_ROOT/Geometry/ConvexSupport.h"
$File "$JOLT_PHYSICS_ROOT/Geometry/Ellipse.h"
$File "$JOLT_PHYSICS_ROOT/Geometry/EPAConvexHullBuilder.h"
$File "$JOLT_PHYSICS_ROOT/Geometry/EPAPenetrationDepth.h"
$File "$JOLT_PHYSICS_ROOT/Geometry/GJKClosestPoint.h"
$File "$JOLT_PHYSICS_ROOT/Geometry/IndexedTriangle.h"
$File "$JOLT_PHYSICS_ROOT/Geometry/Indexify.cpp"
$File "$JOLT_PHYSICS_ROOT/Geometry/Indexify.h"
$File "$JOLT_PHYSICS_ROOT/Geometry/MortonCode.h"
$File "$JOLT_PHYSICS_ROOT/Geometry/OrientedBox.cpp"
$File "$JOLT_PHYSICS_ROOT/Geometry/OrientedBox.h"
$File "$JOLT_PHYSICS_ROOT/Geometry/Plane.h"
$File "$JOLT_PHYSICS_ROOT/Geometry/RayAABox.h"
$File "$JOLT_PHYSICS_ROOT/Geometry/RayAABox8.h"
$File "$JOLT_PHYSICS_ROOT/Geometry/RayCapsule.h"
$File "$JOLT_PHYSICS_ROOT/Geometry/RayCylinder.h"
$File "$JOLT_PHYSICS_ROOT/Geometry/RaySphere.h"
$File "$JOLT_PHYSICS_ROOT/Geometry/RayTriangle.h"
$File "$JOLT_PHYSICS_ROOT/Geometry/RayTriangle8.h"
$File "$JOLT_PHYSICS_ROOT/Geometry/Sphere.h"
$File "$JOLT_PHYSICS_ROOT/Geometry/Triangle.h"
$File "$JOLT_PHYSICS_ROOT/Jolt.cmake"
$File "$JOLT_PHYSICS_ROOT/Jolt.h"
$File "$JOLT_PHYSICS_ROOT/Math/DMat44.h"
$File "$JOLT_PHYSICS_ROOT/Math/DMat44.inl"
$File "$JOLT_PHYSICS_ROOT/Math/Double3.h"
$File "$JOLT_PHYSICS_ROOT/Math/DVec3.h"
$File "$JOLT_PHYSICS_ROOT/Math/DVec3.inl"
$File "$JOLT_PHYSICS_ROOT/Math/DynMatrix.h"
$File "$JOLT_PHYSICS_ROOT/Math/EigenValueSymmetric.h"
$File "$JOLT_PHYSICS_ROOT/Math/FindRoot.h"
$File "$JOLT_PHYSICS_ROOT/Math/Float2.h"
$File "$JOLT_PHYSICS_ROOT/Math/Float3.h"
$File "$JOLT_PHYSICS_ROOT/Math/Float4.h"
$File "$JOLT_PHYSICS_ROOT/Math/GaussianElimination.h"
$File "$JOLT_PHYSICS_ROOT/Math/HalfFloat.h"
$File "$JOLT_PHYSICS_ROOT/Math/Mat44.h"
$File "$JOLT_PHYSICS_ROOT/Math/Mat44.inl"
$File "$JOLT_PHYSICS_ROOT/Math/Math.h"
$File "$JOLT_PHYSICS_ROOT/Math/MathTypes.h"
$File "$JOLT_PHYSICS_ROOT/Math/Matrix.h"
$File "$JOLT_PHYSICS_ROOT/Math/Quat.h"
$File "$JOLT_PHYSICS_ROOT/Math/Quat.inl"
$File "$JOLT_PHYSICS_ROOT/Math/Real.h"
$File "$JOLT_PHYSICS_ROOT/Math/Swizzle.h"
$File "$JOLT_PHYSICS_ROOT/Math/Trigonometry.h"
$File "$JOLT_PHYSICS_ROOT/Math/UVec4.cpp"
$File "$JOLT_PHYSICS_ROOT/Math/UVec4.h"
$File "$JOLT_PHYSICS_ROOT/Math/UVec4.inl"
$File "$JOLT_PHYSICS_ROOT/Math/UVec8.h"
$File "$JOLT_PHYSICS_ROOT/Math/UVec8.inl"
$File "$JOLT_PHYSICS_ROOT/Math/Vec3.cpp"
$File "$JOLT_PHYSICS_ROOT/Math/Vec3.h"
$File "$JOLT_PHYSICS_ROOT/Math/Vec3.inl"
$File "$JOLT_PHYSICS_ROOT/Math/Vec4.h"
$File "$JOLT_PHYSICS_ROOT/Math/Vec4.inl"
$File "$JOLT_PHYSICS_ROOT/Math/Vec8.h"
$File "$JOLT_PHYSICS_ROOT/Math/Vec8.inl"
$File "$JOLT_PHYSICS_ROOT/Math/Vector.h"
$File "$JOLT_PHYSICS_ROOT/ObjectStream/GetPrimitiveTypeOfType.h"
$File "$JOLT_PHYSICS_ROOT/ObjectStream/ObjectStream.cpp"
$File "$JOLT_PHYSICS_ROOT/ObjectStream/ObjectStream.h"
$File "$JOLT_PHYSICS_ROOT/ObjectStream/ObjectStreamBinaryIn.cpp"
$File "$JOLT_PHYSICS_ROOT/ObjectStream/ObjectStreamBinaryIn.h"
$File "$JOLT_PHYSICS_ROOT/ObjectStream/ObjectStreamBinaryOut.cpp"
$File "$JOLT_PHYSICS_ROOT/ObjectStream/ObjectStreamBinaryOut.h"
$File "$JOLT_PHYSICS_ROOT/ObjectStream/ObjectStreamIn.cpp"
$File "$JOLT_PHYSICS_ROOT/ObjectStream/ObjectStreamIn.h"
$File "$JOLT_PHYSICS_ROOT/ObjectStream/ObjectStreamOut.cpp"
$File "$JOLT_PHYSICS_ROOT/ObjectStream/ObjectStreamOut.h"
$File "$JOLT_PHYSICS_ROOT/ObjectStream/ObjectStreamTextIn.cpp"
$File "$JOLT_PHYSICS_ROOT/ObjectStream/ObjectStreamTextIn.h"
$File "$JOLT_PHYSICS_ROOT/ObjectStream/ObjectStreamTextOut.cpp"
$File "$JOLT_PHYSICS_ROOT/ObjectStream/ObjectStreamTextOut.h"
$File "$JOLT_PHYSICS_ROOT/ObjectStream/ObjectStreamTypes.h"
$File "$JOLT_PHYSICS_ROOT/ObjectStream/SerializableAttribute.h"
$File "$JOLT_PHYSICS_ROOT/ObjectStream/SerializableAttributeEnum.h"
$File "$JOLT_PHYSICS_ROOT/ObjectStream/SerializableAttributeTyped.h"
$File "$JOLT_PHYSICS_ROOT/ObjectStream/SerializableObject.cpp"
$File "$JOLT_PHYSICS_ROOT/ObjectStream/SerializableObject.h"
$File "$JOLT_PHYSICS_ROOT/ObjectStream/TypeDeclarations.cpp"
$File "$JOLT_PHYSICS_ROOT/ObjectStream/TypeDeclarations.h"
$File "$JOLT_PHYSICS_ROOT/Physics/Body/Body.cpp"
$File "$JOLT_PHYSICS_ROOT/Physics/Body/Body.h"
$File "$JOLT_PHYSICS_ROOT/Physics/Body/Body.inl"
$File "$JOLT_PHYSICS_ROOT/Physics/Body/BodyAccess.cpp"
$File "$JOLT_PHYSICS_ROOT/Physics/Body/BodyAccess.h"
$File "$JOLT_PHYSICS_ROOT/Physics/Body/BodyActivationListener.h"
$File "$JOLT_PHYSICS_ROOT/Physics/Body/BodyCreationSettings.cpp"
$File "$JOLT_PHYSICS_ROOT/Physics/Body/BodyCreationSettings.h"
$File "$JOLT_PHYSICS_ROOT/Physics/Body/BodyFilter.h"
$File "$JOLT_PHYSICS_ROOT/Physics/Body/BodyID.h"
$File "$JOLT_PHYSICS_ROOT/Physics/Body/BodyInterface.cpp"
$File "$JOLT_PHYSICS_ROOT/Physics/Body/BodyInterface.h"
$File "$JOLT_PHYSICS_ROOT/Physics/Body/BodyLock.h"
$File "$JOLT_PHYSICS_ROOT/Physics/Body/BodyLockInterface.h"
$File "$JOLT_PHYSICS_ROOT/Physics/Body/BodyLockMulti.h"
$File "$JOLT_PHYSICS_ROOT/Physics/Body/BodyManager.cpp"
$File "$JOLT_PHYSICS_ROOT/Physics/Body/BodyManager.h"
$File "$JOLT_PHYSICS_ROOT/Physics/Body/BodyPair.h"
$File "$JOLT_PHYSICS_ROOT/Physics/Body/MassProperties.cpp"
$File "$JOLT_PHYSICS_ROOT/Physics/Body/MassProperties.h"
$File "$JOLT_PHYSICS_ROOT/Physics/Body/MotionProperties.cpp"
$File "$JOLT_PHYSICS_ROOT/Physics/Body/MotionProperties.h"
$File "$JOLT_PHYSICS_ROOT/Physics/Body/MotionProperties.inl"
$File "$JOLT_PHYSICS_ROOT/Physics/Body/MotionQuality.h"
$File "$JOLT_PHYSICS_ROOT/Physics/Body/MotionType.h"
$File "$JOLT_PHYSICS_ROOT/Physics/Character/Character.cpp"
$File "$JOLT_PHYSICS_ROOT/Physics/Character/Character.h"
$File "$JOLT_PHYSICS_ROOT/Physics/Character/CharacterBase.cpp"
$File "$JOLT_PHYSICS_ROOT/Physics/Character/CharacterBase.h"
$File "$JOLT_PHYSICS_ROOT/Physics/Character/CharacterVirtual.cpp"
$File "$JOLT_PHYSICS_ROOT/Physics/Character/CharacterVirtual.h"
$File "$JOLT_PHYSICS_ROOT/Physics/Collision/AABoxCast.h"
$File "$JOLT_PHYSICS_ROOT/Physics/Collision/ActiveEdgeMode.h"
$File "$JOLT_PHYSICS_ROOT/Physics/Collision/ActiveEdges.h"
$File "$JOLT_PHYSICS_ROOT/Physics/Collision/BackFaceMode.h"
$File "$JOLT_PHYSICS_ROOT/Physics/Collision/BroadPhase/BroadPhase.cpp"
$File "$JOLT_PHYSICS_ROOT/Physics/Collision/BroadPhase/BroadPhase.h"
$File "$JOLT_PHYSICS_ROOT/Physics/Collision/BroadPhase/BroadPhaseBruteForce.cpp"
$File "$JOLT_PHYSICS_ROOT/Physics/Collision/BroadPhase/BroadPhaseBruteForce.h"
$File "$JOLT_PHYSICS_ROOT/Physics/Collision/BroadPhase/BroadPhaseLayer.h"
$File "$JOLT_PHYSICS_ROOT/Physics/Collision/BroadPhase/BroadPhaseQuadTree.cpp"
$File "$JOLT_PHYSICS_ROOT/Physics/Collision/BroadPhase/BroadPhaseQuadTree.h"
$File "$JOLT_PHYSICS_ROOT/Physics/Collision/BroadPhase/BroadPhaseQuery.h"
$File "$JOLT_PHYSICS_ROOT/Physics/Collision/BroadPhase/QuadTree.cpp"
$File "$JOLT_PHYSICS_ROOT/Physics/Collision/BroadPhase/QuadTree.h"
$File "$JOLT_PHYSICS_ROOT/Physics/Collision/CastConvexVsTriangles.cpp"
$File "$JOLT_PHYSICS_ROOT/Physics/Collision/CastConvexVsTriangles.h"
$File "$JOLT_PHYSICS_ROOT/Physics/Collision/CastSphereVsTriangles.cpp"
$File "$JOLT_PHYSICS_ROOT/Physics/Collision/CastSphereVsTriangles.h"
$File "$JOLT_PHYSICS_ROOT/Physics/Collision/CastResult.h"
$File "$JOLT_PHYSICS_ROOT/Physics/Collision/CollectFacesMode.h"
$File "$JOLT_PHYSICS_ROOT/Physics/Collision/CollideConvexVsTriangles.cpp"
$File "$JOLT_PHYSICS_ROOT/Physics/Collision/CollideConvexVsTriangles.h"
$File "$JOLT_PHYSICS_ROOT/Physics/Collision/CollidePointResult.h"
$File "$JOLT_PHYSICS_ROOT/Physics/Collision/CollideShape.h"
$File "$JOLT_PHYSICS_ROOT/Physics/Collision/CollideSphereVsTriangles.cpp"
$File "$JOLT_PHYSICS_ROOT/Physics/Collision/CollideSphereVsTriangles.h"
$File "$JOLT_PHYSICS_ROOT/Physics/Collision/CollisionCollector.h"
$File "$JOLT_PHYSICS_ROOT/Physics/Collision/CollisionCollectorImpl.h"
$File "$JOLT_PHYSICS_ROOT/Physics/Collision/CollisionDispatch.cpp"
$File "$JOLT_PHYSICS_ROOT/Physics/Collision/CollisionDispatch.h"
$File "$JOLT_PHYSICS_ROOT/Physics/Collision/CollisionGroup.cpp"
$File "$JOLT_PHYSICS_ROOT/Physics/Collision/CollisionGroup.h"
$File "$JOLT_PHYSICS_ROOT/Physics/Collision/ContactListener.h"
$File "$JOLT_PHYSICS_ROOT/Physics/Collision/EstimateCollisionResponse.cpp"
$File "$JOLT_PHYSICS_ROOT/Physics/Collision/EstimateCollisionResponse.h"
$File "$JOLT_PHYSICS_ROOT/Physics/Collision/GroupFilter.cpp"
$File "$JOLT_PHYSICS_ROOT/Physics/Collision/GroupFilter.h"
$File "$JOLT_PHYSICS_ROOT/Physics/Collision/GroupFilterTable.cpp"
$File "$JOLT_PHYSICS_ROOT/Physics/Collision/GroupFilterTable.h"
$File "$JOLT_PHYSICS_ROOT/Physics/Collision/ManifoldBetweenTwoFaces.cpp"
$File "$JOLT_PHYSICS_ROOT/Physics/Collision/ManifoldBetweenTwoFaces.h"
$File "$JOLT_PHYSICS_ROOT/Physics/Collision/NarrowPhaseQuery.cpp"
$File "$JOLT_PHYSICS_ROOT/Physics/Collision/NarrowPhaseQuery.h"
$File "$JOLT_PHYSICS_ROOT/Physics/Collision/NarrowPhaseStats.cpp"
$File "$JOLT_PHYSICS_ROOT/Physics/Collision/NarrowPhaseStats.h"
$File "$JOLT_PHYSICS_ROOT/Physics/Collision/ObjectLayer.h"
$File "$JOLT_PHYSICS_ROOT/Physics/Collision/PhysicsMaterial.cpp"
$File "$JOLT_PHYSICS_ROOT/Physics/Collision/PhysicsMaterial.h"
$File "$JOLT_PHYSICS_ROOT/Physics/Collision/PhysicsMaterialSimple.cpp"
$File "$JOLT_PHYSICS_ROOT/Physics/Collision/PhysicsMaterialSimple.h"
$File "$JOLT_PHYSICS_ROOT/Physics/Collision/RayCast.h"
$File "$JOLT_PHYSICS_ROOT/Physics/Collision/Shape/BoxShape.cpp"
$File "$JOLT_PHYSICS_ROOT/Physics/Collision/Shape/BoxShape.h"
$File "$JOLT_PHYSICS_ROOT/Physics/Collision/Shape/CapsuleShape.cpp"
$File "$JOLT_PHYSICS_ROOT/Physics/Collision/Shape/CapsuleShape.h"
$File "$JOLT_PHYSICS_ROOT/Physics/Collision/Shape/CompoundShape.cpp"
$File "$JOLT_PHYSICS_ROOT/Physics/Collision/Shape/CompoundShape.h"
$File "$JOLT_PHYSICS_ROOT/Physics/Collision/Shape/CompoundShapeVisitors.h"
$File "$JOLT_PHYSICS_ROOT/Physics/Collision/Shape/ConvexHullShape.cpp"
$File "$JOLT_PHYSICS_ROOT/Physics/Collision/Shape/ConvexHullShape.h"
$File "$JOLT_PHYSICS_ROOT/Physics/Collision/Shape/ConvexShape.cpp"
$File "$JOLT_PHYSICS_ROOT/Physics/Collision/Shape/ConvexShape.h"
$File "$JOLT_PHYSICS_ROOT/Physics/Collision/Shape/CylinderShape.cpp"
$File "$JOLT_PHYSICS_ROOT/Physics/Collision/Shape/CylinderShape.h"
$File "$JOLT_PHYSICS_ROOT/Physics/Collision/Shape/DecoratedShape.cpp"
$File "$JOLT_PHYSICS_ROOT/Physics/Collision/Shape/DecoratedShape.h"
$File "$JOLT_PHYSICS_ROOT/Physics/Collision/Shape/GetTrianglesContext.h"
$File "$JOLT_PHYSICS_ROOT/Physics/Collision/Shape/HeightFieldShape.cpp"
$File "$JOLT_PHYSICS_ROOT/Physics/Collision/Shape/HeightFieldShape.h"
$File "$JOLT_PHYSICS_ROOT/Physics/Collision/Shape/MeshShape.cpp"
$File "$JOLT_PHYSICS_ROOT/Physics/Collision/Shape/MeshShape.h"
$File "$JOLT_PHYSICS_ROOT/Physics/Collision/Shape/MutableCompoundShape.cpp"
$File "$JOLT_PHYSICS_ROOT/Physics/Collision/Shape/MutableCompoundShape.h"
$File "$JOLT_PHYSICS_ROOT/Physics/Collision/Shape/OffsetCenterOfMassShape.cpp"
$File "$JOLT_PHYSICS_ROOT/Physics/Collision/Shape/OffsetCenterOfMassShape.h"
$File "$JOLT_PHYSICS_ROOT/Physics/Collision/Shape/PolyhedronSubmergedVolumeCalculator.h"
$File "$JOLT_PHYSICS_ROOT/Physics/Collision/Shape/RotatedTranslatedShape.cpp"
$File "$JOLT_PHYSICS_ROOT/Physics/Collision/Shape/RotatedTranslatedShape.h"
$File "$JOLT_PHYSICS_ROOT/Physics/Collision/Shape/ScaledShape.cpp"
$File "$JOLT_PHYSICS_ROOT/Physics/Collision/Shape/ScaledShape.h"
$File "$JOLT_PHYSICS_ROOT/Physics/Collision/Shape/ScaleHelpers.h"
$File "$JOLT_PHYSICS_ROOT/Physics/Collision/Shape/Shape.cpp"
$File "$JOLT_PHYSICS_ROOT/Physics/Collision/Shape/Shape.h"
$File "$JOLT_PHYSICS_ROOT/Physics/Collision/Shape/SphereShape.cpp"
$File "$JOLT_PHYSICS_ROOT/Physics/Collision/Shape/SphereShape.h"
$File "$JOLT_PHYSICS_ROOT/Physics/Collision/Shape/StaticCompoundShape.cpp"
$File "$JOLT_PHYSICS_ROOT/Physics/Collision/Shape/StaticCompoundShape.h"
$File "$JOLT_PHYSICS_ROOT/Physics/Collision/Shape/SubShapeID.h"
$File "$JOLT_PHYSICS_ROOT/Physics/Collision/Shape/SubShapeIDPair.h"
$File "$JOLT_PHYSICS_ROOT/Physics/Collision/Shape/TaperedCapsuleShape.cpp"
$File "$JOLT_PHYSICS_ROOT/Physics/Collision/Shape/TaperedCapsuleShape.gliffy"
$File "$JOLT_PHYSICS_ROOT/Physics/Collision/Shape/TaperedCapsuleShape.h"
$File "$JOLT_PHYSICS_ROOT/Physics/Collision/Shape/TriangleShape.cpp"
$File "$JOLT_PHYSICS_ROOT/Physics/Collision/Shape/TriangleShape.h"
$File "$JOLT_PHYSICS_ROOT/Physics/Collision/ShapeCast.h"
$File "$JOLT_PHYSICS_ROOT/Physics/Collision/ShapeFilter.h"
$File "$JOLT_PHYSICS_ROOT/Physics/Collision/SortReverseAndStore.h"
$File "$JOLT_PHYSICS_ROOT/Physics/Collision/TransformedShape.cpp"
$File "$JOLT_PHYSICS_ROOT/Physics/Collision/TransformedShape.h"
$File "$JOLT_PHYSICS_ROOT/Physics/Constraints/ConeConstraint.cpp"
$File "$JOLT_PHYSICS_ROOT/Physics/Constraints/ConeConstraint.h"
$File "$JOLT_PHYSICS_ROOT/Physics/Constraints/Constraint.cpp"
$File "$JOLT_PHYSICS_ROOT/Physics/Constraints/Constraint.h"
$File "$JOLT_PHYSICS_ROOT/Physics/Constraints/ConstraintManager.cpp"
$File "$JOLT_PHYSICS_ROOT/Physics/Constraints/ConstraintManager.h"
$File "$JOLT_PHYSICS_ROOT/Physics/Constraints/ConstraintPart/AngleConstraintPart.h"
$File "$JOLT_PHYSICS_ROOT/Physics/Constraints/ConstraintPart/AxisConstraintPart.h"
$File "$JOLT_PHYSICS_ROOT/Physics/Constraints/ConstraintPart/DualAxisConstraintPart.h"
$File "$JOLT_PHYSICS_ROOT/Physics/Constraints/ConstraintPart/GearConstraintPart.h"
$File "$JOLT_PHYSICS_ROOT/Physics/Constraints/ConstraintPart/HingeRotationConstraintPart.h"
$File "$JOLT_PHYSICS_ROOT/Physics/Constraints/ConstraintPart/IndependentAxisConstraintPart.h"
$File "$JOLT_PHYSICS_ROOT/Physics/Constraints/ConstraintPart/PointConstraintPart.h"
$File "$JOLT_PHYSICS_ROOT/Physics/Constraints/ConstraintPart/RackAndPinionConstraintPart.h"
$File "$JOLT_PHYSICS_ROOT/Physics/Constraints/ConstraintPart/RotationEulerConstraintPart.h"
$File "$JOLT_PHYSICS_ROOT/Physics/Constraints/ConstraintPart/RotationQuatConstraintPart.h"
$File "$JOLT_PHYSICS_ROOT/Physics/Constraints/ConstraintPart/SpringPart.h"
$File "$JOLT_PHYSICS_ROOT/Physics/Constraints/ConstraintPart/SwingTwistConstraintPart.h"
$File "$JOLT_PHYSICS_ROOT/Physics/Constraints/ContactConstraintManager.cpp"
$File "$JOLT_PHYSICS_ROOT/Physics/Constraints/ContactConstraintManager.h"
$File "$JOLT_PHYSICS_ROOT/Physics/Constraints/DistanceConstraint.cpp"
$File "$JOLT_PHYSICS_ROOT/Physics/Constraints/DistanceConstraint.h"
$File "$JOLT_PHYSICS_ROOT/Physics/Constraints/FixedConstraint.cpp"
$File "$JOLT_PHYSICS_ROOT/Physics/Constraints/FixedConstraint.h"
$File "$JOLT_PHYSICS_ROOT/Physics/Constraints/GearConstraint.cpp"
$File "$JOLT_PHYSICS_ROOT/Physics/Constraints/GearConstraint.h"
$File "$JOLT_PHYSICS_ROOT/Physics/Constraints/HingeConstraint.cpp"
$File "$JOLT_PHYSICS_ROOT/Physics/Constraints/HingeConstraint.h"
$File "$JOLT_PHYSICS_ROOT/Physics/Constraints/MotorSettings.cpp"
$File "$JOLT_PHYSICS_ROOT/Physics/Constraints/MotorSettings.h"
$File "$JOLT_PHYSICS_ROOT/Physics/Constraints/PathConstraint.cpp"
$File "$JOLT_PHYSICS_ROOT/Physics/Constraints/PathConstraint.h"
$File "$JOLT_PHYSICS_ROOT/Physics/Constraints/PathConstraintPath.cpp"
$File "$JOLT_PHYSICS_ROOT/Physics/Constraints/PathConstraintPath.h"
$File "$JOLT_PHYSICS_ROOT/Physics/Constraints/PathConstraintPathHermite.cpp"
$File "$JOLT_PHYSICS_ROOT/Physics/Constraints/PathConstraintPathHermite.h"
$File "$JOLT_PHYSICS_ROOT/Physics/Constraints/PointConstraint.cpp"
$File "$JOLT_PHYSICS_ROOT/Physics/Constraints/PointConstraint.h"
$File "$JOLT_PHYSICS_ROOT/Physics/Constraints/PulleyConstraint.cpp"
$File "$JOLT_PHYSICS_ROOT/Physics/Constraints/PulleyConstraint.h"
$File "$JOLT_PHYSICS_ROOT/Physics/Constraints/RackAndPinionConstraint.cpp"
$File "$JOLT_PHYSICS_ROOT/Physics/Constraints/RackAndPinionConstraint.h"
$File "$JOLT_PHYSICS_ROOT/Physics/Constraints/SixDOFConstraint.cpp"
$File "$JOLT_PHYSICS_ROOT/Physics/Constraints/SixDOFConstraint.h"
$File "$JOLT_PHYSICS_ROOT/Physics/Constraints/SliderConstraint.cpp"
$File "$JOLT_PHYSICS_ROOT/Physics/Constraints/SliderConstraint.h"
$File "$JOLT_PHYSICS_ROOT/Physics/Constraints/SwingTwistConstraint.cpp"
$File "$JOLT_PHYSICS_ROOT/Physics/Constraints/SwingTwistConstraint.h"
$File "$JOLT_PHYSICS_ROOT/Physics/Constraints/TwoBodyConstraint.cpp"
$File "$JOLT_PHYSICS_ROOT/Physics/Constraints/TwoBodyConstraint.h"
$File "$JOLT_PHYSICS_ROOT/Physics/DeterminismLog.cpp"
$File "$JOLT_PHYSICS_ROOT/Physics/DeterminismLog.h"
$File "$JOLT_PHYSICS_ROOT/Physics/EActivation.h"
$File "$JOLT_PHYSICS_ROOT/Physics/IslandBuilder.cpp"
$File "$JOLT_PHYSICS_ROOT/Physics/IslandBuilder.h"
$File "$JOLT_PHYSICS_ROOT/Physics/LargeIslandSplitter.cpp"
$File "$JOLT_PHYSICS_ROOT/Physics/LargeIslandSplitter.h"
$File "$JOLT_PHYSICS_ROOT/Physics/PhysicsLock.cpp"
$File "$JOLT_PHYSICS_ROOT/Physics/PhysicsLock.h"
$File "$JOLT_PHYSICS_ROOT/Physics/PhysicsScene.cpp"
$File "$JOLT_PHYSICS_ROOT/Physics/PhysicsScene.h"
$File "$JOLT_PHYSICS_ROOT/Physics/PhysicsSettings.h"
$File "$JOLT_PHYSICS_ROOT/Physics/PhysicsStepListener.h"
$File "$JOLT_PHYSICS_ROOT/Physics/PhysicsSystem.cpp"
$File "$JOLT_PHYSICS_ROOT/Physics/PhysicsSystem.h"
$File "$JOLT_PHYSICS_ROOT/Physics/PhysicsUpdateContext.cpp"
$File "$JOLT_PHYSICS_ROOT/Physics/PhysicsUpdateContext.h"
$File "$JOLT_PHYSICS_ROOT/Physics/Ragdoll/Ragdoll.cpp"
$File "$JOLT_PHYSICS_ROOT/Physics/Ragdoll/Ragdoll.h"
$File "$JOLT_PHYSICS_ROOT/Physics/StateRecorder.h"
$File "$JOLT_PHYSICS_ROOT/Physics/StateRecorderImpl.cpp"
$File "$JOLT_PHYSICS_ROOT/Physics/StateRecorderImpl.h"
$File "$JOLT_PHYSICS_ROOT/Physics/Vehicle/TrackedVehicleController.cpp"
$File "$JOLT_PHYSICS_ROOT/Physics/Vehicle/TrackedVehicleController.h"
$File "$JOLT_PHYSICS_ROOT/Physics/Vehicle/VehicleAntiRollBar.cpp"
$File "$JOLT_PHYSICS_ROOT/Physics/Vehicle/VehicleAntiRollBar.h"
$File "$JOLT_PHYSICS_ROOT/Physics/Vehicle/VehicleCollisionTester.cpp"
$File "$JOLT_PHYSICS_ROOT/Physics/Vehicle/VehicleCollisionTester.h"
$File "$JOLT_PHYSICS_ROOT/Physics/Vehicle/VehicleConstraint.cpp"
$File "$JOLT_PHYSICS_ROOT/Physics/Vehicle/VehicleConstraint.h"
$File "$JOLT_PHYSICS_ROOT/Physics/Vehicle/VehicleController.cpp"
$File "$JOLT_PHYSICS_ROOT/Physics/Vehicle/VehicleController.h"
$File "$JOLT_PHYSICS_ROOT/Physics/Vehicle/VehicleDifferential.cpp"
$File "$JOLT_PHYSICS_ROOT/Physics/Vehicle/VehicleDifferential.h"
$File "$JOLT_PHYSICS_ROOT/Physics/Vehicle/VehicleEngine.cpp"
$File "$JOLT_PHYSICS_ROOT/Physics/Vehicle/VehicleEngine.h"
$File "$JOLT_PHYSICS_ROOT/Physics/Vehicle/VehicleTrack.cpp"
$File "$JOLT_PHYSICS_ROOT/Physics/Vehicle/VehicleTrack.h"
$File "$JOLT_PHYSICS_ROOT/Physics/Vehicle/VehicleTransmission.cpp"
$File "$JOLT_PHYSICS_ROOT/Physics/Vehicle/VehicleTransmission.h"
$File "$JOLT_PHYSICS_ROOT/Physics/Vehicle/Wheel.cpp"
$File "$JOLT_PHYSICS_ROOT/Physics/Vehicle/Wheel.h"
$File "$JOLT_PHYSICS_ROOT/Physics/Vehicle/WheeledVehicleController.cpp"
$File "$JOLT_PHYSICS_ROOT/Physics/Vehicle/WheeledVehicleController.h"
$File "$JOLT_PHYSICS_ROOT/RegisterTypes.cpp"
$File "$JOLT_PHYSICS_ROOT/RegisterTypes.h"
$File "$JOLT_PHYSICS_ROOT/Renderer/DebugRenderer.cpp"
$File "$JOLT_PHYSICS_ROOT/Renderer/DebugRenderer.h"
$File "$JOLT_PHYSICS_ROOT/Renderer/DebugRendererPlayback.cpp"
$File "$JOLT_PHYSICS_ROOT/Renderer/DebugRendererPlayback.h"
$File "$JOLT_PHYSICS_ROOT/Renderer/DebugRendererRecorder.cpp"
$File "$JOLT_PHYSICS_ROOT/Renderer/DebugRendererRecorder.h"
$File "$JOLT_PHYSICS_ROOT/Skeleton/SkeletalAnimation.cpp"
$File "$JOLT_PHYSICS_ROOT/Skeleton/SkeletalAnimation.h"
$File "$JOLT_PHYSICS_ROOT/Skeleton/Skeleton.cpp"
$File "$JOLT_PHYSICS_ROOT/Skeleton/Skeleton.h"
$File "$JOLT_PHYSICS_ROOT/Skeleton/SkeletonMapper.cpp"
$File "$JOLT_PHYSICS_ROOT/Skeleton/SkeletonMapper.h"
$File "$JOLT_PHYSICS_ROOT/Skeleton/SkeletonPose.cpp"
$File "$JOLT_PHYSICS_ROOT/Skeleton/SkeletonPose.h"
$File "$JOLT_PHYSICS_ROOT/TriangleGrouper/TriangleGrouper.h"
$File "$JOLT_PHYSICS_ROOT/TriangleGrouper/TriangleGrouperClosestCentroid.cpp"
$File "$JOLT_PHYSICS_ROOT/TriangleGrouper/TriangleGrouperClosestCentroid.h"
$File "$JOLT_PHYSICS_ROOT/TriangleGrouper/TriangleGrouperMorton.cpp"
$File "$JOLT_PHYSICS_ROOT/TriangleGrouper/TriangleGrouperMorton.h"
$File "$JOLT_PHYSICS_ROOT/TriangleSplitter/TriangleSplitter.cpp"
$File "$JOLT_PHYSICS_ROOT/TriangleSplitter/TriangleSplitter.h"
$File "$JOLT_PHYSICS_ROOT/TriangleSplitter/TriangleSplitterBinning.cpp"
$File "$JOLT_PHYSICS_ROOT/TriangleSplitter/TriangleSplitterBinning.h"
$File "$JOLT_PHYSICS_ROOT/TriangleSplitter/TriangleSplitterFixedLeafSize.cpp"
$File "$JOLT_PHYSICS_ROOT/TriangleSplitter/TriangleSplitterFixedLeafSize.h"
$File "$JOLT_PHYSICS_ROOT/TriangleSplitter/TriangleSplitterLongestAxis.cpp"
$File "$JOLT_PHYSICS_ROOT/TriangleSplitter/TriangleSplitterLongestAxis.h"
$File "$JOLT_PHYSICS_ROOT/TriangleSplitter/TriangleSplitterMean.cpp"
$File "$JOLT_PHYSICS_ROOT/TriangleSplitter/TriangleSplitterMean.h"
$File "$JOLT_PHYSICS_ROOT/TriangleSplitter/TriangleSplitterMorton.cpp"
$File "$JOLT_PHYSICS_ROOT/TriangleSplitter/TriangleSplitterMorton.h"
}
}

@ -1 +1 @@
Subproject commit 22d675437edc441329ed244f632807a8789fa5a6
Subproject commit 172a99c718bded5faa169ac440517286684fa2f0

View File

@ -252,17 +252,16 @@ Vector JoltPhysicsCollision::CollideGetExtent( const CPhysCollide *pCollide, con
JPH::Vec3 vecMaxExtent = JPH::Vec3::sZero();
ActOnSubShapes< JPH::ConvexShape >( pShape, [&]( const JPH::ConvexShape* pConvexShape, JPH::Mat44Arg matSubShapeTransform )
{
JPH::Mat44 matTransform = matCollideTransform * matSubShapeTransform;
JPH::ConvexShape::SupportingFace supportingFace;
pConvexShape->GetSupportingFace( vecDirection, JPH::Vec3::sReplicate( 1.0f ), supportingFace );
pConvexShape->GetSupportingFace( JPH::SubShapeID(), vecDirection, JPH::Vec3::sReplicate( 1.0f ), matTransform, supportingFace );
for ( const JPH::Vec3 &vecVertex : supportingFace )
{
JPH::Vec3 vecTransformedVertex = matCollideTransform * matSubShapeTransform * vecVertex;
const float flDot = vecTransformedVertex.Dot( vecDirection );
const float flDot = vecVertex.Dot( vecDirection );
if ( flDot > flMaxDot )
{
vecMaxExtent = vecTransformedVertex;
vecMaxExtent = vecVertex;
flMaxDot = flDot;
}
}
@ -747,7 +746,7 @@ int JoltPhysicsCollision::CreateDebugMesh( CPhysCollide const *pCollisionModel,
for ( auto &shape : collector.mHits )
{
JPH::Shape::GetTrianglesContext ctx;
shape.GetTrianglesStart( ctx, JPH::AABox::sBiggest() );
shape.GetTrianglesStart( ctx, JPH::AABox::sBiggest(), JPH::Vec3::sZero() );
for ( ;; )
{
int nSubShapeTriCount = shape.GetTrianglesNext( ctx, nRequestCount, reinterpret_cast<JPH::Float3*>( &pVerts[ nAccumTris * 3 ] ), nullptr /* materials */);

View File

@ -176,17 +176,17 @@ public:
ContentsFilter_Shape( const JPH::Shape *pShape, uint32 contentsMask, IConvexInfo *pConvexInfo )
: m_pShape( pShape ), m_ContentsMask( contentsMask ), m_pConvexInfo( pConvexInfo ) {}
bool ShouldCollide( const JPH::SubShapeID& inSubShapeID2 ) const override
bool ShouldCollide( const JPH::Shape *inShape2, const JPH::SubShapeID& inSubShapeID2 ) const override
{
const uint32 gameData = static_cast<uint32>( m_pShape->GetSubShapeUserData( inSubShapeID2 ) );
const uint32 gameData = static_cast<uint32>( inShape2->GetSubShapeUserData( inSubShapeID2 ) );
const uint32 contents = m_pConvexInfo ? m_pConvexInfo->GetContents( gameData ) : CONTENTS_SOLID;
return !!( contents & m_ContentsMask );
}
bool ShouldCollide( const JPH::SubShapeID &inSubShapeID1, const JPH::SubShapeID &inSubShapeID2 ) const override
bool ShouldCollide( const JPH::Shape *inShape1, const JPH::SubShapeID &inSubShapeIDOfShape1, const JPH::Shape *inShape2, const JPH::SubShapeID &inSubShapeIDOfShape2 ) const override
{
return ShouldCollide( inSubShapeID2 );
return ShouldCollide( inShape2, inSubShapeIDOfShape2 );
}
public:

View File

@ -478,7 +478,7 @@ void JoltPhysicsConstraint::InitialiseSliding( IPhysicsConstraintGroup *pGroup,
JPH::Body *attBody = m_pObjAttached->GetBody();
JPH::SliderConstraintSettings settings;
settings.SetPoint( *refBody, *attBody );
settings.mAutoDetectPoint = true;
settings.SetSliderAxis( JPH::Vec3( sliding.slideAxisRef.x, sliding.slideAxisRef.y, sliding.slideAxisRef.z ) );
if ( sliding.limitMin != sliding.limitMax )
@ -540,7 +540,7 @@ void JoltPhysicsConstraint::InitialiseFixed( IPhysicsConstraintGroup *pGroup, co
JPH::Body *attBody = m_pObjAttached->GetBody();
JPH::FixedConstraintSettings settings;
settings.SetPoint( *refBody, *attBody );
settings.mAutoDetectPoint = true;
m_pConstraint = settings.Create( *refBody, *attBody );

View File

@ -108,6 +108,11 @@ void JoltPhysicsFluidController::OnJoltPhysicsObjectDestroyed( JoltPhysicsObject
//-------------------------------------------------------------------------------------------------
static JPH::Vec3 ProjectPoint( const JPH::Plane &plane, JPH::Vec3Arg point )
{
return point - plane.SignedDistance(point) * plane.GetNormal();
}
// Applies buoyancy to any body that intersects with the water shape
class SourceFluidCollector : public JPH::CollideShapeCollector
{
@ -134,10 +139,6 @@ public:
m_ObjectsInShape.push_back( pObject );
// The original VPhysics ignores m_Params.torqueFactor and always has 0.01.
// But I think 0.05 looks better.
static constexpr float flTorqueFactor = 0.05f;
// Josh:
// The buoyancy ratio in Source works like this:
// fluid_density = m_flDensity * pObject->GetBuoyancyRatio()
@ -148,7 +149,12 @@ public:
const float flFluidDensity = m_flDensity * pObject->GetBuoyancyRatio();
float inBuoyancy = flFluidDensity * pObject->GetBody()->GetShape()->GetVolume() * pObject->GetInvMass();
if ( body.IsActive() )
body.ApplyBuoyancyImpulse( m_Surface, inBuoyancy, 0.3f /* m_Params.damping */, flTorqueFactor, SourceToJolt::Distance( m_Params.currentVelocity ), m_pPhysicsSystem->GetGravity(), m_DeltaTime);
{
// Project (0, 0, 0) onto plane to get a point on it.
JPH::Vec3 point = ProjectPoint( m_Surface, JPH::Vec3::sZero() );
JPH::Vec3 normal = m_Surface.GetNormal();
body.ApplyBuoyancyImpulse( point, normal, inBuoyancy, m_Params.damping, 0.1f, SourceToJolt::Distance( m_Params.currentVelocity ), m_pPhysicsSystem->GetGravity(), m_DeltaTime );
}
}
private:
@ -193,7 +199,7 @@ void JoltPhysicsFluidController::OnPreSimulate( float deltaTime )
const JPH::Shape *pShape = m_pFluidObject->GetCollide()->ToShape();
m_pPhysicsSystem->GetNarrowPhaseQueryNoLock().CollideShape(
pShape, JPH::Vec3::sReplicate( 1.0f ), queryTransform, collideSettings, collector,
pShape, JPH::Vec3::sReplicate( 1.0f ), queryTransform, collideSettings, JPH::Vec3::sZero(), collector,
JPH::SpecifiedBroadPhaseLayerFilter( BroadPhaseLayers::MOVING ), JPH::SpecifiedObjectLayerFilter( Layers::MOVING ), body_filter );
for ( JoltPhysicsObject *pObject : m_ObjectsInShape )

View File

@ -182,7 +182,7 @@ static void CheckCollision( JoltPhysicsObject *pObject, JPH::CollideShapeCollect
settings.mBackFaceMode = JPH::EBackFaceMode::IgnoreBackFaces;
settings.mMaxSeparationDistance = vjolt_player_collision_tolerance.GetFloat();
pSystem->GetNarrowPhaseQueryNoLock().CollideShape( pObject->GetBody()->GetShape(), JPH::Vec3::sReplicate( 1.0f ), query_transform, settings, ioCollector, broadphase_layer_filter, object_layer_filter, ioFilter );
pSystem->GetNarrowPhaseQueryNoLock().CollideShape( pObject->GetBody()->GetShape(), JPH::Vec3::sReplicate( 1.0f ), query_transform, settings, JPH::Vec3::sZero(), ioCollector, broadphase_layer_filter, object_layer_filter, ioFilter );
}
// Slart: This is a version of CheckCollision that projects the player by their velocity, to attempt to push objects that we'll walk into soon

View File

@ -45,7 +45,7 @@ JoltPhysicsDebugRenderer::~JoltPhysicsDebugRenderer()
{
}
void JoltPhysicsDebugRenderer::DrawLine( const JPH::Float3& inFrom, const JPH::Float3& inTo, JPH::ColorArg inColor )
void JoltPhysicsDebugRenderer::DrawLine( JPH::Vec3Arg inFrom, JPH::Vec3Arg inTo, JPH::ColorArg inColor )
{
Vector v1 = JoltToSource::Distance( inFrom );
Vector v2 = JoltToSource::Distance( inTo );

View File

@ -15,7 +15,7 @@ public:
// JPH::DebugRenderer + Draw Implementation
///////////////////////////////////////////
void DrawLine( const JPH::Float3 &inFrom, const JPH::Float3 &inTo, JPH::ColorArg inColor ) override;
void DrawLine( JPH::Vec3Arg inFrom, JPH::Vec3Arg inTo, JPH::ColorArg inColor ) override;
void DrawTriangle( JPH::Vec3Arg inV1, JPH::Vec3Arg inV2, JPH::Vec3Arg inV3, JPH::ColorArg inColor ) override;

View File

@ -59,40 +59,46 @@ static ConVar vjolt_baumgarte_factor( "vjolt_baumgarte_factor", "0.2", FCVAR_NON
//-------------------------------------------------------------------------------------------------
// Function that determines if two object layers can collide
static bool JoltObjectCanCollide( JPH::ObjectLayer inObject1, JPH::ObjectLayer inObject2 )
class JoltObjectLayerPairFilter final : public JPH::ObjectLayerPairFilter
{
switch ( inObject1 )
public:
// Function that determines if two object layers can collide
bool ShouldCollide( JPH::ObjectLayer inObject1, JPH::ObjectLayer inObject2 ) const override
{
// NO_COLLIDE collides with nothing.
case Layers::NO_COLLIDE:
return false;
// NON_MOVING collides with moving objects and debris.
case Layers::NON_MOVING_WORLD:
case Layers::NON_MOVING_OBJECT:
return inObject2 == Layers::MOVING ||
inObject2 == Layers::DEBRIS;
// MOVING collides with moving and non-moving objects.
case Layers::MOVING:
return inObject2 == Layers::MOVING ||
inObject2 == Layers::NON_MOVING_WORLD ||
inObject2 == Layers::NON_MOVING_OBJECT;
switch ( inObject1 )
{
// NO_COLLIDE collides with nothing.
case Layers::NO_COLLIDE:
return false;
// NON_MOVING collides with moving objects and debris.
case Layers::NON_MOVING_WORLD:
case Layers::NON_MOVING_OBJECT:
return inObject2 == Layers::MOVING ||
inObject2 == Layers::DEBRIS;
// MOVING collides with moving and non-moving objects.
case Layers::MOVING:
return inObject2 == Layers::MOVING ||
inObject2 == Layers::NON_MOVING_WORLD ||
inObject2 == Layers::NON_MOVING_OBJECT;
// DEBRIS only collides with non-moving objects.
case Layers::DEBRIS:
return inObject2 == Layers::NON_MOVING_WORLD || inObject2 == Layers::NON_MOVING_OBJECT;
default:
VJoltAssert( false );
return false;
// DEBRIS only collides with non-moving objects.
case Layers::DEBRIS:
return inObject2 == Layers::NON_MOVING_WORLD || inObject2 == Layers::NON_MOVING_OBJECT;
default:
VJoltAssert( false );
return false;
}
};
private:
};
// BroadPhaseLayerInterface implementation
// This defines a mapping between object and broadphase layers.
class JoltBPLayerInterfaceImpl final : public JPH::BroadPhaseLayerInterface
class JoltBroadPhaseLayerInterface final : public JPH::BroadPhaseLayerInterface
{
public:
JoltBPLayerInterfaceImpl()
JoltBroadPhaseLayerInterface()
{
// Create a mapping table from object to broad phase layer
mObjectToBroadPhase[Layers::NON_MOVING_WORLD] = BroadPhaseLayers::NON_MOVING_WORLD;
@ -132,33 +138,41 @@ private:
JPH::BroadPhaseLayer mObjectToBroadPhase[Layers::NUM_LAYERS];
};
// Function that determines if two broadphase layers can collide
static bool JoltBroadPhaseCanCollide( JPH::ObjectLayer inLayer1, JPH::BroadPhaseLayer inLayer2 )
class JoltObjectVsBroadPhaseLayerFilter final : public JPH::ObjectVsBroadPhaseLayerFilter
{
switch (inLayer1)
public:
// Function that determines if two broadphase layers can collide
bool ShouldCollide( JPH::ObjectLayer inLayer1, JPH::BroadPhaseLayer inLayer2 ) const override
{
// NO_COLLIDE collides with nothing.
case Layers::NO_COLLIDE:
return false;
// NON_MOVING collides with moving objects and debris.
case Layers::NON_MOVING_WORLD:
case Layers::NON_MOVING_OBJECT:
return inLayer2 == BroadPhaseLayers::MOVING ||
inLayer2 == BroadPhaseLayers::DEBRIS;
// MOVING collides with moving and non-moving objects.
case Layers::MOVING:
return inLayer2 == BroadPhaseLayers::MOVING ||
inLayer2 == BroadPhaseLayers::NON_MOVING_WORLD ||
inLayer2 == BroadPhaseLayers::NON_MOVING_OBJECT;
switch (inLayer1)
{
// NO_COLLIDE collides with nothing.
case Layers::NO_COLLIDE:
return false;
// NON_MOVING collides with moving objects and debris.
case Layers::NON_MOVING_WORLD:
case Layers::NON_MOVING_OBJECT:
return inLayer2 == BroadPhaseLayers::MOVING ||
inLayer2 == BroadPhaseLayers::DEBRIS;
// MOVING collides with moving and non-moving objects.
case Layers::MOVING:
return inLayer2 == BroadPhaseLayers::MOVING ||
inLayer2 == BroadPhaseLayers::NON_MOVING_WORLD ||
inLayer2 == BroadPhaseLayers::NON_MOVING_OBJECT;
// DEBRIS only collides with non-moving objects.
case Layers::DEBRIS:
return inLayer2 == BroadPhaseLayers::NON_MOVING_WORLD || inLayer2 == BroadPhaseLayers::NON_MOVING_OBJECT;
default:
VJoltAssert( false );
return false;
// DEBRIS only collides with non-moving objects.
case Layers::DEBRIS:
return inLayer2 == BroadPhaseLayers::NON_MOVING_WORLD || inLayer2 == BroadPhaseLayers::NON_MOVING_OBJECT;
default:
VJoltAssert( false );
return false;
}
}
}
private:
};
//-------------------------------------------------------------------------------------------------
@ -180,7 +194,9 @@ CON_COMMAND( vjolt_environment_dump_server, "Dumps the next simulated environmen
//-------------------------------------------------------------------------------------------------
JoltBPLayerInterfaceImpl JoltPhysicsEnvironment::s_BPLayerInterface;
JoltBroadPhaseLayerInterface JoltPhysicsEnvironment::s_BroadPhaseLayerInterface;
JoltObjectVsBroadPhaseLayerFilter JoltPhysicsEnvironment::s_BroadPhaseFilter;
JoltObjectLayerPairFilter JoltPhysicsEnvironment::s_LayerPairFilter;
JoltPhysicsEnvironment::JoltPhysicsEnvironment()
: m_ContactListener( m_PhysicsSystem )
@ -189,7 +205,7 @@ JoltPhysicsEnvironment::JoltPhysicsEnvironment()
m_PhysicsSystem.Init(
kMaxBodies, kNumBodyMutexes, kMaxBodyPairs, kMaxContactConstraints,
s_BPLayerInterface, JoltBroadPhaseCanCollide, JoltObjectCanCollide );
s_BroadPhaseLayerInterface, s_BroadPhaseFilter, s_LayerPairFilter);
{
JPH::PhysicsSettings settings = m_PhysicsSystem.GetPhysicsSettings();

View File

@ -11,7 +11,9 @@
#include "vjolt_constraints.h"
#include "vjolt_listener_contact.h"
class JoltBPLayerInterfaceImpl;
class JoltBroadPhaseLayerInterface;
class JoltObjectVsBroadPhaseLayerFilter;
class JoltObjectLayerPairFilter;
// StateRecorder implementation that saves to a fixed buffer
class VJoltStateRecorder final : public JPH::StateRecorder, public CUtlBuffer
@ -188,7 +190,9 @@ private:
float m_flStepTime = 1.0f / 60.0f;
float m_flAirDensity = 2.0f;
static JoltBPLayerInterfaceImpl s_BPLayerInterface;
static JoltBroadPhaseLayerInterface s_BroadPhaseLayerInterface;
static JoltObjectVsBroadPhaseLayerFilter s_BroadPhaseFilter;
static JoltObjectLayerPairFilter s_LayerPairFilter;
// For GetObjectList
mutable JPH::BodyIDVector m_CachedBodies;

View File

@ -40,7 +40,7 @@ public:
{
}
JPH::ValidateResult OnContactValidate( const JPH::Body &inBody1, const JPH::Body &inBody2, const JPH::CollideShapeResult &inCollisionResult ) override
JPH::ValidateResult OnContactValidate( const JPH::Body &inBody1, const JPH::Body &inBody2, JPH::Vec3Arg inBaseOffset, const JPH::CollideShapeResult &inCollisionResult ) override
{
return JPH::ValidateResult::AcceptAllContactsForThisBodyPair;
}
@ -414,7 +414,7 @@ private:
: m_CollisionPair{ pObject1, pObject2 }
// Slart: Note this negated vector, it is important, Portal 2 bouncy paint needs it negated otherwise things fly into the surface they hit
, m_SurfaceNormal( -Vector( inManifold.mWorldSpaceNormal.GetX(), inManifold.mWorldSpaceNormal.GetY(), inManifold.mWorldSpaceNormal.GetZ() ) )
, m_ContactPoint( JoltToSource::Distance( inManifold.mWorldSpaceContactPointsOn1[0] ) )
, m_ContactPoint( JoltToSource::Distance( inManifold.GetWorldSpaceContactPointOn1( 0 ) ) )
// Unused...
, m_ContactSpeed( vec3_origin )
, m_Velocity0( pObject1->GetBody()->GetLinearVelocity() )

View File

@ -979,7 +979,7 @@ void JoltPhysicsObject::RemoveTrigger()
const JPH::Shape *pShape = GetCollide()->ToShape();
m_pPhysicsSystem->GetNarrowPhaseQueryNoLock().CollideShape(
pShape, JPH::Vec3::sReplicate( 1.0f ), queryTransform, collideSettings, collector,
pShape, JPH::Vec3::sReplicate( 1.0f ), queryTransform, collideSettings, JPH::Vec3::sZero(), collector,
JPH::SpecifiedBroadPhaseLayerFilter( BroadPhaseLayers::MOVING ), JPH::SpecifiedObjectLayerFilter( Layers::MOVING ), body_filter );
}