@bloomengine/engine 0.3.3 → 0.4.1
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/shared/build.rs +137 -6
- package/package.json +4 -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,242 +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/AABBTree/AABBTreeBuilder.h>
|
|
8
|
-
|
|
9
|
-
JPH_NAMESPACE_BEGIN
|
|
10
|
-
|
|
11
|
-
uint AABBTreeBuilder::Node::GetMinDepth(const Array<Node> &inNodes) const
|
|
12
|
-
{
|
|
13
|
-
if (HasChildren())
|
|
14
|
-
{
|
|
15
|
-
uint left = inNodes[mChild[0]].GetMinDepth(inNodes);
|
|
16
|
-
uint right = inNodes[mChild[1]].GetMinDepth(inNodes);
|
|
17
|
-
return min(left, right) + 1;
|
|
18
|
-
}
|
|
19
|
-
else
|
|
20
|
-
return 1;
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
uint AABBTreeBuilder::Node::GetMaxDepth(const Array<Node> &inNodes) const
|
|
24
|
-
{
|
|
25
|
-
if (HasChildren())
|
|
26
|
-
{
|
|
27
|
-
uint left = inNodes[mChild[0]].GetMaxDepth(inNodes);
|
|
28
|
-
uint right = inNodes[mChild[1]].GetMaxDepth(inNodes);
|
|
29
|
-
return max(left, right) + 1;
|
|
30
|
-
}
|
|
31
|
-
else
|
|
32
|
-
return 1;
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
uint AABBTreeBuilder::Node::GetNodeCount(const Array<Node> &inNodes) const
|
|
36
|
-
{
|
|
37
|
-
if (HasChildren())
|
|
38
|
-
return inNodes[mChild[0]].GetNodeCount(inNodes) + inNodes[mChild[1]].GetNodeCount(inNodes) + 1;
|
|
39
|
-
else
|
|
40
|
-
return 1;
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
uint AABBTreeBuilder::Node::GetLeafNodeCount(const Array<Node> &inNodes) const
|
|
44
|
-
{
|
|
45
|
-
if (HasChildren())
|
|
46
|
-
return inNodes[mChild[0]].GetLeafNodeCount(inNodes) + inNodes[mChild[1]].GetLeafNodeCount(inNodes);
|
|
47
|
-
else
|
|
48
|
-
return 1;
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
uint AABBTreeBuilder::Node::GetTriangleCountInTree(const Array<Node> &inNodes) const
|
|
52
|
-
{
|
|
53
|
-
if (HasChildren())
|
|
54
|
-
return inNodes[mChild[0]].GetTriangleCountInTree(inNodes) + inNodes[mChild[1]].GetTriangleCountInTree(inNodes);
|
|
55
|
-
else
|
|
56
|
-
return GetTriangleCount();
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
void AABBTreeBuilder::Node::GetTriangleCountPerNode(const Array<Node> &inNodes, float &outAverage, uint &outMin, uint &outMax) const
|
|
60
|
-
{
|
|
61
|
-
outMin = INT_MAX;
|
|
62
|
-
outMax = 0;
|
|
63
|
-
outAverage = 0;
|
|
64
|
-
uint avg_divisor = 0;
|
|
65
|
-
GetTriangleCountPerNodeInternal(inNodes, outAverage, avg_divisor, outMin, outMax);
|
|
66
|
-
if (avg_divisor > 0)
|
|
67
|
-
outAverage /= avg_divisor;
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
float AABBTreeBuilder::Node::CalculateSAHCost(const Array<Node> &inNodes, float inCostTraversal, float inCostLeaf) const
|
|
71
|
-
{
|
|
72
|
-
float surface_area = mBounds.GetSurfaceArea();
|
|
73
|
-
return surface_area > 0.0f? CalculateSAHCostInternal(inNodes, inCostTraversal / surface_area, inCostLeaf / surface_area) : 0.0f;
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
void AABBTreeBuilder::Node::GetNChildren(const Array<Node> &inNodes, uint inN, Array<const Node*> &outChildren) const
|
|
77
|
-
{
|
|
78
|
-
JPH_ASSERT(outChildren.empty());
|
|
79
|
-
|
|
80
|
-
// Check if there is anything to expand
|
|
81
|
-
if (!HasChildren())
|
|
82
|
-
return;
|
|
83
|
-
|
|
84
|
-
// Start with the children of this node
|
|
85
|
-
outChildren.push_back(&inNodes[mChild[0]]);
|
|
86
|
-
outChildren.push_back(&inNodes[mChild[1]]);
|
|
87
|
-
|
|
88
|
-
size_t next = 0;
|
|
89
|
-
bool all_triangles = true;
|
|
90
|
-
while (outChildren.size() < inN)
|
|
91
|
-
{
|
|
92
|
-
// If we have looped over all nodes, start over with the first node again
|
|
93
|
-
if (next >= outChildren.size())
|
|
94
|
-
{
|
|
95
|
-
// If there only triangle nodes left, we have to terminate
|
|
96
|
-
if (all_triangles)
|
|
97
|
-
return;
|
|
98
|
-
next = 0;
|
|
99
|
-
all_triangles = true;
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
// Try to expand this node into its two children
|
|
103
|
-
const Node *to_expand = outChildren[next];
|
|
104
|
-
if (to_expand->HasChildren())
|
|
105
|
-
{
|
|
106
|
-
outChildren.erase(outChildren.begin() + next);
|
|
107
|
-
outChildren.push_back(&inNodes[to_expand->mChild[0]]);
|
|
108
|
-
outChildren.push_back(&inNodes[to_expand->mChild[1]]);
|
|
109
|
-
all_triangles = false;
|
|
110
|
-
}
|
|
111
|
-
else
|
|
112
|
-
{
|
|
113
|
-
++next;
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
float AABBTreeBuilder::Node::CalculateSAHCostInternal(const Array<Node> &inNodes, float inCostTraversalDivSurfaceArea, float inCostLeafDivSurfaceArea) const
|
|
119
|
-
{
|
|
120
|
-
if (HasChildren())
|
|
121
|
-
return inCostTraversalDivSurfaceArea * mBounds.GetSurfaceArea()
|
|
122
|
-
+ inNodes[mChild[0]].CalculateSAHCostInternal(inNodes, inCostTraversalDivSurfaceArea, inCostLeafDivSurfaceArea)
|
|
123
|
-
+ inNodes[mChild[1]].CalculateSAHCostInternal(inNodes, inCostTraversalDivSurfaceArea, inCostLeafDivSurfaceArea);
|
|
124
|
-
else
|
|
125
|
-
return inCostLeafDivSurfaceArea * mBounds.GetSurfaceArea() * GetTriangleCount();
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
void AABBTreeBuilder::Node::GetTriangleCountPerNodeInternal(const Array<Node> &inNodes, float &outAverage, uint &outAverageDivisor, uint &outMin, uint &outMax) const
|
|
129
|
-
{
|
|
130
|
-
if (HasChildren())
|
|
131
|
-
{
|
|
132
|
-
inNodes[mChild[0]].GetTriangleCountPerNodeInternal(inNodes, outAverage, outAverageDivisor, outMin, outMax);
|
|
133
|
-
inNodes[mChild[1]].GetTriangleCountPerNodeInternal(inNodes, outAverage, outAverageDivisor, outMin, outMax);
|
|
134
|
-
}
|
|
135
|
-
else
|
|
136
|
-
{
|
|
137
|
-
outAverage += GetTriangleCount();
|
|
138
|
-
outAverageDivisor++;
|
|
139
|
-
outMin = min(outMin, GetTriangleCount());
|
|
140
|
-
outMax = max(outMax, GetTriangleCount());
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
|
|
144
|
-
AABBTreeBuilder::AABBTreeBuilder(TriangleSplitter &inSplitter, uint inMaxTrianglesPerLeaf) :
|
|
145
|
-
mTriangleSplitter(inSplitter),
|
|
146
|
-
mMaxTrianglesPerLeaf(inMaxTrianglesPerLeaf)
|
|
147
|
-
{
|
|
148
|
-
}
|
|
149
|
-
|
|
150
|
-
AABBTreeBuilder::Node *AABBTreeBuilder::Build(AABBTreeBuilderStats &outStats)
|
|
151
|
-
{
|
|
152
|
-
TriangleSplitter::Range initial = mTriangleSplitter.GetInitialRange();
|
|
153
|
-
|
|
154
|
-
// Worst case for number of nodes: 1 leaf node per triangle. At each level above, the number of nodes is half that of the level below.
|
|
155
|
-
// This means that at most we'll be allocating 2x the number of triangles in nodes.
|
|
156
|
-
mNodes.reserve(2 * initial.Count());
|
|
157
|
-
mTriangles.reserve(initial.Count());
|
|
158
|
-
|
|
159
|
-
// Build the tree
|
|
160
|
-
Node &root = mNodes[BuildInternal(initial)];
|
|
161
|
-
|
|
162
|
-
// Collect stats
|
|
163
|
-
float avg_triangles_per_leaf;
|
|
164
|
-
uint min_triangles_per_leaf, max_triangles_per_leaf;
|
|
165
|
-
root.GetTriangleCountPerNode(mNodes, avg_triangles_per_leaf, min_triangles_per_leaf, max_triangles_per_leaf);
|
|
166
|
-
|
|
167
|
-
mTriangleSplitter.GetStats(outStats.mSplitterStats);
|
|
168
|
-
|
|
169
|
-
outStats.mSAHCost = root.CalculateSAHCost(mNodes, 1.0f, 1.0f);
|
|
170
|
-
outStats.mMinDepth = root.GetMinDepth(mNodes);
|
|
171
|
-
outStats.mMaxDepth = root.GetMaxDepth(mNodes);
|
|
172
|
-
outStats.mNodeCount = root.GetNodeCount(mNodes);
|
|
173
|
-
outStats.mLeafNodeCount = root.GetLeafNodeCount(mNodes);
|
|
174
|
-
outStats.mMaxTrianglesPerLeaf = mMaxTrianglesPerLeaf;
|
|
175
|
-
outStats.mTreeMinTrianglesPerLeaf = min_triangles_per_leaf;
|
|
176
|
-
outStats.mTreeMaxTrianglesPerLeaf = max_triangles_per_leaf;
|
|
177
|
-
outStats.mTreeAvgTrianglesPerLeaf = avg_triangles_per_leaf;
|
|
178
|
-
|
|
179
|
-
return &root;
|
|
180
|
-
}
|
|
181
|
-
|
|
182
|
-
uint AABBTreeBuilder::BuildInternal(const TriangleSplitter::Range &inTriangles)
|
|
183
|
-
{
|
|
184
|
-
// Check if there are too many triangles left
|
|
185
|
-
if (inTriangles.Count() > mMaxTrianglesPerLeaf)
|
|
186
|
-
{
|
|
187
|
-
// Split triangles in two batches
|
|
188
|
-
TriangleSplitter::Range left, right;
|
|
189
|
-
if (!mTriangleSplitter.Split(inTriangles, left, right))
|
|
190
|
-
{
|
|
191
|
-
// When the trace below triggers:
|
|
192
|
-
//
|
|
193
|
-
// This code builds a tree structure to accelerate collision detection.
|
|
194
|
-
// At top level it will start with all triangles in a mesh and then divides the triangles into two batches.
|
|
195
|
-
// This process repeats until until the batch size is smaller than mMaxTrianglePerLeaf.
|
|
196
|
-
//
|
|
197
|
-
// It uses a TriangleSplitter to find a good split. When this warning triggers, the splitter was not able
|
|
198
|
-
// to create a reasonable split for the triangles. This usually happens when the triangles in a batch are
|
|
199
|
-
// intersecting. They could also be overlapping when projected on the 3 coordinate axis.
|
|
200
|
-
//
|
|
201
|
-
// To solve this issue, you could try to pass your mesh through a mesh cleaning / optimization algorithm.
|
|
202
|
-
// You could also inspect the triangles that cause this issue and see if that part of the mesh can be fixed manually.
|
|
203
|
-
//
|
|
204
|
-
// When you do not fix this warning, the tree will be less efficient for collision detection, but it will still work.
|
|
205
|
-
JPH_IF_DEBUG(Trace("AABBTreeBuilder: Doing random split for %d triangles (max per node: %u)!", (int)inTriangles.Count(), mMaxTrianglesPerLeaf);)
|
|
206
|
-
int half = inTriangles.Count() / 2;
|
|
207
|
-
JPH_ASSERT(half > 0);
|
|
208
|
-
left = TriangleSplitter::Range(inTriangles.mBegin, inTriangles.mBegin + half);
|
|
209
|
-
right = TriangleSplitter::Range(inTriangles.mBegin + half, inTriangles.mEnd);
|
|
210
|
-
}
|
|
211
|
-
|
|
212
|
-
// Recursively build
|
|
213
|
-
const uint node_index = (uint)mNodes.size();
|
|
214
|
-
mNodes.push_back(Node());
|
|
215
|
-
uint left_index = BuildInternal(left);
|
|
216
|
-
uint right_index = BuildInternal(right);
|
|
217
|
-
Node &node = mNodes[node_index];
|
|
218
|
-
node.mChild[0] = left_index;
|
|
219
|
-
node.mChild[1] = right_index;
|
|
220
|
-
node.mBounds = mNodes[node.mChild[0]].mBounds;
|
|
221
|
-
node.mBounds.Encapsulate(mNodes[node.mChild[1]].mBounds);
|
|
222
|
-
return node_index;
|
|
223
|
-
}
|
|
224
|
-
|
|
225
|
-
// Create leaf node
|
|
226
|
-
const uint node_index = (uint)mNodes.size();
|
|
227
|
-
mNodes.push_back(Node());
|
|
228
|
-
Node &node = mNodes.back();
|
|
229
|
-
node.mTrianglesBegin = (uint)mTriangles.size();
|
|
230
|
-
node.mNumTriangles = inTriangles.mEnd - inTriangles.mBegin;
|
|
231
|
-
const VertexList &v = mTriangleSplitter.GetVertices();
|
|
232
|
-
for (uint i = inTriangles.mBegin; i < inTriangles.mEnd; ++i)
|
|
233
|
-
{
|
|
234
|
-
const IndexedTriangle &t = mTriangleSplitter.GetTriangle(i);
|
|
235
|
-
mTriangles.push_back(t);
|
|
236
|
-
node.mBounds.Encapsulate(v, t);
|
|
237
|
-
}
|
|
238
|
-
|
|
239
|
-
return node_index;
|
|
240
|
-
}
|
|
241
|
-
|
|
242
|
-
JPH_NAMESPACE_END
|
|
@@ -1,121 +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/TriangleSplitter/TriangleSplitter.h>
|
|
8
|
-
#include <Jolt/Geometry/AABox.h>
|
|
9
|
-
#include <Jolt/Core/NonCopyable.h>
|
|
10
|
-
|
|
11
|
-
JPH_NAMESPACE_BEGIN
|
|
12
|
-
|
|
13
|
-
struct AABBTreeBuilderStats
|
|
14
|
-
{
|
|
15
|
-
///@name Splitter stats
|
|
16
|
-
TriangleSplitter::Stats mSplitterStats; ///< Stats returned by the triangle splitter algorithm
|
|
17
|
-
|
|
18
|
-
///@name Tree structure
|
|
19
|
-
float mSAHCost = 0.0f; ///< Surface Area Heuristic cost of this tree
|
|
20
|
-
int mMinDepth = 0; ///< Minimal depth of tree (number of nodes)
|
|
21
|
-
int mMaxDepth = 0; ///< Maximum depth of tree (number of nodes)
|
|
22
|
-
int mNodeCount = 0; ///< Number of nodes in the tree
|
|
23
|
-
int mLeafNodeCount = 0; ///< Number of leaf nodes (that contain triangles)
|
|
24
|
-
|
|
25
|
-
///@name Configured stats
|
|
26
|
-
int mMaxTrianglesPerLeaf = 0; ///< Configured max triangles per leaf
|
|
27
|
-
|
|
28
|
-
///@name Actual stats
|
|
29
|
-
int mTreeMinTrianglesPerLeaf = 0; ///< Minimal amount of triangles in a leaf
|
|
30
|
-
int mTreeMaxTrianglesPerLeaf = 0; ///< Maximal amount of triangles in a leaf
|
|
31
|
-
float mTreeAvgTrianglesPerLeaf = 0.0f; ///< Average amount of triangles in leaf nodes
|
|
32
|
-
};
|
|
33
|
-
|
|
34
|
-
/// Helper class to build an AABB tree
|
|
35
|
-
class JPH_EXPORT AABBTreeBuilder
|
|
36
|
-
{
|
|
37
|
-
public:
|
|
38
|
-
/// A node in the tree, contains the AABox for the tree and any child nodes or triangles
|
|
39
|
-
class Node
|
|
40
|
-
{
|
|
41
|
-
public:
|
|
42
|
-
JPH_OVERRIDE_NEW_DELETE
|
|
43
|
-
|
|
44
|
-
/// Indicates that there is no child
|
|
45
|
-
static constexpr uint cInvalidNodeIndex = ~uint(0);
|
|
46
|
-
|
|
47
|
-
/// Get number of triangles in this node
|
|
48
|
-
inline uint GetTriangleCount() const { return mNumTriangles; }
|
|
49
|
-
|
|
50
|
-
/// Check if this node has any children
|
|
51
|
-
inline bool HasChildren() const { return mChild[0] != cInvalidNodeIndex || mChild[1] != cInvalidNodeIndex; }
|
|
52
|
-
|
|
53
|
-
/// Get child node
|
|
54
|
-
inline const Node * GetChild(uint inIdx, const Array<Node> &inNodes) const { return mChild[inIdx] != cInvalidNodeIndex? &inNodes[mChild[inIdx]] : nullptr; }
|
|
55
|
-
|
|
56
|
-
/// Min depth of tree
|
|
57
|
-
uint GetMinDepth(const Array<Node> &inNodes) const;
|
|
58
|
-
|
|
59
|
-
/// Max depth of tree
|
|
60
|
-
uint GetMaxDepth(const Array<Node> &inNodes) const;
|
|
61
|
-
|
|
62
|
-
/// Number of nodes in tree
|
|
63
|
-
uint GetNodeCount(const Array<Node> &inNodes) const;
|
|
64
|
-
|
|
65
|
-
/// Number of leaf nodes in tree
|
|
66
|
-
uint GetLeafNodeCount(const Array<Node> &inNodes) const;
|
|
67
|
-
|
|
68
|
-
/// Get triangle count in tree
|
|
69
|
-
uint GetTriangleCountInTree(const Array<Node> &inNodes) const;
|
|
70
|
-
|
|
71
|
-
/// Calculate min and max triangles per node
|
|
72
|
-
void GetTriangleCountPerNode(const Array<Node> &inNodes, float &outAverage, uint &outMin, uint &outMax) const;
|
|
73
|
-
|
|
74
|
-
/// Calculate the total cost of the tree using the surface area heuristic
|
|
75
|
-
float CalculateSAHCost(const Array<Node> &inNodes, float inCostTraversal, float inCostLeaf) const;
|
|
76
|
-
|
|
77
|
-
/// Recursively get children (breadth first) to get in total inN children (or less if there are no more)
|
|
78
|
-
void GetNChildren(const Array<Node> &inNodes, uint inN, Array<const Node *> &outChildren) const;
|
|
79
|
-
|
|
80
|
-
/// Bounding box
|
|
81
|
-
AABox mBounds;
|
|
82
|
-
|
|
83
|
-
/// Triangles (if no child nodes)
|
|
84
|
-
uint mTrianglesBegin; // Index into mTriangles
|
|
85
|
-
uint mNumTriangles = 0;
|
|
86
|
-
|
|
87
|
-
/// Child node indices (if no triangles)
|
|
88
|
-
uint mChild[2] = { cInvalidNodeIndex, cInvalidNodeIndex };
|
|
89
|
-
|
|
90
|
-
private:
|
|
91
|
-
friend class AABBTreeBuilder;
|
|
92
|
-
|
|
93
|
-
/// Recursive helper function to calculate cost of the tree
|
|
94
|
-
float CalculateSAHCostInternal(const Array<Node> &inNodes, float inCostTraversalDivSurfaceArea, float inCostLeafDivSurfaceArea) const;
|
|
95
|
-
|
|
96
|
-
/// Recursive helper function to calculate min and max triangles per node
|
|
97
|
-
void GetTriangleCountPerNodeInternal(const Array<Node> &inNodes, float &outAverage, uint &outAverageDivisor, uint &outMin, uint &outMax) const;
|
|
98
|
-
};
|
|
99
|
-
|
|
100
|
-
/// Constructor
|
|
101
|
-
explicit AABBTreeBuilder(TriangleSplitter &inSplitter, uint inMaxTrianglesPerLeaf = 16);
|
|
102
|
-
|
|
103
|
-
/// Recursively build tree, returns the root node of the tree
|
|
104
|
-
Node * Build(AABBTreeBuilderStats &outStats);
|
|
105
|
-
|
|
106
|
-
/// Get all nodes
|
|
107
|
-
const Array<Node> & GetNodes() const { return mNodes; }
|
|
108
|
-
|
|
109
|
-
/// Get all triangles
|
|
110
|
-
const Array<IndexedTriangle> &GetTriangles() const { return mTriangles; }
|
|
111
|
-
|
|
112
|
-
private:
|
|
113
|
-
uint BuildInternal(const TriangleSplitter::Range &inTriangles);
|
|
114
|
-
|
|
115
|
-
TriangleSplitter & mTriangleSplitter;
|
|
116
|
-
const uint mMaxTrianglesPerLeaf;
|
|
117
|
-
Array<Node> mNodes;
|
|
118
|
-
Array<IndexedTriangle> mTriangles;
|
|
119
|
-
};
|
|
120
|
-
|
|
121
|
-
JPH_NAMESPACE_END
|
|
@@ -1,296 +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/AABBTree/AABBTreeBuilder.h>
|
|
8
|
-
#include <Jolt/Core/ByteBuffer.h>
|
|
9
|
-
#include <Jolt/Geometry/IndexedTriangle.h>
|
|
10
|
-
|
|
11
|
-
JPH_NAMESPACE_BEGIN
|
|
12
|
-
|
|
13
|
-
/// Conversion algorithm that converts an AABB tree to an optimized binary buffer
|
|
14
|
-
template <class TriangleCodec, class NodeCodec>
|
|
15
|
-
class AABBTreeToBuffer
|
|
16
|
-
{
|
|
17
|
-
public:
|
|
18
|
-
/// Header for the tree
|
|
19
|
-
using NodeHeader = typename NodeCodec::Header;
|
|
20
|
-
|
|
21
|
-
/// Size in bytes of the header of the tree
|
|
22
|
-
static const int HeaderSize = NodeCodec::HeaderSize;
|
|
23
|
-
|
|
24
|
-
/// Maximum number of children per node in the tree
|
|
25
|
-
static const int NumChildrenPerNode = NodeCodec::NumChildrenPerNode;
|
|
26
|
-
|
|
27
|
-
/// Header for the triangles
|
|
28
|
-
using TriangleHeader = typename TriangleCodec::TriangleHeader;
|
|
29
|
-
|
|
30
|
-
/// Size in bytes of the header for the triangles
|
|
31
|
-
static const int TriangleHeaderSize = TriangleCodec::TriangleHeaderSize;
|
|
32
|
-
|
|
33
|
-
/// Convert AABB tree. Returns false if failed.
|
|
34
|
-
bool Convert(const Array<IndexedTriangle> &inTriangles, const Array<AABBTreeBuilder::Node> &inNodes, const VertexList &inVertices, const AABBTreeBuilder::Node *inRoot, bool inStoreUserData, const char *&outError)
|
|
35
|
-
{
|
|
36
|
-
typename NodeCodec::EncodingContext node_ctx;
|
|
37
|
-
typename TriangleCodec::EncodingContext tri_ctx(inVertices);
|
|
38
|
-
|
|
39
|
-
// Child nodes out of loop so we don't constantly realloc it
|
|
40
|
-
Array<const AABBTreeBuilder::Node *> child_nodes;
|
|
41
|
-
child_nodes.reserve(NumChildrenPerNode);
|
|
42
|
-
|
|
43
|
-
// First calculate how big the tree is going to be.
|
|
44
|
-
// Since the tree can be huge for very large meshes, we don't want
|
|
45
|
-
// to reallocate the buffer as it may cause out of memory situations.
|
|
46
|
-
// This loop mimics the construction loop below.
|
|
47
|
-
uint64 total_size = HeaderSize + TriangleHeaderSize;
|
|
48
|
-
size_t node_count = 1; // Start with root node
|
|
49
|
-
size_t to_process_max_size = 1; // Track size of queues so we can do a single reserve below
|
|
50
|
-
size_t to_process_triangles_max_size = 0;
|
|
51
|
-
{ // A scope to free the memory associated with to_estimate and to_estimate_triangles
|
|
52
|
-
Array<const AABBTreeBuilder::Node *> to_estimate;
|
|
53
|
-
Array<const AABBTreeBuilder::Node *> to_estimate_triangles;
|
|
54
|
-
to_estimate.push_back(inRoot);
|
|
55
|
-
for (;;)
|
|
56
|
-
{
|
|
57
|
-
while (!to_estimate.empty())
|
|
58
|
-
{
|
|
59
|
-
// Get the next node to process
|
|
60
|
-
const AABBTreeBuilder::Node *node = to_estimate.back();
|
|
61
|
-
to_estimate.pop_back();
|
|
62
|
-
|
|
63
|
-
// Update total size
|
|
64
|
-
node_ctx.PrepareNodeAllocate(node, total_size);
|
|
65
|
-
|
|
66
|
-
if (node->HasChildren())
|
|
67
|
-
{
|
|
68
|
-
// Collect the first NumChildrenPerNode sub-nodes in the tree
|
|
69
|
-
child_nodes.clear(); // Won't free the memory
|
|
70
|
-
node->GetNChildren(inNodes, NumChildrenPerNode, child_nodes);
|
|
71
|
-
|
|
72
|
-
// Increment the number of nodes we're going to store
|
|
73
|
-
node_count += child_nodes.size();
|
|
74
|
-
|
|
75
|
-
// Insert in reverse order so we estimate left child first when taking nodes from the back
|
|
76
|
-
for (int idx = int(child_nodes.size()) - 1; idx >= 0; --idx)
|
|
77
|
-
{
|
|
78
|
-
// Store triangles in separate list so we process them last
|
|
79
|
-
const AABBTreeBuilder::Node *child = child_nodes[idx];
|
|
80
|
-
if (child->HasChildren())
|
|
81
|
-
{
|
|
82
|
-
to_estimate.push_back(child);
|
|
83
|
-
to_process_max_size = max(to_estimate.size(), to_process_max_size);
|
|
84
|
-
}
|
|
85
|
-
else
|
|
86
|
-
{
|
|
87
|
-
to_estimate_triangles.push_back(child);
|
|
88
|
-
to_process_triangles_max_size = max(to_estimate_triangles.size(), to_process_triangles_max_size);
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
else
|
|
93
|
-
{
|
|
94
|
-
// Update total size
|
|
95
|
-
tri_ctx.PreparePack(&inTriangles[node->mTrianglesBegin], node->mNumTriangles, inStoreUserData, total_size);
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
// If we've got triangles to estimate, loop again with just the triangles
|
|
100
|
-
if (to_estimate_triangles.empty())
|
|
101
|
-
break;
|
|
102
|
-
else
|
|
103
|
-
to_estimate.swap(to_estimate_triangles);
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
// Finalize the prepare stage for the triangle context
|
|
108
|
-
tri_ctx.FinalizePreparePack(total_size);
|
|
109
|
-
|
|
110
|
-
// Reserve the buffer
|
|
111
|
-
if (size_t(total_size) != total_size)
|
|
112
|
-
{
|
|
113
|
-
outError = "AABBTreeToBuffer: Out of memory!";
|
|
114
|
-
return false;
|
|
115
|
-
}
|
|
116
|
-
mTree.reserve(size_t(total_size));
|
|
117
|
-
|
|
118
|
-
// Add headers
|
|
119
|
-
NodeHeader *header = HeaderSize > 0? mTree.Allocate<NodeHeader>() : nullptr;
|
|
120
|
-
TriangleHeader *triangle_header = TriangleHeaderSize > 0? mTree.Allocate<TriangleHeader>() : nullptr;
|
|
121
|
-
|
|
122
|
-
struct NodeData
|
|
123
|
-
{
|
|
124
|
-
const AABBTreeBuilder::Node * mNode = nullptr; // Node that this entry belongs to
|
|
125
|
-
Vec3 mNodeBoundsMin; // Quantized node bounds
|
|
126
|
-
Vec3 mNodeBoundsMax;
|
|
127
|
-
size_t mNodeStart = size_t(-1); // Start of node in mTree
|
|
128
|
-
size_t mTriangleStart = size_t(-1); // Start of the triangle data in mTree
|
|
129
|
-
size_t mChildNodeStart[NumChildrenPerNode]; // Start of the children of the node in mTree
|
|
130
|
-
size_t mChildTrianglesStart[NumChildrenPerNode]; // Start of the triangle data in mTree
|
|
131
|
-
size_t * mParentChildNodeStart = nullptr; // Where to store mNodeStart (to patch mChildNodeStart of my parent)
|
|
132
|
-
size_t * mParentTrianglesStart = nullptr; // Where to store mTriangleStart (to patch mChildTrianglesStart of my parent)
|
|
133
|
-
uint mNumChildren = 0; // Number of children
|
|
134
|
-
};
|
|
135
|
-
|
|
136
|
-
Array<NodeData *> to_process;
|
|
137
|
-
to_process.reserve(to_process_max_size);
|
|
138
|
-
Array<NodeData *> to_process_triangles;
|
|
139
|
-
to_process_triangles.reserve(to_process_triangles_max_size);
|
|
140
|
-
Array<NodeData> node_list;
|
|
141
|
-
node_list.reserve(node_count); // Needed to ensure that array is not reallocated, so we can keep pointers in the array
|
|
142
|
-
|
|
143
|
-
NodeData root;
|
|
144
|
-
root.mNode = inRoot;
|
|
145
|
-
root.mNodeBoundsMin = inRoot->mBounds.mMin;
|
|
146
|
-
root.mNodeBoundsMax = inRoot->mBounds.mMax;
|
|
147
|
-
node_list.push_back(root);
|
|
148
|
-
to_process.push_back(&node_list.back());
|
|
149
|
-
|
|
150
|
-
for (;;)
|
|
151
|
-
{
|
|
152
|
-
while (!to_process.empty())
|
|
153
|
-
{
|
|
154
|
-
// Get the next node to process
|
|
155
|
-
NodeData *node_data = to_process.back();
|
|
156
|
-
to_process.pop_back();
|
|
157
|
-
|
|
158
|
-
// Due to quantization box could have become bigger, not smaller
|
|
159
|
-
JPH_ASSERT(AABox(node_data->mNodeBoundsMin, node_data->mNodeBoundsMax).Contains(node_data->mNode->mBounds), "AABBTreeToBuffer: Bounding box became smaller!");
|
|
160
|
-
|
|
161
|
-
// Collect the first NumChildrenPerNode sub-nodes in the tree
|
|
162
|
-
child_nodes.clear(); // Won't free the memory
|
|
163
|
-
node_data->mNode->GetNChildren(inNodes, NumChildrenPerNode, child_nodes);
|
|
164
|
-
node_data->mNumChildren = (uint)child_nodes.size();
|
|
165
|
-
|
|
166
|
-
// Fill in default child bounds
|
|
167
|
-
Vec3 child_bounds_min[NumChildrenPerNode], child_bounds_max[NumChildrenPerNode];
|
|
168
|
-
for (size_t i = 0; i < NumChildrenPerNode; ++i)
|
|
169
|
-
if (i < child_nodes.size())
|
|
170
|
-
{
|
|
171
|
-
child_bounds_min[i] = child_nodes[i]->mBounds.mMin;
|
|
172
|
-
child_bounds_max[i] = child_nodes[i]->mBounds.mMax;
|
|
173
|
-
}
|
|
174
|
-
else
|
|
175
|
-
{
|
|
176
|
-
child_bounds_min[i] = Vec3::sZero();
|
|
177
|
-
child_bounds_max[i] = Vec3::sZero();
|
|
178
|
-
}
|
|
179
|
-
|
|
180
|
-
// Start a new node
|
|
181
|
-
node_data->mNodeStart = node_ctx.NodeAllocate(node_data->mNode, node_data->mNodeBoundsMin, node_data->mNodeBoundsMax, child_nodes, child_bounds_min, child_bounds_max, mTree, outError);
|
|
182
|
-
if (node_data->mNodeStart == size_t(-1))
|
|
183
|
-
return false;
|
|
184
|
-
|
|
185
|
-
if (node_data->mNode->HasChildren())
|
|
186
|
-
{
|
|
187
|
-
// Insert in reverse order so we process left child first when taking nodes from the back
|
|
188
|
-
for (int idx = int(child_nodes.size()) - 1; idx >= 0; --idx)
|
|
189
|
-
{
|
|
190
|
-
const AABBTreeBuilder::Node *child_node = child_nodes[idx];
|
|
191
|
-
|
|
192
|
-
// Due to quantization box could have become bigger, not smaller
|
|
193
|
-
JPH_ASSERT(AABox(child_bounds_min[idx], child_bounds_max[idx]).Contains(child_node->mBounds), "AABBTreeToBuffer: Bounding box became smaller!");
|
|
194
|
-
|
|
195
|
-
// Add child to list of nodes to be processed
|
|
196
|
-
NodeData child;
|
|
197
|
-
child.mNode = child_node;
|
|
198
|
-
child.mNodeBoundsMin = child_bounds_min[idx];
|
|
199
|
-
child.mNodeBoundsMax = child_bounds_max[idx];
|
|
200
|
-
child.mParentChildNodeStart = &node_data->mChildNodeStart[idx];
|
|
201
|
-
child.mParentTrianglesStart = &node_data->mChildTrianglesStart[idx];
|
|
202
|
-
node_list.push_back(child);
|
|
203
|
-
|
|
204
|
-
// Store triangles in separate list so we process them last
|
|
205
|
-
if (child_node->HasChildren())
|
|
206
|
-
to_process.push_back(&node_list.back());
|
|
207
|
-
else
|
|
208
|
-
to_process_triangles.push_back(&node_list.back());
|
|
209
|
-
}
|
|
210
|
-
}
|
|
211
|
-
else
|
|
212
|
-
{
|
|
213
|
-
// Add triangles
|
|
214
|
-
node_data->mTriangleStart = tri_ctx.Pack(&inTriangles[node_data->mNode->mTrianglesBegin], node_data->mNode->mNumTriangles, inStoreUserData, mTree, outError);
|
|
215
|
-
if (node_data->mTriangleStart == size_t(-1))
|
|
216
|
-
return false;
|
|
217
|
-
}
|
|
218
|
-
|
|
219
|
-
// Patch offset into parent
|
|
220
|
-
if (node_data->mParentChildNodeStart != nullptr)
|
|
221
|
-
{
|
|
222
|
-
*node_data->mParentChildNodeStart = node_data->mNodeStart;
|
|
223
|
-
*node_data->mParentTrianglesStart = node_data->mTriangleStart;
|
|
224
|
-
}
|
|
225
|
-
}
|
|
226
|
-
|
|
227
|
-
// If we've got triangles to process, loop again with just the triangles
|
|
228
|
-
if (to_process_triangles.empty())
|
|
229
|
-
break;
|
|
230
|
-
else
|
|
231
|
-
to_process.swap(to_process_triangles);
|
|
232
|
-
}
|
|
233
|
-
|
|
234
|
-
// Assert that our reservation was correct (we don't know if we swapped the arrays or not)
|
|
235
|
-
JPH_ASSERT(to_process_max_size == to_process.capacity() || to_process_triangles_max_size == to_process.capacity());
|
|
236
|
-
JPH_ASSERT(to_process_max_size == to_process_triangles.capacity() || to_process_triangles_max_size == to_process_triangles.capacity());
|
|
237
|
-
|
|
238
|
-
// Finalize all nodes
|
|
239
|
-
for (NodeData &n : node_list)
|
|
240
|
-
if (!node_ctx.NodeFinalize(n.mNode, n.mNodeStart, n.mNumChildren, n.mChildNodeStart, n.mChildTrianglesStart, mTree, outError))
|
|
241
|
-
return false;
|
|
242
|
-
|
|
243
|
-
// Finalize the triangles
|
|
244
|
-
tri_ctx.Finalize(inVertices, triangle_header, mTree);
|
|
245
|
-
|
|
246
|
-
// Validate that our reservations were correct
|
|
247
|
-
if (node_count != node_list.size())
|
|
248
|
-
{
|
|
249
|
-
outError = "Internal Error: Node memory estimate was incorrect, memory corruption!";
|
|
250
|
-
return false;
|
|
251
|
-
}
|
|
252
|
-
if (total_size != mTree.size())
|
|
253
|
-
{
|
|
254
|
-
outError = "Internal Error: Tree memory estimate was incorrect, memory corruption!";
|
|
255
|
-
return false;
|
|
256
|
-
}
|
|
257
|
-
|
|
258
|
-
// Finalize the nodes
|
|
259
|
-
return node_ctx.Finalize(header, inRoot, node_list[0].mNodeStart, node_list[0].mTriangleStart, outError);
|
|
260
|
-
}
|
|
261
|
-
|
|
262
|
-
/// Get resulting data
|
|
263
|
-
inline const ByteBuffer & GetBuffer() const
|
|
264
|
-
{
|
|
265
|
-
return mTree;
|
|
266
|
-
}
|
|
267
|
-
|
|
268
|
-
/// Get resulting data
|
|
269
|
-
inline ByteBuffer & GetBuffer()
|
|
270
|
-
{
|
|
271
|
-
return mTree;
|
|
272
|
-
}
|
|
273
|
-
|
|
274
|
-
/// Get header for tree
|
|
275
|
-
inline const NodeHeader * GetNodeHeader() const
|
|
276
|
-
{
|
|
277
|
-
return mTree.Get<NodeHeader>(0);
|
|
278
|
-
}
|
|
279
|
-
|
|
280
|
-
/// Get header for triangles
|
|
281
|
-
inline const TriangleHeader * GetTriangleHeader() const
|
|
282
|
-
{
|
|
283
|
-
return mTree.Get<TriangleHeader>(HeaderSize);
|
|
284
|
-
}
|
|
285
|
-
|
|
286
|
-
/// Get root of resulting tree
|
|
287
|
-
inline const void * GetRoot() const
|
|
288
|
-
{
|
|
289
|
-
return mTree.Get<void>(HeaderSize + TriangleHeaderSize);
|
|
290
|
-
}
|
|
291
|
-
|
|
292
|
-
private:
|
|
293
|
-
ByteBuffer mTree; ///< Resulting tree structure
|
|
294
|
-
};
|
|
295
|
-
|
|
296
|
-
JPH_NAMESPACE_END
|