diff --git a/joltphysics/joltphysics_inc.vpc b/joltphysics/joltphysics_inc.vpc index 477de60..f29b4c2 100644 --- a/joltphysics/joltphysics_inc.vpc +++ b/joltphysics/joltphysics_inc.vpc @@ -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" } } diff --git a/joltphysics/src b/joltphysics/src index 22d6754..172a99c 160000 --- a/joltphysics/src +++ b/joltphysics/src @@ -1 +1 @@ -Subproject commit 22d675437edc441329ed244f632807a8789fa5a6 +Subproject commit 172a99c718bded5faa169ac440517286684fa2f0 diff --git a/vphysics_jolt/vjolt_collide.cpp b/vphysics_jolt/vjolt_collide.cpp index 5b2393b..7960b9b 100644 --- a/vphysics_jolt/vjolt_collide.cpp +++ b/vphysics_jolt/vjolt_collide.cpp @@ -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( &pVerts[ nAccumTris * 3 ] ), nullptr /* materials */); diff --git a/vphysics_jolt/vjolt_collide_trace.cpp b/vphysics_jolt/vjolt_collide_trace.cpp index 0c72ef4..da6138c 100644 --- a/vphysics_jolt/vjolt_collide_trace.cpp +++ b/vphysics_jolt/vjolt_collide_trace.cpp @@ -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( m_pShape->GetSubShapeUserData( inSubShapeID2 ) ); + const uint32 gameData = static_cast( 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: diff --git a/vphysics_jolt/vjolt_constraints.cpp b/vphysics_jolt/vjolt_constraints.cpp index 0dfa01e..17d5cd0 100644 --- a/vphysics_jolt/vjolt_constraints.cpp +++ b/vphysics_jolt/vjolt_constraints.cpp @@ -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 ); diff --git a/vphysics_jolt/vjolt_controller_fluid.cpp b/vphysics_jolt/vjolt_controller_fluid.cpp index 7c8a42d..04fec35 100644 --- a/vphysics_jolt/vjolt_controller_fluid.cpp +++ b/vphysics_jolt/vjolt_controller_fluid.cpp @@ -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 ) diff --git a/vphysics_jolt/vjolt_controller_player.cpp b/vphysics_jolt/vjolt_controller_player.cpp index 206cf0f..ea61f0b 100644 --- a/vphysics_jolt/vjolt_controller_player.cpp +++ b/vphysics_jolt/vjolt_controller_player.cpp @@ -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 diff --git a/vphysics_jolt/vjolt_debugrender.cpp b/vphysics_jolt/vjolt_debugrender.cpp index 558d3a0..bece248 100644 --- a/vphysics_jolt/vjolt_debugrender.cpp +++ b/vphysics_jolt/vjolt_debugrender.cpp @@ -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 ); diff --git a/vphysics_jolt/vjolt_debugrender.h b/vphysics_jolt/vjolt_debugrender.h index 4c1fdbf..f8980e0 100644 --- a/vphysics_jolt/vjolt_debugrender.h +++ b/vphysics_jolt/vjolt_debugrender.h @@ -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; diff --git a/vphysics_jolt/vjolt_environment.cpp b/vphysics_jolt/vjolt_environment.cpp index 1eea4ee..22aff05 100644 --- a/vphysics_jolt/vjolt_environment.cpp +++ b/vphysics_jolt/vjolt_environment.cpp @@ -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(); diff --git a/vphysics_jolt/vjolt_environment.h b/vphysics_jolt/vjolt_environment.h index 972004e..300dcb2 100644 --- a/vphysics_jolt/vjolt_environment.h +++ b/vphysics_jolt/vjolt_environment.h @@ -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; diff --git a/vphysics_jolt/vjolt_listener_contact.h b/vphysics_jolt/vjolt_listener_contact.h index cf4f095..18e40ad 100644 --- a/vphysics_jolt/vjolt_listener_contact.h +++ b/vphysics_jolt/vjolt_listener_contact.h @@ -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() ) diff --git a/vphysics_jolt/vjolt_object.cpp b/vphysics_jolt/vjolt_object.cpp index 6db1fd5..92e57d1 100644 --- a/vphysics_jolt/vjolt_object.cpp +++ b/vphysics_jolt/vjolt_object.cpp @@ -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 ); }