@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,191 +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/Constraints/TwoBodyConstraint.h>
|
|
8
|
-
#include <Jolt/Physics/Constraints/PathConstraintPath.h>
|
|
9
|
-
#include <Jolt/Physics/Constraints/MotorSettings.h>
|
|
10
|
-
#include <Jolt/Physics/Constraints/ConstraintPart/AxisConstraintPart.h>
|
|
11
|
-
#include <Jolt/Physics/Constraints/ConstraintPart/DualAxisConstraintPart.h>
|
|
12
|
-
#include <Jolt/Physics/Constraints/ConstraintPart/HingeRotationConstraintPart.h>
|
|
13
|
-
#include <Jolt/Physics/Constraints/ConstraintPart/RotationEulerConstraintPart.h>
|
|
14
|
-
|
|
15
|
-
JPH_NAMESPACE_BEGIN
|
|
16
|
-
|
|
17
|
-
JPH_SUPPRESS_WARNING_PUSH
|
|
18
|
-
JPH_GCC_SUPPRESS_WARNING("-Wshadow") // GCC complains about the 'Free' value conflicting with the 'Free' method
|
|
19
|
-
|
|
20
|
-
/// How to constrain the rotation of the body to a PathConstraint
|
|
21
|
-
enum class EPathRotationConstraintType
|
|
22
|
-
{
|
|
23
|
-
Free, ///< Do not constrain the rotation of the body at all
|
|
24
|
-
ConstrainAroundTangent, ///< Only allow rotation around the tangent vector (following the path)
|
|
25
|
-
ConstrainAroundNormal, ///< Only allow rotation around the normal vector (perpendicular to the path)
|
|
26
|
-
ConstrainAroundBinormal, ///< Only allow rotation around the binormal vector (perpendicular to the path)
|
|
27
|
-
ConstrainToPath, ///< Fully constrain the rotation of body 2 to the path (following the tangent and normal of the path)
|
|
28
|
-
FullyConstrained, ///< Fully constrain the rotation of the body 2 to the rotation of body 1
|
|
29
|
-
};
|
|
30
|
-
|
|
31
|
-
JPH_SUPPRESS_WARNING_POP
|
|
32
|
-
|
|
33
|
-
/// Path constraint settings, used to constrain the degrees of freedom between two bodies to a path
|
|
34
|
-
///
|
|
35
|
-
/// The requirements of the path are that:
|
|
36
|
-
/// * Tangent, normal and bi-normal form an orthonormal basis with: tangent cross bi-normal = normal
|
|
37
|
-
/// * The path points along the tangent vector
|
|
38
|
-
/// * The path is continuous so doesn't contain any sharp corners
|
|
39
|
-
///
|
|
40
|
-
/// The reason for all this is that the constraint acts like a slider constraint with the sliding axis being the tangent vector (the assumption here is that delta time will be small enough so that the path is linear for that delta time).
|
|
41
|
-
class JPH_EXPORT PathConstraintSettings final : public TwoBodyConstraintSettings
|
|
42
|
-
{
|
|
43
|
-
JPH_DECLARE_SERIALIZABLE_VIRTUAL(JPH_EXPORT, PathConstraintSettings)
|
|
44
|
-
|
|
45
|
-
public:
|
|
46
|
-
// See: ConstraintSettings::SaveBinaryState
|
|
47
|
-
virtual void SaveBinaryState(StreamOut &inStream) const override;
|
|
48
|
-
|
|
49
|
-
/// Create an instance of this constraint
|
|
50
|
-
virtual TwoBodyConstraint * Create(Body &inBody1, Body &inBody2) const override;
|
|
51
|
-
|
|
52
|
-
/// The path that constrains the two bodies
|
|
53
|
-
RefConst<PathConstraintPath> mPath;
|
|
54
|
-
|
|
55
|
-
/// The position of the path start relative to world transform of body 1
|
|
56
|
-
Vec3 mPathPosition = Vec3::sZero();
|
|
57
|
-
|
|
58
|
-
/// The rotation of the path start relative to world transform of body 1
|
|
59
|
-
Quat mPathRotation = Quat::sIdentity();
|
|
60
|
-
|
|
61
|
-
/// The fraction along the path that corresponds to the initial position of body 2. Usually this is 0, the beginning of the path. But if you want to start an object halfway the path you can calculate this with mPath->GetClosestPoint(point on path to attach body to).
|
|
62
|
-
float mPathFraction = 0.0f;
|
|
63
|
-
|
|
64
|
-
/// Maximum amount of friction force to apply (N) when not driven by a motor.
|
|
65
|
-
float mMaxFrictionForce = 0.0f;
|
|
66
|
-
|
|
67
|
-
/// In case the constraint is powered, this determines the motor settings along the path
|
|
68
|
-
MotorSettings mPositionMotorSettings;
|
|
69
|
-
|
|
70
|
-
/// How to constrain the rotation of the body to the path
|
|
71
|
-
EPathRotationConstraintType mRotationConstraintType = EPathRotationConstraintType::Free;
|
|
72
|
-
|
|
73
|
-
protected:
|
|
74
|
-
// See: ConstraintSettings::RestoreBinaryState
|
|
75
|
-
virtual void RestoreBinaryState(StreamIn &inStream) override;
|
|
76
|
-
};
|
|
77
|
-
|
|
78
|
-
/// Path constraint, used to constrain the degrees of freedom between two bodies to a path
|
|
79
|
-
class JPH_EXPORT PathConstraint final : public TwoBodyConstraint
|
|
80
|
-
{
|
|
81
|
-
public:
|
|
82
|
-
JPH_OVERRIDE_NEW_DELETE
|
|
83
|
-
|
|
84
|
-
/// Construct point constraint
|
|
85
|
-
PathConstraint(Body &inBody1, Body &inBody2, const PathConstraintSettings &inSettings);
|
|
86
|
-
|
|
87
|
-
// Generic interface of a constraint
|
|
88
|
-
virtual EConstraintSubType GetSubType() const override { return EConstraintSubType::Path; }
|
|
89
|
-
virtual void NotifyShapeChanged(const BodyID &inBodyID, Vec3Arg inDeltaCOM) override;
|
|
90
|
-
virtual void SetupVelocityConstraint(float inDeltaTime) override;
|
|
91
|
-
virtual void ResetWarmStart() override;
|
|
92
|
-
virtual void WarmStartVelocityConstraint(float inWarmStartImpulseRatio) override;
|
|
93
|
-
virtual bool SolveVelocityConstraint(float inDeltaTime) override;
|
|
94
|
-
virtual bool SolvePositionConstraint(float inDeltaTime, float inBaumgarte) override;
|
|
95
|
-
#ifdef JPH_DEBUG_RENDERER
|
|
96
|
-
virtual void DrawConstraint(DebugRenderer *inRenderer) const override;
|
|
97
|
-
#endif // JPH_DEBUG_RENDERER
|
|
98
|
-
virtual void SaveState(StateRecorder &inStream) const override;
|
|
99
|
-
virtual void RestoreState(StateRecorder &inStream) override;
|
|
100
|
-
virtual bool IsActive() const override { return TwoBodyConstraint::IsActive() && mPath != nullptr; }
|
|
101
|
-
virtual Ref<ConstraintSettings> GetConstraintSettings() const override;
|
|
102
|
-
|
|
103
|
-
// See: TwoBodyConstraint
|
|
104
|
-
virtual Mat44 GetConstraintToBody1Matrix() const override { return mPathToBody1; }
|
|
105
|
-
virtual Mat44 GetConstraintToBody2Matrix() const override { return mPathToBody2; }
|
|
106
|
-
|
|
107
|
-
/// Update the path for this constraint
|
|
108
|
-
void SetPath(const PathConstraintPath *inPath, float inPathFraction);
|
|
109
|
-
|
|
110
|
-
/// Access to the current path
|
|
111
|
-
const PathConstraintPath * GetPath() const { return mPath; }
|
|
112
|
-
|
|
113
|
-
/// Access to the current fraction along the path e [0, GetPath()->GetMaxPathFraction()]
|
|
114
|
-
float GetPathFraction() const { return mPathFraction; }
|
|
115
|
-
|
|
116
|
-
/// Friction control
|
|
117
|
-
void SetMaxFrictionForce(float inFrictionForce) { mMaxFrictionForce = inFrictionForce; }
|
|
118
|
-
float GetMaxFrictionForce() const { return mMaxFrictionForce; }
|
|
119
|
-
|
|
120
|
-
/// Position motor settings
|
|
121
|
-
MotorSettings & GetPositionMotorSettings() { return mPositionMotorSettings; }
|
|
122
|
-
const MotorSettings & GetPositionMotorSettings() const { return mPositionMotorSettings; }
|
|
123
|
-
|
|
124
|
-
// Position motor controls (drives body 2 along the path)
|
|
125
|
-
void SetPositionMotorState(EMotorState inState) { JPH_ASSERT(inState == EMotorState::Off || mPositionMotorSettings.IsValid()); mPositionMotorState = inState; }
|
|
126
|
-
EMotorState GetPositionMotorState() const { return mPositionMotorState; }
|
|
127
|
-
void SetTargetVelocity(float inVelocity) { mTargetVelocity = inVelocity; }
|
|
128
|
-
float GetTargetVelocity() const { return mTargetVelocity; }
|
|
129
|
-
void SetTargetPathFraction(float inFraction) { JPH_ASSERT(mPath->IsLooping() || (inFraction >= 0.0f && inFraction <= mPath->GetPathMaxFraction())); mTargetPathFraction = inFraction; }
|
|
130
|
-
float GetTargetPathFraction() const { return mTargetPathFraction; }
|
|
131
|
-
|
|
132
|
-
///@name Get Lagrange multiplier from last physics update (the linear/angular impulse applied to satisfy the constraint)
|
|
133
|
-
inline Vector<2> GetTotalLambdaPosition() const { return mPositionConstraintPart.GetTotalLambda(); }
|
|
134
|
-
inline float GetTotalLambdaPositionLimits() const { return mPositionLimitsConstraintPart.GetTotalLambda(); }
|
|
135
|
-
inline float GetTotalLambdaMotor() const { return mPositionMotorConstraintPart.GetTotalLambda(); }
|
|
136
|
-
inline Vector<2> GetTotalLambdaRotationHinge() const { return mHingeConstraintPart.GetTotalLambda(); }
|
|
137
|
-
inline Vec3 GetTotalLambdaRotation() const { return mRotationConstraintPart.GetTotalLambda(); }
|
|
138
|
-
|
|
139
|
-
private:
|
|
140
|
-
// Internal helper function to calculate the values below
|
|
141
|
-
void CalculateConstraintProperties(float inDeltaTime);
|
|
142
|
-
|
|
143
|
-
// CONFIGURATION PROPERTIES FOLLOW
|
|
144
|
-
|
|
145
|
-
RefConst<PathConstraintPath> mPath; ///< The path that attaches the two bodies
|
|
146
|
-
Mat44 mPathToBody1; ///< Transform that takes a quantity from path space to body 1 center of mass space
|
|
147
|
-
Mat44 mPathToBody2; ///< Transform that takes a quantity from path space to body 2 center of mass space
|
|
148
|
-
EPathRotationConstraintType mRotationConstraintType; ///< How to constrain the rotation of the path
|
|
149
|
-
|
|
150
|
-
// Friction
|
|
151
|
-
float mMaxFrictionForce;
|
|
152
|
-
|
|
153
|
-
// Motor controls
|
|
154
|
-
MotorSettings mPositionMotorSettings;
|
|
155
|
-
EMotorState mPositionMotorState = EMotorState::Off;
|
|
156
|
-
float mTargetVelocity = 0.0f;
|
|
157
|
-
float mTargetPathFraction = 0.0f;
|
|
158
|
-
|
|
159
|
-
// RUN TIME PROPERTIES FOLLOW
|
|
160
|
-
|
|
161
|
-
// Positions where the point constraint acts on in world space
|
|
162
|
-
Vec3 mR1;
|
|
163
|
-
Vec3 mR2;
|
|
164
|
-
|
|
165
|
-
// X2 + R2 - X1 - R1
|
|
166
|
-
Vec3 mU;
|
|
167
|
-
|
|
168
|
-
// World space path tangent
|
|
169
|
-
Vec3 mPathTangent;
|
|
170
|
-
|
|
171
|
-
// Normals to the path tangent
|
|
172
|
-
Vec3 mPathNormal;
|
|
173
|
-
Vec3 mPathBinormal;
|
|
174
|
-
|
|
175
|
-
// Inverse of initial rotation from body 1 to body 2 in body 1 space (only used when rotation constraint type is FullyConstrained)
|
|
176
|
-
Quat mInvInitialOrientation;
|
|
177
|
-
|
|
178
|
-
// Current fraction along the path where body 2 is attached
|
|
179
|
-
float mPathFraction = 0.0f;
|
|
180
|
-
|
|
181
|
-
// Translation constraint parts
|
|
182
|
-
DualAxisConstraintPart mPositionConstraintPart; ///< Constraint part that keeps the movement along the tangent of the path
|
|
183
|
-
AxisConstraintPart mPositionLimitsConstraintPart; ///< Constraint part that prevents movement beyond the beginning and end of the path
|
|
184
|
-
AxisConstraintPart mPositionMotorConstraintPart; ///< Constraint to drive the object along the path or to apply friction
|
|
185
|
-
|
|
186
|
-
// Rotation constraint parts
|
|
187
|
-
HingeRotationConstraintPart mHingeConstraintPart; ///< Constraint part that removes 2 degrees of rotation freedom
|
|
188
|
-
RotationEulerConstraintPart mRotationConstraintPart; ///< Constraint part that removes all rotational freedom
|
|
189
|
-
};
|
|
190
|
-
|
|
191
|
-
JPH_NAMESPACE_END
|
|
@@ -1,85 +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/Constraints/PathConstraintPath.h>
|
|
8
|
-
#include <Jolt/Core/StreamUtils.h>
|
|
9
|
-
#ifdef JPH_DEBUG_RENDERER
|
|
10
|
-
#include <Jolt/Renderer/DebugRenderer.h>
|
|
11
|
-
#endif // JPH_DEBUG_RENDERER
|
|
12
|
-
|
|
13
|
-
JPH_NAMESPACE_BEGIN
|
|
14
|
-
|
|
15
|
-
JPH_IMPLEMENT_SERIALIZABLE_ABSTRACT(PathConstraintPath)
|
|
16
|
-
{
|
|
17
|
-
JPH_ADD_BASE_CLASS(PathConstraintPath, SerializableObject)
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
#ifdef JPH_DEBUG_RENDERER
|
|
21
|
-
// Helper function to transform the results of GetPointOnPath to world space
|
|
22
|
-
static inline void sTransformPathPoint(RMat44Arg inTransform, Vec3Arg inPosition, RVec3 &outPosition, Vec3 &ioNormal, Vec3 &ioBinormal)
|
|
23
|
-
{
|
|
24
|
-
outPosition = inTransform * inPosition;
|
|
25
|
-
ioNormal = inTransform.Multiply3x3(ioNormal);
|
|
26
|
-
ioBinormal = inTransform.Multiply3x3(ioBinormal);
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
// Helper function to draw a path segment
|
|
30
|
-
static inline void sDrawPathSegment(DebugRenderer *inRenderer, RVec3Arg inPrevPosition, RVec3Arg inPosition, Vec3Arg inNormal, Vec3Arg inBinormal)
|
|
31
|
-
{
|
|
32
|
-
inRenderer->DrawLine(inPrevPosition, inPosition, Color::sWhite);
|
|
33
|
-
inRenderer->DrawArrow(inPosition, inPosition + 0.1f * inNormal, Color::sRed, 0.02f);
|
|
34
|
-
inRenderer->DrawArrow(inPosition, inPosition + 0.1f * inBinormal, Color::sGreen, 0.02f);
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
void PathConstraintPath::DrawPath(DebugRenderer *inRenderer, RMat44Arg inBaseTransform) const
|
|
38
|
-
{
|
|
39
|
-
// Calculate first point
|
|
40
|
-
Vec3 lfirst_pos, first_tangent, first_normal, first_binormal;
|
|
41
|
-
GetPointOnPath(0.0f, lfirst_pos, first_tangent, first_normal, first_binormal);
|
|
42
|
-
RVec3 first_pos;
|
|
43
|
-
sTransformPathPoint(inBaseTransform, lfirst_pos, first_pos, first_normal, first_binormal);
|
|
44
|
-
|
|
45
|
-
float t_max = GetPathMaxFraction();
|
|
46
|
-
|
|
47
|
-
// Draw the segments
|
|
48
|
-
RVec3 prev_pos = first_pos;
|
|
49
|
-
for (float t = 0.1f; t < t_max; t += 0.1f)
|
|
50
|
-
{
|
|
51
|
-
Vec3 lpos, tangent, normal, binormal;
|
|
52
|
-
GetPointOnPath(t, lpos, tangent, normal, binormal);
|
|
53
|
-
RVec3 pos;
|
|
54
|
-
sTransformPathPoint(inBaseTransform, lpos, pos, normal, binormal);
|
|
55
|
-
sDrawPathSegment(inRenderer, prev_pos, pos, normal, binormal);
|
|
56
|
-
prev_pos = pos;
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
// Draw last point
|
|
60
|
-
Vec3 lpos, tangent, normal, binormal;
|
|
61
|
-
GetPointOnPath(t_max, lpos, tangent, normal, binormal);
|
|
62
|
-
RVec3 pos;
|
|
63
|
-
sTransformPathPoint(inBaseTransform, lpos, pos, normal, binormal);
|
|
64
|
-
sDrawPathSegment(inRenderer, prev_pos, pos, normal, binormal);
|
|
65
|
-
}
|
|
66
|
-
#endif // JPH_DEBUG_RENDERER
|
|
67
|
-
|
|
68
|
-
void PathConstraintPath::SaveBinaryState(StreamOut &inStream) const
|
|
69
|
-
{
|
|
70
|
-
inStream.Write(GetRTTI()->GetHash());
|
|
71
|
-
inStream.Write(mIsLooping);
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
void PathConstraintPath::RestoreBinaryState(StreamIn &inStream)
|
|
75
|
-
{
|
|
76
|
-
// Type hash read by sRestoreFromBinaryState
|
|
77
|
-
inStream.Read(mIsLooping);
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
PathConstraintPath::PathResult PathConstraintPath::sRestoreFromBinaryState(StreamIn &inStream)
|
|
81
|
-
{
|
|
82
|
-
return StreamUtils::RestoreObject<PathConstraintPath>(inStream, &PathConstraintPath::RestoreBinaryState);
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
JPH_NAMESPACE_END
|
|
@@ -1,76 +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/Reference.h>
|
|
8
|
-
#include <Jolt/Core/Result.h>
|
|
9
|
-
#include <Jolt/ObjectStream/SerializableObject.h>
|
|
10
|
-
|
|
11
|
-
JPH_NAMESPACE_BEGIN
|
|
12
|
-
|
|
13
|
-
class StreamIn;
|
|
14
|
-
class StreamOut;
|
|
15
|
-
#ifdef JPH_DEBUG_RENDERER
|
|
16
|
-
class DebugRenderer;
|
|
17
|
-
#endif // JPH_DEBUG_RENDERER
|
|
18
|
-
|
|
19
|
-
/// The path for a path constraint. It allows attaching two bodies to each other while giving the second body the freedom to move along a path relative to the first.
|
|
20
|
-
class JPH_EXPORT PathConstraintPath : public SerializableObject, public RefTarget<PathConstraintPath>
|
|
21
|
-
{
|
|
22
|
-
JPH_DECLARE_SERIALIZABLE_ABSTRACT(JPH_EXPORT, PathConstraintPath)
|
|
23
|
-
|
|
24
|
-
public:
|
|
25
|
-
using PathResult = Result<Ref<PathConstraintPath>>;
|
|
26
|
-
|
|
27
|
-
/// Virtual destructor to ensure that derived types get their destructors called
|
|
28
|
-
virtual ~PathConstraintPath() override = default;
|
|
29
|
-
|
|
30
|
-
/// Gets the max fraction along the path. I.e. sort of the length of the path.
|
|
31
|
-
virtual float GetPathMaxFraction() const = 0;
|
|
32
|
-
|
|
33
|
-
/// Get the globally closest point on the curve (Could be slow!)
|
|
34
|
-
/// @param inPosition Position to find closest point for
|
|
35
|
-
/// @param inFractionHint Last known fraction along the path (can be used to speed up the search)
|
|
36
|
-
/// @return Fraction of closest point along the path
|
|
37
|
-
virtual float GetClosestPoint(Vec3Arg inPosition, float inFractionHint) const = 0;
|
|
38
|
-
|
|
39
|
-
/// Given the fraction along the path, get the point, tangent and normal.
|
|
40
|
-
/// @param inFraction Fraction along the path [0, GetPathMaxFraction()].
|
|
41
|
-
/// @param outPathPosition Returns the closest position to inSearchPosition on the path.
|
|
42
|
-
/// @param outPathTangent Returns the tangent to the path at outPathPosition (the vector that follows the direction of the path)
|
|
43
|
-
/// @param outPathNormal Return the normal to the path at outPathPosition (a vector that's perpendicular to outPathTangent)
|
|
44
|
-
/// @param outPathBinormal Returns the binormal to the path at outPathPosition (a vector so that normal cross tangent = binormal)
|
|
45
|
-
virtual void GetPointOnPath(float inFraction, Vec3 &outPathPosition, Vec3 &outPathTangent, Vec3 &outPathNormal, Vec3 &outPathBinormal) const = 0;
|
|
46
|
-
|
|
47
|
-
/// If the path is looping or not. If a path is looping, the first and last point are automatically connected to each other. They should not be the same points.
|
|
48
|
-
void SetIsLooping(bool inIsLooping) { mIsLooping = inIsLooping; }
|
|
49
|
-
bool IsLooping() const { return mIsLooping; }
|
|
50
|
-
|
|
51
|
-
#ifdef JPH_DEBUG_RENDERER
|
|
52
|
-
/// Draw the path relative to inBaseTransform. Used for debug purposes.
|
|
53
|
-
void DrawPath(DebugRenderer *inRenderer, RMat44Arg inBaseTransform) const;
|
|
54
|
-
#endif // JPH_DEBUG_RENDERER
|
|
55
|
-
|
|
56
|
-
/// Saves the contents of the path in binary form to inStream.
|
|
57
|
-
virtual void SaveBinaryState(StreamOut &inStream) const;
|
|
58
|
-
|
|
59
|
-
/// Creates a Shape of the correct type and restores its contents from the binary stream inStream.
|
|
60
|
-
static PathResult sRestoreFromBinaryState(StreamIn &inStream);
|
|
61
|
-
|
|
62
|
-
protected:
|
|
63
|
-
/// Don't allow (copy) constructing this base class, but allow derived classes to (copy) construct themselves
|
|
64
|
-
PathConstraintPath() = default;
|
|
65
|
-
PathConstraintPath(const PathConstraintPath &) = default;
|
|
66
|
-
PathConstraintPath &operator = (const PathConstraintPath &) = default;
|
|
67
|
-
|
|
68
|
-
/// This function should not be called directly, it is used by sRestoreFromBinaryState.
|
|
69
|
-
virtual void RestoreBinaryState(StreamIn &inStream);
|
|
70
|
-
|
|
71
|
-
private:
|
|
72
|
-
/// If the path is looping or not. If a path is looping, the first and last point are automatically connected to each other. They should not be the same points.
|
|
73
|
-
bool mIsLooping = false;
|
|
74
|
-
};
|
|
75
|
-
|
|
76
|
-
JPH_NAMESPACE_END
|
package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/PathConstraintPathHermite.cpp
DELETED
|
@@ -1,308 +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/Constraints/PathConstraintPathHermite.h>
|
|
8
|
-
#include <Jolt/Core/Profiler.h>
|
|
9
|
-
#include <Jolt/ObjectStream/TypeDeclarations.h>
|
|
10
|
-
#include <Jolt/Core/StreamIn.h>
|
|
11
|
-
#include <Jolt/Core/StreamOut.h>
|
|
12
|
-
|
|
13
|
-
JPH_NAMESPACE_BEGIN
|
|
14
|
-
|
|
15
|
-
JPH_IMPLEMENT_SERIALIZABLE_NON_VIRTUAL(PathConstraintPathHermite::Point)
|
|
16
|
-
{
|
|
17
|
-
JPH_ADD_ATTRIBUTE(PathConstraintPathHermite::Point, mPosition)
|
|
18
|
-
JPH_ADD_ATTRIBUTE(PathConstraintPathHermite::Point, mTangent)
|
|
19
|
-
JPH_ADD_ATTRIBUTE(PathConstraintPathHermite::Point, mNormal)
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
JPH_IMPLEMENT_SERIALIZABLE_VIRTUAL(PathConstraintPathHermite)
|
|
23
|
-
{
|
|
24
|
-
JPH_ADD_BASE_CLASS(PathConstraintPathHermite, PathConstraintPath)
|
|
25
|
-
|
|
26
|
-
JPH_ADD_ATTRIBUTE(PathConstraintPathHermite, mPoints)
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
// Calculate position and tangent for a Cubic Hermite Spline segment
|
|
30
|
-
static inline void sCalculatePositionAndTangent(Vec3Arg inP1, Vec3Arg inM1, Vec3Arg inP2, Vec3Arg inM2, float inT, Vec3 &outPosition, Vec3 &outTangent)
|
|
31
|
-
{
|
|
32
|
-
// Calculate factors for Cubic Hermite Spline
|
|
33
|
-
// See: https://en.wikipedia.org/wiki/Cubic_Hermite_spline
|
|
34
|
-
float t2 = inT * inT;
|
|
35
|
-
float t3 = inT * t2;
|
|
36
|
-
float h00 = 2.0f * t3 - 3.0f * t2 + 1.0f;
|
|
37
|
-
float h10 = t3 - 2.0f * t2 + inT;
|
|
38
|
-
float h01 = -2.0f * t3 + 3.0f * t2;
|
|
39
|
-
float h11 = t3 - t2;
|
|
40
|
-
|
|
41
|
-
// Calculate d/dt for factors to calculate the tangent
|
|
42
|
-
float ddt_h00 = 6.0f * (t2 - inT);
|
|
43
|
-
float ddt_h10 = 3.0f * t2 - 4.0f * inT + 1.0f;
|
|
44
|
-
float ddt_h01 = -ddt_h00;
|
|
45
|
-
float ddt_h11 = 3.0f * t2 - 2.0f * inT;
|
|
46
|
-
|
|
47
|
-
outPosition = h00 * inP1 + h10 * inM1 + h01 * inP2 + h11 * inM2;
|
|
48
|
-
outTangent = ddt_h00 * inP1 + ddt_h10 * inM1 + ddt_h01 * inP2 + ddt_h11 * inM2;
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
// Calculate the closest point to the origin for a Cubic Hermite Spline segment
|
|
52
|
-
// This is used to get an estimate for the interval in which the closest point can be found,
|
|
53
|
-
// the interval [0, 1] is too big for Newton Raphson to work on because it is solving a 5th degree polynomial which may
|
|
54
|
-
// have multiple local minima that are not the root. This happens especially when the path is straight (tangents aligned with inP2 - inP1).
|
|
55
|
-
// Based on the bisection method: https://en.wikipedia.org/wiki/Bisection_method
|
|
56
|
-
static inline void sCalculateClosestPointThroughBisection(Vec3Arg inP1, Vec3Arg inM1, Vec3Arg inP2, Vec3Arg inM2, float &outTMin, float &outTMax)
|
|
57
|
-
{
|
|
58
|
-
outTMin = 0.0f;
|
|
59
|
-
outTMax = 1.0f;
|
|
60
|
-
|
|
61
|
-
// To get the closest point of the curve to the origin we need to solve:
|
|
62
|
-
// d/dt P(t) . P(t) = 0 for t, where P(t) is the point on the curve segment
|
|
63
|
-
// Using d/dt (a(t) . b(t)) = d/dt a(t) . b(t) + a(t) . d/dt b(t)
|
|
64
|
-
// See: https://proofwiki.org/wiki/Derivative_of_Dot_Product_of_Vector-Valued_Functions
|
|
65
|
-
// d/dt P(t) . P(t) = 2 P(t) d/dt P(t) = 2 P(t) . Tangent(t)
|
|
66
|
-
|
|
67
|
-
// Calculate the derivative at t = 0, we know P(0) = inP1 and Tangent(0) = inM1
|
|
68
|
-
float ddt_min = inP1.Dot(inM1); // Leaving out factor 2, we're only interested in the root
|
|
69
|
-
if (abs(ddt_min) < 1.0e-6f)
|
|
70
|
-
{
|
|
71
|
-
// Derivative is near zero, we found our root
|
|
72
|
-
outTMax = 0.0f;
|
|
73
|
-
return;
|
|
74
|
-
}
|
|
75
|
-
bool ddt_min_negative = ddt_min < 0.0f;
|
|
76
|
-
|
|
77
|
-
// Calculate derivative at t = 1, we know P(1) = inP2 and Tangent(1) = inM2
|
|
78
|
-
float ddt_max = inP2.Dot(inM2);
|
|
79
|
-
if (abs(ddt_max) < 1.0e-6f)
|
|
80
|
-
{
|
|
81
|
-
// Derivative is near zero, we found our root
|
|
82
|
-
outTMin = 1.0f;
|
|
83
|
-
return;
|
|
84
|
-
}
|
|
85
|
-
bool ddt_max_negative = ddt_max < 0.0f;
|
|
86
|
-
|
|
87
|
-
// If the signs of the derivative are not different, this algorithm can't find the root
|
|
88
|
-
if (ddt_min_negative == ddt_max_negative)
|
|
89
|
-
return;
|
|
90
|
-
|
|
91
|
-
// With 4 iterations we'll get a result accurate to 1 / 2^4 = 0.0625
|
|
92
|
-
for (int iteration = 0; iteration < 4; ++iteration)
|
|
93
|
-
{
|
|
94
|
-
float t_mid = 0.5f * (outTMin + outTMax);
|
|
95
|
-
Vec3 position, tangent;
|
|
96
|
-
sCalculatePositionAndTangent(inP1, inM1, inP2, inM2, t_mid, position, tangent);
|
|
97
|
-
float ddt_mid = position.Dot(tangent);
|
|
98
|
-
if (abs(ddt_mid) < 1.0e-6f)
|
|
99
|
-
{
|
|
100
|
-
// Derivative is near zero, we found our root
|
|
101
|
-
outTMin = outTMax = t_mid;
|
|
102
|
-
return;
|
|
103
|
-
}
|
|
104
|
-
bool ddt_mid_negative = ddt_mid < 0.0f;
|
|
105
|
-
|
|
106
|
-
// Update the search interval so that the signs of the derivative at both ends of the interval are still different
|
|
107
|
-
if (ddt_mid_negative == ddt_min_negative)
|
|
108
|
-
outTMin = t_mid;
|
|
109
|
-
else
|
|
110
|
-
outTMax = t_mid;
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
// Calculate the closest point to the origin for a Cubic Hermite Spline segment
|
|
115
|
-
// Only considers the range t e [inTMin, inTMax] and will stop as soon as the closest point falls outside of that range
|
|
116
|
-
static inline float sCalculateClosestPointThroughNewtonRaphson(Vec3Arg inP1, Vec3Arg inM1, Vec3Arg inP2, Vec3Arg inM2, float inTMin, float inTMax, float &outDistanceSq)
|
|
117
|
-
{
|
|
118
|
-
// This is the closest position on the curve to the origin that we found
|
|
119
|
-
Vec3 position;
|
|
120
|
-
|
|
121
|
-
// Calculate the size of the interval
|
|
122
|
-
float interval = inTMax - inTMin;
|
|
123
|
-
|
|
124
|
-
// Start in the middle of the interval
|
|
125
|
-
float t = 0.5f * (inTMin + inTMax);
|
|
126
|
-
|
|
127
|
-
// Do max 10 iterations to prevent taking too much CPU time
|
|
128
|
-
for (int iteration = 0; iteration < 10; ++iteration)
|
|
129
|
-
{
|
|
130
|
-
// Calculate derivative at t, see comment at sCalculateClosestPointThroughBisection for derivation of the equations
|
|
131
|
-
Vec3 tangent;
|
|
132
|
-
sCalculatePositionAndTangent(inP1, inM1, inP2, inM2, t, position, tangent);
|
|
133
|
-
float ddt = position.Dot(tangent); // Leaving out factor 2, we're only interested in the root
|
|
134
|
-
|
|
135
|
-
// Calculate derivative of ddt: d^2/dt P(t) . P(t) = d/dt (2 P(t) . Tangent(t))
|
|
136
|
-
// = 2 (d/dt P(t)) . Tangent(t) + P(t) . d/dt Tangent(t)) = 2 (Tangent(t) . Tangent(t) + P(t) . d/dt Tangent(t))
|
|
137
|
-
float d2dt_h00 = 12.0f * t - 6.0f;
|
|
138
|
-
float d2dt_h10 = 6.0f * t - 4.0f;
|
|
139
|
-
float d2dt_h01 = -d2dt_h00;
|
|
140
|
-
float d2dt_h11 = 6.0f * t - 2.0f;
|
|
141
|
-
Vec3 ddt_tangent = d2dt_h00 * inP1 + d2dt_h10 * inM1 + d2dt_h01 * inP2 + d2dt_h11 * inM2;
|
|
142
|
-
float d2dt = tangent.Dot(tangent) + position.Dot(ddt_tangent); // Leaving out factor 2, because we left it out above too
|
|
143
|
-
|
|
144
|
-
// If d2dt is zero, the curve is flat and there are multiple t's for which we are closest to the origin, stop now
|
|
145
|
-
if (d2dt == 0.0f)
|
|
146
|
-
break;
|
|
147
|
-
|
|
148
|
-
// Do a Newton Raphson step
|
|
149
|
-
// See: https://en.wikipedia.org/wiki/Newton%27s_method
|
|
150
|
-
// Clamp against [-interval, interval] to avoid overshooting too much, we're not interested outside the interval
|
|
151
|
-
float delta = Clamp(-ddt / d2dt, -interval, interval);
|
|
152
|
-
|
|
153
|
-
// If we're stepping away further from t e [inTMin, inTMax] stop now
|
|
154
|
-
if ((t > inTMax && delta > 0.0f) || (t < inTMin && delta < 0.0f))
|
|
155
|
-
break;
|
|
156
|
-
|
|
157
|
-
// If we've converged, stop now
|
|
158
|
-
t += delta;
|
|
159
|
-
if (abs(delta) < 1.0e-4f)
|
|
160
|
-
break;
|
|
161
|
-
}
|
|
162
|
-
|
|
163
|
-
// Calculate the distance squared for the origin to the curve
|
|
164
|
-
outDistanceSq = position.LengthSq();
|
|
165
|
-
return t;
|
|
166
|
-
}
|
|
167
|
-
|
|
168
|
-
void PathConstraintPathHermite::GetIndexAndT(float inFraction, int &outIndex, float &outT) const
|
|
169
|
-
{
|
|
170
|
-
int num_points = int(mPoints.size());
|
|
171
|
-
|
|
172
|
-
// Start by truncating the fraction to get the index and storing the remainder in t
|
|
173
|
-
int index = int(trunc(inFraction));
|
|
174
|
-
float t = inFraction - float(index);
|
|
175
|
-
|
|
176
|
-
if (IsLooping())
|
|
177
|
-
{
|
|
178
|
-
JPH_ASSERT(!mPoints.front().mPosition.IsClose(mPoints.back().mPosition), "A looping path should have a different first and last point!");
|
|
179
|
-
|
|
180
|
-
// Make sure index is positive by adding a multiple of num_points
|
|
181
|
-
if (index < 0)
|
|
182
|
-
index += (-index / num_points + 1) * num_points;
|
|
183
|
-
|
|
184
|
-
// Index needs to be modulo num_points
|
|
185
|
-
index = index % num_points;
|
|
186
|
-
}
|
|
187
|
-
else
|
|
188
|
-
{
|
|
189
|
-
// Clamp against range of points
|
|
190
|
-
if (index < 0)
|
|
191
|
-
{
|
|
192
|
-
index = 0;
|
|
193
|
-
t = 0.0f;
|
|
194
|
-
}
|
|
195
|
-
else if (index >= num_points - 1)
|
|
196
|
-
{
|
|
197
|
-
index = num_points - 2;
|
|
198
|
-
t = 1.0f;
|
|
199
|
-
}
|
|
200
|
-
}
|
|
201
|
-
|
|
202
|
-
outIndex = index;
|
|
203
|
-
outT = t;
|
|
204
|
-
}
|
|
205
|
-
|
|
206
|
-
float PathConstraintPathHermite::GetClosestPoint(Vec3Arg inPosition, float inFractionHint) const
|
|
207
|
-
{
|
|
208
|
-
JPH_PROFILE_FUNCTION();
|
|
209
|
-
|
|
210
|
-
int num_points = int(mPoints.size());
|
|
211
|
-
|
|
212
|
-
// Start with last point on the path, in the non-looping case we won't be visiting this point
|
|
213
|
-
float best_dist_sq = (mPoints[num_points - 1].mPosition - inPosition).LengthSq();
|
|
214
|
-
float best_t = float(num_points - 1);
|
|
215
|
-
|
|
216
|
-
// Loop over all points
|
|
217
|
-
for (int i = 0, max_i = IsLooping()? num_points : num_points - 1; i < max_i; ++i)
|
|
218
|
-
{
|
|
219
|
-
const Point &p1 = mPoints[i];
|
|
220
|
-
const Point &p2 = mPoints[(i + 1) % num_points];
|
|
221
|
-
|
|
222
|
-
// Make the curve relative to inPosition
|
|
223
|
-
Vec3 p1_pos = p1.mPosition - inPosition;
|
|
224
|
-
Vec3 p2_pos = p2.mPosition - inPosition;
|
|
225
|
-
|
|
226
|
-
// Get distance to p1
|
|
227
|
-
float dist_sq = p1_pos.LengthSq();
|
|
228
|
-
if (dist_sq < best_dist_sq)
|
|
229
|
-
{
|
|
230
|
-
best_t = float(i);
|
|
231
|
-
best_dist_sq = dist_sq;
|
|
232
|
-
}
|
|
233
|
-
|
|
234
|
-
// First find an interval for the closest point so that we can start doing Newton Raphson steps
|
|
235
|
-
float t_min, t_max;
|
|
236
|
-
sCalculateClosestPointThroughBisection(p1_pos, p1.mTangent, p2_pos, p2.mTangent, t_min, t_max);
|
|
237
|
-
|
|
238
|
-
if (t_min == t_max)
|
|
239
|
-
{
|
|
240
|
-
// If the function above returned no interval then it found the root already and we can just calculate the distance
|
|
241
|
-
Vec3 position, tangent;
|
|
242
|
-
sCalculatePositionAndTangent(p1_pos, p1.mTangent, p2_pos, p2.mTangent, t_min, position, tangent);
|
|
243
|
-
dist_sq = position.LengthSq();
|
|
244
|
-
if (dist_sq < best_dist_sq)
|
|
245
|
-
{
|
|
246
|
-
best_t = float(i) + t_min;
|
|
247
|
-
best_dist_sq = dist_sq;
|
|
248
|
-
}
|
|
249
|
-
}
|
|
250
|
-
else
|
|
251
|
-
{
|
|
252
|
-
// Get closest distance along curve segment
|
|
253
|
-
float t = sCalculateClosestPointThroughNewtonRaphson(p1_pos, p1.mTangent, p2_pos, p2.mTangent, t_min, t_max, dist_sq);
|
|
254
|
-
if (t >= 0.0f && t <= 1.0f && dist_sq < best_dist_sq)
|
|
255
|
-
{
|
|
256
|
-
best_t = float(i) + t;
|
|
257
|
-
best_dist_sq = dist_sq;
|
|
258
|
-
}
|
|
259
|
-
}
|
|
260
|
-
}
|
|
261
|
-
|
|
262
|
-
return best_t;
|
|
263
|
-
}
|
|
264
|
-
|
|
265
|
-
void PathConstraintPathHermite::GetPointOnPath(float inFraction, Vec3 &outPathPosition, Vec3 &outPathTangent, Vec3 &outPathNormal, Vec3 &outPathBinormal) const
|
|
266
|
-
{
|
|
267
|
-
JPH_PROFILE_FUNCTION();
|
|
268
|
-
|
|
269
|
-
// Determine which hermite spline segment we need
|
|
270
|
-
int index;
|
|
271
|
-
float t;
|
|
272
|
-
GetIndexAndT(inFraction, index, t);
|
|
273
|
-
|
|
274
|
-
// Get the points on the segment
|
|
275
|
-
const Point &p1 = mPoints[index];
|
|
276
|
-
const Point &p2 = mPoints[(index + 1) % int(mPoints.size())];
|
|
277
|
-
|
|
278
|
-
// Calculate the position and tangent on the path
|
|
279
|
-
Vec3 tangent;
|
|
280
|
-
sCalculatePositionAndTangent(p1.mPosition, p1.mTangent, p2.mPosition, p2.mTangent, t, outPathPosition, tangent);
|
|
281
|
-
outPathTangent = tangent.Normalized();
|
|
282
|
-
|
|
283
|
-
// Just linearly interpolate the normal
|
|
284
|
-
Vec3 normal = (1.0f - t) * p1.mNormal + t * p2.mNormal;
|
|
285
|
-
|
|
286
|
-
// Calculate binormal
|
|
287
|
-
outPathBinormal = normal.Cross(outPathTangent).Normalized();
|
|
288
|
-
|
|
289
|
-
// Recalculate normal so it is perpendicular to both (linear interpolation will cause it not to be)
|
|
290
|
-
outPathNormal = outPathTangent.Cross(outPathBinormal);
|
|
291
|
-
JPH_ASSERT(outPathNormal.IsNormalized());
|
|
292
|
-
}
|
|
293
|
-
|
|
294
|
-
void PathConstraintPathHermite::SaveBinaryState(StreamOut &inStream) const
|
|
295
|
-
{
|
|
296
|
-
PathConstraintPath::SaveBinaryState(inStream);
|
|
297
|
-
|
|
298
|
-
inStream.Write(mPoints);
|
|
299
|
-
}
|
|
300
|
-
|
|
301
|
-
void PathConstraintPathHermite::RestoreBinaryState(StreamIn &inStream)
|
|
302
|
-
{
|
|
303
|
-
PathConstraintPath::RestoreBinaryState(inStream);
|
|
304
|
-
|
|
305
|
-
inStream.Read(mPoints);
|
|
306
|
-
}
|
|
307
|
-
|
|
308
|
-
JPH_NAMESPACE_END
|