@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.
Files changed (494) hide show
  1. package/native/shared/build.rs +137 -6
  2. package/package.json +4 -11
  3. package/native/third_party/JoltPhysics/Build/Android/PerformanceTest/build.gradle +0 -51
  4. package/native/third_party/JoltPhysics/Build/Android/PerformanceTest/src/main/AndroidManifest.xml +0 -20
  5. package/native/third_party/JoltPhysics/Build/Android/PerformanceTest/src/main/cpp/CMakeLists.txt +0 -20
  6. package/native/third_party/JoltPhysics/Build/Android/UnitTests/build.gradle +0 -51
  7. package/native/third_party/JoltPhysics/Build/Android/UnitTests/src/main/AndroidManifest.xml +0 -20
  8. package/native/third_party/JoltPhysics/Build/Android/UnitTests/src/main/cpp/CMakeLists.txt +0 -20
  9. package/native/third_party/JoltPhysics/Build/Android/build.gradle +0 -17
  10. package/native/third_party/JoltPhysics/Build/Android/gradle/wrapper/gradle-wrapper.jar +0 -0
  11. package/native/third_party/JoltPhysics/Build/Android/gradle/wrapper/gradle-wrapper.properties +0 -5
  12. package/native/third_party/JoltPhysics/Build/Android/gradle.properties +0 -21
  13. package/native/third_party/JoltPhysics/Build/Android/gradlew +0 -185
  14. package/native/third_party/JoltPhysics/Build/Android/gradlew.bat +0 -89
  15. package/native/third_party/JoltPhysics/Build/Android/settings.gradle +0 -10
  16. package/native/third_party/JoltPhysics/Build/CMakeLists.txt +0 -449
  17. package/native/third_party/JoltPhysics/Build/README.md +0 -250
  18. package/native/third_party/JoltPhysics/Build/cmake_linux_clang_gcc.sh +0 -28
  19. package/native/third_party/JoltPhysics/Build/cmake_linux_emscripten.sh +0 -19
  20. package/native/third_party/JoltPhysics/Build/cmake_linux_mingw.sh +0 -19
  21. package/native/third_party/JoltPhysics/Build/cmake_vs2022_cl.bat +0 -3
  22. package/native/third_party/JoltPhysics/Build/cmake_vs2022_cl_32bit.bat +0 -3
  23. package/native/third_party/JoltPhysics/Build/cmake_vs2022_cl_arm.bat +0 -3
  24. package/native/third_party/JoltPhysics/Build/cmake_vs2022_cl_arm_32bit.bat +0 -4
  25. package/native/third_party/JoltPhysics/Build/cmake_vs2022_cl_cross_platform_deterministic.bat +0 -3
  26. package/native/third_party/JoltPhysics/Build/cmake_vs2022_cl_double.bat +0 -3
  27. package/native/third_party/JoltPhysics/Build/cmake_vs2022_cl_no_object_stream.bat +0 -3
  28. package/native/third_party/JoltPhysics/Build/cmake_vs2022_clang.bat +0 -10
  29. package/native/third_party/JoltPhysics/Build/cmake_vs2022_clang_cross_platform_deterministic.bat +0 -10
  30. package/native/third_party/JoltPhysics/Build/cmake_vs2022_clang_double.bat +0 -10
  31. package/native/third_party/JoltPhysics/Build/cmake_vs2022_uwp.bat +0 -5
  32. package/native/third_party/JoltPhysics/Build/cmake_vs2022_uwp_arm.bat +0 -5
  33. package/native/third_party/JoltPhysics/Build/cmake_vs2026_cl.bat +0 -3
  34. package/native/third_party/JoltPhysics/Build/cmake_vs2026_cl_cross_platform_deterministic.bat +0 -3
  35. package/native/third_party/JoltPhysics/Build/cmake_vs2026_cl_double.bat +0 -3
  36. package/native/third_party/JoltPhysics/Build/cmake_vs2026_clang.bat +0 -10
  37. package/native/third_party/JoltPhysics/Build/cmake_vs2026_clang_cross_platform_deterministic.bat +0 -10
  38. package/native/third_party/JoltPhysics/Build/cmake_vs2026_clang_double.bat +0 -10
  39. package/native/third_party/JoltPhysics/Build/cmake_windows_mingw.sh +0 -19
  40. package/native/third_party/JoltPhysics/Build/cmake_xcode_ios.sh +0 -4
  41. package/native/third_party/JoltPhysics/Build/cmake_xcode_macos.sh +0 -4
  42. package/native/third_party/JoltPhysics/Build/iOS/JoltViewerInfo.plist +0 -34
  43. package/native/third_party/JoltPhysics/Build/iOS/SamplesInfo.plist +0 -34
  44. package/native/third_party/JoltPhysics/Build/iOS/UnitTestsInfo.plist +0 -34
  45. package/native/third_party/JoltPhysics/Build/macOS/icon.icns +0 -0
  46. package/native/third_party/JoltPhysics/Build/macos_install_vulkan_sdk.sh +0 -13
  47. package/native/third_party/JoltPhysics/Build/ubuntu24_install_vulkan_sdk.sh +0 -4
  48. package/native/third_party/JoltPhysics/Jolt/AABBTree/AABBTreeBuilder.cpp +0 -242
  49. package/native/third_party/JoltPhysics/Jolt/AABBTree/AABBTreeBuilder.h +0 -121
  50. package/native/third_party/JoltPhysics/Jolt/AABBTree/AABBTreeToBuffer.h +0 -296
  51. package/native/third_party/JoltPhysics/Jolt/AABBTree/NodeCodec/NodeCodecQuadTreeHalfFloat.h +0 -323
  52. package/native/third_party/JoltPhysics/Jolt/AABBTree/TriangleCodec/TriangleCodecIndexed8BitPackSOA4Flags.h +0 -555
  53. package/native/third_party/JoltPhysics/Jolt/ConfigurationString.h +0 -112
  54. package/native/third_party/JoltPhysics/Jolt/Core/ARMNeon.h +0 -94
  55. package/native/third_party/JoltPhysics/Jolt/Core/Array.h +0 -713
  56. package/native/third_party/JoltPhysics/Jolt/Core/Atomics.h +0 -44
  57. package/native/third_party/JoltPhysics/Jolt/Core/BinaryHeap.h +0 -96
  58. package/native/third_party/JoltPhysics/Jolt/Core/ByteBuffer.h +0 -74
  59. package/native/third_party/JoltPhysics/Jolt/Core/Color.cpp +0 -38
  60. package/native/third_party/JoltPhysics/Jolt/Core/Color.h +0 -98
  61. package/native/third_party/JoltPhysics/Jolt/Core/Core.h +0 -652
  62. package/native/third_party/JoltPhysics/Jolt/Core/FPControlWord.h +0 -143
  63. package/native/third_party/JoltPhysics/Jolt/Core/FPException.h +0 -96
  64. package/native/third_party/JoltPhysics/Jolt/Core/FPFlushDenormals.h +0 -43
  65. package/native/third_party/JoltPhysics/Jolt/Core/Factory.cpp +0 -92
  66. package/native/third_party/JoltPhysics/Jolt/Core/Factory.h +0 -54
  67. package/native/third_party/JoltPhysics/Jolt/Core/FixedSizeFreeList.h +0 -122
  68. package/native/third_party/JoltPhysics/Jolt/Core/FixedSizeFreeList.inl +0 -215
  69. package/native/third_party/JoltPhysics/Jolt/Core/HashCombine.h +0 -234
  70. package/native/third_party/JoltPhysics/Jolt/Core/HashTable.h +0 -876
  71. package/native/third_party/JoltPhysics/Jolt/Core/InsertionSort.h +0 -58
  72. package/native/third_party/JoltPhysics/Jolt/Core/IssueReporting.cpp +0 -27
  73. package/native/third_party/JoltPhysics/Jolt/Core/IssueReporting.h +0 -38
  74. package/native/third_party/JoltPhysics/Jolt/Core/JobSystem.h +0 -311
  75. package/native/third_party/JoltPhysics/Jolt/Core/JobSystem.inl +0 -56
  76. package/native/third_party/JoltPhysics/Jolt/Core/JobSystemSingleThreaded.cpp +0 -65
  77. package/native/third_party/JoltPhysics/Jolt/Core/JobSystemSingleThreaded.h +0 -62
  78. package/native/third_party/JoltPhysics/Jolt/Core/JobSystemThreadPool.cpp +0 -364
  79. package/native/third_party/JoltPhysics/Jolt/Core/JobSystemThreadPool.h +0 -101
  80. package/native/third_party/JoltPhysics/Jolt/Core/JobSystemWithBarrier.cpp +0 -230
  81. package/native/third_party/JoltPhysics/Jolt/Core/JobSystemWithBarrier.h +0 -85
  82. package/native/third_party/JoltPhysics/Jolt/Core/LinearCurve.cpp +0 -51
  83. package/native/third_party/JoltPhysics/Jolt/Core/LinearCurve.h +0 -67
  84. package/native/third_party/JoltPhysics/Jolt/Core/LockFreeHashMap.h +0 -182
  85. package/native/third_party/JoltPhysics/Jolt/Core/LockFreeHashMap.inl +0 -351
  86. package/native/third_party/JoltPhysics/Jolt/Core/Memory.cpp +0 -85
  87. package/native/third_party/JoltPhysics/Jolt/Core/Memory.h +0 -85
  88. package/native/third_party/JoltPhysics/Jolt/Core/Mutex.h +0 -223
  89. package/native/third_party/JoltPhysics/Jolt/Core/MutexArray.h +0 -98
  90. package/native/third_party/JoltPhysics/Jolt/Core/NonCopyable.h +0 -18
  91. package/native/third_party/JoltPhysics/Jolt/Core/Profiler.cpp +0 -677
  92. package/native/third_party/JoltPhysics/Jolt/Core/Profiler.h +0 -301
  93. package/native/third_party/JoltPhysics/Jolt/Core/Profiler.inl +0 -90
  94. package/native/third_party/JoltPhysics/Jolt/Core/QuickSort.h +0 -137
  95. package/native/third_party/JoltPhysics/Jolt/Core/RTTI.cpp +0 -149
  96. package/native/third_party/JoltPhysics/Jolt/Core/RTTI.h +0 -436
  97. package/native/third_party/JoltPhysics/Jolt/Core/Reference.h +0 -244
  98. package/native/third_party/JoltPhysics/Jolt/Core/Result.h +0 -174
  99. package/native/third_party/JoltPhysics/Jolt/Core/STLAlignedAllocator.h +0 -72
  100. package/native/third_party/JoltPhysics/Jolt/Core/STLAllocator.h +0 -127
  101. package/native/third_party/JoltPhysics/Jolt/Core/STLLocalAllocator.h +0 -170
  102. package/native/third_party/JoltPhysics/Jolt/Core/STLTempAllocator.h +0 -80
  103. package/native/third_party/JoltPhysics/Jolt/Core/ScopeExit.h +0 -49
  104. package/native/third_party/JoltPhysics/Jolt/Core/Semaphore.cpp +0 -135
  105. package/native/third_party/JoltPhysics/Jolt/Core/Semaphore.h +0 -68
  106. package/native/third_party/JoltPhysics/Jolt/Core/StaticArray.h +0 -329
  107. package/native/third_party/JoltPhysics/Jolt/Core/StreamIn.h +0 -120
  108. package/native/third_party/JoltPhysics/Jolt/Core/StreamOut.h +0 -97
  109. package/native/third_party/JoltPhysics/Jolt/Core/StreamUtils.h +0 -168
  110. package/native/third_party/JoltPhysics/Jolt/Core/StreamWrapper.h +0 -53
  111. package/native/third_party/JoltPhysics/Jolt/Core/StridedPtr.h +0 -63
  112. package/native/third_party/JoltPhysics/Jolt/Core/StringTools.cpp +0 -101
  113. package/native/third_party/JoltPhysics/Jolt/Core/StringTools.h +0 -38
  114. package/native/third_party/JoltPhysics/Jolt/Core/TempAllocator.h +0 -209
  115. package/native/third_party/JoltPhysics/Jolt/Core/TickCounter.cpp +0 -37
  116. package/native/third_party/JoltPhysics/Jolt/Core/TickCounter.h +0 -58
  117. package/native/third_party/JoltPhysics/Jolt/Core/UnorderedMap.h +0 -80
  118. package/native/third_party/JoltPhysics/Jolt/Core/UnorderedSet.h +0 -32
  119. package/native/third_party/JoltPhysics/Jolt/Geometry/AABox.h +0 -313
  120. package/native/third_party/JoltPhysics/Jolt/Geometry/AABox4.h +0 -224
  121. package/native/third_party/JoltPhysics/Jolt/Geometry/ClipPoly.h +0 -200
  122. package/native/third_party/JoltPhysics/Jolt/Geometry/ClosestPoint.h +0 -498
  123. package/native/third_party/JoltPhysics/Jolt/Geometry/ConvexHullBuilder.cpp +0 -1467
  124. package/native/third_party/JoltPhysics/Jolt/Geometry/ConvexHullBuilder.h +0 -276
  125. package/native/third_party/JoltPhysics/Jolt/Geometry/ConvexHullBuilder2D.cpp +0 -335
  126. package/native/third_party/JoltPhysics/Jolt/Geometry/ConvexHullBuilder2D.h +0 -105
  127. package/native/third_party/JoltPhysics/Jolt/Geometry/ConvexSupport.h +0 -188
  128. package/native/third_party/JoltPhysics/Jolt/Geometry/EPAConvexHullBuilder.h +0 -845
  129. package/native/third_party/JoltPhysics/Jolt/Geometry/EPAPenetrationDepth.h +0 -557
  130. package/native/third_party/JoltPhysics/Jolt/Geometry/Ellipse.h +0 -77
  131. package/native/third_party/JoltPhysics/Jolt/Geometry/GJKClosestPoint.h +0 -945
  132. package/native/third_party/JoltPhysics/Jolt/Geometry/IndexedTriangle.h +0 -130
  133. package/native/third_party/JoltPhysics/Jolt/Geometry/Indexify.cpp +0 -222
  134. package/native/third_party/JoltPhysics/Jolt/Geometry/Indexify.h +0 -19
  135. package/native/third_party/JoltPhysics/Jolt/Geometry/MortonCode.h +0 -40
  136. package/native/third_party/JoltPhysics/Jolt/Geometry/OrientedBox.cpp +0 -178
  137. package/native/third_party/JoltPhysics/Jolt/Geometry/OrientedBox.h +0 -39
  138. package/native/third_party/JoltPhysics/Jolt/Geometry/Plane.h +0 -104
  139. package/native/third_party/JoltPhysics/Jolt/Geometry/RayAABox.h +0 -241
  140. package/native/third_party/JoltPhysics/Jolt/Geometry/RayCapsule.h +0 -37
  141. package/native/third_party/JoltPhysics/Jolt/Geometry/RayCylinder.h +0 -101
  142. package/native/third_party/JoltPhysics/Jolt/Geometry/RaySphere.h +0 -96
  143. package/native/third_party/JoltPhysics/Jolt/Geometry/RayTriangle.h +0 -158
  144. package/native/third_party/JoltPhysics/Jolt/Geometry/Sphere.h +0 -72
  145. package/native/third_party/JoltPhysics/Jolt/Geometry/Triangle.h +0 -34
  146. package/native/third_party/JoltPhysics/Jolt/Jolt.cmake +0 -703
  147. package/native/third_party/JoltPhysics/Jolt/Jolt.h +0 -16
  148. package/native/third_party/JoltPhysics/Jolt/Jolt.natvis +0 -116
  149. package/native/third_party/JoltPhysics/Jolt/Math/BVec16.h +0 -99
  150. package/native/third_party/JoltPhysics/Jolt/Math/BVec16.inl +0 -177
  151. package/native/third_party/JoltPhysics/Jolt/Math/DMat44.h +0 -158
  152. package/native/third_party/JoltPhysics/Jolt/Math/DMat44.inl +0 -310
  153. package/native/third_party/JoltPhysics/Jolt/Math/DVec3.h +0 -291
  154. package/native/third_party/JoltPhysics/Jolt/Math/DVec3.inl +0 -941
  155. package/native/third_party/JoltPhysics/Jolt/Math/Double3.h +0 -48
  156. package/native/third_party/JoltPhysics/Jolt/Math/DynMatrix.h +0 -31
  157. package/native/third_party/JoltPhysics/Jolt/Math/EigenValueSymmetric.h +0 -177
  158. package/native/third_party/JoltPhysics/Jolt/Math/FindRoot.h +0 -42
  159. package/native/third_party/JoltPhysics/Jolt/Math/Float2.h +0 -36
  160. package/native/third_party/JoltPhysics/Jolt/Math/Float3.h +0 -50
  161. package/native/third_party/JoltPhysics/Jolt/Math/Float4.h +0 -44
  162. package/native/third_party/JoltPhysics/Jolt/Math/GaussianElimination.h +0 -102
  163. package/native/third_party/JoltPhysics/Jolt/Math/HalfFloat.h +0 -208
  164. package/native/third_party/JoltPhysics/Jolt/Math/Mat44.h +0 -243
  165. package/native/third_party/JoltPhysics/Jolt/Math/Mat44.inl +0 -952
  166. package/native/third_party/JoltPhysics/Jolt/Math/Math.h +0 -208
  167. package/native/third_party/JoltPhysics/Jolt/Math/MathTypes.h +0 -32
  168. package/native/third_party/JoltPhysics/Jolt/Math/Matrix.h +0 -259
  169. package/native/third_party/JoltPhysics/Jolt/Math/Quat.h +0 -268
  170. package/native/third_party/JoltPhysics/Jolt/Math/Quat.inl +0 -406
  171. package/native/third_party/JoltPhysics/Jolt/Math/Real.h +0 -44
  172. package/native/third_party/JoltPhysics/Jolt/Math/Swizzle.h +0 -19
  173. package/native/third_party/JoltPhysics/Jolt/Math/Trigonometry.h +0 -79
  174. package/native/third_party/JoltPhysics/Jolt/Math/UVec4.h +0 -232
  175. package/native/third_party/JoltPhysics/Jolt/Math/UVec4.inl +0 -636
  176. package/native/third_party/JoltPhysics/Jolt/Math/Vec3.cpp +0 -71
  177. package/native/third_party/JoltPhysics/Jolt/Math/Vec3.h +0 -308
  178. package/native/third_party/JoltPhysics/Jolt/Math/Vec3.inl +0 -942
  179. package/native/third_party/JoltPhysics/Jolt/Math/Vec4.h +0 -320
  180. package/native/third_party/JoltPhysics/Jolt/Math/Vec4.inl +0 -1152
  181. package/native/third_party/JoltPhysics/Jolt/Math/Vector.h +0 -211
  182. package/native/third_party/JoltPhysics/Jolt/ObjectStream/GetPrimitiveTypeOfType.h +0 -54
  183. package/native/third_party/JoltPhysics/Jolt/ObjectStream/ObjectStream.cpp +0 -38
  184. package/native/third_party/JoltPhysics/Jolt/ObjectStream/ObjectStream.h +0 -337
  185. package/native/third_party/JoltPhysics/Jolt/ObjectStream/ObjectStreamBinaryIn.cpp +0 -252
  186. package/native/third_party/JoltPhysics/Jolt/ObjectStream/ObjectStreamBinaryIn.h +0 -57
  187. package/native/third_party/JoltPhysics/Jolt/ObjectStream/ObjectStreamBinaryOut.cpp +0 -165
  188. package/native/third_party/JoltPhysics/Jolt/ObjectStream/ObjectStreamBinaryOut.h +0 -57
  189. package/native/third_party/JoltPhysics/Jolt/ObjectStream/ObjectStreamIn.cpp +0 -635
  190. package/native/third_party/JoltPhysics/Jolt/ObjectStream/ObjectStreamIn.h +0 -148
  191. package/native/third_party/JoltPhysics/Jolt/ObjectStream/ObjectStreamOut.cpp +0 -166
  192. package/native/third_party/JoltPhysics/Jolt/ObjectStream/ObjectStreamOut.h +0 -101
  193. package/native/third_party/JoltPhysics/Jolt/ObjectStream/ObjectStreamTextIn.cpp +0 -418
  194. package/native/third_party/JoltPhysics/Jolt/ObjectStream/ObjectStreamTextIn.h +0 -55
  195. package/native/third_party/JoltPhysics/Jolt/ObjectStream/ObjectStreamTextOut.cpp +0 -255
  196. package/native/third_party/JoltPhysics/Jolt/ObjectStream/ObjectStreamTextOut.h +0 -62
  197. package/native/third_party/JoltPhysics/Jolt/ObjectStream/ObjectStreamTypes.h +0 -26
  198. package/native/third_party/JoltPhysics/Jolt/ObjectStream/SerializableAttribute.h +0 -111
  199. package/native/third_party/JoltPhysics/Jolt/ObjectStream/SerializableAttributeEnum.h +0 -67
  200. package/native/third_party/JoltPhysics/Jolt/ObjectStream/SerializableAttributeTyped.h +0 -60
  201. package/native/third_party/JoltPhysics/Jolt/ObjectStream/SerializableObject.cpp +0 -15
  202. package/native/third_party/JoltPhysics/Jolt/ObjectStream/SerializableObject.h +0 -170
  203. package/native/third_party/JoltPhysics/Jolt/ObjectStream/TypeDeclarations.cpp +0 -70
  204. package/native/third_party/JoltPhysics/Jolt/ObjectStream/TypeDeclarations.h +0 -45
  205. package/native/third_party/JoltPhysics/Jolt/Physics/Body/AllowedDOFs.h +0 -68
  206. package/native/third_party/JoltPhysics/Jolt/Physics/Body/Body.cpp +0 -426
  207. package/native/third_party/JoltPhysics/Jolt/Physics/Body/Body.h +0 -452
  208. package/native/third_party/JoltPhysics/Jolt/Physics/Body/Body.inl +0 -197
  209. package/native/third_party/JoltPhysics/Jolt/Physics/Body/BodyAccess.h +0 -68
  210. package/native/third_party/JoltPhysics/Jolt/Physics/Body/BodyActivationListener.h +0 -28
  211. package/native/third_party/JoltPhysics/Jolt/Physics/Body/BodyCreationSettings.cpp +0 -234
  212. package/native/third_party/JoltPhysics/Jolt/Physics/Body/BodyCreationSettings.h +0 -124
  213. package/native/third_party/JoltPhysics/Jolt/Physics/Body/BodyFilter.h +0 -130
  214. package/native/third_party/JoltPhysics/Jolt/Physics/Body/BodyID.h +0 -101
  215. package/native/third_party/JoltPhysics/Jolt/Physics/Body/BodyInterface.cpp +0 -1099
  216. package/native/third_party/JoltPhysics/Jolt/Physics/Body/BodyInterface.h +0 -324
  217. package/native/third_party/JoltPhysics/Jolt/Physics/Body/BodyLock.h +0 -111
  218. package/native/third_party/JoltPhysics/Jolt/Physics/Body/BodyLockInterface.h +0 -134
  219. package/native/third_party/JoltPhysics/Jolt/Physics/Body/BodyLockMulti.h +0 -120
  220. package/native/third_party/JoltPhysics/Jolt/Physics/Body/BodyManager.cpp +0 -1220
  221. package/native/third_party/JoltPhysics/Jolt/Physics/Body/BodyManager.h +0 -403
  222. package/native/third_party/JoltPhysics/Jolt/Physics/Body/BodyPair.h +0 -36
  223. package/native/third_party/JoltPhysics/Jolt/Physics/Body/BodyType.h +0 -19
  224. package/native/third_party/JoltPhysics/Jolt/Physics/Body/MassProperties.cpp +0 -185
  225. package/native/third_party/JoltPhysics/Jolt/Physics/Body/MassProperties.h +0 -58
  226. package/native/third_party/JoltPhysics/Jolt/Physics/Body/MotionProperties.cpp +0 -92
  227. package/native/third_party/JoltPhysics/Jolt/Physics/Body/MotionProperties.h +0 -308
  228. package/native/third_party/JoltPhysics/Jolt/Physics/Body/MotionProperties.inl +0 -178
  229. package/native/third_party/JoltPhysics/Jolt/Physics/Body/MotionQuality.h +0 -31
  230. package/native/third_party/JoltPhysics/Jolt/Physics/Body/MotionType.h +0 -17
  231. package/native/third_party/JoltPhysics/Jolt/Physics/Character/Character.cpp +0 -354
  232. package/native/third_party/JoltPhysics/Jolt/Physics/Character/Character.h +0 -159
  233. package/native/third_party/JoltPhysics/Jolt/Physics/Character/CharacterBase.cpp +0 -59
  234. package/native/third_party/JoltPhysics/Jolt/Physics/Character/CharacterBase.h +0 -157
  235. package/native/third_party/JoltPhysics/Jolt/Physics/Character/CharacterID.h +0 -98
  236. package/native/third_party/JoltPhysics/Jolt/Physics/Character/CharacterVirtual.cpp +0 -1933
  237. package/native/third_party/JoltPhysics/Jolt/Physics/Character/CharacterVirtual.h +0 -752
  238. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/AABoxCast.h +0 -20
  239. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/ActiveEdgeMode.h +0 -17
  240. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/ActiveEdges.h +0 -114
  241. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/BackFaceMode.h +0 -16
  242. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/BroadPhase/BroadPhase.cpp +0 -16
  243. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/BroadPhase/BroadPhase.h +0 -109
  244. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/BroadPhase/BroadPhaseBruteForce.cpp +0 -313
  245. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/BroadPhase/BroadPhaseBruteForce.h +0 -38
  246. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/BroadPhase/BroadPhaseLayer.h +0 -148
  247. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/BroadPhase/BroadPhaseLayerInterfaceMask.h +0 -92
  248. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/BroadPhase/BroadPhaseLayerInterfaceTable.h +0 -64
  249. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/BroadPhase/BroadPhaseQuadTree.cpp +0 -629
  250. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/BroadPhase/BroadPhaseQuadTree.h +0 -108
  251. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/BroadPhase/BroadPhaseQuery.h +0 -56
  252. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/BroadPhase/ObjectVsBroadPhaseLayerFilterMask.h +0 -35
  253. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/BroadPhase/ObjectVsBroadPhaseLayerFilterTable.h +0 -66
  254. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/BroadPhase/QuadTree.cpp +0 -1768
  255. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/BroadPhase/QuadTree.h +0 -389
  256. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/CastConvexVsTriangles.cpp +0 -107
  257. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/CastConvexVsTriangles.h +0 -46
  258. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/CastResult.h +0 -37
  259. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/CastSphereVsTriangles.cpp +0 -223
  260. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/CastSphereVsTriangles.h +0 -49
  261. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/CollectFacesMode.h +0 -16
  262. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/CollideConvexVsTriangles.cpp +0 -155
  263. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/CollideConvexVsTriangles.h +0 -56
  264. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/CollidePointResult.h +0 -25
  265. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/CollideShape.h +0 -106
  266. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/CollideShapeVsShapePerLeaf.h +0 -94
  267. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/CollideSoftBodyVertexIterator.h +0 -110
  268. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/CollideSoftBodyVerticesVsTriangles.h +0 -102
  269. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/CollideSphereVsTriangles.cpp +0 -121
  270. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/CollideSphereVsTriangles.h +0 -50
  271. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/CollisionCollector.h +0 -109
  272. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/CollisionCollectorImpl.h +0 -219
  273. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/CollisionDispatch.cpp +0 -107
  274. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/CollisionDispatch.h +0 -97
  275. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/CollisionGroup.cpp +0 -35
  276. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/CollisionGroup.h +0 -97
  277. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/ContactListener.h +0 -143
  278. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/EstimateCollisionResponse.cpp +0 -213
  279. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/EstimateCollisionResponse.h +0 -48
  280. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/GroupFilter.cpp +0 -32
  281. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/GroupFilter.h +0 -46
  282. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/GroupFilterTable.cpp +0 -38
  283. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/GroupFilterTable.h +0 -130
  284. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/InternalEdgeRemovingCollector.h +0 -279
  285. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/ManifoldBetweenTwoFaces.cpp +0 -271
  286. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/ManifoldBetweenTwoFaces.h +0 -44
  287. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/NarrowPhaseQuery.cpp +0 -448
  288. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/NarrowPhaseQuery.h +0 -77
  289. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/NarrowPhaseStats.cpp +0 -62
  290. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/NarrowPhaseStats.h +0 -110
  291. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/ObjectLayer.h +0 -111
  292. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/ObjectLayerPairFilterMask.h +0 -52
  293. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/ObjectLayerPairFilterTable.h +0 -78
  294. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/PhysicsMaterial.cpp +0 -35
  295. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/PhysicsMaterial.h +0 -57
  296. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/PhysicsMaterialSimple.cpp +0 -38
  297. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/PhysicsMaterialSimple.h +0 -37
  298. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/RayCast.h +0 -87
  299. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/BoxShape.cpp +0 -318
  300. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/BoxShape.h +0 -115
  301. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/CapsuleShape.cpp +0 -438
  302. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/CapsuleShape.h +0 -129
  303. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/CompoundShape.cpp +0 -433
  304. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/CompoundShape.h +0 -354
  305. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/CompoundShapeVisitors.h +0 -461
  306. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/ConvexHullShape.cpp +0 -1311
  307. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/ConvexHullShape.h +0 -202
  308. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/ConvexShape.cpp +0 -566
  309. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/ConvexShape.h +0 -150
  310. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/CylinderShape.cpp +0 -418
  311. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/CylinderShape.h +0 -126
  312. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/DecoratedShape.cpp +0 -87
  313. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/DecoratedShape.h +0 -80
  314. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/EmptyShape.cpp +0 -64
  315. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/EmptyShape.h +0 -75
  316. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/GetTrianglesContext.h +0 -248
  317. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/HeightFieldShape.cpp +0 -2754
  318. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/HeightFieldShape.h +0 -380
  319. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/MeshShape.cpp +0 -1305
  320. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/MeshShape.h +0 -228
  321. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/MutableCompoundShape.cpp +0 -596
  322. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/MutableCompoundShape.h +0 -176
  323. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/OffsetCenterOfMassShape.cpp +0 -217
  324. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/OffsetCenterOfMassShape.h +0 -140
  325. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/PlaneShape.cpp +0 -541
  326. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/PlaneShape.h +0 -147
  327. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/PolyhedronSubmergedVolumeCalculator.h +0 -319
  328. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/RotatedTranslatedShape.cpp +0 -333
  329. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/RotatedTranslatedShape.h +0 -161
  330. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/ScaleHelpers.h +0 -83
  331. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/ScaledShape.cpp +0 -238
  332. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/ScaledShape.h +0 -145
  333. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/Shape.cpp +0 -325
  334. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/Shape.h +0 -466
  335. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/SphereShape.cpp +0 -347
  336. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/SphereShape.h +0 -125
  337. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/StaticCompoundShape.cpp +0 -674
  338. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/StaticCompoundShape.h +0 -139
  339. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/SubShapeID.h +0 -138
  340. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/SubShapeIDPair.h +0 -65
  341. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/TaperedCapsuleShape.cpp +0 -453
  342. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/TaperedCapsuleShape.gliffy +0 -1
  343. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/TaperedCapsuleShape.h +0 -135
  344. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/TaperedCylinderShape.cpp +0 -691
  345. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/TaperedCylinderShape.h +0 -132
  346. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/TriangleShape.cpp +0 -430
  347. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/TriangleShape.h +0 -143
  348. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/ShapeCast.h +0 -173
  349. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/ShapeFilter.h +0 -73
  350. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/SimShapeFilter.h +0 -40
  351. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/SimShapeFilterWrapper.h +0 -58
  352. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/SortReverseAndStore.h +0 -48
  353. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/TransformedShape.cpp +0 -180
  354. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/TransformedShape.h +0 -194
  355. package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/CalculateSolverSteps.h +0 -70
  356. package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/ConeConstraint.cpp +0 -246
  357. package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/ConeConstraint.h +0 -133
  358. package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/Constraint.cpp +0 -73
  359. package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/Constraint.h +0 -243
  360. package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/ConstraintManager.cpp +0 -289
  361. package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/ConstraintManager.h +0 -100
  362. package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/ConstraintPart/AngleConstraintPart.h +0 -257
  363. package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/ConstraintPart/AxisConstraintPart.h +0 -682
  364. package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/ConstraintPart/DualAxisConstraintPart.h +0 -276
  365. package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/ConstraintPart/GearConstraintPart.h +0 -195
  366. package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/ConstraintPart/HingeRotationConstraintPart.h +0 -222
  367. package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/ConstraintPart/IndependentAxisConstraintPart.h +0 -246
  368. package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/ConstraintPart/PointConstraintPart.h +0 -239
  369. package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/ConstraintPart/RackAndPinionConstraintPart.h +0 -196
  370. package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/ConstraintPart/RotationEulerConstraintPart.h +0 -283
  371. package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/ConstraintPart/RotationQuatConstraintPart.h +0 -246
  372. package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/ConstraintPart/SpringPart.h +0 -169
  373. package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/ConstraintPart/SwingTwistConstraintPart.h +0 -597
  374. package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/ContactConstraintManager.cpp +0 -1804
  375. package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/ContactConstraintManager.h +0 -524
  376. package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/DistanceConstraint.cpp +0 -266
  377. package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/DistanceConstraint.h +0 -120
  378. package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/FixedConstraint.cpp +0 -215
  379. package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/FixedConstraint.h +0 -96
  380. package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/GearConstraint.cpp +0 -188
  381. package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/GearConstraint.h +0 -116
  382. package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/HingeConstraint.cpp +0 -443
  383. package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/HingeConstraint.h +0 -205
  384. package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/MotorSettings.cpp +0 -43
  385. package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/MotorSettings.h +0 -66
  386. package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/PathConstraint.cpp +0 -458
  387. package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/PathConstraint.h +0 -191
  388. package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/PathConstraintPath.cpp +0 -85
  389. package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/PathConstraintPath.h +0 -76
  390. package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/PathConstraintPathHermite.cpp +0 -308
  391. package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/PathConstraintPathHermite.h +0 -54
  392. package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/PointConstraint.cpp +0 -157
  393. package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/PointConstraint.h +0 -94
  394. package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/PulleyConstraint.cpp +0 -253
  395. package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/PulleyConstraint.h +0 -137
  396. package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/RackAndPinionConstraint.cpp +0 -189
  397. package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/RackAndPinionConstraint.h +0 -118
  398. package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/SixDOFConstraint.cpp +0 -900
  399. package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/SixDOFConstraint.h +0 -289
  400. package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/SliderConstraint.cpp +0 -501
  401. package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/SliderConstraint.h +0 -198
  402. package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/SpringSettings.cpp +0 -35
  403. package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/SpringSettings.h +0 -70
  404. package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/SwingTwistConstraint.cpp +0 -524
  405. package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/SwingTwistConstraint.h +0 -197
  406. package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/TwoBodyConstraint.cpp +0 -56
  407. package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/TwoBodyConstraint.h +0 -65
  408. package/native/third_party/JoltPhysics/Jolt/Physics/DeterminismLog.cpp +0 -17
  409. package/native/third_party/JoltPhysics/Jolt/Physics/DeterminismLog.h +0 -159
  410. package/native/third_party/JoltPhysics/Jolt/Physics/EActivation.h +0 -16
  411. package/native/third_party/JoltPhysics/Jolt/Physics/EPhysicsUpdateError.h +0 -37
  412. package/native/third_party/JoltPhysics/Jolt/Physics/IslandBuilder.cpp +0 -492
  413. package/native/third_party/JoltPhysics/Jolt/Physics/IslandBuilder.h +0 -144
  414. package/native/third_party/JoltPhysics/Jolt/Physics/LargeIslandSplitter.cpp +0 -582
  415. package/native/third_party/JoltPhysics/Jolt/Physics/LargeIslandSplitter.h +0 -187
  416. package/native/third_party/JoltPhysics/Jolt/Physics/PhysicsLock.h +0 -169
  417. package/native/third_party/JoltPhysics/Jolt/Physics/PhysicsScene.cpp +0 -261
  418. package/native/third_party/JoltPhysics/Jolt/Physics/PhysicsScene.h +0 -104
  419. package/native/third_party/JoltPhysics/Jolt/Physics/PhysicsSettings.h +0 -125
  420. package/native/third_party/JoltPhysics/Jolt/Physics/PhysicsStepListener.h +0 -37
  421. package/native/third_party/JoltPhysics/Jolt/Physics/PhysicsSystem.cpp +0 -2915
  422. package/native/third_party/JoltPhysics/Jolt/Physics/PhysicsSystem.h +0 -391
  423. package/native/third_party/JoltPhysics/Jolt/Physics/PhysicsUpdateContext.cpp +0 -25
  424. package/native/third_party/JoltPhysics/Jolt/Physics/PhysicsUpdateContext.h +0 -176
  425. package/native/third_party/JoltPhysics/Jolt/Physics/Ragdoll/Ragdoll.cpp +0 -744
  426. package/native/third_party/JoltPhysics/Jolt/Physics/Ragdoll/Ragdoll.h +0 -245
  427. package/native/third_party/JoltPhysics/Jolt/Physics/SoftBody/SoftBodyContactListener.h +0 -55
  428. package/native/third_party/JoltPhysics/Jolt/Physics/SoftBody/SoftBodyCreationSettings.cpp +0 -128
  429. package/native/third_party/JoltPhysics/Jolt/Physics/SoftBody/SoftBodyCreationSettings.h +0 -75
  430. package/native/third_party/JoltPhysics/Jolt/Physics/SoftBody/SoftBodyManifold.h +0 -74
  431. package/native/third_party/JoltPhysics/Jolt/Physics/SoftBody/SoftBodyMotionProperties.cpp +0 -1501
  432. package/native/third_party/JoltPhysics/Jolt/Physics/SoftBody/SoftBodyMotionProperties.h +0 -333
  433. package/native/third_party/JoltPhysics/Jolt/Physics/SoftBody/SoftBodyShape.cpp +0 -354
  434. package/native/third_party/JoltPhysics/Jolt/Physics/SoftBody/SoftBodyShape.h +0 -73
  435. package/native/third_party/JoltPhysics/Jolt/Physics/SoftBody/SoftBodySharedSettings.cpp +0 -1487
  436. package/native/third_party/JoltPhysics/Jolt/Physics/SoftBody/SoftBodySharedSettings.h +0 -390
  437. package/native/third_party/JoltPhysics/Jolt/Physics/SoftBody/SoftBodyUpdateContext.h +0 -63
  438. package/native/third_party/JoltPhysics/Jolt/Physics/SoftBody/SoftBodyVertex.h +0 -36
  439. package/native/third_party/JoltPhysics/Jolt/Physics/StateRecorder.h +0 -136
  440. package/native/third_party/JoltPhysics/Jolt/Physics/StateRecorderImpl.cpp +0 -90
  441. package/native/third_party/JoltPhysics/Jolt/Physics/StateRecorderImpl.h +0 -50
  442. package/native/third_party/JoltPhysics/Jolt/Physics/Vehicle/MotorcycleController.cpp +0 -306
  443. package/native/third_party/JoltPhysics/Jolt/Physics/Vehicle/MotorcycleController.h +0 -119
  444. package/native/third_party/JoltPhysics/Jolt/Physics/Vehicle/TrackedVehicleController.cpp +0 -547
  445. package/native/third_party/JoltPhysics/Jolt/Physics/Vehicle/TrackedVehicleController.h +0 -169
  446. package/native/third_party/JoltPhysics/Jolt/Physics/Vehicle/VehicleAntiRollBar.cpp +0 -33
  447. package/native/third_party/JoltPhysics/Jolt/Physics/Vehicle/VehicleAntiRollBar.h +0 -33
  448. package/native/third_party/JoltPhysics/Jolt/Physics/Vehicle/VehicleCollisionTester.cpp +0 -376
  449. package/native/third_party/JoltPhysics/Jolt/Physics/Vehicle/VehicleCollisionTester.h +0 -146
  450. package/native/third_party/JoltPhysics/Jolt/Physics/Vehicle/VehicleConstraint.cpp +0 -703
  451. package/native/third_party/JoltPhysics/Jolt/Physics/Vehicle/VehicleConstraint.h +0 -252
  452. package/native/third_party/JoltPhysics/Jolt/Physics/Vehicle/VehicleController.cpp +0 -17
  453. package/native/third_party/JoltPhysics/Jolt/Physics/Vehicle/VehicleController.h +0 -87
  454. package/native/third_party/JoltPhysics/Jolt/Physics/Vehicle/VehicleDifferential.cpp +0 -81
  455. package/native/third_party/JoltPhysics/Jolt/Physics/Vehicle/VehicleDifferential.h +0 -39
  456. package/native/third_party/JoltPhysics/Jolt/Physics/Vehicle/VehicleEngine.cpp +0 -122
  457. package/native/third_party/JoltPhysics/Jolt/Physics/Vehicle/VehicleEngine.h +0 -93
  458. package/native/third_party/JoltPhysics/Jolt/Physics/Vehicle/VehicleTrack.cpp +0 -52
  459. package/native/third_party/JoltPhysics/Jolt/Physics/Vehicle/VehicleTrack.h +0 -56
  460. package/native/third_party/JoltPhysics/Jolt/Physics/Vehicle/VehicleTransmission.cpp +0 -159
  461. package/native/third_party/JoltPhysics/Jolt/Physics/Vehicle/VehicleTransmission.h +0 -87
  462. package/native/third_party/JoltPhysics/Jolt/Physics/Vehicle/Wheel.cpp +0 -93
  463. package/native/third_party/JoltPhysics/Jolt/Physics/Vehicle/Wheel.h +0 -148
  464. package/native/third_party/JoltPhysics/Jolt/Physics/Vehicle/WheeledVehicleController.cpp +0 -866
  465. package/native/third_party/JoltPhysics/Jolt/Physics/Vehicle/WheeledVehicleController.h +0 -205
  466. package/native/third_party/JoltPhysics/Jolt/RegisterTypes.cpp +0 -204
  467. package/native/third_party/JoltPhysics/Jolt/RegisterTypes.h +0 -29
  468. package/native/third_party/JoltPhysics/Jolt/Renderer/DebugRenderer.cpp +0 -1107
  469. package/native/third_party/JoltPhysics/Jolt/Renderer/DebugRenderer.h +0 -383
  470. package/native/third_party/JoltPhysics/Jolt/Renderer/DebugRendererPlayback.cpp +0 -168
  471. package/native/third_party/JoltPhysics/Jolt/Renderer/DebugRendererPlayback.h +0 -48
  472. package/native/third_party/JoltPhysics/Jolt/Renderer/DebugRendererRecorder.cpp +0 -158
  473. package/native/third_party/JoltPhysics/Jolt/Renderer/DebugRendererRecorder.h +0 -130
  474. package/native/third_party/JoltPhysics/Jolt/Renderer/DebugRendererSimple.cpp +0 -80
  475. package/native/third_party/JoltPhysics/Jolt/Renderer/DebugRendererSimple.h +0 -88
  476. package/native/third_party/JoltPhysics/Jolt/Skeleton/SkeletalAnimation.cpp +0 -165
  477. package/native/third_party/JoltPhysics/Jolt/Skeleton/SkeletalAnimation.h +0 -91
  478. package/native/third_party/JoltPhysics/Jolt/Skeleton/Skeleton.cpp +0 -82
  479. package/native/third_party/JoltPhysics/Jolt/Skeleton/Skeleton.h +0 -72
  480. package/native/third_party/JoltPhysics/Jolt/Skeleton/SkeletonMapper.cpp +0 -237
  481. package/native/third_party/JoltPhysics/Jolt/Skeleton/SkeletonMapper.h +0 -145
  482. package/native/third_party/JoltPhysics/Jolt/Skeleton/SkeletonPose.cpp +0 -87
  483. package/native/third_party/JoltPhysics/Jolt/Skeleton/SkeletonPose.h +0 -82
  484. package/native/third_party/JoltPhysics/Jolt/TriangleSplitter/TriangleSplitter.cpp +0 -73
  485. package/native/third_party/JoltPhysics/Jolt/TriangleSplitter/TriangleSplitter.h +0 -84
  486. package/native/third_party/JoltPhysics/Jolt/TriangleSplitter/TriangleSplitterBinning.cpp +0 -139
  487. package/native/third_party/JoltPhysics/Jolt/TriangleSplitter/TriangleSplitterBinning.h +0 -52
  488. package/native/third_party/JoltPhysics/Jolt/TriangleSplitter/TriangleSplitterMean.cpp +0 -43
  489. package/native/third_party/JoltPhysics/Jolt/TriangleSplitter/TriangleSplitterMean.h +0 -28
  490. package/native/third_party/JoltPhysics/LICENSE +0 -7
  491. package/native/third_party/JoltPhysics/README.md +0 -173
  492. package/native/third_party/bloom_jolt/CMakeLists.txt +0 -87
  493. package/native/third_party/bloom_jolt/include/bloom_jolt.h +0 -519
  494. package/native/third_party/bloom_jolt/src/bloom_jolt.cpp +0 -1780
@@ -1,900 +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/SixDOFConstraint.h>
8
- #include <Jolt/Physics/Body/Body.h>
9
- #include <Jolt/Geometry/Ellipse.h>
10
- #include <Jolt/ObjectStream/TypeDeclarations.h>
11
- #include <Jolt/Core/StreamIn.h>
12
- #include <Jolt/Core/StreamOut.h>
13
- #ifdef JPH_DEBUG_RENDERER
14
- #include <Jolt/Renderer/DebugRenderer.h>
15
- #endif // JPH_DEBUG_RENDERER
16
-
17
- JPH_NAMESPACE_BEGIN
18
-
19
- JPH_IMPLEMENT_SERIALIZABLE_VIRTUAL(SixDOFConstraintSettings)
20
- {
21
- JPH_ADD_BASE_CLASS(SixDOFConstraintSettings, TwoBodyConstraintSettings)
22
-
23
- JPH_ADD_ENUM_ATTRIBUTE(SixDOFConstraintSettings, mSpace)
24
- JPH_ADD_ATTRIBUTE(SixDOFConstraintSettings, mPosition1)
25
- JPH_ADD_ATTRIBUTE(SixDOFConstraintSettings, mAxisX1)
26
- JPH_ADD_ATTRIBUTE(SixDOFConstraintSettings, mAxisY1)
27
- JPH_ADD_ATTRIBUTE(SixDOFConstraintSettings, mPosition2)
28
- JPH_ADD_ATTRIBUTE(SixDOFConstraintSettings, mAxisX2)
29
- JPH_ADD_ATTRIBUTE(SixDOFConstraintSettings, mAxisY2)
30
- JPH_ADD_ATTRIBUTE(SixDOFConstraintSettings, mMaxFriction)
31
- JPH_ADD_ENUM_ATTRIBUTE(SixDOFConstraintSettings, mSwingType)
32
- JPH_ADD_ATTRIBUTE(SixDOFConstraintSettings, mLimitMin)
33
- JPH_ADD_ATTRIBUTE(SixDOFConstraintSettings, mLimitMax)
34
- JPH_ADD_ATTRIBUTE(SixDOFConstraintSettings, mLimitsSpringSettings)
35
- JPH_ADD_ATTRIBUTE(SixDOFConstraintSettings, mMotorSettings)
36
- }
37
-
38
- void SixDOFConstraintSettings::SaveBinaryState(StreamOut &inStream) const
39
- {
40
- ConstraintSettings::SaveBinaryState(inStream);
41
-
42
- inStream.Write(mSpace);
43
- inStream.Write(mPosition1);
44
- inStream.Write(mAxisX1);
45
- inStream.Write(mAxisY1);
46
- inStream.Write(mPosition2);
47
- inStream.Write(mAxisX2);
48
- inStream.Write(mAxisY2);
49
- inStream.Write(mMaxFriction);
50
- inStream.Write(mSwingType);
51
- inStream.Write(mLimitMin);
52
- inStream.Write(mLimitMax);
53
- for (const SpringSettings &s : mLimitsSpringSettings)
54
- s.SaveBinaryState(inStream);
55
- for (const MotorSettings &m : mMotorSettings)
56
- m.SaveBinaryState(inStream);
57
- }
58
-
59
- void SixDOFConstraintSettings::RestoreBinaryState(StreamIn &inStream)
60
- {
61
- ConstraintSettings::RestoreBinaryState(inStream);
62
-
63
- inStream.Read(mSpace);
64
- inStream.Read(mPosition1);
65
- inStream.Read(mAxisX1);
66
- inStream.Read(mAxisY1);
67
- inStream.Read(mPosition2);
68
- inStream.Read(mAxisX2);
69
- inStream.Read(mAxisY2);
70
- inStream.Read(mMaxFriction);
71
- inStream.Read(mSwingType);
72
- inStream.Read(mLimitMin);
73
- inStream.Read(mLimitMax);
74
- for (SpringSettings &s : mLimitsSpringSettings)
75
- s.RestoreBinaryState(inStream);
76
- for (MotorSettings &m : mMotorSettings)
77
- m.RestoreBinaryState(inStream);
78
- }
79
-
80
- TwoBodyConstraint *SixDOFConstraintSettings::Create(Body &inBody1, Body &inBody2) const
81
- {
82
- return new SixDOFConstraint(inBody1, inBody2, *this);
83
- }
84
-
85
- void SixDOFConstraint::UpdateTranslationLimits()
86
- {
87
- // Set to zero if the limits are inversed
88
- for (int i = EAxis::TranslationX; i <= EAxis::TranslationZ; ++i)
89
- if (mLimitMin[i] > mLimitMax[i])
90
- mLimitMin[i] = mLimitMax[i] = 0.0f;
91
- }
92
-
93
- void SixDOFConstraint::UpdateRotationLimits()
94
- {
95
- if (mSwingTwistConstraintPart.GetSwingType() == ESwingType::Cone)
96
- {
97
- // Cone swing upper limit needs to be positive
98
- mLimitMax[EAxis::RotationY] = max(0.0f, mLimitMax[EAxis::RotationY]);
99
- mLimitMax[EAxis::RotationZ] = max(0.0f, mLimitMax[EAxis::RotationZ]);
100
-
101
- // Cone swing limits only support symmetric ranges
102
- mLimitMin[EAxis::RotationY] = -mLimitMax[EAxis::RotationY];
103
- mLimitMin[EAxis::RotationZ] = -mLimitMax[EAxis::RotationZ];
104
- }
105
-
106
- for (int i = EAxis::RotationX; i <= EAxis::RotationZ; ++i)
107
- {
108
- // Clamp to [-PI, PI] range
109
- mLimitMin[i] = Clamp(mLimitMin[i], -JPH_PI, JPH_PI);
110
- mLimitMax[i] = Clamp(mLimitMax[i], -JPH_PI, JPH_PI);
111
-
112
- // Set to zero if the limits are inversed
113
- if (mLimitMin[i] > mLimitMax[i])
114
- mLimitMin[i] = mLimitMax[i] = 0.0f;
115
- }
116
-
117
- // Pass limits on to constraint part
118
- mSwingTwistConstraintPart.SetLimits(mLimitMin[EAxis::RotationX], mLimitMax[EAxis::RotationX], mLimitMin[EAxis::RotationY], mLimitMax[EAxis::RotationY], mLimitMin[EAxis::RotationZ], mLimitMax[EAxis::RotationZ]);
119
- }
120
-
121
- void SixDOFConstraint::UpdateFixedFreeAxis()
122
- {
123
- uint8 old_free_axis = mFreeAxis;
124
- uint8 old_fixed_axis = mFixedAxis;
125
-
126
- // Cache which axis are fixed and which ones are free
127
- mFreeAxis = 0;
128
- mFixedAxis = 0;
129
- for (int a = 0; a < EAxis::Num; ++a)
130
- {
131
- float limit = a >= EAxis::RotationX? JPH_PI : FLT_MAX;
132
-
133
- if (mLimitMin[a] >= mLimitMax[a])
134
- mFixedAxis |= 1 << a;
135
- else if (mLimitMin[a] <= -limit && mLimitMax[a] >= limit)
136
- mFreeAxis |= 1 << a;
137
- }
138
-
139
- // On change we deactivate all constraints to reset warm starting
140
- if (old_free_axis != mFreeAxis || old_fixed_axis != mFixedAxis)
141
- {
142
- for (AxisConstraintPart &c : mTranslationConstraintPart)
143
- c.Deactivate();
144
- mPointConstraintPart.Deactivate();
145
- mSwingTwistConstraintPart.Deactivate();
146
- mRotationConstraintPart.Deactivate();
147
- for (AxisConstraintPart &c : mMotorTranslationConstraintPart)
148
- c.Deactivate();
149
- for (AngleConstraintPart &c : mMotorRotationConstraintPart)
150
- c.Deactivate();
151
- }
152
- }
153
-
154
- SixDOFConstraint::SixDOFConstraint(Body &inBody1, Body &inBody2, const SixDOFConstraintSettings &inSettings) :
155
- TwoBodyConstraint(inBody1, inBody2, inSettings)
156
- {
157
- // Override swing type
158
- mSwingTwistConstraintPart.SetSwingType(inSettings.mSwingType);
159
-
160
- // Calculate rotation needed to go from constraint space to body1 local space
161
- Vec3 axis_z1 = inSettings.mAxisX1.Cross(inSettings.mAxisY1);
162
- Mat44 c_to_b1(Vec4(inSettings.mAxisX1, 0), Vec4(inSettings.mAxisY1, 0), Vec4(axis_z1, 0), Vec4(0, 0, 0, 1));
163
- mConstraintToBody1 = c_to_b1.GetQuaternion();
164
-
165
- // Calculate rotation needed to go from constraint space to body2 local space
166
- Vec3 axis_z2 = inSettings.mAxisX2.Cross(inSettings.mAxisY2);
167
- Mat44 c_to_b2(Vec4(inSettings.mAxisX2, 0), Vec4(inSettings.mAxisY2, 0), Vec4(axis_z2, 0), Vec4(0, 0, 0, 1));
168
- mConstraintToBody2 = c_to_b2.GetQuaternion();
169
-
170
- if (inSettings.mSpace == EConstraintSpace::WorldSpace)
171
- {
172
- // If all properties were specified in world space, take them to local space now
173
- mLocalSpacePosition1 = Vec3(inBody1.GetInverseCenterOfMassTransform() * inSettings.mPosition1);
174
- mConstraintToBody1 = inBody1.GetRotation().Conjugated() * mConstraintToBody1;
175
-
176
- mLocalSpacePosition2 = Vec3(inBody2.GetInverseCenterOfMassTransform() * inSettings.mPosition2);
177
- mConstraintToBody2 = inBody2.GetRotation().Conjugated() * mConstraintToBody2;
178
- }
179
- else
180
- {
181
- mLocalSpacePosition1 = Vec3(inSettings.mPosition1);
182
- mLocalSpacePosition2 = Vec3(inSettings.mPosition2);
183
- }
184
-
185
- // Copy translation and rotation limits
186
- memcpy(mLimitMin, inSettings.mLimitMin, sizeof(mLimitMin));
187
- memcpy(mLimitMax, inSettings.mLimitMax, sizeof(mLimitMax));
188
- memcpy(mLimitsSpringSettings, inSettings.mLimitsSpringSettings, sizeof(mLimitsSpringSettings));
189
- UpdateTranslationLimits();
190
- UpdateRotationLimits();
191
- UpdateFixedFreeAxis();
192
- CacheHasSpringLimits();
193
-
194
- // Store friction settings
195
- memcpy(mMaxFriction, inSettings.mMaxFriction, sizeof(mMaxFriction));
196
-
197
- // Store motor settings
198
- for (int i = 0; i < EAxis::Num; ++i)
199
- mMotorSettings[i] = inSettings.mMotorSettings[i];
200
-
201
- // Cache if motors are active (motors are off initially, but we may have friction)
202
- CacheTranslationMotorActive();
203
- CacheRotationMotorActive();
204
- }
205
-
206
- void SixDOFConstraint::NotifyShapeChanged(const BodyID &inBodyID, Vec3Arg inDeltaCOM)
207
- {
208
- if (mBody1->GetID() == inBodyID)
209
- mLocalSpacePosition1 -= inDeltaCOM;
210
- else if (mBody2->GetID() == inBodyID)
211
- mLocalSpacePosition2 -= inDeltaCOM;
212
- }
213
-
214
- void SixDOFConstraint::SetTranslationLimits(Vec3Arg inLimitMin, Vec3Arg inLimitMax)
215
- {
216
- mLimitMin[EAxis::TranslationX] = inLimitMin.GetX();
217
- mLimitMin[EAxis::TranslationY] = inLimitMin.GetY();
218
- mLimitMin[EAxis::TranslationZ] = inLimitMin.GetZ();
219
- mLimitMax[EAxis::TranslationX] = inLimitMax.GetX();
220
- mLimitMax[EAxis::TranslationY] = inLimitMax.GetY();
221
- mLimitMax[EAxis::TranslationZ] = inLimitMax.GetZ();
222
-
223
- UpdateTranslationLimits();
224
- UpdateFixedFreeAxis();
225
- }
226
-
227
- void SixDOFConstraint::SetRotationLimits(Vec3Arg inLimitMin, Vec3Arg inLimitMax)
228
- {
229
- mLimitMin[EAxis::RotationX] = inLimitMin.GetX();
230
- mLimitMin[EAxis::RotationY] = inLimitMin.GetY();
231
- mLimitMin[EAxis::RotationZ] = inLimitMin.GetZ();
232
- mLimitMax[EAxis::RotationX] = inLimitMax.GetX();
233
- mLimitMax[EAxis::RotationY] = inLimitMax.GetY();
234
- mLimitMax[EAxis::RotationZ] = inLimitMax.GetZ();
235
-
236
- UpdateRotationLimits();
237
- UpdateFixedFreeAxis();
238
- }
239
-
240
- void SixDOFConstraint::SetMaxFriction(EAxis inAxis, float inFriction)
241
- {
242
- mMaxFriction[inAxis] = inFriction;
243
-
244
- if (inAxis >= EAxis::TranslationX && inAxis <= EAxis::TranslationZ)
245
- CacheTranslationMotorActive();
246
- else
247
- CacheRotationMotorActive();
248
- }
249
-
250
- void SixDOFConstraint::GetPositionConstraintProperties(Vec3 &outR1PlusU, Vec3 &outR2, Vec3 &outU) const
251
- {
252
- RVec3 p1 = mBody1->GetCenterOfMassTransform() * mLocalSpacePosition1;
253
- RVec3 p2 = mBody2->GetCenterOfMassTransform() * mLocalSpacePosition2;
254
- outR1PlusU = Vec3(p2 - mBody1->GetCenterOfMassPosition()); // r1 + u = (p1 - x1) + (p2 - p1) = p2 - x1
255
- outR2 = Vec3(p2 - mBody2->GetCenterOfMassPosition());
256
- outU = Vec3(p2 - p1);
257
- }
258
-
259
- Quat SixDOFConstraint::GetRotationInConstraintSpace() const
260
- {
261
- // Let b1, b2 be the center of mass transform of body1 and body2 (For body1 this is mBody1->GetCenterOfMassTransform())
262
- // Let c1, c2 be the transform that takes a vector from constraint space to local space of body1 and body2 (For body1 this is Mat44::sRotationTranslation(mConstraintToBody1, mLocalSpacePosition1))
263
- // Let q be the rotation of the constraint in constraint space
264
- // b2 takes a vector from the local space of body2 to world space
265
- // To express this in terms of b1: b2 = b1 * c1 * q * c2^-1
266
- // c2^-1 goes from local body 2 space to constraint space
267
- // q rotates the constraint
268
- // c1 goes from constraint space to body 1 local space
269
- // b1 goes from body 1 local space to world space
270
- // So when the body rotations are given, q = (b1 * c1)^-1 * b2 c2
271
- // Or: q = (q1 * c1)^-1 * (q2 * c2) if we're only interested in rotations
272
- return (mBody1->GetRotation() * mConstraintToBody1).Conjugated() * mBody2->GetRotation() * mConstraintToBody2;
273
- }
274
-
275
- void SixDOFConstraint::CacheTranslationMotorActive()
276
- {
277
- mTranslationMotorActive = mMotorState[EAxis::TranslationX] != EMotorState::Off
278
- || mMotorState[EAxis::TranslationY] != EMotorState::Off
279
- || mMotorState[EAxis::TranslationZ] != EMotorState::Off
280
- || HasFriction(EAxis::TranslationX)
281
- || HasFriction(EAxis::TranslationY)
282
- || HasFriction(EAxis::TranslationZ);
283
- }
284
-
285
- void SixDOFConstraint::CacheRotationMotorActive()
286
- {
287
- mRotationMotorActive = mMotorState[EAxis::RotationX] != EMotorState::Off
288
- || mMotorState[EAxis::RotationY] != EMotorState::Off
289
- || mMotorState[EAxis::RotationZ] != EMotorState::Off
290
- || HasFriction(EAxis::RotationX)
291
- || HasFriction(EAxis::RotationY)
292
- || HasFriction(EAxis::RotationZ);
293
- }
294
-
295
- void SixDOFConstraint::CacheRotationPositionMotorActive()
296
- {
297
- mRotationPositionMotorActive = 0;
298
- for (int i = 0; i < 3; ++i)
299
- if (mMotorState[EAxis::RotationX + i] == EMotorState::Position)
300
- mRotationPositionMotorActive |= 1 << i;
301
- }
302
-
303
- void SixDOFConstraint::CacheHasSpringLimits()
304
- {
305
- mHasSpringLimits = mLimitsSpringSettings[EAxis::TranslationX].mFrequency > 0.0f
306
- || mLimitsSpringSettings[EAxis::TranslationY].mFrequency > 0.0f
307
- || mLimitsSpringSettings[EAxis::TranslationZ].mFrequency > 0.0f;
308
- }
309
-
310
- void SixDOFConstraint::SetMotorState(EAxis inAxis, EMotorState inState)
311
- {
312
- JPH_ASSERT(inState == EMotorState::Off || mMotorSettings[inAxis].IsValid());
313
-
314
- if (mMotorState[inAxis] != inState)
315
- {
316
- mMotorState[inAxis] = inState;
317
-
318
- // Ensure that warm starting next frame doesn't apply any impulses (motor parts are repurposed for different modes)
319
- if (inAxis >= EAxis::TranslationX && inAxis <= EAxis::TranslationZ)
320
- {
321
- mMotorTranslationConstraintPart[inAxis - EAxis::TranslationX].Deactivate();
322
-
323
- CacheTranslationMotorActive();
324
- }
325
- else
326
- {
327
- JPH_ASSERT(inAxis >= EAxis::RotationX && inAxis <= EAxis::RotationZ);
328
-
329
- mMotorRotationConstraintPart[inAxis - EAxis::RotationX].Deactivate();
330
-
331
- CacheRotationMotorActive();
332
- CacheRotationPositionMotorActive();
333
- }
334
- }
335
- }
336
-
337
- void SixDOFConstraint::SetTargetOrientationCS(QuatArg inOrientation)
338
- {
339
- Quat q_swing, q_twist;
340
- inOrientation.GetSwingTwist(q_swing, q_twist);
341
-
342
- uint clamped_axis;
343
- mSwingTwistConstraintPart.ClampSwingTwist(q_swing, q_twist, clamped_axis);
344
-
345
- if (clamped_axis != 0)
346
- mTargetOrientation = q_swing * q_twist;
347
- else
348
- mTargetOrientation = inOrientation;
349
- }
350
-
351
- void SixDOFConstraint::SetupVelocityConstraint(float inDeltaTime)
352
- {
353
- // Get body rotations
354
- Quat rotation1 = mBody1->GetRotation();
355
- Quat rotation2 = mBody2->GetRotation();
356
-
357
- // Quaternion that rotates from body1's constraint space to world space
358
- Quat constraint_body1_to_world = rotation1 * mConstraintToBody1;
359
-
360
- // Store world space axis of constraint space
361
- Mat44 translation_axis_mat = Mat44::sRotation(constraint_body1_to_world);
362
- for (int i = 0; i < 3; ++i)
363
- mTranslationAxis[i] = translation_axis_mat.GetColumn3(i);
364
-
365
- if (IsTranslationFullyConstrained())
366
- {
367
- // All translation locked: Setup point constraint
368
- mPointConstraintPart.CalculateConstraintProperties(*mBody1, Mat44::sRotation(rotation1), mLocalSpacePosition1, *mBody2, Mat44::sRotation(rotation2), mLocalSpacePosition2);
369
- }
370
- else if (IsTranslationConstrained() || mTranslationMotorActive)
371
- {
372
- // Update world space positions (the bodies may have moved)
373
- Vec3 r1_plus_u, r2, u;
374
- GetPositionConstraintProperties(r1_plus_u, r2, u);
375
-
376
- // Setup axis constraint parts
377
- for (int i = 0; i < 3; ++i)
378
- {
379
- EAxis axis = EAxis(EAxis::TranslationX + i);
380
-
381
- Vec3 translation_axis = mTranslationAxis[i];
382
-
383
- // Calculate displacement along this axis
384
- float d = translation_axis.Dot(u);
385
- mDisplacement[i] = d; // Store for SolveVelocityConstraint
386
-
387
- // Setup limit constraint
388
- bool constraint_active = false;
389
- float constraint_value = 0.0f;
390
- if (IsFixedAxis(axis))
391
- {
392
- // When constraint is fixed it is always active
393
- constraint_value = d - mLimitMin[i];
394
- constraint_active = true;
395
- }
396
- else if (!IsFreeAxis(axis))
397
- {
398
- // When constraint is limited, it is only active when outside of the allowed range
399
- if (d <= mLimitMin[i])
400
- {
401
- constraint_value = d - mLimitMin[i];
402
- constraint_active = true;
403
- }
404
- else if (d >= mLimitMax[i])
405
- {
406
- constraint_value = d - mLimitMax[i];
407
- constraint_active = true;
408
- }
409
- }
410
-
411
- if (constraint_active)
412
- mTranslationConstraintPart[i].CalculateConstraintPropertiesWithSettings(inDeltaTime, *mBody1, r1_plus_u, *mBody2, r2, translation_axis, 0.0f, constraint_value, mLimitsSpringSettings[i]);
413
- else
414
- mTranslationConstraintPart[i].Deactivate();
415
-
416
- // Setup motor constraint
417
- switch (mMotorState[i])
418
- {
419
- case EMotorState::Off:
420
- if (HasFriction(axis))
421
- mMotorTranslationConstraintPart[i].CalculateConstraintProperties(*mBody1, r1_plus_u, *mBody2, r2, translation_axis);
422
- else
423
- mMotorTranslationConstraintPart[i].Deactivate();
424
- break;
425
-
426
- case EMotorState::Velocity:
427
- mMotorTranslationConstraintPart[i].CalculateConstraintProperties(*mBody1, r1_plus_u, *mBody2, r2, translation_axis, -mTargetVelocity[i]);
428
- break;
429
-
430
- case EMotorState::Position:
431
- {
432
- const SpringSettings &spring_settings = mMotorSettings[i].mSpringSettings;
433
- if (spring_settings.HasStiffness())
434
- mMotorTranslationConstraintPart[i].CalculateConstraintPropertiesWithSettings(inDeltaTime, *mBody1, r1_plus_u, *mBody2, r2, translation_axis, 0.0f, translation_axis.Dot(u) - mTargetPosition[i], spring_settings);
435
- else
436
- mMotorTranslationConstraintPart[i].Deactivate();
437
- break;
438
- }
439
- }
440
- }
441
- }
442
-
443
- // Setup rotation constraints
444
- if (IsRotationFullyConstrained())
445
- {
446
- // All rotation locked: Setup rotation constraint
447
- mRotationConstraintPart.CalculateConstraintProperties(*mBody1, Mat44::sRotation(rotation1), *mBody2, Mat44::sRotation(rotation2));
448
- }
449
- else if (IsRotationConstrained() || mRotationMotorActive)
450
- {
451
- // GetRotationInConstraintSpace without redoing the calculation of constraint_body1_to_world
452
- Quat constraint_body2_to_world = rotation2 * mConstraintToBody2;
453
- Quat q = constraint_body1_to_world.Conjugated() * constraint_body2_to_world;
454
-
455
- // Use swing twist constraint part
456
- if (IsRotationConstrained())
457
- mSwingTwistConstraintPart.CalculateConstraintProperties(*mBody1, *mBody2, q, constraint_body1_to_world);
458
- else
459
- mSwingTwistConstraintPart.Deactivate();
460
-
461
- if (mRotationMotorActive)
462
- {
463
- // Calculate rotation motor axis
464
- Mat44 ws_axis = Mat44::sRotation(constraint_body2_to_world);
465
- for (int i = 0; i < 3; ++i)
466
- mRotationAxis[i] = ws_axis.GetColumn3(i);
467
-
468
- // Get target orientation along the shortest path from q
469
- Quat target_orientation = q.Dot(mTargetOrientation) > 0.0f? mTargetOrientation : -mTargetOrientation;
470
-
471
- // The definition of the constraint rotation q:
472
- // R2 * ConstraintToBody2 = R1 * ConstraintToBody1 * q (1)
473
- //
474
- // R2' is the rotation of body 2 when reaching the target_orientation:
475
- // R2' * ConstraintToBody2 = R1 * ConstraintToBody1 * target_orientation (2)
476
- //
477
- // The difference in body 2 space:
478
- // R2' = R2 * diff_body2 (3)
479
- //
480
- // We want to specify the difference in the constraint space of body 2:
481
- // diff_body2 = ConstraintToBody2 * diff * ConstraintToBody2^* (4)
482
- //
483
- // Extracting R2' from 2: R2' = R1 * ConstraintToBody1 * target_orientation * ConstraintToBody2^* (5)
484
- // Combining 3 & 4: R2' = R2 * ConstraintToBody2 * diff * ConstraintToBody2^* (6)
485
- // Combining 1 & 6: R2' = R1 * ConstraintToBody1 * q * diff * ConstraintToBody2^* (7)
486
- // Combining 5 & 7: R1 * ConstraintToBody1 * target_orientation * ConstraintToBody2^* = R1 * ConstraintToBody1 * q * diff * ConstraintToBody2^*
487
- // <=> target_orientation = q * diff
488
- // <=> diff = q^* * target_orientation
489
- Quat diff = q.Conjugated() * target_orientation;
490
-
491
- // Project diff so that only rotation around axis that have a position motor are remaining
492
- Quat projected_diff;
493
- switch (mRotationPositionMotorActive)
494
- {
495
- case 0b001:
496
- // Keep only rotation around X
497
- projected_diff = diff.GetTwist(Vec3::sAxisX());
498
- break;
499
-
500
- case 0b010:
501
- // Keep only rotation around Y
502
- projected_diff = diff.GetTwist(Vec3::sAxisY());
503
- break;
504
-
505
- case 0b100:
506
- // Keep only rotation around Z
507
- projected_diff = diff.GetTwist(Vec3::sAxisZ());
508
- break;
509
-
510
- case 0b011:
511
- // Remove rotation around Z
512
- // q = swing_xy * twist_z <=> swing_xy = q * twist_z^*
513
- projected_diff = diff * diff.GetTwist(Vec3::sAxisZ()).Conjugated();
514
- break;
515
-
516
- case 0b101:
517
- // Remove rotation around Y
518
- // q = swing_xz * twist_y <=> swing_xz = q * twist_y^*
519
- projected_diff = diff * diff.GetTwist(Vec3::sAxisY()).Conjugated();
520
- break;
521
-
522
- case 0b110:
523
- // Remove rotation around X
524
- // q = swing_yz * twist_x <=> swing_yz = q * twist_x^*
525
- projected_diff = diff * diff.GetTwist(Vec3::sAxisX()).Conjugated();
526
- break;
527
-
528
- case 0b111:
529
- default: // All motors off is handled here but the results are unused
530
- // Keep entire rotation
531
- projected_diff = diff;
532
- break;
533
- }
534
-
535
- // Approximate error angles
536
- // The imaginary part of a quaternion is rotation_axis * sin(angle / 2)
537
- // If angle is small, sin(x) = x so angle[i] ~ 2.0f * rotation_axis[i]
538
- // We'll be making small time steps, so if the angle is not small at least the sign will be correct and we'll move in the right direction
539
- Vec3 rotation_error = -2.0f * projected_diff.GetXYZ();
540
-
541
- // Setup motors
542
- for (int i = 0; i < 3; ++i)
543
- {
544
- EAxis axis = EAxis(EAxis::RotationX + i);
545
-
546
- Vec3 rotation_axis = mRotationAxis[i];
547
-
548
- switch (mMotorState[axis])
549
- {
550
- case EMotorState::Off:
551
- if (HasFriction(axis))
552
- mMotorRotationConstraintPart[i].CalculateConstraintProperties(*mBody1, *mBody2, rotation_axis);
553
- else
554
- mMotorRotationConstraintPart[i].Deactivate();
555
- break;
556
-
557
- case EMotorState::Velocity:
558
- mMotorRotationConstraintPart[i].CalculateConstraintProperties(*mBody1, *mBody2, rotation_axis, -mTargetAngularVelocity[i]);
559
- break;
560
-
561
- case EMotorState::Position:
562
- {
563
- const SpringSettings &spring_settings = mMotorSettings[axis].mSpringSettings;
564
- if (spring_settings.HasStiffness())
565
- mMotorRotationConstraintPart[i].CalculateConstraintPropertiesWithSettings(inDeltaTime, *mBody1, *mBody2, rotation_axis, 0.0f, rotation_error[i], spring_settings);
566
- else
567
- mMotorRotationConstraintPart[i].Deactivate();
568
- break;
569
- }
570
- }
571
- }
572
- }
573
- }
574
- }
575
-
576
- void SixDOFConstraint::ResetWarmStart()
577
- {
578
- for (AxisConstraintPart &c : mMotorTranslationConstraintPart)
579
- c.Deactivate();
580
- for (AngleConstraintPart &c : mMotorRotationConstraintPart)
581
- c.Deactivate();
582
- mRotationConstraintPart.Deactivate();
583
- mSwingTwistConstraintPart.Deactivate();
584
- mPointConstraintPart.Deactivate();
585
- for (AxisConstraintPart &c : mTranslationConstraintPart)
586
- c.Deactivate();
587
- }
588
-
589
- void SixDOFConstraint::WarmStartVelocityConstraint(float inWarmStartImpulseRatio)
590
- {
591
- // Warm start translation motors
592
- if (mTranslationMotorActive)
593
- for (int i = 0; i < 3; ++i)
594
- if (mMotorTranslationConstraintPart[i].IsActive())
595
- mMotorTranslationConstraintPart[i].WarmStart(*mBody1, *mBody2, mTranslationAxis[i], inWarmStartImpulseRatio);
596
-
597
- // Warm start rotation motors
598
- if (mRotationMotorActive)
599
- for (AngleConstraintPart &c : mMotorRotationConstraintPart)
600
- if (c.IsActive())
601
- c.WarmStart(*mBody1, *mBody2, inWarmStartImpulseRatio);
602
-
603
- // Warm start rotation constraints
604
- if (IsRotationFullyConstrained())
605
- mRotationConstraintPart.WarmStart(*mBody1, *mBody2, inWarmStartImpulseRatio);
606
- else if (IsRotationConstrained())
607
- mSwingTwistConstraintPart.WarmStart(*mBody1, *mBody2, inWarmStartImpulseRatio);
608
-
609
- // Warm start translation constraints
610
- if (IsTranslationFullyConstrained())
611
- mPointConstraintPart.WarmStart(*mBody1, *mBody2, inWarmStartImpulseRatio);
612
- else if (IsTranslationConstrained())
613
- for (int i = 0; i < 3; ++i)
614
- if (mTranslationConstraintPart[i].IsActive())
615
- mTranslationConstraintPart[i].WarmStart(*mBody1, *mBody2, mTranslationAxis[i], inWarmStartImpulseRatio);
616
- }
617
-
618
- bool SixDOFConstraint::SolveVelocityConstraint(float inDeltaTime)
619
- {
620
- bool impulse = false;
621
-
622
- // Solve translation motor
623
- if (mTranslationMotorActive)
624
- for (int i = 0; i < 3; ++i)
625
- if (mMotorTranslationConstraintPart[i].IsActive())
626
- switch (mMotorState[i])
627
- {
628
- case EMotorState::Off:
629
- {
630
- // Apply friction only
631
- float max_lambda = mMaxFriction[i] * inDeltaTime;
632
- impulse |= mMotorTranslationConstraintPart[i].SolveVelocityConstraint(*mBody1, *mBody2, mTranslationAxis[i], -max_lambda, max_lambda);
633
- break;
634
- }
635
-
636
- case EMotorState::Velocity:
637
- case EMotorState::Position:
638
- // Drive motor
639
- impulse |= mMotorTranslationConstraintPart[i].SolveVelocityConstraint(*mBody1, *mBody2, mTranslationAxis[i], inDeltaTime * mMotorSettings[i].mMinForceLimit, inDeltaTime * mMotorSettings[i].mMaxForceLimit);
640
- break;
641
- }
642
-
643
- // Solve rotation motor
644
- if (mRotationMotorActive)
645
- for (int i = 0; i < 3; ++i)
646
- {
647
- EAxis axis = EAxis(EAxis::RotationX + i);
648
- if (mMotorRotationConstraintPart[i].IsActive())
649
- switch (mMotorState[axis])
650
- {
651
- case EMotorState::Off:
652
- {
653
- // Apply friction only
654
- float max_lambda = mMaxFriction[axis] * inDeltaTime;
655
- impulse |= mMotorRotationConstraintPart[i].SolveVelocityConstraint(*mBody1, *mBody2, mRotationAxis[i], -max_lambda, max_lambda);
656
- break;
657
- }
658
-
659
- case EMotorState::Velocity:
660
- case EMotorState::Position:
661
- // Drive motor
662
- impulse |= mMotorRotationConstraintPart[i].SolveVelocityConstraint(*mBody1, *mBody2, mRotationAxis[i], inDeltaTime * mMotorSettings[axis].mMinTorqueLimit, inDeltaTime * mMotorSettings[axis].mMaxTorqueLimit);
663
- break;
664
- }
665
- }
666
-
667
- // Solve rotation constraint
668
- if (IsRotationFullyConstrained())
669
- impulse |= mRotationConstraintPart.SolveVelocityConstraint(*mBody1, *mBody2);
670
- else if (IsRotationConstrained())
671
- impulse |= mSwingTwistConstraintPart.SolveVelocityConstraint(*mBody1, *mBody2);
672
-
673
- // Solve position constraint
674
- if (IsTranslationFullyConstrained())
675
- impulse |= mPointConstraintPart.SolveVelocityConstraint(*mBody1, *mBody2);
676
- else if (IsTranslationConstrained())
677
- for (int i = 0; i < 3; ++i)
678
- if (mTranslationConstraintPart[i].IsActive())
679
- {
680
- // If the axis is not fixed it must be limited (or else the constraint would not be active)
681
- // Calculate the min and max constraint force based on on which side we're limited
682
- float limit_min = -FLT_MAX, limit_max = FLT_MAX;
683
- if (!IsFixedAxis(EAxis(EAxis::TranslationX + i)))
684
- {
685
- JPH_ASSERT(!IsFreeAxis(EAxis(EAxis::TranslationX + i)));
686
- if (mDisplacement[i] <= mLimitMin[i])
687
- limit_min = 0;
688
- else if (mDisplacement[i] >= mLimitMax[i])
689
- limit_max = 0;
690
- }
691
-
692
- impulse |= mTranslationConstraintPart[i].SolveVelocityConstraint(*mBody1, *mBody2, mTranslationAxis[i], limit_min, limit_max);
693
- }
694
-
695
- return impulse;
696
- }
697
-
698
- bool SixDOFConstraint::SolvePositionConstraint(float inDeltaTime, float inBaumgarte)
699
- {
700
- bool impulse = false;
701
-
702
- if (IsRotationFullyConstrained())
703
- {
704
- // Rotation locked: Solve rotation constraint
705
-
706
- // Inverse of initial rotation from body 1 to body 2 in body 1 space
707
- // Definition of initial orientation r0: q2 = q1 r0
708
- // Initial rotation (see: GetRotationInConstraintSpace): q2 = q1 c1 c2^-1
709
- // So: r0^-1 = (c1 c2^-1)^-1 = c2 * c1^-1
710
- Quat constraint_to_body1 = mConstraintToBody1 * Quat::sEulerAngles(GetRotationLimitsMin());
711
- Quat inv_initial_orientation = mConstraintToBody2 * constraint_to_body1.Conjugated();
712
-
713
- // Solve rotation violations
714
- mRotationConstraintPart.CalculateConstraintProperties(*mBody1, Mat44::sRotation(mBody1->GetRotation()), *mBody2, Mat44::sRotation(mBody2->GetRotation()));
715
- impulse |= mRotationConstraintPart.SolvePositionConstraint(*mBody1, *mBody2, inv_initial_orientation, inBaumgarte);
716
- }
717
- else if (IsRotationConstrained())
718
- {
719
- // Rotation partially constraint
720
-
721
- // Solve rotation violations
722
- Quat q = GetRotationInConstraintSpace();
723
- impulse |= mSwingTwistConstraintPart.SolvePositionConstraint(*mBody1, *mBody2, q, mConstraintToBody1, mConstraintToBody2, inBaumgarte);
724
- }
725
-
726
- // Solve position violations
727
- if (IsTranslationFullyConstrained())
728
- {
729
- // Translation locked: Solve point constraint
730
- Vec3 local_space_position1 = mLocalSpacePosition1 + mConstraintToBody1 * GetTranslationLimitsMin();
731
- mPointConstraintPart.CalculateConstraintProperties(*mBody1, Mat44::sRotation(mBody1->GetRotation()), local_space_position1, *mBody2, Mat44::sRotation(mBody2->GetRotation()), mLocalSpacePosition2);
732
- impulse |= mPointConstraintPart.SolvePositionConstraint(*mBody1, *mBody2, inBaumgarte);
733
- }
734
- else if (IsTranslationConstrained())
735
- {
736
- // Translation partially locked: Solve per axis
737
- for (int i = 0; i < 3; ++i)
738
- if (mLimitsSpringSettings[i].mFrequency <= 0.0f) // If not soft limit
739
- {
740
- // Update world space positions (the bodies may have moved)
741
- Vec3 r1_plus_u, r2, u;
742
- GetPositionConstraintProperties(r1_plus_u, r2, u);
743
-
744
- // Quaternion that rotates from body1's constraint space to world space
745
- Quat constraint_body1_to_world = mBody1->GetRotation() * mConstraintToBody1;
746
-
747
- // Calculate axis
748
- Vec3 translation_axis;
749
- switch (i)
750
- {
751
- case 0: translation_axis = constraint_body1_to_world.RotateAxisX(); break;
752
- case 1: translation_axis = constraint_body1_to_world.RotateAxisY(); break;
753
- default: JPH_ASSERT(i == 2); translation_axis = constraint_body1_to_world.RotateAxisZ(); break;
754
- }
755
-
756
- // Determine position error
757
- float error = 0.0f;
758
- EAxis axis(EAxis(EAxis::TranslationX + i));
759
- if (IsFixedAxis(axis))
760
- error = u.Dot(translation_axis) - mLimitMin[axis];
761
- else if (!IsFreeAxis(axis))
762
- {
763
- float displacement = u.Dot(translation_axis);
764
- if (displacement <= mLimitMin[axis])
765
- error = displacement - mLimitMin[axis];
766
- else if (displacement >= mLimitMax[axis])
767
- error = displacement - mLimitMax[axis];
768
- }
769
-
770
- if (error != 0.0f)
771
- {
772
- // Setup axis constraint part and solve it
773
- mTranslationConstraintPart[i].CalculateConstraintProperties(*mBody1, r1_plus_u, *mBody2, r2, translation_axis);
774
- impulse |= mTranslationConstraintPart[i].SolvePositionConstraint(*mBody1, *mBody2, translation_axis, error, inBaumgarte);
775
- }
776
- }
777
- }
778
-
779
- return impulse;
780
- }
781
-
782
- #ifdef JPH_DEBUG_RENDERER
783
- void SixDOFConstraint::DrawConstraint(DebugRenderer *inRenderer) const
784
- {
785
- // Get constraint properties in world space
786
- RVec3 position1 = mBody1->GetCenterOfMassTransform() * mLocalSpacePosition1;
787
- Quat rotation1 = mBody1->GetRotation() * mConstraintToBody1;
788
- Quat rotation2 = mBody2->GetRotation() * mConstraintToBody2;
789
-
790
- // Draw constraint orientation
791
- inRenderer->DrawCoordinateSystem(RMat44::sRotationTranslation(rotation1, position1), mDrawConstraintSize);
792
-
793
- if ((IsRotationConstrained() || mRotationPositionMotorActive != 0) && !IsRotationFullyConstrained())
794
- {
795
- // Draw current swing and twist
796
- Quat q = GetRotationInConstraintSpace();
797
- Quat q_swing, q_twist;
798
- q.GetSwingTwist(q_swing, q_twist);
799
- inRenderer->DrawLine(position1, position1 + mDrawConstraintSize * (rotation1 * q_twist).RotateAxisY(), Color::sWhite);
800
- inRenderer->DrawLine(position1, position1 + mDrawConstraintSize * (rotation1 * q_swing).RotateAxisX(), Color::sWhite);
801
- }
802
-
803
- // Draw target rotation
804
- Quat m_swing, m_twist;
805
- mTargetOrientation.GetSwingTwist(m_swing, m_twist);
806
- if (mMotorState[EAxis::RotationX] == EMotorState::Position)
807
- inRenderer->DrawLine(position1, position1 + mDrawConstraintSize * (rotation1 * m_twist).RotateAxisY(), Color::sYellow);
808
- if (mMotorState[EAxis::RotationY] == EMotorState::Position || mMotorState[EAxis::RotationZ] == EMotorState::Position)
809
- inRenderer->DrawLine(position1, position1 + mDrawConstraintSize * (rotation1 * m_swing).RotateAxisX(), Color::sYellow);
810
-
811
- // Draw target angular velocity
812
- Vec3 target_angular_velocity = Vec3::sZero();
813
- for (int i = 0; i < 3; ++i)
814
- if (mMotorState[EAxis::RotationX + i] == EMotorState::Velocity)
815
- target_angular_velocity.SetComponent(i, mTargetAngularVelocity[i]);
816
- if (target_angular_velocity != Vec3::sZero())
817
- inRenderer->DrawArrow(position1, position1 + rotation2 * target_angular_velocity, Color::sRed, 0.1f);
818
- }
819
-
820
- void SixDOFConstraint::DrawConstraintLimits(DebugRenderer *inRenderer) const
821
- {
822
- // Get matrix that transforms from constraint space to world space
823
- RMat44 constraint_body1_to_world = RMat44::sRotationTranslation(mBody1->GetRotation() * mConstraintToBody1, mBody1->GetCenterOfMassTransform() * mLocalSpacePosition1);
824
-
825
- // Draw limits
826
- if (mSwingTwistConstraintPart.GetSwingType() == ESwingType::Pyramid)
827
- inRenderer->DrawSwingPyramidLimits(constraint_body1_to_world, mLimitMin[EAxis::RotationY], mLimitMax[EAxis::RotationY], mLimitMin[EAxis::RotationZ], mLimitMax[EAxis::RotationZ], mDrawConstraintSize, Color::sGreen, DebugRenderer::ECastShadow::Off);
828
- else
829
- inRenderer->DrawSwingConeLimits(constraint_body1_to_world, mLimitMax[EAxis::RotationY], mLimitMax[EAxis::RotationZ], mDrawConstraintSize, Color::sGreen, DebugRenderer::ECastShadow::Off);
830
- inRenderer->DrawPie(constraint_body1_to_world.GetTranslation(), mDrawConstraintSize, constraint_body1_to_world.GetAxisX(), constraint_body1_to_world.GetAxisY(), mLimitMin[EAxis::RotationX], mLimitMax[EAxis::RotationX], Color::sPurple, DebugRenderer::ECastShadow::Off);
831
- }
832
- #endif // JPH_DEBUG_RENDERER
833
-
834
- void SixDOFConstraint::SaveState(StateRecorder &inStream) const
835
- {
836
- TwoBodyConstraint::SaveState(inStream);
837
-
838
- for (const AxisConstraintPart &c : mTranslationConstraintPart)
839
- c.SaveState(inStream);
840
- mPointConstraintPart.SaveState(inStream);
841
- mSwingTwistConstraintPart.SaveState(inStream);
842
- mRotationConstraintPart.SaveState(inStream);
843
- for (const AxisConstraintPart &c : mMotorTranslationConstraintPart)
844
- c.SaveState(inStream);
845
- for (const AngleConstraintPart &c : mMotorRotationConstraintPart)
846
- c.SaveState(inStream);
847
-
848
- inStream.Write(mMotorState);
849
- inStream.Write(mTargetVelocity);
850
- inStream.Write(mTargetAngularVelocity);
851
- inStream.Write(mTargetPosition);
852
- inStream.Write(mTargetOrientation);
853
- }
854
-
855
- void SixDOFConstraint::RestoreState(StateRecorder &inStream)
856
- {
857
- TwoBodyConstraint::RestoreState(inStream);
858
-
859
- for (AxisConstraintPart &c : mTranslationConstraintPart)
860
- c.RestoreState(inStream);
861
- mPointConstraintPart.RestoreState(inStream);
862
- mSwingTwistConstraintPart.RestoreState(inStream);
863
- mRotationConstraintPart.RestoreState(inStream);
864
- for (AxisConstraintPart &c : mMotorTranslationConstraintPart)
865
- c.RestoreState(inStream);
866
- for (AngleConstraintPart &c : mMotorRotationConstraintPart)
867
- c.RestoreState(inStream);
868
-
869
- inStream.Read(mMotorState);
870
- inStream.Read(mTargetVelocity);
871
- inStream.Read(mTargetAngularVelocity);
872
- inStream.Read(mTargetPosition);
873
- inStream.Read(mTargetOrientation);
874
-
875
- CacheTranslationMotorActive();
876
- CacheRotationMotorActive();
877
- CacheRotationPositionMotorActive();
878
- }
879
-
880
- Ref<ConstraintSettings> SixDOFConstraint::GetConstraintSettings() const
881
- {
882
- SixDOFConstraintSettings *settings = new SixDOFConstraintSettings;
883
- ToConstraintSettings(*settings);
884
- settings->mSpace = EConstraintSpace::LocalToBodyCOM;
885
- settings->mPosition1 = RVec3(mLocalSpacePosition1);
886
- settings->mAxisX1 = mConstraintToBody1.RotateAxisX();
887
- settings->mAxisY1 = mConstraintToBody1.RotateAxisY();
888
- settings->mPosition2 = RVec3(mLocalSpacePosition2);
889
- settings->mAxisX2 = mConstraintToBody2.RotateAxisX();
890
- settings->mAxisY2 = mConstraintToBody2.RotateAxisY();
891
- settings->mSwingType = mSwingTwistConstraintPart.GetSwingType();
892
- memcpy(settings->mLimitMin, mLimitMin, sizeof(mLimitMin));
893
- memcpy(settings->mLimitMax, mLimitMax, sizeof(mLimitMax));
894
- memcpy(settings->mMaxFriction, mMaxFriction, sizeof(mMaxFriction));
895
- for (int i = 0; i < EAxis::Num; ++i)
896
- settings->mMotorSettings[i] = mMotorSettings[i];
897
- return settings;
898
- }
899
-
900
- JPH_NAMESPACE_END