@bloomengine/engine 0.4.0 → 0.4.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/native/tvos/metal-patched/Cargo.toml +178 -0
- package/native/tvos/metal-patched/LICENSE-APACHE +201 -0
- package/native/tvos/metal-patched/LICENSE-MIT +25 -0
- package/native/tvos/metal-patched/src/acceleration_structure.rs +667 -0
- package/native/tvos/metal-patched/src/acceleration_structure_pass.rs +108 -0
- package/native/tvos/metal-patched/src/argument.rs +366 -0
- package/native/tvos/metal-patched/src/blitpass.rs +102 -0
- package/native/tvos/metal-patched/src/buffer.rs +71 -0
- package/native/tvos/metal-patched/src/capturedescriptor.rs +76 -0
- package/native/tvos/metal-patched/src/capturemanager.rs +113 -0
- package/native/tvos/metal-patched/src/commandbuffer.rs +192 -0
- package/native/tvos/metal-patched/src/commandqueue.rs +44 -0
- package/native/tvos/metal-patched/src/computepass.rs +107 -0
- package/native/tvos/metal-patched/src/constants.rs +152 -0
- package/native/tvos/metal-patched/src/counters.rs +119 -0
- package/native/tvos/metal-patched/src/depthstencil.rs +190 -0
- package/native/tvos/metal-patched/src/device.rs +2134 -0
- package/native/tvos/metal-patched/src/drawable.rs +39 -0
- package/native/tvos/metal-patched/src/encoder.rs +2041 -0
- package/native/tvos/metal-patched/src/heap.rs +281 -0
- package/native/tvos/metal-patched/src/indirect_encoder.rs +344 -0
- package/native/tvos/metal-patched/src/lib.rs +657 -0
- package/native/tvos/metal-patched/src/library.rs +902 -0
- package/native/tvos/metal-patched/src/mps.rs +575 -0
- package/native/tvos/metal-patched/src/pipeline/compute.rs +475 -0
- package/native/tvos/metal-patched/src/pipeline/mod.rs +71 -0
- package/native/tvos/metal-patched/src/pipeline/render.rs +762 -0
- package/native/tvos/metal-patched/src/renderpass.rs +443 -0
- package/native/tvos/metal-patched/src/resource.rs +182 -0
- package/native/tvos/metal-patched/src/sampler.rs +165 -0
- package/native/tvos/metal-patched/src/sync.rs +178 -0
- package/native/tvos/metal-patched/src/texture.rs +352 -0
- package/native/tvos/metal-patched/src/types.rs +90 -0
- package/native/tvos/metal-patched/src/vertexdescriptor.rs +250 -0
- package/package.json +8 -11
- package/native/third_party/JoltPhysics/Build/Android/PerformanceTest/build.gradle +0 -51
- package/native/third_party/JoltPhysics/Build/Android/PerformanceTest/src/main/AndroidManifest.xml +0 -20
- package/native/third_party/JoltPhysics/Build/Android/PerformanceTest/src/main/cpp/CMakeLists.txt +0 -20
- package/native/third_party/JoltPhysics/Build/Android/UnitTests/build.gradle +0 -51
- package/native/third_party/JoltPhysics/Build/Android/UnitTests/src/main/AndroidManifest.xml +0 -20
- package/native/third_party/JoltPhysics/Build/Android/UnitTests/src/main/cpp/CMakeLists.txt +0 -20
- package/native/third_party/JoltPhysics/Build/Android/build.gradle +0 -17
- package/native/third_party/JoltPhysics/Build/Android/gradle/wrapper/gradle-wrapper.jar +0 -0
- package/native/third_party/JoltPhysics/Build/Android/gradle/wrapper/gradle-wrapper.properties +0 -5
- package/native/third_party/JoltPhysics/Build/Android/gradle.properties +0 -21
- package/native/third_party/JoltPhysics/Build/Android/gradlew +0 -185
- package/native/third_party/JoltPhysics/Build/Android/gradlew.bat +0 -89
- package/native/third_party/JoltPhysics/Build/Android/settings.gradle +0 -10
- package/native/third_party/JoltPhysics/Build/CMakeLists.txt +0 -449
- package/native/third_party/JoltPhysics/Build/README.md +0 -250
- package/native/third_party/JoltPhysics/Build/cmake_linux_clang_gcc.sh +0 -28
- package/native/third_party/JoltPhysics/Build/cmake_linux_emscripten.sh +0 -19
- package/native/third_party/JoltPhysics/Build/cmake_linux_mingw.sh +0 -19
- package/native/third_party/JoltPhysics/Build/cmake_vs2022_cl.bat +0 -3
- package/native/third_party/JoltPhysics/Build/cmake_vs2022_cl_32bit.bat +0 -3
- package/native/third_party/JoltPhysics/Build/cmake_vs2022_cl_arm.bat +0 -3
- package/native/third_party/JoltPhysics/Build/cmake_vs2022_cl_arm_32bit.bat +0 -4
- package/native/third_party/JoltPhysics/Build/cmake_vs2022_cl_cross_platform_deterministic.bat +0 -3
- package/native/third_party/JoltPhysics/Build/cmake_vs2022_cl_double.bat +0 -3
- package/native/third_party/JoltPhysics/Build/cmake_vs2022_cl_no_object_stream.bat +0 -3
- package/native/third_party/JoltPhysics/Build/cmake_vs2022_clang.bat +0 -10
- package/native/third_party/JoltPhysics/Build/cmake_vs2022_clang_cross_platform_deterministic.bat +0 -10
- package/native/third_party/JoltPhysics/Build/cmake_vs2022_clang_double.bat +0 -10
- package/native/third_party/JoltPhysics/Build/cmake_vs2022_uwp.bat +0 -5
- package/native/third_party/JoltPhysics/Build/cmake_vs2022_uwp_arm.bat +0 -5
- package/native/third_party/JoltPhysics/Build/cmake_vs2026_cl.bat +0 -3
- package/native/third_party/JoltPhysics/Build/cmake_vs2026_cl_cross_platform_deterministic.bat +0 -3
- package/native/third_party/JoltPhysics/Build/cmake_vs2026_cl_double.bat +0 -3
- package/native/third_party/JoltPhysics/Build/cmake_vs2026_clang.bat +0 -10
- package/native/third_party/JoltPhysics/Build/cmake_vs2026_clang_cross_platform_deterministic.bat +0 -10
- package/native/third_party/JoltPhysics/Build/cmake_vs2026_clang_double.bat +0 -10
- package/native/third_party/JoltPhysics/Build/cmake_windows_mingw.sh +0 -19
- package/native/third_party/JoltPhysics/Build/cmake_xcode_ios.sh +0 -4
- package/native/third_party/JoltPhysics/Build/cmake_xcode_macos.sh +0 -4
- package/native/third_party/JoltPhysics/Build/iOS/JoltViewerInfo.plist +0 -34
- package/native/third_party/JoltPhysics/Build/iOS/SamplesInfo.plist +0 -34
- package/native/third_party/JoltPhysics/Build/iOS/UnitTestsInfo.plist +0 -34
- package/native/third_party/JoltPhysics/Build/macOS/icon.icns +0 -0
- package/native/third_party/JoltPhysics/Build/macos_install_vulkan_sdk.sh +0 -13
- package/native/third_party/JoltPhysics/Build/ubuntu24_install_vulkan_sdk.sh +0 -4
- package/native/third_party/JoltPhysics/Jolt/AABBTree/AABBTreeBuilder.cpp +0 -242
- package/native/third_party/JoltPhysics/Jolt/AABBTree/AABBTreeBuilder.h +0 -121
- package/native/third_party/JoltPhysics/Jolt/AABBTree/AABBTreeToBuffer.h +0 -296
- package/native/third_party/JoltPhysics/Jolt/AABBTree/NodeCodec/NodeCodecQuadTreeHalfFloat.h +0 -323
- package/native/third_party/JoltPhysics/Jolt/AABBTree/TriangleCodec/TriangleCodecIndexed8BitPackSOA4Flags.h +0 -555
- package/native/third_party/JoltPhysics/Jolt/ConfigurationString.h +0 -112
- package/native/third_party/JoltPhysics/Jolt/Core/ARMNeon.h +0 -94
- package/native/third_party/JoltPhysics/Jolt/Core/Array.h +0 -713
- package/native/third_party/JoltPhysics/Jolt/Core/Atomics.h +0 -44
- package/native/third_party/JoltPhysics/Jolt/Core/BinaryHeap.h +0 -96
- package/native/third_party/JoltPhysics/Jolt/Core/ByteBuffer.h +0 -74
- package/native/third_party/JoltPhysics/Jolt/Core/Color.cpp +0 -38
- package/native/third_party/JoltPhysics/Jolt/Core/Color.h +0 -98
- package/native/third_party/JoltPhysics/Jolt/Core/Core.h +0 -652
- package/native/third_party/JoltPhysics/Jolt/Core/FPControlWord.h +0 -143
- package/native/third_party/JoltPhysics/Jolt/Core/FPException.h +0 -96
- package/native/third_party/JoltPhysics/Jolt/Core/FPFlushDenormals.h +0 -43
- package/native/third_party/JoltPhysics/Jolt/Core/Factory.cpp +0 -92
- package/native/third_party/JoltPhysics/Jolt/Core/Factory.h +0 -54
- package/native/third_party/JoltPhysics/Jolt/Core/FixedSizeFreeList.h +0 -122
- package/native/third_party/JoltPhysics/Jolt/Core/FixedSizeFreeList.inl +0 -215
- package/native/third_party/JoltPhysics/Jolt/Core/HashCombine.h +0 -234
- package/native/third_party/JoltPhysics/Jolt/Core/HashTable.h +0 -876
- package/native/third_party/JoltPhysics/Jolt/Core/InsertionSort.h +0 -58
- package/native/third_party/JoltPhysics/Jolt/Core/IssueReporting.cpp +0 -27
- package/native/third_party/JoltPhysics/Jolt/Core/IssueReporting.h +0 -38
- package/native/third_party/JoltPhysics/Jolt/Core/JobSystem.h +0 -311
- package/native/third_party/JoltPhysics/Jolt/Core/JobSystem.inl +0 -56
- package/native/third_party/JoltPhysics/Jolt/Core/JobSystemSingleThreaded.cpp +0 -65
- package/native/third_party/JoltPhysics/Jolt/Core/JobSystemSingleThreaded.h +0 -62
- package/native/third_party/JoltPhysics/Jolt/Core/JobSystemThreadPool.cpp +0 -364
- package/native/third_party/JoltPhysics/Jolt/Core/JobSystemThreadPool.h +0 -101
- package/native/third_party/JoltPhysics/Jolt/Core/JobSystemWithBarrier.cpp +0 -230
- package/native/third_party/JoltPhysics/Jolt/Core/JobSystemWithBarrier.h +0 -85
- package/native/third_party/JoltPhysics/Jolt/Core/LinearCurve.cpp +0 -51
- package/native/third_party/JoltPhysics/Jolt/Core/LinearCurve.h +0 -67
- package/native/third_party/JoltPhysics/Jolt/Core/LockFreeHashMap.h +0 -182
- package/native/third_party/JoltPhysics/Jolt/Core/LockFreeHashMap.inl +0 -351
- package/native/third_party/JoltPhysics/Jolt/Core/Memory.cpp +0 -85
- package/native/third_party/JoltPhysics/Jolt/Core/Memory.h +0 -85
- package/native/third_party/JoltPhysics/Jolt/Core/Mutex.h +0 -223
- package/native/third_party/JoltPhysics/Jolt/Core/MutexArray.h +0 -98
- package/native/third_party/JoltPhysics/Jolt/Core/NonCopyable.h +0 -18
- package/native/third_party/JoltPhysics/Jolt/Core/Profiler.cpp +0 -677
- package/native/third_party/JoltPhysics/Jolt/Core/Profiler.h +0 -301
- package/native/third_party/JoltPhysics/Jolt/Core/Profiler.inl +0 -90
- package/native/third_party/JoltPhysics/Jolt/Core/QuickSort.h +0 -137
- package/native/third_party/JoltPhysics/Jolt/Core/RTTI.cpp +0 -149
- package/native/third_party/JoltPhysics/Jolt/Core/RTTI.h +0 -436
- package/native/third_party/JoltPhysics/Jolt/Core/Reference.h +0 -244
- package/native/third_party/JoltPhysics/Jolt/Core/Result.h +0 -174
- package/native/third_party/JoltPhysics/Jolt/Core/STLAlignedAllocator.h +0 -72
- package/native/third_party/JoltPhysics/Jolt/Core/STLAllocator.h +0 -127
- package/native/third_party/JoltPhysics/Jolt/Core/STLLocalAllocator.h +0 -170
- package/native/third_party/JoltPhysics/Jolt/Core/STLTempAllocator.h +0 -80
- package/native/third_party/JoltPhysics/Jolt/Core/ScopeExit.h +0 -49
- package/native/third_party/JoltPhysics/Jolt/Core/Semaphore.cpp +0 -135
- package/native/third_party/JoltPhysics/Jolt/Core/Semaphore.h +0 -68
- package/native/third_party/JoltPhysics/Jolt/Core/StaticArray.h +0 -329
- package/native/third_party/JoltPhysics/Jolt/Core/StreamIn.h +0 -120
- package/native/third_party/JoltPhysics/Jolt/Core/StreamOut.h +0 -97
- package/native/third_party/JoltPhysics/Jolt/Core/StreamUtils.h +0 -168
- package/native/third_party/JoltPhysics/Jolt/Core/StreamWrapper.h +0 -53
- package/native/third_party/JoltPhysics/Jolt/Core/StridedPtr.h +0 -63
- package/native/third_party/JoltPhysics/Jolt/Core/StringTools.cpp +0 -101
- package/native/third_party/JoltPhysics/Jolt/Core/StringTools.h +0 -38
- package/native/third_party/JoltPhysics/Jolt/Core/TempAllocator.h +0 -209
- package/native/third_party/JoltPhysics/Jolt/Core/TickCounter.cpp +0 -37
- package/native/third_party/JoltPhysics/Jolt/Core/TickCounter.h +0 -58
- package/native/third_party/JoltPhysics/Jolt/Core/UnorderedMap.h +0 -80
- package/native/third_party/JoltPhysics/Jolt/Core/UnorderedSet.h +0 -32
- package/native/third_party/JoltPhysics/Jolt/Geometry/AABox.h +0 -313
- package/native/third_party/JoltPhysics/Jolt/Geometry/AABox4.h +0 -224
- package/native/third_party/JoltPhysics/Jolt/Geometry/ClipPoly.h +0 -200
- package/native/third_party/JoltPhysics/Jolt/Geometry/ClosestPoint.h +0 -498
- package/native/third_party/JoltPhysics/Jolt/Geometry/ConvexHullBuilder.cpp +0 -1467
- package/native/third_party/JoltPhysics/Jolt/Geometry/ConvexHullBuilder.h +0 -276
- package/native/third_party/JoltPhysics/Jolt/Geometry/ConvexHullBuilder2D.cpp +0 -335
- package/native/third_party/JoltPhysics/Jolt/Geometry/ConvexHullBuilder2D.h +0 -105
- package/native/third_party/JoltPhysics/Jolt/Geometry/ConvexSupport.h +0 -188
- package/native/third_party/JoltPhysics/Jolt/Geometry/EPAConvexHullBuilder.h +0 -845
- package/native/third_party/JoltPhysics/Jolt/Geometry/EPAPenetrationDepth.h +0 -557
- package/native/third_party/JoltPhysics/Jolt/Geometry/Ellipse.h +0 -77
- package/native/third_party/JoltPhysics/Jolt/Geometry/GJKClosestPoint.h +0 -945
- package/native/third_party/JoltPhysics/Jolt/Geometry/IndexedTriangle.h +0 -130
- package/native/third_party/JoltPhysics/Jolt/Geometry/Indexify.cpp +0 -222
- package/native/third_party/JoltPhysics/Jolt/Geometry/Indexify.h +0 -19
- package/native/third_party/JoltPhysics/Jolt/Geometry/MortonCode.h +0 -40
- package/native/third_party/JoltPhysics/Jolt/Geometry/OrientedBox.cpp +0 -178
- package/native/third_party/JoltPhysics/Jolt/Geometry/OrientedBox.h +0 -39
- package/native/third_party/JoltPhysics/Jolt/Geometry/Plane.h +0 -104
- package/native/third_party/JoltPhysics/Jolt/Geometry/RayAABox.h +0 -241
- package/native/third_party/JoltPhysics/Jolt/Geometry/RayCapsule.h +0 -37
- package/native/third_party/JoltPhysics/Jolt/Geometry/RayCylinder.h +0 -101
- package/native/third_party/JoltPhysics/Jolt/Geometry/RaySphere.h +0 -96
- package/native/third_party/JoltPhysics/Jolt/Geometry/RayTriangle.h +0 -158
- package/native/third_party/JoltPhysics/Jolt/Geometry/Sphere.h +0 -72
- package/native/third_party/JoltPhysics/Jolt/Geometry/Triangle.h +0 -34
- package/native/third_party/JoltPhysics/Jolt/Jolt.cmake +0 -703
- package/native/third_party/JoltPhysics/Jolt/Jolt.h +0 -16
- package/native/third_party/JoltPhysics/Jolt/Jolt.natvis +0 -116
- package/native/third_party/JoltPhysics/Jolt/Math/BVec16.h +0 -99
- package/native/third_party/JoltPhysics/Jolt/Math/BVec16.inl +0 -177
- package/native/third_party/JoltPhysics/Jolt/Math/DMat44.h +0 -158
- package/native/third_party/JoltPhysics/Jolt/Math/DMat44.inl +0 -310
- package/native/third_party/JoltPhysics/Jolt/Math/DVec3.h +0 -291
- package/native/third_party/JoltPhysics/Jolt/Math/DVec3.inl +0 -941
- package/native/third_party/JoltPhysics/Jolt/Math/Double3.h +0 -48
- package/native/third_party/JoltPhysics/Jolt/Math/DynMatrix.h +0 -31
- package/native/third_party/JoltPhysics/Jolt/Math/EigenValueSymmetric.h +0 -177
- package/native/third_party/JoltPhysics/Jolt/Math/FindRoot.h +0 -42
- package/native/third_party/JoltPhysics/Jolt/Math/Float2.h +0 -36
- package/native/third_party/JoltPhysics/Jolt/Math/Float3.h +0 -50
- package/native/third_party/JoltPhysics/Jolt/Math/Float4.h +0 -44
- package/native/third_party/JoltPhysics/Jolt/Math/GaussianElimination.h +0 -102
- package/native/third_party/JoltPhysics/Jolt/Math/HalfFloat.h +0 -208
- package/native/third_party/JoltPhysics/Jolt/Math/Mat44.h +0 -243
- package/native/third_party/JoltPhysics/Jolt/Math/Mat44.inl +0 -952
- package/native/third_party/JoltPhysics/Jolt/Math/Math.h +0 -208
- package/native/third_party/JoltPhysics/Jolt/Math/MathTypes.h +0 -32
- package/native/third_party/JoltPhysics/Jolt/Math/Matrix.h +0 -259
- package/native/third_party/JoltPhysics/Jolt/Math/Quat.h +0 -268
- package/native/third_party/JoltPhysics/Jolt/Math/Quat.inl +0 -406
- package/native/third_party/JoltPhysics/Jolt/Math/Real.h +0 -44
- package/native/third_party/JoltPhysics/Jolt/Math/Swizzle.h +0 -19
- package/native/third_party/JoltPhysics/Jolt/Math/Trigonometry.h +0 -79
- package/native/third_party/JoltPhysics/Jolt/Math/UVec4.h +0 -232
- package/native/third_party/JoltPhysics/Jolt/Math/UVec4.inl +0 -636
- package/native/third_party/JoltPhysics/Jolt/Math/Vec3.cpp +0 -71
- package/native/third_party/JoltPhysics/Jolt/Math/Vec3.h +0 -308
- package/native/third_party/JoltPhysics/Jolt/Math/Vec3.inl +0 -942
- package/native/third_party/JoltPhysics/Jolt/Math/Vec4.h +0 -320
- package/native/third_party/JoltPhysics/Jolt/Math/Vec4.inl +0 -1152
- package/native/third_party/JoltPhysics/Jolt/Math/Vector.h +0 -211
- package/native/third_party/JoltPhysics/Jolt/ObjectStream/GetPrimitiveTypeOfType.h +0 -54
- package/native/third_party/JoltPhysics/Jolt/ObjectStream/ObjectStream.cpp +0 -38
- package/native/third_party/JoltPhysics/Jolt/ObjectStream/ObjectStream.h +0 -337
- package/native/third_party/JoltPhysics/Jolt/ObjectStream/ObjectStreamBinaryIn.cpp +0 -252
- package/native/third_party/JoltPhysics/Jolt/ObjectStream/ObjectStreamBinaryIn.h +0 -57
- package/native/third_party/JoltPhysics/Jolt/ObjectStream/ObjectStreamBinaryOut.cpp +0 -165
- package/native/third_party/JoltPhysics/Jolt/ObjectStream/ObjectStreamBinaryOut.h +0 -57
- package/native/third_party/JoltPhysics/Jolt/ObjectStream/ObjectStreamIn.cpp +0 -635
- package/native/third_party/JoltPhysics/Jolt/ObjectStream/ObjectStreamIn.h +0 -148
- package/native/third_party/JoltPhysics/Jolt/ObjectStream/ObjectStreamOut.cpp +0 -166
- package/native/third_party/JoltPhysics/Jolt/ObjectStream/ObjectStreamOut.h +0 -101
- package/native/third_party/JoltPhysics/Jolt/ObjectStream/ObjectStreamTextIn.cpp +0 -418
- package/native/third_party/JoltPhysics/Jolt/ObjectStream/ObjectStreamTextIn.h +0 -55
- package/native/third_party/JoltPhysics/Jolt/ObjectStream/ObjectStreamTextOut.cpp +0 -255
- package/native/third_party/JoltPhysics/Jolt/ObjectStream/ObjectStreamTextOut.h +0 -62
- package/native/third_party/JoltPhysics/Jolt/ObjectStream/ObjectStreamTypes.h +0 -26
- package/native/third_party/JoltPhysics/Jolt/ObjectStream/SerializableAttribute.h +0 -111
- package/native/third_party/JoltPhysics/Jolt/ObjectStream/SerializableAttributeEnum.h +0 -67
- package/native/third_party/JoltPhysics/Jolt/ObjectStream/SerializableAttributeTyped.h +0 -60
- package/native/third_party/JoltPhysics/Jolt/ObjectStream/SerializableObject.cpp +0 -15
- package/native/third_party/JoltPhysics/Jolt/ObjectStream/SerializableObject.h +0 -170
- package/native/third_party/JoltPhysics/Jolt/ObjectStream/TypeDeclarations.cpp +0 -70
- package/native/third_party/JoltPhysics/Jolt/ObjectStream/TypeDeclarations.h +0 -45
- package/native/third_party/JoltPhysics/Jolt/Physics/Body/AllowedDOFs.h +0 -68
- package/native/third_party/JoltPhysics/Jolt/Physics/Body/Body.cpp +0 -426
- package/native/third_party/JoltPhysics/Jolt/Physics/Body/Body.h +0 -452
- package/native/third_party/JoltPhysics/Jolt/Physics/Body/Body.inl +0 -197
- package/native/third_party/JoltPhysics/Jolt/Physics/Body/BodyAccess.h +0 -68
- package/native/third_party/JoltPhysics/Jolt/Physics/Body/BodyActivationListener.h +0 -28
- package/native/third_party/JoltPhysics/Jolt/Physics/Body/BodyCreationSettings.cpp +0 -234
- package/native/third_party/JoltPhysics/Jolt/Physics/Body/BodyCreationSettings.h +0 -124
- package/native/third_party/JoltPhysics/Jolt/Physics/Body/BodyFilter.h +0 -130
- package/native/third_party/JoltPhysics/Jolt/Physics/Body/BodyID.h +0 -101
- package/native/third_party/JoltPhysics/Jolt/Physics/Body/BodyInterface.cpp +0 -1099
- package/native/third_party/JoltPhysics/Jolt/Physics/Body/BodyInterface.h +0 -324
- package/native/third_party/JoltPhysics/Jolt/Physics/Body/BodyLock.h +0 -111
- package/native/third_party/JoltPhysics/Jolt/Physics/Body/BodyLockInterface.h +0 -134
- package/native/third_party/JoltPhysics/Jolt/Physics/Body/BodyLockMulti.h +0 -120
- package/native/third_party/JoltPhysics/Jolt/Physics/Body/BodyManager.cpp +0 -1220
- package/native/third_party/JoltPhysics/Jolt/Physics/Body/BodyManager.h +0 -403
- package/native/third_party/JoltPhysics/Jolt/Physics/Body/BodyPair.h +0 -36
- package/native/third_party/JoltPhysics/Jolt/Physics/Body/BodyType.h +0 -19
- package/native/third_party/JoltPhysics/Jolt/Physics/Body/MassProperties.cpp +0 -185
- package/native/third_party/JoltPhysics/Jolt/Physics/Body/MassProperties.h +0 -58
- package/native/third_party/JoltPhysics/Jolt/Physics/Body/MotionProperties.cpp +0 -92
- package/native/third_party/JoltPhysics/Jolt/Physics/Body/MotionProperties.h +0 -308
- package/native/third_party/JoltPhysics/Jolt/Physics/Body/MotionProperties.inl +0 -178
- package/native/third_party/JoltPhysics/Jolt/Physics/Body/MotionQuality.h +0 -31
- package/native/third_party/JoltPhysics/Jolt/Physics/Body/MotionType.h +0 -17
- package/native/third_party/JoltPhysics/Jolt/Physics/Character/Character.cpp +0 -354
- package/native/third_party/JoltPhysics/Jolt/Physics/Character/Character.h +0 -159
- package/native/third_party/JoltPhysics/Jolt/Physics/Character/CharacterBase.cpp +0 -59
- package/native/third_party/JoltPhysics/Jolt/Physics/Character/CharacterBase.h +0 -157
- package/native/third_party/JoltPhysics/Jolt/Physics/Character/CharacterID.h +0 -98
- package/native/third_party/JoltPhysics/Jolt/Physics/Character/CharacterVirtual.cpp +0 -1933
- package/native/third_party/JoltPhysics/Jolt/Physics/Character/CharacterVirtual.h +0 -752
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/AABoxCast.h +0 -20
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/ActiveEdgeMode.h +0 -17
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/ActiveEdges.h +0 -114
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/BackFaceMode.h +0 -16
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/BroadPhase/BroadPhase.cpp +0 -16
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/BroadPhase/BroadPhase.h +0 -109
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/BroadPhase/BroadPhaseBruteForce.cpp +0 -313
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/BroadPhase/BroadPhaseBruteForce.h +0 -38
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/BroadPhase/BroadPhaseLayer.h +0 -148
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/BroadPhase/BroadPhaseLayerInterfaceMask.h +0 -92
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/BroadPhase/BroadPhaseLayerInterfaceTable.h +0 -64
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/BroadPhase/BroadPhaseQuadTree.cpp +0 -629
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/BroadPhase/BroadPhaseQuadTree.h +0 -108
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/BroadPhase/BroadPhaseQuery.h +0 -56
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/BroadPhase/ObjectVsBroadPhaseLayerFilterMask.h +0 -35
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/BroadPhase/ObjectVsBroadPhaseLayerFilterTable.h +0 -66
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/BroadPhase/QuadTree.cpp +0 -1768
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/BroadPhase/QuadTree.h +0 -389
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/CastConvexVsTriangles.cpp +0 -107
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/CastConvexVsTriangles.h +0 -46
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/CastResult.h +0 -37
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/CastSphereVsTriangles.cpp +0 -223
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/CastSphereVsTriangles.h +0 -49
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/CollectFacesMode.h +0 -16
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/CollideConvexVsTriangles.cpp +0 -155
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/CollideConvexVsTriangles.h +0 -56
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/CollidePointResult.h +0 -25
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/CollideShape.h +0 -106
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/CollideShapeVsShapePerLeaf.h +0 -94
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/CollideSoftBodyVertexIterator.h +0 -110
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/CollideSoftBodyVerticesVsTriangles.h +0 -102
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/CollideSphereVsTriangles.cpp +0 -121
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/CollideSphereVsTriangles.h +0 -50
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/CollisionCollector.h +0 -109
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/CollisionCollectorImpl.h +0 -219
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/CollisionDispatch.cpp +0 -107
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/CollisionDispatch.h +0 -97
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/CollisionGroup.cpp +0 -35
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/CollisionGroup.h +0 -97
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/ContactListener.h +0 -143
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/EstimateCollisionResponse.cpp +0 -213
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/EstimateCollisionResponse.h +0 -48
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/GroupFilter.cpp +0 -32
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/GroupFilter.h +0 -46
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/GroupFilterTable.cpp +0 -38
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/GroupFilterTable.h +0 -130
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/InternalEdgeRemovingCollector.h +0 -279
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/ManifoldBetweenTwoFaces.cpp +0 -271
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/ManifoldBetweenTwoFaces.h +0 -44
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/NarrowPhaseQuery.cpp +0 -448
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/NarrowPhaseQuery.h +0 -77
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/NarrowPhaseStats.cpp +0 -62
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/NarrowPhaseStats.h +0 -110
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/ObjectLayer.h +0 -111
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/ObjectLayerPairFilterMask.h +0 -52
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/ObjectLayerPairFilterTable.h +0 -78
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/PhysicsMaterial.cpp +0 -35
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/PhysicsMaterial.h +0 -57
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/PhysicsMaterialSimple.cpp +0 -38
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/PhysicsMaterialSimple.h +0 -37
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/RayCast.h +0 -87
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/BoxShape.cpp +0 -318
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/BoxShape.h +0 -115
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/CapsuleShape.cpp +0 -438
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/CapsuleShape.h +0 -129
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/CompoundShape.cpp +0 -433
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/CompoundShape.h +0 -354
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/CompoundShapeVisitors.h +0 -461
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/ConvexHullShape.cpp +0 -1311
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/ConvexHullShape.h +0 -202
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/ConvexShape.cpp +0 -566
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/ConvexShape.h +0 -150
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/CylinderShape.cpp +0 -418
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/CylinderShape.h +0 -126
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/DecoratedShape.cpp +0 -87
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/DecoratedShape.h +0 -80
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/EmptyShape.cpp +0 -64
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/EmptyShape.h +0 -75
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/GetTrianglesContext.h +0 -248
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/HeightFieldShape.cpp +0 -2754
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/HeightFieldShape.h +0 -380
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/MeshShape.cpp +0 -1305
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/MeshShape.h +0 -228
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/MutableCompoundShape.cpp +0 -596
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/MutableCompoundShape.h +0 -176
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/OffsetCenterOfMassShape.cpp +0 -217
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/OffsetCenterOfMassShape.h +0 -140
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/PlaneShape.cpp +0 -541
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/PlaneShape.h +0 -147
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/PolyhedronSubmergedVolumeCalculator.h +0 -319
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/RotatedTranslatedShape.cpp +0 -333
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/RotatedTranslatedShape.h +0 -161
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/ScaleHelpers.h +0 -83
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/ScaledShape.cpp +0 -238
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/ScaledShape.h +0 -145
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/Shape.cpp +0 -325
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/Shape.h +0 -466
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/SphereShape.cpp +0 -347
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/SphereShape.h +0 -125
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/StaticCompoundShape.cpp +0 -674
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/StaticCompoundShape.h +0 -139
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/SubShapeID.h +0 -138
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/SubShapeIDPair.h +0 -65
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/TaperedCapsuleShape.cpp +0 -453
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/TaperedCapsuleShape.gliffy +0 -1
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/TaperedCapsuleShape.h +0 -135
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/TaperedCylinderShape.cpp +0 -691
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/TaperedCylinderShape.h +0 -132
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/TriangleShape.cpp +0 -430
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/TriangleShape.h +0 -143
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/ShapeCast.h +0 -173
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/ShapeFilter.h +0 -73
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/SimShapeFilter.h +0 -40
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/SimShapeFilterWrapper.h +0 -58
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/SortReverseAndStore.h +0 -48
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/TransformedShape.cpp +0 -180
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/TransformedShape.h +0 -194
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/CalculateSolverSteps.h +0 -70
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/ConeConstraint.cpp +0 -246
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/ConeConstraint.h +0 -133
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/Constraint.cpp +0 -73
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/Constraint.h +0 -243
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/ConstraintManager.cpp +0 -289
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/ConstraintManager.h +0 -100
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/ConstraintPart/AngleConstraintPart.h +0 -257
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/ConstraintPart/AxisConstraintPart.h +0 -682
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/ConstraintPart/DualAxisConstraintPart.h +0 -276
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/ConstraintPart/GearConstraintPart.h +0 -195
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/ConstraintPart/HingeRotationConstraintPart.h +0 -222
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/ConstraintPart/IndependentAxisConstraintPart.h +0 -246
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/ConstraintPart/PointConstraintPart.h +0 -239
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/ConstraintPart/RackAndPinionConstraintPart.h +0 -196
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/ConstraintPart/RotationEulerConstraintPart.h +0 -283
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/ConstraintPart/RotationQuatConstraintPart.h +0 -246
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/ConstraintPart/SpringPart.h +0 -169
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/ConstraintPart/SwingTwistConstraintPart.h +0 -597
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/ContactConstraintManager.cpp +0 -1804
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/ContactConstraintManager.h +0 -524
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/DistanceConstraint.cpp +0 -266
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/DistanceConstraint.h +0 -120
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/FixedConstraint.cpp +0 -215
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/FixedConstraint.h +0 -96
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/GearConstraint.cpp +0 -188
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/GearConstraint.h +0 -116
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/HingeConstraint.cpp +0 -443
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/HingeConstraint.h +0 -205
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/MotorSettings.cpp +0 -43
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/MotorSettings.h +0 -66
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/PathConstraint.cpp +0 -458
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/PathConstraint.h +0 -191
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/PathConstraintPath.cpp +0 -85
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/PathConstraintPath.h +0 -76
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/PathConstraintPathHermite.cpp +0 -308
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/PathConstraintPathHermite.h +0 -54
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/PointConstraint.cpp +0 -157
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/PointConstraint.h +0 -94
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/PulleyConstraint.cpp +0 -253
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/PulleyConstraint.h +0 -137
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/RackAndPinionConstraint.cpp +0 -189
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/RackAndPinionConstraint.h +0 -118
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/SixDOFConstraint.cpp +0 -900
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/SixDOFConstraint.h +0 -289
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/SliderConstraint.cpp +0 -501
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/SliderConstraint.h +0 -198
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/SpringSettings.cpp +0 -35
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/SpringSettings.h +0 -70
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/SwingTwistConstraint.cpp +0 -524
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/SwingTwistConstraint.h +0 -197
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/TwoBodyConstraint.cpp +0 -56
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/TwoBodyConstraint.h +0 -65
- package/native/third_party/JoltPhysics/Jolt/Physics/DeterminismLog.cpp +0 -17
- package/native/third_party/JoltPhysics/Jolt/Physics/DeterminismLog.h +0 -159
- package/native/third_party/JoltPhysics/Jolt/Physics/EActivation.h +0 -16
- package/native/third_party/JoltPhysics/Jolt/Physics/EPhysicsUpdateError.h +0 -37
- package/native/third_party/JoltPhysics/Jolt/Physics/IslandBuilder.cpp +0 -492
- package/native/third_party/JoltPhysics/Jolt/Physics/IslandBuilder.h +0 -144
- package/native/third_party/JoltPhysics/Jolt/Physics/LargeIslandSplitter.cpp +0 -582
- package/native/third_party/JoltPhysics/Jolt/Physics/LargeIslandSplitter.h +0 -187
- package/native/third_party/JoltPhysics/Jolt/Physics/PhysicsLock.h +0 -169
- package/native/third_party/JoltPhysics/Jolt/Physics/PhysicsScene.cpp +0 -261
- package/native/third_party/JoltPhysics/Jolt/Physics/PhysicsScene.h +0 -104
- package/native/third_party/JoltPhysics/Jolt/Physics/PhysicsSettings.h +0 -125
- package/native/third_party/JoltPhysics/Jolt/Physics/PhysicsStepListener.h +0 -37
- package/native/third_party/JoltPhysics/Jolt/Physics/PhysicsSystem.cpp +0 -2915
- package/native/third_party/JoltPhysics/Jolt/Physics/PhysicsSystem.h +0 -391
- package/native/third_party/JoltPhysics/Jolt/Physics/PhysicsUpdateContext.cpp +0 -25
- package/native/third_party/JoltPhysics/Jolt/Physics/PhysicsUpdateContext.h +0 -176
- package/native/third_party/JoltPhysics/Jolt/Physics/Ragdoll/Ragdoll.cpp +0 -744
- package/native/third_party/JoltPhysics/Jolt/Physics/Ragdoll/Ragdoll.h +0 -245
- package/native/third_party/JoltPhysics/Jolt/Physics/SoftBody/SoftBodyContactListener.h +0 -55
- package/native/third_party/JoltPhysics/Jolt/Physics/SoftBody/SoftBodyCreationSettings.cpp +0 -128
- package/native/third_party/JoltPhysics/Jolt/Physics/SoftBody/SoftBodyCreationSettings.h +0 -75
- package/native/third_party/JoltPhysics/Jolt/Physics/SoftBody/SoftBodyManifold.h +0 -74
- package/native/third_party/JoltPhysics/Jolt/Physics/SoftBody/SoftBodyMotionProperties.cpp +0 -1501
- package/native/third_party/JoltPhysics/Jolt/Physics/SoftBody/SoftBodyMotionProperties.h +0 -333
- package/native/third_party/JoltPhysics/Jolt/Physics/SoftBody/SoftBodyShape.cpp +0 -354
- package/native/third_party/JoltPhysics/Jolt/Physics/SoftBody/SoftBodyShape.h +0 -73
- package/native/third_party/JoltPhysics/Jolt/Physics/SoftBody/SoftBodySharedSettings.cpp +0 -1487
- package/native/third_party/JoltPhysics/Jolt/Physics/SoftBody/SoftBodySharedSettings.h +0 -390
- package/native/third_party/JoltPhysics/Jolt/Physics/SoftBody/SoftBodyUpdateContext.h +0 -63
- package/native/third_party/JoltPhysics/Jolt/Physics/SoftBody/SoftBodyVertex.h +0 -36
- package/native/third_party/JoltPhysics/Jolt/Physics/StateRecorder.h +0 -136
- package/native/third_party/JoltPhysics/Jolt/Physics/StateRecorderImpl.cpp +0 -90
- package/native/third_party/JoltPhysics/Jolt/Physics/StateRecorderImpl.h +0 -50
- package/native/third_party/JoltPhysics/Jolt/Physics/Vehicle/MotorcycleController.cpp +0 -306
- package/native/third_party/JoltPhysics/Jolt/Physics/Vehicle/MotorcycleController.h +0 -119
- package/native/third_party/JoltPhysics/Jolt/Physics/Vehicle/TrackedVehicleController.cpp +0 -547
- package/native/third_party/JoltPhysics/Jolt/Physics/Vehicle/TrackedVehicleController.h +0 -169
- package/native/third_party/JoltPhysics/Jolt/Physics/Vehicle/VehicleAntiRollBar.cpp +0 -33
- package/native/third_party/JoltPhysics/Jolt/Physics/Vehicle/VehicleAntiRollBar.h +0 -33
- package/native/third_party/JoltPhysics/Jolt/Physics/Vehicle/VehicleCollisionTester.cpp +0 -376
- package/native/third_party/JoltPhysics/Jolt/Physics/Vehicle/VehicleCollisionTester.h +0 -146
- package/native/third_party/JoltPhysics/Jolt/Physics/Vehicle/VehicleConstraint.cpp +0 -703
- package/native/third_party/JoltPhysics/Jolt/Physics/Vehicle/VehicleConstraint.h +0 -252
- package/native/third_party/JoltPhysics/Jolt/Physics/Vehicle/VehicleController.cpp +0 -17
- package/native/third_party/JoltPhysics/Jolt/Physics/Vehicle/VehicleController.h +0 -87
- package/native/third_party/JoltPhysics/Jolt/Physics/Vehicle/VehicleDifferential.cpp +0 -81
- package/native/third_party/JoltPhysics/Jolt/Physics/Vehicle/VehicleDifferential.h +0 -39
- package/native/third_party/JoltPhysics/Jolt/Physics/Vehicle/VehicleEngine.cpp +0 -122
- package/native/third_party/JoltPhysics/Jolt/Physics/Vehicle/VehicleEngine.h +0 -93
- package/native/third_party/JoltPhysics/Jolt/Physics/Vehicle/VehicleTrack.cpp +0 -52
- package/native/third_party/JoltPhysics/Jolt/Physics/Vehicle/VehicleTrack.h +0 -56
- package/native/third_party/JoltPhysics/Jolt/Physics/Vehicle/VehicleTransmission.cpp +0 -159
- package/native/third_party/JoltPhysics/Jolt/Physics/Vehicle/VehicleTransmission.h +0 -87
- package/native/third_party/JoltPhysics/Jolt/Physics/Vehicle/Wheel.cpp +0 -93
- package/native/third_party/JoltPhysics/Jolt/Physics/Vehicle/Wheel.h +0 -148
- package/native/third_party/JoltPhysics/Jolt/Physics/Vehicle/WheeledVehicleController.cpp +0 -866
- package/native/third_party/JoltPhysics/Jolt/Physics/Vehicle/WheeledVehicleController.h +0 -205
- package/native/third_party/JoltPhysics/Jolt/RegisterTypes.cpp +0 -204
- package/native/third_party/JoltPhysics/Jolt/RegisterTypes.h +0 -29
- package/native/third_party/JoltPhysics/Jolt/Renderer/DebugRenderer.cpp +0 -1107
- package/native/third_party/JoltPhysics/Jolt/Renderer/DebugRenderer.h +0 -383
- package/native/third_party/JoltPhysics/Jolt/Renderer/DebugRendererPlayback.cpp +0 -168
- package/native/third_party/JoltPhysics/Jolt/Renderer/DebugRendererPlayback.h +0 -48
- package/native/third_party/JoltPhysics/Jolt/Renderer/DebugRendererRecorder.cpp +0 -158
- package/native/third_party/JoltPhysics/Jolt/Renderer/DebugRendererRecorder.h +0 -130
- package/native/third_party/JoltPhysics/Jolt/Renderer/DebugRendererSimple.cpp +0 -80
- package/native/third_party/JoltPhysics/Jolt/Renderer/DebugRendererSimple.h +0 -88
- package/native/third_party/JoltPhysics/Jolt/Skeleton/SkeletalAnimation.cpp +0 -165
- package/native/third_party/JoltPhysics/Jolt/Skeleton/SkeletalAnimation.h +0 -91
- package/native/third_party/JoltPhysics/Jolt/Skeleton/Skeleton.cpp +0 -82
- package/native/third_party/JoltPhysics/Jolt/Skeleton/Skeleton.h +0 -72
- package/native/third_party/JoltPhysics/Jolt/Skeleton/SkeletonMapper.cpp +0 -237
- package/native/third_party/JoltPhysics/Jolt/Skeleton/SkeletonMapper.h +0 -145
- package/native/third_party/JoltPhysics/Jolt/Skeleton/SkeletonPose.cpp +0 -87
- package/native/third_party/JoltPhysics/Jolt/Skeleton/SkeletonPose.h +0 -82
- package/native/third_party/JoltPhysics/Jolt/TriangleSplitter/TriangleSplitter.cpp +0 -73
- package/native/third_party/JoltPhysics/Jolt/TriangleSplitter/TriangleSplitter.h +0 -84
- package/native/third_party/JoltPhysics/Jolt/TriangleSplitter/TriangleSplitterBinning.cpp +0 -139
- package/native/third_party/JoltPhysics/Jolt/TriangleSplitter/TriangleSplitterBinning.h +0 -52
- package/native/third_party/JoltPhysics/Jolt/TriangleSplitter/TriangleSplitterMean.cpp +0 -43
- package/native/third_party/JoltPhysics/Jolt/TriangleSplitter/TriangleSplitterMean.h +0 -28
- package/native/third_party/JoltPhysics/LICENSE +0 -7
- package/native/third_party/JoltPhysics/README.md +0 -173
- package/native/third_party/bloom_jolt/CMakeLists.txt +0 -87
- package/native/third_party/bloom_jolt/include/bloom_jolt.h +0 -519
- package/native/third_party/bloom_jolt/src/bloom_jolt.cpp +0 -1780
|
@@ -1,223 +0,0 @@
|
|
|
1
|
-
// Jolt Physics Library (https://github.com/jrouwe/JoltPhysics)
|
|
2
|
-
// SPDX-FileCopyrightText: 2021 Jorrit Rouwe
|
|
3
|
-
// SPDX-License-Identifier: MIT
|
|
4
|
-
|
|
5
|
-
#include <Jolt/Jolt.h>
|
|
6
|
-
|
|
7
|
-
#include <Jolt/Physics/Collision/CastSphereVsTriangles.h>
|
|
8
|
-
#include <Jolt/Physics/Collision/TransformedShape.h>
|
|
9
|
-
#include <Jolt/Physics/Collision/Shape/ScaleHelpers.h>
|
|
10
|
-
#include <Jolt/Physics/Collision/Shape/SphereShape.h>
|
|
11
|
-
#include <Jolt/Physics/Collision/ActiveEdges.h>
|
|
12
|
-
#include <Jolt/Physics/Collision/NarrowPhaseStats.h>
|
|
13
|
-
#include <Jolt/Geometry/ClosestPoint.h>
|
|
14
|
-
#include <Jolt/Geometry/RaySphere.h>
|
|
15
|
-
#include <Jolt/Core/Profiler.h>
|
|
16
|
-
|
|
17
|
-
JPH_NAMESPACE_BEGIN
|
|
18
|
-
|
|
19
|
-
CastSphereVsTriangles::CastSphereVsTriangles(const ShapeCast &inShapeCast, const ShapeCastSettings &inShapeCastSettings, Vec3Arg inScale, Mat44Arg inCenterOfMassTransform2, const SubShapeIDCreator &inSubShapeIDCreator1, CastShapeCollector &ioCollector) :
|
|
20
|
-
mStart(inShapeCast.mCenterOfMassStart.GetTranslation()),
|
|
21
|
-
mDirection(inShapeCast.mDirection),
|
|
22
|
-
mShapeCastSettings(inShapeCastSettings),
|
|
23
|
-
mCenterOfMassTransform2(inCenterOfMassTransform2),
|
|
24
|
-
mScale(inScale),
|
|
25
|
-
mSubShapeIDCreator1(inSubShapeIDCreator1),
|
|
26
|
-
mCollector(ioCollector)
|
|
27
|
-
{
|
|
28
|
-
// Cast to sphere shape
|
|
29
|
-
JPH_ASSERT(inShapeCast.mShape->GetSubType() == EShapeSubType::Sphere);
|
|
30
|
-
const SphereShape *sphere = static_cast<const SphereShape *>(inShapeCast.mShape);
|
|
31
|
-
|
|
32
|
-
// Scale the radius
|
|
33
|
-
mRadius = sphere->GetRadius() * abs(inShapeCast.mScale.GetX());
|
|
34
|
-
|
|
35
|
-
// Determine if shape is inside out or not
|
|
36
|
-
mScaleSign = ScaleHelpers::IsInsideOut(inScale)? -1.0f : 1.0f;
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
void CastSphereVsTriangles::AddHit(bool inBackFacing, const SubShapeID &inSubShapeID2, float inFraction, Vec3Arg inContactPointA, Vec3Arg inContactPointB, Vec3Arg inContactNormal)
|
|
40
|
-
{
|
|
41
|
-
// Convert to world space
|
|
42
|
-
Vec3 contact_point_a = mCenterOfMassTransform2 * (mStart + inContactPointA);
|
|
43
|
-
Vec3 contact_point_b = mCenterOfMassTransform2 * (mStart + inContactPointB);
|
|
44
|
-
Vec3 contact_normal_world = mCenterOfMassTransform2.Multiply3x3(inContactNormal);
|
|
45
|
-
|
|
46
|
-
// Its a hit, store the sub shape id's
|
|
47
|
-
ShapeCastResult result(inFraction, contact_point_a, contact_point_b, contact_normal_world, inBackFacing, mSubShapeIDCreator1.GetID(), inSubShapeID2, TransformedShape::sGetBodyID(mCollector.GetContext()));
|
|
48
|
-
|
|
49
|
-
// Note: We don't gather faces here because that's only useful if both shapes have a face. Since the sphere always has only 1 contact point, the manifold is always a point.
|
|
50
|
-
|
|
51
|
-
JPH_IF_TRACK_NARROWPHASE_STATS(TrackNarrowPhaseCollector track;)
|
|
52
|
-
mCollector.AddHit(result);
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
void CastSphereVsTriangles::AddHitWithActiveEdgeDetection(Vec3Arg inV0, Vec3Arg inV1, Vec3Arg inV2, bool inBackFacing, Vec3Arg inTriangleNormal, uint8 inActiveEdges, const SubShapeID &inSubShapeID2, float inFraction, Vec3Arg inContactPointA, Vec3Arg inContactPointB, Vec3Arg inContactNormal)
|
|
56
|
-
{
|
|
57
|
-
// Check if we have enabled active edge detection
|
|
58
|
-
Vec3 contact_normal = inContactNormal;
|
|
59
|
-
if (mShapeCastSettings.mActiveEdgeMode == EActiveEdgeMode::CollideOnlyWithActive && inActiveEdges != 0b111)
|
|
60
|
-
{
|
|
61
|
-
// Convert the active edge velocity hint to local space
|
|
62
|
-
Vec3 active_edge_movement_direction = mCenterOfMassTransform2.Multiply3x3Transposed(mShapeCastSettings.mActiveEdgeMovementDirection);
|
|
63
|
-
|
|
64
|
-
// Update the contact normal to account for active edges
|
|
65
|
-
// Note that we flip the triangle normal as the penetration axis is pointing towards the triangle instead of away
|
|
66
|
-
contact_normal = ActiveEdges::FixNormal(inV0, inV1, inV2, inBackFacing? inTriangleNormal : -inTriangleNormal, inActiveEdges, inContactPointB, inContactNormal, active_edge_movement_direction);
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
AddHit(inBackFacing, inSubShapeID2, inFraction, inContactPointA, inContactPointB, contact_normal);
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
// This is a simplified version of the ray cylinder test from: Real Time Collision Detection - Christer Ericson
|
|
73
|
-
// Chapter 5.3.7, page 194-197. Some conditions have been removed as we're not interested in hitting the caps of the cylinder.
|
|
74
|
-
// Note that the ray origin is assumed to be the origin here.
|
|
75
|
-
float CastSphereVsTriangles::RayCylinder(Vec3Arg inRayDirection, Vec3Arg inCylinderA, Vec3Arg inCylinderB, float inRadius) const
|
|
76
|
-
{
|
|
77
|
-
// Calculate cylinder axis
|
|
78
|
-
Vec3 axis = inCylinderB - inCylinderA;
|
|
79
|
-
|
|
80
|
-
// Make ray start relative to cylinder side A (moving cylinder A to the origin)
|
|
81
|
-
Vec3 start = -inCylinderA;
|
|
82
|
-
|
|
83
|
-
// Test if segment is fully on the A side of the cylinder
|
|
84
|
-
float start_dot_axis = start.Dot(axis);
|
|
85
|
-
float direction_dot_axis = inRayDirection.Dot(axis);
|
|
86
|
-
float end_dot_axis = start_dot_axis + direction_dot_axis;
|
|
87
|
-
if (start_dot_axis < 0.0f && end_dot_axis < 0.0f)
|
|
88
|
-
return FLT_MAX;
|
|
89
|
-
|
|
90
|
-
// Test if segment is fully on the B side of the cylinder
|
|
91
|
-
float axis_len_sq = axis.LengthSq();
|
|
92
|
-
if (start_dot_axis > axis_len_sq && end_dot_axis > axis_len_sq)
|
|
93
|
-
return FLT_MAX;
|
|
94
|
-
|
|
95
|
-
// Calculate a, b and c, the factors for quadratic equation
|
|
96
|
-
// We're basically solving the ray: x = start + direction * t
|
|
97
|
-
// The closest point to x on the segment A B is: w = (x . axis) * axis / (axis . axis)
|
|
98
|
-
// The distance between x and w should be radius: (x - w) . (x - w) = radius^2
|
|
99
|
-
// Solving this gives the following:
|
|
100
|
-
float a = axis_len_sq * inRayDirection.LengthSq() - Square(direction_dot_axis);
|
|
101
|
-
if (abs(a) < 1.0e-6f)
|
|
102
|
-
return FLT_MAX; // Segment runs parallel to cylinder axis, stop processing, we will either hit at fraction = 0 or we'll hit a vertex
|
|
103
|
-
float b = axis_len_sq * start.Dot(inRayDirection) - direction_dot_axis * start_dot_axis; // should be multiplied by 2, instead we'll divide a and c by 2 when we solve the quadratic equation
|
|
104
|
-
float c = axis_len_sq * (start.LengthSq() - Square(inRadius)) - Square(start_dot_axis);
|
|
105
|
-
float det = Square(b) - a * c; // normally 4 * a * c but since both a and c need to be divided by 2 we lose the 4
|
|
106
|
-
if (det < 0.0f)
|
|
107
|
-
return FLT_MAX; // No solution to quadratic equation
|
|
108
|
-
|
|
109
|
-
// Solve fraction t where the ray hits the cylinder
|
|
110
|
-
float t = -(b + sqrt(det)) / a; // normally divided by 2 * a but since a should be divided by 2 we lose the 2
|
|
111
|
-
if (t < 0.0f || t > 1.0f)
|
|
112
|
-
return FLT_MAX; // Intersection lies outside segment
|
|
113
|
-
if (start_dot_axis + t * direction_dot_axis < 0.0f || start_dot_axis + t * direction_dot_axis > axis_len_sq)
|
|
114
|
-
return FLT_MAX; // Intersection outside the end point of the cylinder, stop processing, we will possibly hit a vertex
|
|
115
|
-
return t;
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
void CastSphereVsTriangles::Cast(Vec3Arg inV0, Vec3Arg inV1, Vec3Arg inV2, uint8 inActiveEdges, const SubShapeID &inSubShapeID2)
|
|
119
|
-
{
|
|
120
|
-
// Scale triangle and make it relative to the start of the cast
|
|
121
|
-
Vec3 v0 = mScale * inV0 - mStart;
|
|
122
|
-
Vec3 v1 = mScale * inV1 - mStart;
|
|
123
|
-
Vec3 v2 = mScale * inV2 - mStart;
|
|
124
|
-
|
|
125
|
-
// Calculate triangle normal
|
|
126
|
-
Vec3 triangle_normal = mScaleSign * (v1 - v0).Cross(v2 - v0);
|
|
127
|
-
float triangle_normal_len = triangle_normal.Length();
|
|
128
|
-
if (triangle_normal_len == 0.0f)
|
|
129
|
-
return; // Degenerate triangle
|
|
130
|
-
triangle_normal /= triangle_normal_len;
|
|
131
|
-
|
|
132
|
-
// Backface check
|
|
133
|
-
float normal_dot_direction = triangle_normal.Dot(mDirection);
|
|
134
|
-
bool back_facing = normal_dot_direction > 0.0f;
|
|
135
|
-
if (mShapeCastSettings.mBackFaceModeTriangles == EBackFaceMode::IgnoreBackFaces && back_facing)
|
|
136
|
-
return;
|
|
137
|
-
|
|
138
|
-
// Test if distance between the sphere and plane of triangle is smaller or equal than the radius
|
|
139
|
-
if (abs(v0.Dot(triangle_normal)) <= mRadius)
|
|
140
|
-
{
|
|
141
|
-
// Check if the sphere intersects at the start of the cast
|
|
142
|
-
uint32 closest_feature;
|
|
143
|
-
Vec3 q = ClosestPoint::GetClosestPointOnTriangle(v0, v1, v2, closest_feature);
|
|
144
|
-
float q_len_sq = q.LengthSq();
|
|
145
|
-
if (q_len_sq <= Square(mRadius))
|
|
146
|
-
{
|
|
147
|
-
// Early out if this hit is deeper than the collector's early out value
|
|
148
|
-
float q_len = sqrt(q_len_sq);
|
|
149
|
-
float penetration_depth = mRadius - q_len;
|
|
150
|
-
if (-penetration_depth >= mCollector.GetEarlyOutFraction())
|
|
151
|
-
return;
|
|
152
|
-
|
|
153
|
-
// Generate contact point
|
|
154
|
-
Vec3 contact_normal = q_len > 0.0f? q / q_len : Vec3::sAxisY();
|
|
155
|
-
Vec3 contact_point_a = q + contact_normal * penetration_depth;
|
|
156
|
-
Vec3 contact_point_b = q;
|
|
157
|
-
AddHitWithActiveEdgeDetection(v0, v1, v2, back_facing, triangle_normal, inActiveEdges, inSubShapeID2, 0.0f, contact_point_a, contact_point_b, contact_normal);
|
|
158
|
-
return;
|
|
159
|
-
}
|
|
160
|
-
}
|
|
161
|
-
else
|
|
162
|
-
{
|
|
163
|
-
// Check if cast is not parallel to the plane of the triangle
|
|
164
|
-
float abs_normal_dot_direction = abs(normal_dot_direction);
|
|
165
|
-
if (abs_normal_dot_direction > 1.0e-6f)
|
|
166
|
-
{
|
|
167
|
-
// Calculate the point on the sphere that will hit the triangle's plane first and calculate a fraction where it will do so
|
|
168
|
-
Vec3 d = Sign(normal_dot_direction) * mRadius * triangle_normal;
|
|
169
|
-
float plane_intersection = (v0 - d).Dot(triangle_normal) / normal_dot_direction;
|
|
170
|
-
|
|
171
|
-
// Check if sphere will hit in the interval that we're interested in
|
|
172
|
-
if (plane_intersection * abs_normal_dot_direction < -mRadius // Sphere hits the plane before the sweep, cannot intersect
|
|
173
|
-
|| plane_intersection >= mCollector.GetEarlyOutFraction()) // Sphere hits the plane after the sweep / early out fraction, cannot intersect
|
|
174
|
-
return;
|
|
175
|
-
|
|
176
|
-
// We can only report an interior hit if we're hitting the plane during our sweep and not before
|
|
177
|
-
if (plane_intersection >= 0.0f)
|
|
178
|
-
{
|
|
179
|
-
// Calculate the point of contact on the plane
|
|
180
|
-
Vec3 p = d + plane_intersection * mDirection;
|
|
181
|
-
|
|
182
|
-
// Check if this is an interior point
|
|
183
|
-
float u, v, w;
|
|
184
|
-
if (ClosestPoint::GetBaryCentricCoordinates(v0 - p, v1 - p, v2 - p, u, v, w)
|
|
185
|
-
&& u >= 0.0f && v >= 0.0f && w >= 0.0f)
|
|
186
|
-
{
|
|
187
|
-
// Interior point, we found the collision point. We don't need to check active edges.
|
|
188
|
-
AddHit(back_facing, inSubShapeID2, plane_intersection, p, p, back_facing? triangle_normal : -triangle_normal);
|
|
189
|
-
return;
|
|
190
|
-
}
|
|
191
|
-
}
|
|
192
|
-
}
|
|
193
|
-
}
|
|
194
|
-
|
|
195
|
-
// Test 3 edges
|
|
196
|
-
float fraction = RayCylinder(mDirection, v0, v1, mRadius);
|
|
197
|
-
fraction = min(fraction, RayCylinder(mDirection, v1, v2, mRadius));
|
|
198
|
-
fraction = min(fraction, RayCylinder(mDirection, v2, v0, mRadius));
|
|
199
|
-
|
|
200
|
-
// Test 3 vertices
|
|
201
|
-
fraction = min(fraction, RaySphere(Vec3::sZero(), mDirection, v0, mRadius));
|
|
202
|
-
fraction = min(fraction, RaySphere(Vec3::sZero(), mDirection, v1, mRadius));
|
|
203
|
-
fraction = min(fraction, RaySphere(Vec3::sZero(), mDirection, v2, mRadius));
|
|
204
|
-
|
|
205
|
-
// Check if we have a collision
|
|
206
|
-
JPH_ASSERT(fraction >= 0.0f);
|
|
207
|
-
if (fraction < mCollector.GetEarlyOutFraction())
|
|
208
|
-
{
|
|
209
|
-
// Calculate the center of the sphere at the point of contact
|
|
210
|
-
Vec3 p = fraction * mDirection;
|
|
211
|
-
|
|
212
|
-
// Get contact point and normal
|
|
213
|
-
uint32 closest_feature;
|
|
214
|
-
Vec3 q = ClosestPoint::GetClosestPointOnTriangle(v0 - p, v1 - p, v2 - p, closest_feature);
|
|
215
|
-
// The distance between p and the triangle should be mRadius, but for very long casts,
|
|
216
|
-
// floating point accuracy can become low enough so that p is on the plane and q is zero
|
|
217
|
-
Vec3 contact_normal = q.NormalizedOr(back_facing? triangle_normal : -triangle_normal);
|
|
218
|
-
Vec3 contact_point_ab = p + q;
|
|
219
|
-
AddHitWithActiveEdgeDetection(v0, v1, v2, back_facing, triangle_normal, inActiveEdges, inSubShapeID2, fraction, contact_point_ab, contact_point_ab, contact_normal);
|
|
220
|
-
}
|
|
221
|
-
}
|
|
222
|
-
|
|
223
|
-
JPH_NAMESPACE_END
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
// Jolt Physics Library (https://github.com/jrouwe/JoltPhysics)
|
|
2
|
-
// SPDX-FileCopyrightText: 2021 Jorrit Rouwe
|
|
3
|
-
// SPDX-License-Identifier: MIT
|
|
4
|
-
|
|
5
|
-
#pragma once
|
|
6
|
-
|
|
7
|
-
#include <Jolt/Physics/Collision/ShapeCast.h>
|
|
8
|
-
|
|
9
|
-
JPH_NAMESPACE_BEGIN
|
|
10
|
-
|
|
11
|
-
/// Collision detection helper that casts a sphere vs one or more triangles
|
|
12
|
-
class JPH_EXPORT CastSphereVsTriangles
|
|
13
|
-
{
|
|
14
|
-
public:
|
|
15
|
-
/// Constructor
|
|
16
|
-
/// @param inShapeCast The sphere to cast against the triangles and its start and direction
|
|
17
|
-
/// @param inShapeCastSettings Settings for performing the cast
|
|
18
|
-
/// @param inScale Local space scale for the shape to cast against (scales relative to its center of mass).
|
|
19
|
-
/// @param inCenterOfMassTransform2 Is the center of mass transform of shape 2 (excluding scale), this is used to provide a transform to the shape cast result so that local quantities can be transformed into world space.
|
|
20
|
-
/// @param inSubShapeIDCreator1 Class that tracks the current sub shape ID for the casting shape
|
|
21
|
-
/// @param ioCollector The collector that receives the results.
|
|
22
|
-
CastSphereVsTriangles(const ShapeCast &inShapeCast, const ShapeCastSettings &inShapeCastSettings, Vec3Arg inScale, Mat44Arg inCenterOfMassTransform2, const SubShapeIDCreator &inSubShapeIDCreator1, CastShapeCollector &ioCollector);
|
|
23
|
-
|
|
24
|
-
/// Cast sphere with a single triangle
|
|
25
|
-
/// @param inV0 , inV1 , inV2: CCW triangle vertices
|
|
26
|
-
/// @param inActiveEdges bit 0 = edge v0..v1 is active, bit 1 = edge v1..v2 is active, bit 2 = edge v2..v0 is active
|
|
27
|
-
/// An active edge is an edge that is not connected to another triangle in such a way that it is impossible to collide with the edge
|
|
28
|
-
/// @param inSubShapeID2 The sub shape ID for the triangle
|
|
29
|
-
void Cast(Vec3Arg inV0, Vec3Arg inV1, Vec3Arg inV2, uint8 inActiveEdges, const SubShapeID &inSubShapeID2);
|
|
30
|
-
|
|
31
|
-
protected:
|
|
32
|
-
Vec3 mStart; ///< Starting location of the sphere
|
|
33
|
-
Vec3 mDirection; ///< Direction and length of movement of sphere
|
|
34
|
-
float mRadius; ///< Scaled radius of sphere
|
|
35
|
-
const ShapeCastSettings & mShapeCastSettings;
|
|
36
|
-
const Mat44 & mCenterOfMassTransform2;
|
|
37
|
-
Vec3 mScale;
|
|
38
|
-
SubShapeIDCreator mSubShapeIDCreator1;
|
|
39
|
-
CastShapeCollector & mCollector;
|
|
40
|
-
|
|
41
|
-
private:
|
|
42
|
-
void AddHit(bool inBackFacing, const SubShapeID &inSubShapeID2, float inFraction, Vec3Arg inContactPointA, Vec3Arg inContactPointB, Vec3Arg inContactNormal);
|
|
43
|
-
void AddHitWithActiveEdgeDetection(Vec3Arg inV0, Vec3Arg inV1, Vec3Arg inV2, bool inBackFacing, Vec3Arg inTriangleNormal, uint8 inActiveEdges, const SubShapeID &inSubShapeID2, float inFraction, Vec3Arg inContactPointA, Vec3Arg inContactPointB, Vec3Arg inContactNormal);
|
|
44
|
-
float RayCylinder(Vec3Arg inRayDirection, Vec3Arg inCylinderA, Vec3Arg inCylinderB, float inRadius) const;
|
|
45
|
-
|
|
46
|
-
float mScaleSign; ///< Sign of the scale, -1 if object is inside out, 1 if not
|
|
47
|
-
};
|
|
48
|
-
|
|
49
|
-
JPH_NAMESPACE_END
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
// Jolt Physics Library (https://github.com/jrouwe/JoltPhysics)
|
|
2
|
-
// SPDX-FileCopyrightText: 2021 Jorrit Rouwe
|
|
3
|
-
// SPDX-License-Identifier: MIT
|
|
4
|
-
|
|
5
|
-
#pragma once
|
|
6
|
-
|
|
7
|
-
JPH_NAMESPACE_BEGIN
|
|
8
|
-
|
|
9
|
-
/// Whether or not to collect faces, used by CastShape and CollideShape
|
|
10
|
-
enum class ECollectFacesMode : uint8
|
|
11
|
-
{
|
|
12
|
-
CollectFaces, ///< mShape1/2Face is desired
|
|
13
|
-
NoFaces ///< mShape1/2Face is not desired
|
|
14
|
-
};
|
|
15
|
-
|
|
16
|
-
JPH_NAMESPACE_END
|
|
@@ -1,155 +0,0 @@
|
|
|
1
|
-
// Jolt Physics Library (https://github.com/jrouwe/JoltPhysics)
|
|
2
|
-
// SPDX-FileCopyrightText: 2021 Jorrit Rouwe
|
|
3
|
-
// SPDX-License-Identifier: MIT
|
|
4
|
-
|
|
5
|
-
#include <Jolt/Jolt.h>
|
|
6
|
-
|
|
7
|
-
#include <Jolt/Physics/Collision/CollideConvexVsTriangles.h>
|
|
8
|
-
#include <Jolt/Physics/Collision/Shape/ScaleHelpers.h>
|
|
9
|
-
#include <Jolt/Physics/Collision/CollideShape.h>
|
|
10
|
-
#include <Jolt/Physics/Collision/TransformedShape.h>
|
|
11
|
-
#include <Jolt/Physics/Collision/ActiveEdges.h>
|
|
12
|
-
#include <Jolt/Physics/Collision/NarrowPhaseStats.h>
|
|
13
|
-
#include <Jolt/Geometry/EPAPenetrationDepth.h>
|
|
14
|
-
#include <Jolt/Geometry/Plane.h>
|
|
15
|
-
|
|
16
|
-
JPH_NAMESPACE_BEGIN
|
|
17
|
-
|
|
18
|
-
CollideConvexVsTriangles::CollideConvexVsTriangles(const ConvexShape *inShape1, Vec3Arg inScale1, Vec3Arg inScale2, Mat44Arg inCenterOfMassTransform1, Mat44Arg inCenterOfMassTransform2, const SubShapeID &inSubShapeID1, const CollideShapeSettings &inCollideShapeSettings, CollideShapeCollector &ioCollector) :
|
|
19
|
-
mCollideShapeSettings(inCollideShapeSettings),
|
|
20
|
-
mCollector(ioCollector),
|
|
21
|
-
mShape1(inShape1),
|
|
22
|
-
mScale1(inScale1),
|
|
23
|
-
mScale2(inScale2),
|
|
24
|
-
mTransform1(inCenterOfMassTransform1),
|
|
25
|
-
mSubShapeID1(inSubShapeID1)
|
|
26
|
-
{
|
|
27
|
-
// Get transforms
|
|
28
|
-
Mat44 inverse_transform2 = inCenterOfMassTransform2.InversedRotationTranslation();
|
|
29
|
-
Mat44 transform1_to_2 = inverse_transform2 * inCenterOfMassTransform1;
|
|
30
|
-
mTransform2To1 = transform1_to_2.InversedRotationTranslation();
|
|
31
|
-
|
|
32
|
-
// Calculate bounds
|
|
33
|
-
mBoundsOf1 = inShape1->GetLocalBounds().Scaled(inScale1);
|
|
34
|
-
mBoundsOf1.ExpandBy(Vec3::sReplicate(inCollideShapeSettings.mMaxSeparationDistance));
|
|
35
|
-
mBoundsOf1InSpaceOf2 = mBoundsOf1.Transformed(transform1_to_2); // Convert bounding box of 1 into space of 2
|
|
36
|
-
|
|
37
|
-
// Determine if shape 2 is inside out or not
|
|
38
|
-
mScaleSign2 = ScaleHelpers::IsInsideOut(inScale2)? -1.0f : 1.0f;
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
void CollideConvexVsTriangles::Collide(Vec3Arg inV0, Vec3Arg inV1, Vec3Arg inV2, uint8 inActiveEdges, const SubShapeID &inSubShapeID2)
|
|
42
|
-
{
|
|
43
|
-
// Scale triangle and transform it to the space of 1
|
|
44
|
-
Vec3 v0 = mTransform2To1 * (mScale2 * inV0);
|
|
45
|
-
Vec3 v1 = mTransform2To1 * (mScale2 * inV1);
|
|
46
|
-
Vec3 v2 = mTransform2To1 * (mScale2 * inV2);
|
|
47
|
-
|
|
48
|
-
// Calculate triangle normal
|
|
49
|
-
Vec3 triangle_normal = mScaleSign2 * (v1 - v0).Cross(v2 - v0);
|
|
50
|
-
|
|
51
|
-
// Backface check
|
|
52
|
-
bool back_facing = triangle_normal.Dot(v0) > 0.0f;
|
|
53
|
-
if (mCollideShapeSettings.mBackFaceMode == EBackFaceMode::IgnoreBackFaces && back_facing)
|
|
54
|
-
return;
|
|
55
|
-
|
|
56
|
-
// Get bounding box for triangle
|
|
57
|
-
AABox triangle_bbox = AABox::sFromTwoPoints(v0, v1);
|
|
58
|
-
triangle_bbox.Encapsulate(v2);
|
|
59
|
-
|
|
60
|
-
// Get intersection between triangle and shape box, if there is none, we're done
|
|
61
|
-
if (!triangle_bbox.Overlaps(mBoundsOf1))
|
|
62
|
-
return;
|
|
63
|
-
|
|
64
|
-
// Create triangle support function
|
|
65
|
-
TriangleConvexSupport triangle(v0, v1, v2);
|
|
66
|
-
|
|
67
|
-
// Perform collision detection
|
|
68
|
-
// Note: As we don't remember the penetration axis from the last iteration, and it is likely that the shape (A) we're colliding the triangle (B) against is in front of the triangle,
|
|
69
|
-
// and the penetration axis is the shortest distance along to push B out of collision, we use the inverse of the triangle normal as an initial penetration axis. This has been seen
|
|
70
|
-
// to improve performance by approx. 5% over using a fixed axis like (1, 0, 0).
|
|
71
|
-
Vec3 penetration_axis = -triangle_normal, point1, point2;
|
|
72
|
-
EPAPenetrationDepth pen_depth;
|
|
73
|
-
EPAPenetrationDepth::EStatus status;
|
|
74
|
-
|
|
75
|
-
// Get the support function
|
|
76
|
-
if (mShape1ExCvxRadius == nullptr)
|
|
77
|
-
mShape1ExCvxRadius = mShape1->GetSupportFunction(ConvexShape::ESupportMode::ExcludeConvexRadius, mBufferExCvxRadius, mScale1);
|
|
78
|
-
|
|
79
|
-
// Perform GJK step
|
|
80
|
-
float max_separation_distance = mCollideShapeSettings.mMaxSeparationDistance;
|
|
81
|
-
status = pen_depth.GetPenetrationDepthStepGJK(*mShape1ExCvxRadius, mShape1ExCvxRadius->GetConvexRadius() + max_separation_distance, triangle, 0.0f, mCollideShapeSettings.mCollisionTolerance, penetration_axis, point1, point2);
|
|
82
|
-
|
|
83
|
-
// Check result of collision detection
|
|
84
|
-
if (status == EPAPenetrationDepth::EStatus::NotColliding)
|
|
85
|
-
return;
|
|
86
|
-
else if (status == EPAPenetrationDepth::EStatus::Indeterminate)
|
|
87
|
-
{
|
|
88
|
-
// Need to run expensive EPA algorithm
|
|
89
|
-
|
|
90
|
-
// We know we're overlapping at this point, so we can set the max separation distance to 0.
|
|
91
|
-
// Numerically it is possible that GJK finds that the shapes are overlapping but EPA finds that they're separated.
|
|
92
|
-
// In order to avoid this, we clamp the max separation distance to 1 so that we don't excessively inflate the shape,
|
|
93
|
-
// but we still inflate it enough to avoid the case where EPA misses the collision.
|
|
94
|
-
max_separation_distance = min(max_separation_distance, 1.0f);
|
|
95
|
-
|
|
96
|
-
// Get the support function
|
|
97
|
-
if (mShape1IncCvxRadius == nullptr)
|
|
98
|
-
mShape1IncCvxRadius = mShape1->GetSupportFunction(ConvexShape::ESupportMode::IncludeConvexRadius, mBufferIncCvxRadius, mScale1);
|
|
99
|
-
|
|
100
|
-
// Add convex radius
|
|
101
|
-
AddConvexRadius shape1_add_max_separation_distance(*mShape1IncCvxRadius, max_separation_distance);
|
|
102
|
-
|
|
103
|
-
// Perform EPA step
|
|
104
|
-
if (!pen_depth.GetPenetrationDepthStepEPA(shape1_add_max_separation_distance, triangle, mCollideShapeSettings.mPenetrationTolerance, penetration_axis, point1, point2))
|
|
105
|
-
return;
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
// Check if the penetration is bigger than the early out fraction
|
|
109
|
-
float penetration_depth = (point2 - point1).Length() - max_separation_distance;
|
|
110
|
-
if (-penetration_depth >= mCollector.GetEarlyOutFraction())
|
|
111
|
-
return;
|
|
112
|
-
|
|
113
|
-
// Correct point1 for the added separation distance
|
|
114
|
-
float penetration_axis_len = penetration_axis.Length();
|
|
115
|
-
if (penetration_axis_len > 0.0f)
|
|
116
|
-
point1 -= penetration_axis * (max_separation_distance / penetration_axis_len);
|
|
117
|
-
|
|
118
|
-
// Check if we have enabled active edge detection
|
|
119
|
-
if (mCollideShapeSettings.mActiveEdgeMode == EActiveEdgeMode::CollideOnlyWithActive && inActiveEdges != 0b111)
|
|
120
|
-
{
|
|
121
|
-
// Convert the active edge velocity hint to local space
|
|
122
|
-
Vec3 active_edge_movement_direction = mTransform1.Multiply3x3Transposed(mCollideShapeSettings.mActiveEdgeMovementDirection);
|
|
123
|
-
|
|
124
|
-
// Update the penetration axis to account for active edges
|
|
125
|
-
// Note that we flip the triangle normal as the penetration axis is pointing towards the triangle instead of away
|
|
126
|
-
penetration_axis = ActiveEdges::FixNormal(v0, v1, v2, back_facing? triangle_normal : -triangle_normal, inActiveEdges, point2, penetration_axis, active_edge_movement_direction);
|
|
127
|
-
}
|
|
128
|
-
|
|
129
|
-
// Convert to world space
|
|
130
|
-
point1 = mTransform1 * point1;
|
|
131
|
-
point2 = mTransform1 * point2;
|
|
132
|
-
Vec3 penetration_axis_world = mTransform1.Multiply3x3(penetration_axis);
|
|
133
|
-
|
|
134
|
-
// Create collision result
|
|
135
|
-
CollideShapeResult result(point1, point2, penetration_axis_world, penetration_depth, mSubShapeID1, inSubShapeID2, TransformedShape::sGetBodyID(mCollector.GetContext()));
|
|
136
|
-
|
|
137
|
-
// Gather faces
|
|
138
|
-
if (mCollideShapeSettings.mCollectFacesMode == ECollectFacesMode::CollectFaces)
|
|
139
|
-
{
|
|
140
|
-
// Get supporting face of shape 1
|
|
141
|
-
mShape1->GetSupportingFace(SubShapeID(), -penetration_axis, mScale1, mTransform1, result.mShape1Face);
|
|
142
|
-
|
|
143
|
-
// Get face of the triangle
|
|
144
|
-
result.mShape2Face.resize(3);
|
|
145
|
-
result.mShape2Face[0] = mTransform1 * v0;
|
|
146
|
-
result.mShape2Face[1] = mTransform1 * v1;
|
|
147
|
-
result.mShape2Face[2] = mTransform1 * v2;
|
|
148
|
-
}
|
|
149
|
-
|
|
150
|
-
// Notify the collector
|
|
151
|
-
JPH_IF_TRACK_NARROWPHASE_STATS(TrackNarrowPhaseCollector track;)
|
|
152
|
-
mCollector.AddHit(result);
|
|
153
|
-
}
|
|
154
|
-
|
|
155
|
-
JPH_NAMESPACE_END
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
// Jolt Physics Library (https://github.com/jrouwe/JoltPhysics)
|
|
2
|
-
// SPDX-FileCopyrightText: 2021 Jorrit Rouwe
|
|
3
|
-
// SPDX-License-Identifier: MIT
|
|
4
|
-
|
|
5
|
-
#pragma once
|
|
6
|
-
|
|
7
|
-
#include <Jolt/Geometry/AABox.h>
|
|
8
|
-
#include <Jolt/Physics/Collision/Shape/Shape.h>
|
|
9
|
-
#include <Jolt/Physics/Collision/Shape/SubShapeID.h>
|
|
10
|
-
#include <Jolt/Physics/Collision/Shape/ConvexShape.h>
|
|
11
|
-
|
|
12
|
-
JPH_NAMESPACE_BEGIN
|
|
13
|
-
|
|
14
|
-
class CollideShapeSettings;
|
|
15
|
-
|
|
16
|
-
/// Collision detection helper that collides a convex object vs one or more triangles
|
|
17
|
-
class JPH_EXPORT CollideConvexVsTriangles
|
|
18
|
-
{
|
|
19
|
-
public:
|
|
20
|
-
/// Constructor
|
|
21
|
-
/// @param inShape1 The convex shape to collide against triangles
|
|
22
|
-
/// @param inScale1 Local space scale for the convex object (scales relative to its center of mass)
|
|
23
|
-
/// @param inScale2 Local space scale for the triangles
|
|
24
|
-
/// @param inCenterOfMassTransform1 Transform that takes the center of mass of 1 into world space
|
|
25
|
-
/// @param inCenterOfMassTransform2 Transform that takes the center of mass of 2 into world space
|
|
26
|
-
/// @param inSubShapeID1 Sub shape ID of the convex object
|
|
27
|
-
/// @param inCollideShapeSettings Settings for the collide shape query
|
|
28
|
-
/// @param ioCollector The collector that will receive the results
|
|
29
|
-
CollideConvexVsTriangles(const ConvexShape *inShape1, Vec3Arg inScale1, Vec3Arg inScale2, Mat44Arg inCenterOfMassTransform1, Mat44Arg inCenterOfMassTransform2, const SubShapeID &inSubShapeID1, const CollideShapeSettings &inCollideShapeSettings, CollideShapeCollector &ioCollector);
|
|
30
|
-
|
|
31
|
-
/// Collide convex object with a single triangle
|
|
32
|
-
/// @param inV0 , inV1 , inV2: CCW triangle vertices
|
|
33
|
-
/// @param inActiveEdges bit 0 = edge v0..v1 is active, bit 1 = edge v1..v2 is active, bit 2 = edge v2..v0 is active
|
|
34
|
-
/// An active edge is an edge that is not connected to another triangle in such a way that it is impossible to collide with the edge
|
|
35
|
-
/// @param inSubShapeID2 The sub shape ID for the triangle
|
|
36
|
-
void Collide(Vec3Arg inV0, Vec3Arg inV1, Vec3Arg inV2, uint8 inActiveEdges, const SubShapeID &inSubShapeID2);
|
|
37
|
-
|
|
38
|
-
protected:
|
|
39
|
-
const CollideShapeSettings & mCollideShapeSettings; ///< Settings for this collision operation
|
|
40
|
-
CollideShapeCollector & mCollector; ///< The collector that will receive the results
|
|
41
|
-
const ConvexShape * mShape1; ///< The shape that we're colliding with
|
|
42
|
-
Vec3 mScale1; ///< The scale of the shape (in shape local space) of the shape we're colliding with
|
|
43
|
-
Vec3 mScale2; ///< The scale of the shape (in shape local space) of the shape we're colliding against
|
|
44
|
-
Mat44 mTransform1; ///< Transform of the shape we're colliding with
|
|
45
|
-
Mat44 mTransform2To1; ///< Transform that takes a point in space of the colliding shape to the shape we're colliding with
|
|
46
|
-
AABox mBoundsOf1; ///< Bounds of the colliding shape in local space
|
|
47
|
-
AABox mBoundsOf1InSpaceOf2; ///< Bounds of the colliding shape in space of shape we're colliding with
|
|
48
|
-
SubShapeID mSubShapeID1; ///< Sub shape ID of colliding shape
|
|
49
|
-
float mScaleSign2; ///< Sign of the scale of object 2, -1 if object is inside out, 1 if not
|
|
50
|
-
ConvexShape::SupportBuffer mBufferExCvxRadius; ///< Buffer that holds the support function data excluding convex radius
|
|
51
|
-
ConvexShape::SupportBuffer mBufferIncCvxRadius; ///< Buffer that holds the support function data including convex radius
|
|
52
|
-
const ConvexShape::Support * mShape1ExCvxRadius = nullptr; ///< Actual support function object excluding convex radius
|
|
53
|
-
const ConvexShape::Support * mShape1IncCvxRadius = nullptr; ///< Actual support function object including convex radius
|
|
54
|
-
};
|
|
55
|
-
|
|
56
|
-
JPH_NAMESPACE_END
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
// Jolt Physics Library (https://github.com/jrouwe/JoltPhysics)
|
|
2
|
-
// SPDX-FileCopyrightText: 2021 Jorrit Rouwe
|
|
3
|
-
// SPDX-License-Identifier: MIT
|
|
4
|
-
|
|
5
|
-
#pragma once
|
|
6
|
-
|
|
7
|
-
#include <Jolt/Physics/Body/BodyID.h>
|
|
8
|
-
#include <Jolt/Physics/Collision/Shape/SubShapeID.h>
|
|
9
|
-
|
|
10
|
-
JPH_NAMESPACE_BEGIN
|
|
11
|
-
|
|
12
|
-
/// Structure that holds the result of colliding a point against a shape
|
|
13
|
-
class CollidePointResult
|
|
14
|
-
{
|
|
15
|
-
public:
|
|
16
|
-
JPH_OVERRIDE_NEW_DELETE
|
|
17
|
-
|
|
18
|
-
/// Function required by the CollisionCollector. A smaller fraction is considered to be a 'better hit'. For point queries there is no sensible return value.
|
|
19
|
-
inline float GetEarlyOutFraction() const { return 0.0f; }
|
|
20
|
-
|
|
21
|
-
BodyID mBodyID; ///< Body that was hit
|
|
22
|
-
SubShapeID mSubShapeID2; ///< Sub shape ID of shape that we collided against
|
|
23
|
-
};
|
|
24
|
-
|
|
25
|
-
JPH_NAMESPACE_END
|
|
@@ -1,106 +0,0 @@
|
|
|
1
|
-
// Jolt Physics Library (https://github.com/jrouwe/JoltPhysics)
|
|
2
|
-
// SPDX-FileCopyrightText: 2021 Jorrit Rouwe
|
|
3
|
-
// SPDX-License-Identifier: MIT
|
|
4
|
-
|
|
5
|
-
#pragma once
|
|
6
|
-
|
|
7
|
-
#include <Jolt/Core/StaticArray.h>
|
|
8
|
-
#include <Jolt/Physics/Collision/BackFaceMode.h>
|
|
9
|
-
#include <Jolt/Physics/Collision/ActiveEdgeMode.h>
|
|
10
|
-
#include <Jolt/Physics/Collision/CollectFacesMode.h>
|
|
11
|
-
#include <Jolt/Physics/Collision/Shape/SubShapeID.h>
|
|
12
|
-
#include <Jolt/Physics/Body/BodyID.h>
|
|
13
|
-
#include <Jolt/Physics/PhysicsSettings.h>
|
|
14
|
-
|
|
15
|
-
JPH_NAMESPACE_BEGIN
|
|
16
|
-
|
|
17
|
-
/// Class that contains all information of two colliding shapes
|
|
18
|
-
class CollideShapeResult
|
|
19
|
-
{
|
|
20
|
-
public:
|
|
21
|
-
JPH_OVERRIDE_NEW_DELETE
|
|
22
|
-
|
|
23
|
-
/// Default constructor
|
|
24
|
-
CollideShapeResult() = default;
|
|
25
|
-
|
|
26
|
-
/// Constructor
|
|
27
|
-
CollideShapeResult(Vec3Arg inContactPointOn1, Vec3Arg inContactPointOn2, Vec3Arg inPenetrationAxis, float inPenetrationDepth, const SubShapeID &inSubShapeID1, const SubShapeID &inSubShapeID2, const BodyID &inBodyID2) :
|
|
28
|
-
mContactPointOn1(inContactPointOn1),
|
|
29
|
-
mContactPointOn2(inContactPointOn2),
|
|
30
|
-
mPenetrationAxis(inPenetrationAxis),
|
|
31
|
-
mPenetrationDepth(inPenetrationDepth),
|
|
32
|
-
mSubShapeID1(inSubShapeID1),
|
|
33
|
-
mSubShapeID2(inSubShapeID2),
|
|
34
|
-
mBodyID2(inBodyID2)
|
|
35
|
-
{
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
/// Function required by the CollisionCollector. A smaller fraction is considered to be a 'better hit'. We use -penetration depth to get the hit with the biggest penetration depth
|
|
39
|
-
inline float GetEarlyOutFraction() const { return -mPenetrationDepth; }
|
|
40
|
-
|
|
41
|
-
/// Reverses the hit result, swapping contact point 1 with contact point 2 etc.
|
|
42
|
-
inline CollideShapeResult Reversed() const
|
|
43
|
-
{
|
|
44
|
-
CollideShapeResult result;
|
|
45
|
-
result.mContactPointOn2 = mContactPointOn1;
|
|
46
|
-
result.mContactPointOn1 = mContactPointOn2;
|
|
47
|
-
result.mPenetrationAxis = -mPenetrationAxis;
|
|
48
|
-
result.mPenetrationDepth = mPenetrationDepth;
|
|
49
|
-
result.mSubShapeID2 = mSubShapeID1;
|
|
50
|
-
result.mSubShapeID1 = mSubShapeID2;
|
|
51
|
-
result.mBodyID2 = mBodyID2;
|
|
52
|
-
result.mShape2Face = mShape1Face;
|
|
53
|
-
result.mShape1Face = mShape2Face;
|
|
54
|
-
return result;
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
using Face = StaticArray<Vec3, 32>;
|
|
58
|
-
|
|
59
|
-
Vec3 mContactPointOn1; ///< Contact point on the surface of shape 1 (in world space or relative to base offset)
|
|
60
|
-
Vec3 mContactPointOn2; ///< Contact point on the surface of shape 2 (in world space or relative to base offset). If the penetration depth is 0, this will be the same as mContactPointOn1.
|
|
61
|
-
Vec3 mPenetrationAxis; ///< Direction to move shape 2 out of collision along the shortest path (magnitude is meaningless, in world space). You can use -mPenetrationAxis.Normalized() as contact normal.
|
|
62
|
-
float mPenetrationDepth; ///< Penetration depth (move shape 2 by this distance to resolve the collision). If CollideShapeSettings::mMaxSeparationDistance > 0 this number can be negative to indicate that the objects are separated by -mPenetrationDepth. The contact points are the closest points in that case.
|
|
63
|
-
SubShapeID mSubShapeID1; ///< Sub shape ID that identifies the face on shape 1
|
|
64
|
-
SubShapeID mSubShapeID2; ///< Sub shape ID that identifies the face on shape 2
|
|
65
|
-
BodyID mBodyID2; ///< BodyID to which shape 2 belongs to
|
|
66
|
-
Face mShape1Face; ///< Colliding face on shape 1 (optional result, in world space or relative to base offset)
|
|
67
|
-
Face mShape2Face; ///< Colliding face on shape 2 (optional result, in world space or relative to base offset)
|
|
68
|
-
};
|
|
69
|
-
|
|
70
|
-
/// Settings to be passed with a collision query
|
|
71
|
-
class CollideSettingsBase
|
|
72
|
-
{
|
|
73
|
-
public:
|
|
74
|
-
JPH_OVERRIDE_NEW_DELETE
|
|
75
|
-
|
|
76
|
-
/// How active edges (edges that a moving object should bump into) are handled
|
|
77
|
-
EActiveEdgeMode mActiveEdgeMode = EActiveEdgeMode::CollideOnlyWithActive;
|
|
78
|
-
|
|
79
|
-
/// If colliding faces should be collected or only the collision point
|
|
80
|
-
ECollectFacesMode mCollectFacesMode = ECollectFacesMode::NoFaces;
|
|
81
|
-
|
|
82
|
-
/// If objects are closer than this distance, they are considered to be colliding (used for GJK) (unit: meter)
|
|
83
|
-
float mCollisionTolerance = cDefaultCollisionTolerance;
|
|
84
|
-
|
|
85
|
-
/// A factor that determines the accuracy of the penetration depth calculation. If the change of the squared distance is less than tolerance * current_penetration_depth^2 the algorithm will terminate. (unit: dimensionless)
|
|
86
|
-
float mPenetrationTolerance = cDefaultPenetrationTolerance;
|
|
87
|
-
|
|
88
|
-
/// When mActiveEdgeMode is CollideOnlyWithActive a movement direction can be provided. When hitting an inactive edge, the system will select the triangle normal as penetration depth only if it impedes the movement less than with the calculated penetration depth.
|
|
89
|
-
Vec3 mActiveEdgeMovementDirection = Vec3::sZero();
|
|
90
|
-
};
|
|
91
|
-
|
|
92
|
-
/// Settings to be passed with a collision query
|
|
93
|
-
class CollideShapeSettings : public CollideSettingsBase
|
|
94
|
-
{
|
|
95
|
-
public:
|
|
96
|
-
JPH_OVERRIDE_NEW_DELETE
|
|
97
|
-
|
|
98
|
-
/// When > 0 contacts in the vicinity of the query shape can be found. All nearest contacts that are not further away than this distance will be found.
|
|
99
|
-
/// Note that in this case CollideShapeResult::mPenetrationDepth can become negative to indicate that objects are not overlapping. (unit: meter)
|
|
100
|
-
float mMaxSeparationDistance = 0.0f;
|
|
101
|
-
|
|
102
|
-
/// How backfacing triangles should be treated
|
|
103
|
-
EBackFaceMode mBackFaceMode = EBackFaceMode::IgnoreBackFaces;
|
|
104
|
-
};
|
|
105
|
-
|
|
106
|
-
JPH_NAMESPACE_END
|