@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.
Files changed (527) hide show
  1. package/native/tvos/metal-patched/Cargo.toml +178 -0
  2. package/native/tvos/metal-patched/LICENSE-APACHE +201 -0
  3. package/native/tvos/metal-patched/LICENSE-MIT +25 -0
  4. package/native/tvos/metal-patched/src/acceleration_structure.rs +667 -0
  5. package/native/tvos/metal-patched/src/acceleration_structure_pass.rs +108 -0
  6. package/native/tvos/metal-patched/src/argument.rs +366 -0
  7. package/native/tvos/metal-patched/src/blitpass.rs +102 -0
  8. package/native/tvos/metal-patched/src/buffer.rs +71 -0
  9. package/native/tvos/metal-patched/src/capturedescriptor.rs +76 -0
  10. package/native/tvos/metal-patched/src/capturemanager.rs +113 -0
  11. package/native/tvos/metal-patched/src/commandbuffer.rs +192 -0
  12. package/native/tvos/metal-patched/src/commandqueue.rs +44 -0
  13. package/native/tvos/metal-patched/src/computepass.rs +107 -0
  14. package/native/tvos/metal-patched/src/constants.rs +152 -0
  15. package/native/tvos/metal-patched/src/counters.rs +119 -0
  16. package/native/tvos/metal-patched/src/depthstencil.rs +190 -0
  17. package/native/tvos/metal-patched/src/device.rs +2134 -0
  18. package/native/tvos/metal-patched/src/drawable.rs +39 -0
  19. package/native/tvos/metal-patched/src/encoder.rs +2041 -0
  20. package/native/tvos/metal-patched/src/heap.rs +281 -0
  21. package/native/tvos/metal-patched/src/indirect_encoder.rs +344 -0
  22. package/native/tvos/metal-patched/src/lib.rs +657 -0
  23. package/native/tvos/metal-patched/src/library.rs +902 -0
  24. package/native/tvos/metal-patched/src/mps.rs +575 -0
  25. package/native/tvos/metal-patched/src/pipeline/compute.rs +475 -0
  26. package/native/tvos/metal-patched/src/pipeline/mod.rs +71 -0
  27. package/native/tvos/metal-patched/src/pipeline/render.rs +762 -0
  28. package/native/tvos/metal-patched/src/renderpass.rs +443 -0
  29. package/native/tvos/metal-patched/src/resource.rs +182 -0
  30. package/native/tvos/metal-patched/src/sampler.rs +165 -0
  31. package/native/tvos/metal-patched/src/sync.rs +178 -0
  32. package/native/tvos/metal-patched/src/texture.rs +352 -0
  33. package/native/tvos/metal-patched/src/types.rs +90 -0
  34. package/native/tvos/metal-patched/src/vertexdescriptor.rs +250 -0
  35. package/package.json +8 -11
  36. package/native/third_party/JoltPhysics/Build/Android/PerformanceTest/build.gradle +0 -51
  37. package/native/third_party/JoltPhysics/Build/Android/PerformanceTest/src/main/AndroidManifest.xml +0 -20
  38. package/native/third_party/JoltPhysics/Build/Android/PerformanceTest/src/main/cpp/CMakeLists.txt +0 -20
  39. package/native/third_party/JoltPhysics/Build/Android/UnitTests/build.gradle +0 -51
  40. package/native/third_party/JoltPhysics/Build/Android/UnitTests/src/main/AndroidManifest.xml +0 -20
  41. package/native/third_party/JoltPhysics/Build/Android/UnitTests/src/main/cpp/CMakeLists.txt +0 -20
  42. package/native/third_party/JoltPhysics/Build/Android/build.gradle +0 -17
  43. package/native/third_party/JoltPhysics/Build/Android/gradle/wrapper/gradle-wrapper.jar +0 -0
  44. package/native/third_party/JoltPhysics/Build/Android/gradle/wrapper/gradle-wrapper.properties +0 -5
  45. package/native/third_party/JoltPhysics/Build/Android/gradle.properties +0 -21
  46. package/native/third_party/JoltPhysics/Build/Android/gradlew +0 -185
  47. package/native/third_party/JoltPhysics/Build/Android/gradlew.bat +0 -89
  48. package/native/third_party/JoltPhysics/Build/Android/settings.gradle +0 -10
  49. package/native/third_party/JoltPhysics/Build/CMakeLists.txt +0 -449
  50. package/native/third_party/JoltPhysics/Build/README.md +0 -250
  51. package/native/third_party/JoltPhysics/Build/cmake_linux_clang_gcc.sh +0 -28
  52. package/native/third_party/JoltPhysics/Build/cmake_linux_emscripten.sh +0 -19
  53. package/native/third_party/JoltPhysics/Build/cmake_linux_mingw.sh +0 -19
  54. package/native/third_party/JoltPhysics/Build/cmake_vs2022_cl.bat +0 -3
  55. package/native/third_party/JoltPhysics/Build/cmake_vs2022_cl_32bit.bat +0 -3
  56. package/native/third_party/JoltPhysics/Build/cmake_vs2022_cl_arm.bat +0 -3
  57. package/native/third_party/JoltPhysics/Build/cmake_vs2022_cl_arm_32bit.bat +0 -4
  58. package/native/third_party/JoltPhysics/Build/cmake_vs2022_cl_cross_platform_deterministic.bat +0 -3
  59. package/native/third_party/JoltPhysics/Build/cmake_vs2022_cl_double.bat +0 -3
  60. package/native/third_party/JoltPhysics/Build/cmake_vs2022_cl_no_object_stream.bat +0 -3
  61. package/native/third_party/JoltPhysics/Build/cmake_vs2022_clang.bat +0 -10
  62. package/native/third_party/JoltPhysics/Build/cmake_vs2022_clang_cross_platform_deterministic.bat +0 -10
  63. package/native/third_party/JoltPhysics/Build/cmake_vs2022_clang_double.bat +0 -10
  64. package/native/third_party/JoltPhysics/Build/cmake_vs2022_uwp.bat +0 -5
  65. package/native/third_party/JoltPhysics/Build/cmake_vs2022_uwp_arm.bat +0 -5
  66. package/native/third_party/JoltPhysics/Build/cmake_vs2026_cl.bat +0 -3
  67. package/native/third_party/JoltPhysics/Build/cmake_vs2026_cl_cross_platform_deterministic.bat +0 -3
  68. package/native/third_party/JoltPhysics/Build/cmake_vs2026_cl_double.bat +0 -3
  69. package/native/third_party/JoltPhysics/Build/cmake_vs2026_clang.bat +0 -10
  70. package/native/third_party/JoltPhysics/Build/cmake_vs2026_clang_cross_platform_deterministic.bat +0 -10
  71. package/native/third_party/JoltPhysics/Build/cmake_vs2026_clang_double.bat +0 -10
  72. package/native/third_party/JoltPhysics/Build/cmake_windows_mingw.sh +0 -19
  73. package/native/third_party/JoltPhysics/Build/cmake_xcode_ios.sh +0 -4
  74. package/native/third_party/JoltPhysics/Build/cmake_xcode_macos.sh +0 -4
  75. package/native/third_party/JoltPhysics/Build/iOS/JoltViewerInfo.plist +0 -34
  76. package/native/third_party/JoltPhysics/Build/iOS/SamplesInfo.plist +0 -34
  77. package/native/third_party/JoltPhysics/Build/iOS/UnitTestsInfo.plist +0 -34
  78. package/native/third_party/JoltPhysics/Build/macOS/icon.icns +0 -0
  79. package/native/third_party/JoltPhysics/Build/macos_install_vulkan_sdk.sh +0 -13
  80. package/native/third_party/JoltPhysics/Build/ubuntu24_install_vulkan_sdk.sh +0 -4
  81. package/native/third_party/JoltPhysics/Jolt/AABBTree/AABBTreeBuilder.cpp +0 -242
  82. package/native/third_party/JoltPhysics/Jolt/AABBTree/AABBTreeBuilder.h +0 -121
  83. package/native/third_party/JoltPhysics/Jolt/AABBTree/AABBTreeToBuffer.h +0 -296
  84. package/native/third_party/JoltPhysics/Jolt/AABBTree/NodeCodec/NodeCodecQuadTreeHalfFloat.h +0 -323
  85. package/native/third_party/JoltPhysics/Jolt/AABBTree/TriangleCodec/TriangleCodecIndexed8BitPackSOA4Flags.h +0 -555
  86. package/native/third_party/JoltPhysics/Jolt/ConfigurationString.h +0 -112
  87. package/native/third_party/JoltPhysics/Jolt/Core/ARMNeon.h +0 -94
  88. package/native/third_party/JoltPhysics/Jolt/Core/Array.h +0 -713
  89. package/native/third_party/JoltPhysics/Jolt/Core/Atomics.h +0 -44
  90. package/native/third_party/JoltPhysics/Jolt/Core/BinaryHeap.h +0 -96
  91. package/native/third_party/JoltPhysics/Jolt/Core/ByteBuffer.h +0 -74
  92. package/native/third_party/JoltPhysics/Jolt/Core/Color.cpp +0 -38
  93. package/native/third_party/JoltPhysics/Jolt/Core/Color.h +0 -98
  94. package/native/third_party/JoltPhysics/Jolt/Core/Core.h +0 -652
  95. package/native/third_party/JoltPhysics/Jolt/Core/FPControlWord.h +0 -143
  96. package/native/third_party/JoltPhysics/Jolt/Core/FPException.h +0 -96
  97. package/native/third_party/JoltPhysics/Jolt/Core/FPFlushDenormals.h +0 -43
  98. package/native/third_party/JoltPhysics/Jolt/Core/Factory.cpp +0 -92
  99. package/native/third_party/JoltPhysics/Jolt/Core/Factory.h +0 -54
  100. package/native/third_party/JoltPhysics/Jolt/Core/FixedSizeFreeList.h +0 -122
  101. package/native/third_party/JoltPhysics/Jolt/Core/FixedSizeFreeList.inl +0 -215
  102. package/native/third_party/JoltPhysics/Jolt/Core/HashCombine.h +0 -234
  103. package/native/third_party/JoltPhysics/Jolt/Core/HashTable.h +0 -876
  104. package/native/third_party/JoltPhysics/Jolt/Core/InsertionSort.h +0 -58
  105. package/native/third_party/JoltPhysics/Jolt/Core/IssueReporting.cpp +0 -27
  106. package/native/third_party/JoltPhysics/Jolt/Core/IssueReporting.h +0 -38
  107. package/native/third_party/JoltPhysics/Jolt/Core/JobSystem.h +0 -311
  108. package/native/third_party/JoltPhysics/Jolt/Core/JobSystem.inl +0 -56
  109. package/native/third_party/JoltPhysics/Jolt/Core/JobSystemSingleThreaded.cpp +0 -65
  110. package/native/third_party/JoltPhysics/Jolt/Core/JobSystemSingleThreaded.h +0 -62
  111. package/native/third_party/JoltPhysics/Jolt/Core/JobSystemThreadPool.cpp +0 -364
  112. package/native/third_party/JoltPhysics/Jolt/Core/JobSystemThreadPool.h +0 -101
  113. package/native/third_party/JoltPhysics/Jolt/Core/JobSystemWithBarrier.cpp +0 -230
  114. package/native/third_party/JoltPhysics/Jolt/Core/JobSystemWithBarrier.h +0 -85
  115. package/native/third_party/JoltPhysics/Jolt/Core/LinearCurve.cpp +0 -51
  116. package/native/third_party/JoltPhysics/Jolt/Core/LinearCurve.h +0 -67
  117. package/native/third_party/JoltPhysics/Jolt/Core/LockFreeHashMap.h +0 -182
  118. package/native/third_party/JoltPhysics/Jolt/Core/LockFreeHashMap.inl +0 -351
  119. package/native/third_party/JoltPhysics/Jolt/Core/Memory.cpp +0 -85
  120. package/native/third_party/JoltPhysics/Jolt/Core/Memory.h +0 -85
  121. package/native/third_party/JoltPhysics/Jolt/Core/Mutex.h +0 -223
  122. package/native/third_party/JoltPhysics/Jolt/Core/MutexArray.h +0 -98
  123. package/native/third_party/JoltPhysics/Jolt/Core/NonCopyable.h +0 -18
  124. package/native/third_party/JoltPhysics/Jolt/Core/Profiler.cpp +0 -677
  125. package/native/third_party/JoltPhysics/Jolt/Core/Profiler.h +0 -301
  126. package/native/third_party/JoltPhysics/Jolt/Core/Profiler.inl +0 -90
  127. package/native/third_party/JoltPhysics/Jolt/Core/QuickSort.h +0 -137
  128. package/native/third_party/JoltPhysics/Jolt/Core/RTTI.cpp +0 -149
  129. package/native/third_party/JoltPhysics/Jolt/Core/RTTI.h +0 -436
  130. package/native/third_party/JoltPhysics/Jolt/Core/Reference.h +0 -244
  131. package/native/third_party/JoltPhysics/Jolt/Core/Result.h +0 -174
  132. package/native/third_party/JoltPhysics/Jolt/Core/STLAlignedAllocator.h +0 -72
  133. package/native/third_party/JoltPhysics/Jolt/Core/STLAllocator.h +0 -127
  134. package/native/third_party/JoltPhysics/Jolt/Core/STLLocalAllocator.h +0 -170
  135. package/native/third_party/JoltPhysics/Jolt/Core/STLTempAllocator.h +0 -80
  136. package/native/third_party/JoltPhysics/Jolt/Core/ScopeExit.h +0 -49
  137. package/native/third_party/JoltPhysics/Jolt/Core/Semaphore.cpp +0 -135
  138. package/native/third_party/JoltPhysics/Jolt/Core/Semaphore.h +0 -68
  139. package/native/third_party/JoltPhysics/Jolt/Core/StaticArray.h +0 -329
  140. package/native/third_party/JoltPhysics/Jolt/Core/StreamIn.h +0 -120
  141. package/native/third_party/JoltPhysics/Jolt/Core/StreamOut.h +0 -97
  142. package/native/third_party/JoltPhysics/Jolt/Core/StreamUtils.h +0 -168
  143. package/native/third_party/JoltPhysics/Jolt/Core/StreamWrapper.h +0 -53
  144. package/native/third_party/JoltPhysics/Jolt/Core/StridedPtr.h +0 -63
  145. package/native/third_party/JoltPhysics/Jolt/Core/StringTools.cpp +0 -101
  146. package/native/third_party/JoltPhysics/Jolt/Core/StringTools.h +0 -38
  147. package/native/third_party/JoltPhysics/Jolt/Core/TempAllocator.h +0 -209
  148. package/native/third_party/JoltPhysics/Jolt/Core/TickCounter.cpp +0 -37
  149. package/native/third_party/JoltPhysics/Jolt/Core/TickCounter.h +0 -58
  150. package/native/third_party/JoltPhysics/Jolt/Core/UnorderedMap.h +0 -80
  151. package/native/third_party/JoltPhysics/Jolt/Core/UnorderedSet.h +0 -32
  152. package/native/third_party/JoltPhysics/Jolt/Geometry/AABox.h +0 -313
  153. package/native/third_party/JoltPhysics/Jolt/Geometry/AABox4.h +0 -224
  154. package/native/third_party/JoltPhysics/Jolt/Geometry/ClipPoly.h +0 -200
  155. package/native/third_party/JoltPhysics/Jolt/Geometry/ClosestPoint.h +0 -498
  156. package/native/third_party/JoltPhysics/Jolt/Geometry/ConvexHullBuilder.cpp +0 -1467
  157. package/native/third_party/JoltPhysics/Jolt/Geometry/ConvexHullBuilder.h +0 -276
  158. package/native/third_party/JoltPhysics/Jolt/Geometry/ConvexHullBuilder2D.cpp +0 -335
  159. package/native/third_party/JoltPhysics/Jolt/Geometry/ConvexHullBuilder2D.h +0 -105
  160. package/native/third_party/JoltPhysics/Jolt/Geometry/ConvexSupport.h +0 -188
  161. package/native/third_party/JoltPhysics/Jolt/Geometry/EPAConvexHullBuilder.h +0 -845
  162. package/native/third_party/JoltPhysics/Jolt/Geometry/EPAPenetrationDepth.h +0 -557
  163. package/native/third_party/JoltPhysics/Jolt/Geometry/Ellipse.h +0 -77
  164. package/native/third_party/JoltPhysics/Jolt/Geometry/GJKClosestPoint.h +0 -945
  165. package/native/third_party/JoltPhysics/Jolt/Geometry/IndexedTriangle.h +0 -130
  166. package/native/third_party/JoltPhysics/Jolt/Geometry/Indexify.cpp +0 -222
  167. package/native/third_party/JoltPhysics/Jolt/Geometry/Indexify.h +0 -19
  168. package/native/third_party/JoltPhysics/Jolt/Geometry/MortonCode.h +0 -40
  169. package/native/third_party/JoltPhysics/Jolt/Geometry/OrientedBox.cpp +0 -178
  170. package/native/third_party/JoltPhysics/Jolt/Geometry/OrientedBox.h +0 -39
  171. package/native/third_party/JoltPhysics/Jolt/Geometry/Plane.h +0 -104
  172. package/native/third_party/JoltPhysics/Jolt/Geometry/RayAABox.h +0 -241
  173. package/native/third_party/JoltPhysics/Jolt/Geometry/RayCapsule.h +0 -37
  174. package/native/third_party/JoltPhysics/Jolt/Geometry/RayCylinder.h +0 -101
  175. package/native/third_party/JoltPhysics/Jolt/Geometry/RaySphere.h +0 -96
  176. package/native/third_party/JoltPhysics/Jolt/Geometry/RayTriangle.h +0 -158
  177. package/native/third_party/JoltPhysics/Jolt/Geometry/Sphere.h +0 -72
  178. package/native/third_party/JoltPhysics/Jolt/Geometry/Triangle.h +0 -34
  179. package/native/third_party/JoltPhysics/Jolt/Jolt.cmake +0 -703
  180. package/native/third_party/JoltPhysics/Jolt/Jolt.h +0 -16
  181. package/native/third_party/JoltPhysics/Jolt/Jolt.natvis +0 -116
  182. package/native/third_party/JoltPhysics/Jolt/Math/BVec16.h +0 -99
  183. package/native/third_party/JoltPhysics/Jolt/Math/BVec16.inl +0 -177
  184. package/native/third_party/JoltPhysics/Jolt/Math/DMat44.h +0 -158
  185. package/native/third_party/JoltPhysics/Jolt/Math/DMat44.inl +0 -310
  186. package/native/third_party/JoltPhysics/Jolt/Math/DVec3.h +0 -291
  187. package/native/third_party/JoltPhysics/Jolt/Math/DVec3.inl +0 -941
  188. package/native/third_party/JoltPhysics/Jolt/Math/Double3.h +0 -48
  189. package/native/third_party/JoltPhysics/Jolt/Math/DynMatrix.h +0 -31
  190. package/native/third_party/JoltPhysics/Jolt/Math/EigenValueSymmetric.h +0 -177
  191. package/native/third_party/JoltPhysics/Jolt/Math/FindRoot.h +0 -42
  192. package/native/third_party/JoltPhysics/Jolt/Math/Float2.h +0 -36
  193. package/native/third_party/JoltPhysics/Jolt/Math/Float3.h +0 -50
  194. package/native/third_party/JoltPhysics/Jolt/Math/Float4.h +0 -44
  195. package/native/third_party/JoltPhysics/Jolt/Math/GaussianElimination.h +0 -102
  196. package/native/third_party/JoltPhysics/Jolt/Math/HalfFloat.h +0 -208
  197. package/native/third_party/JoltPhysics/Jolt/Math/Mat44.h +0 -243
  198. package/native/third_party/JoltPhysics/Jolt/Math/Mat44.inl +0 -952
  199. package/native/third_party/JoltPhysics/Jolt/Math/Math.h +0 -208
  200. package/native/third_party/JoltPhysics/Jolt/Math/MathTypes.h +0 -32
  201. package/native/third_party/JoltPhysics/Jolt/Math/Matrix.h +0 -259
  202. package/native/third_party/JoltPhysics/Jolt/Math/Quat.h +0 -268
  203. package/native/third_party/JoltPhysics/Jolt/Math/Quat.inl +0 -406
  204. package/native/third_party/JoltPhysics/Jolt/Math/Real.h +0 -44
  205. package/native/third_party/JoltPhysics/Jolt/Math/Swizzle.h +0 -19
  206. package/native/third_party/JoltPhysics/Jolt/Math/Trigonometry.h +0 -79
  207. package/native/third_party/JoltPhysics/Jolt/Math/UVec4.h +0 -232
  208. package/native/third_party/JoltPhysics/Jolt/Math/UVec4.inl +0 -636
  209. package/native/third_party/JoltPhysics/Jolt/Math/Vec3.cpp +0 -71
  210. package/native/third_party/JoltPhysics/Jolt/Math/Vec3.h +0 -308
  211. package/native/third_party/JoltPhysics/Jolt/Math/Vec3.inl +0 -942
  212. package/native/third_party/JoltPhysics/Jolt/Math/Vec4.h +0 -320
  213. package/native/third_party/JoltPhysics/Jolt/Math/Vec4.inl +0 -1152
  214. package/native/third_party/JoltPhysics/Jolt/Math/Vector.h +0 -211
  215. package/native/third_party/JoltPhysics/Jolt/ObjectStream/GetPrimitiveTypeOfType.h +0 -54
  216. package/native/third_party/JoltPhysics/Jolt/ObjectStream/ObjectStream.cpp +0 -38
  217. package/native/third_party/JoltPhysics/Jolt/ObjectStream/ObjectStream.h +0 -337
  218. package/native/third_party/JoltPhysics/Jolt/ObjectStream/ObjectStreamBinaryIn.cpp +0 -252
  219. package/native/third_party/JoltPhysics/Jolt/ObjectStream/ObjectStreamBinaryIn.h +0 -57
  220. package/native/third_party/JoltPhysics/Jolt/ObjectStream/ObjectStreamBinaryOut.cpp +0 -165
  221. package/native/third_party/JoltPhysics/Jolt/ObjectStream/ObjectStreamBinaryOut.h +0 -57
  222. package/native/third_party/JoltPhysics/Jolt/ObjectStream/ObjectStreamIn.cpp +0 -635
  223. package/native/third_party/JoltPhysics/Jolt/ObjectStream/ObjectStreamIn.h +0 -148
  224. package/native/third_party/JoltPhysics/Jolt/ObjectStream/ObjectStreamOut.cpp +0 -166
  225. package/native/third_party/JoltPhysics/Jolt/ObjectStream/ObjectStreamOut.h +0 -101
  226. package/native/third_party/JoltPhysics/Jolt/ObjectStream/ObjectStreamTextIn.cpp +0 -418
  227. package/native/third_party/JoltPhysics/Jolt/ObjectStream/ObjectStreamTextIn.h +0 -55
  228. package/native/third_party/JoltPhysics/Jolt/ObjectStream/ObjectStreamTextOut.cpp +0 -255
  229. package/native/third_party/JoltPhysics/Jolt/ObjectStream/ObjectStreamTextOut.h +0 -62
  230. package/native/third_party/JoltPhysics/Jolt/ObjectStream/ObjectStreamTypes.h +0 -26
  231. package/native/third_party/JoltPhysics/Jolt/ObjectStream/SerializableAttribute.h +0 -111
  232. package/native/third_party/JoltPhysics/Jolt/ObjectStream/SerializableAttributeEnum.h +0 -67
  233. package/native/third_party/JoltPhysics/Jolt/ObjectStream/SerializableAttributeTyped.h +0 -60
  234. package/native/third_party/JoltPhysics/Jolt/ObjectStream/SerializableObject.cpp +0 -15
  235. package/native/third_party/JoltPhysics/Jolt/ObjectStream/SerializableObject.h +0 -170
  236. package/native/third_party/JoltPhysics/Jolt/ObjectStream/TypeDeclarations.cpp +0 -70
  237. package/native/third_party/JoltPhysics/Jolt/ObjectStream/TypeDeclarations.h +0 -45
  238. package/native/third_party/JoltPhysics/Jolt/Physics/Body/AllowedDOFs.h +0 -68
  239. package/native/third_party/JoltPhysics/Jolt/Physics/Body/Body.cpp +0 -426
  240. package/native/third_party/JoltPhysics/Jolt/Physics/Body/Body.h +0 -452
  241. package/native/third_party/JoltPhysics/Jolt/Physics/Body/Body.inl +0 -197
  242. package/native/third_party/JoltPhysics/Jolt/Physics/Body/BodyAccess.h +0 -68
  243. package/native/third_party/JoltPhysics/Jolt/Physics/Body/BodyActivationListener.h +0 -28
  244. package/native/third_party/JoltPhysics/Jolt/Physics/Body/BodyCreationSettings.cpp +0 -234
  245. package/native/third_party/JoltPhysics/Jolt/Physics/Body/BodyCreationSettings.h +0 -124
  246. package/native/third_party/JoltPhysics/Jolt/Physics/Body/BodyFilter.h +0 -130
  247. package/native/third_party/JoltPhysics/Jolt/Physics/Body/BodyID.h +0 -101
  248. package/native/third_party/JoltPhysics/Jolt/Physics/Body/BodyInterface.cpp +0 -1099
  249. package/native/third_party/JoltPhysics/Jolt/Physics/Body/BodyInterface.h +0 -324
  250. package/native/third_party/JoltPhysics/Jolt/Physics/Body/BodyLock.h +0 -111
  251. package/native/third_party/JoltPhysics/Jolt/Physics/Body/BodyLockInterface.h +0 -134
  252. package/native/third_party/JoltPhysics/Jolt/Physics/Body/BodyLockMulti.h +0 -120
  253. package/native/third_party/JoltPhysics/Jolt/Physics/Body/BodyManager.cpp +0 -1220
  254. package/native/third_party/JoltPhysics/Jolt/Physics/Body/BodyManager.h +0 -403
  255. package/native/third_party/JoltPhysics/Jolt/Physics/Body/BodyPair.h +0 -36
  256. package/native/third_party/JoltPhysics/Jolt/Physics/Body/BodyType.h +0 -19
  257. package/native/third_party/JoltPhysics/Jolt/Physics/Body/MassProperties.cpp +0 -185
  258. package/native/third_party/JoltPhysics/Jolt/Physics/Body/MassProperties.h +0 -58
  259. package/native/third_party/JoltPhysics/Jolt/Physics/Body/MotionProperties.cpp +0 -92
  260. package/native/third_party/JoltPhysics/Jolt/Physics/Body/MotionProperties.h +0 -308
  261. package/native/third_party/JoltPhysics/Jolt/Physics/Body/MotionProperties.inl +0 -178
  262. package/native/third_party/JoltPhysics/Jolt/Physics/Body/MotionQuality.h +0 -31
  263. package/native/third_party/JoltPhysics/Jolt/Physics/Body/MotionType.h +0 -17
  264. package/native/third_party/JoltPhysics/Jolt/Physics/Character/Character.cpp +0 -354
  265. package/native/third_party/JoltPhysics/Jolt/Physics/Character/Character.h +0 -159
  266. package/native/third_party/JoltPhysics/Jolt/Physics/Character/CharacterBase.cpp +0 -59
  267. package/native/third_party/JoltPhysics/Jolt/Physics/Character/CharacterBase.h +0 -157
  268. package/native/third_party/JoltPhysics/Jolt/Physics/Character/CharacterID.h +0 -98
  269. package/native/third_party/JoltPhysics/Jolt/Physics/Character/CharacterVirtual.cpp +0 -1933
  270. package/native/third_party/JoltPhysics/Jolt/Physics/Character/CharacterVirtual.h +0 -752
  271. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/AABoxCast.h +0 -20
  272. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/ActiveEdgeMode.h +0 -17
  273. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/ActiveEdges.h +0 -114
  274. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/BackFaceMode.h +0 -16
  275. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/BroadPhase/BroadPhase.cpp +0 -16
  276. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/BroadPhase/BroadPhase.h +0 -109
  277. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/BroadPhase/BroadPhaseBruteForce.cpp +0 -313
  278. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/BroadPhase/BroadPhaseBruteForce.h +0 -38
  279. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/BroadPhase/BroadPhaseLayer.h +0 -148
  280. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/BroadPhase/BroadPhaseLayerInterfaceMask.h +0 -92
  281. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/BroadPhase/BroadPhaseLayerInterfaceTable.h +0 -64
  282. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/BroadPhase/BroadPhaseQuadTree.cpp +0 -629
  283. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/BroadPhase/BroadPhaseQuadTree.h +0 -108
  284. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/BroadPhase/BroadPhaseQuery.h +0 -56
  285. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/BroadPhase/ObjectVsBroadPhaseLayerFilterMask.h +0 -35
  286. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/BroadPhase/ObjectVsBroadPhaseLayerFilterTable.h +0 -66
  287. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/BroadPhase/QuadTree.cpp +0 -1768
  288. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/BroadPhase/QuadTree.h +0 -389
  289. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/CastConvexVsTriangles.cpp +0 -107
  290. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/CastConvexVsTriangles.h +0 -46
  291. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/CastResult.h +0 -37
  292. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/CastSphereVsTriangles.cpp +0 -223
  293. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/CastSphereVsTriangles.h +0 -49
  294. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/CollectFacesMode.h +0 -16
  295. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/CollideConvexVsTriangles.cpp +0 -155
  296. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/CollideConvexVsTriangles.h +0 -56
  297. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/CollidePointResult.h +0 -25
  298. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/CollideShape.h +0 -106
  299. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/CollideShapeVsShapePerLeaf.h +0 -94
  300. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/CollideSoftBodyVertexIterator.h +0 -110
  301. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/CollideSoftBodyVerticesVsTriangles.h +0 -102
  302. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/CollideSphereVsTriangles.cpp +0 -121
  303. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/CollideSphereVsTriangles.h +0 -50
  304. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/CollisionCollector.h +0 -109
  305. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/CollisionCollectorImpl.h +0 -219
  306. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/CollisionDispatch.cpp +0 -107
  307. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/CollisionDispatch.h +0 -97
  308. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/CollisionGroup.cpp +0 -35
  309. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/CollisionGroup.h +0 -97
  310. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/ContactListener.h +0 -143
  311. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/EstimateCollisionResponse.cpp +0 -213
  312. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/EstimateCollisionResponse.h +0 -48
  313. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/GroupFilter.cpp +0 -32
  314. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/GroupFilter.h +0 -46
  315. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/GroupFilterTable.cpp +0 -38
  316. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/GroupFilterTable.h +0 -130
  317. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/InternalEdgeRemovingCollector.h +0 -279
  318. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/ManifoldBetweenTwoFaces.cpp +0 -271
  319. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/ManifoldBetweenTwoFaces.h +0 -44
  320. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/NarrowPhaseQuery.cpp +0 -448
  321. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/NarrowPhaseQuery.h +0 -77
  322. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/NarrowPhaseStats.cpp +0 -62
  323. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/NarrowPhaseStats.h +0 -110
  324. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/ObjectLayer.h +0 -111
  325. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/ObjectLayerPairFilterMask.h +0 -52
  326. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/ObjectLayerPairFilterTable.h +0 -78
  327. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/PhysicsMaterial.cpp +0 -35
  328. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/PhysicsMaterial.h +0 -57
  329. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/PhysicsMaterialSimple.cpp +0 -38
  330. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/PhysicsMaterialSimple.h +0 -37
  331. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/RayCast.h +0 -87
  332. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/BoxShape.cpp +0 -318
  333. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/BoxShape.h +0 -115
  334. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/CapsuleShape.cpp +0 -438
  335. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/CapsuleShape.h +0 -129
  336. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/CompoundShape.cpp +0 -433
  337. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/CompoundShape.h +0 -354
  338. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/CompoundShapeVisitors.h +0 -461
  339. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/ConvexHullShape.cpp +0 -1311
  340. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/ConvexHullShape.h +0 -202
  341. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/ConvexShape.cpp +0 -566
  342. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/ConvexShape.h +0 -150
  343. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/CylinderShape.cpp +0 -418
  344. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/CylinderShape.h +0 -126
  345. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/DecoratedShape.cpp +0 -87
  346. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/DecoratedShape.h +0 -80
  347. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/EmptyShape.cpp +0 -64
  348. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/EmptyShape.h +0 -75
  349. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/GetTrianglesContext.h +0 -248
  350. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/HeightFieldShape.cpp +0 -2754
  351. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/HeightFieldShape.h +0 -380
  352. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/MeshShape.cpp +0 -1305
  353. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/MeshShape.h +0 -228
  354. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/MutableCompoundShape.cpp +0 -596
  355. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/MutableCompoundShape.h +0 -176
  356. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/OffsetCenterOfMassShape.cpp +0 -217
  357. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/OffsetCenterOfMassShape.h +0 -140
  358. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/PlaneShape.cpp +0 -541
  359. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/PlaneShape.h +0 -147
  360. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/PolyhedronSubmergedVolumeCalculator.h +0 -319
  361. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/RotatedTranslatedShape.cpp +0 -333
  362. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/RotatedTranslatedShape.h +0 -161
  363. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/ScaleHelpers.h +0 -83
  364. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/ScaledShape.cpp +0 -238
  365. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/ScaledShape.h +0 -145
  366. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/Shape.cpp +0 -325
  367. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/Shape.h +0 -466
  368. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/SphereShape.cpp +0 -347
  369. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/SphereShape.h +0 -125
  370. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/StaticCompoundShape.cpp +0 -674
  371. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/StaticCompoundShape.h +0 -139
  372. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/SubShapeID.h +0 -138
  373. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/SubShapeIDPair.h +0 -65
  374. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/TaperedCapsuleShape.cpp +0 -453
  375. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/TaperedCapsuleShape.gliffy +0 -1
  376. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/TaperedCapsuleShape.h +0 -135
  377. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/TaperedCylinderShape.cpp +0 -691
  378. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/TaperedCylinderShape.h +0 -132
  379. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/TriangleShape.cpp +0 -430
  380. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/TriangleShape.h +0 -143
  381. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/ShapeCast.h +0 -173
  382. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/ShapeFilter.h +0 -73
  383. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/SimShapeFilter.h +0 -40
  384. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/SimShapeFilterWrapper.h +0 -58
  385. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/SortReverseAndStore.h +0 -48
  386. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/TransformedShape.cpp +0 -180
  387. package/native/third_party/JoltPhysics/Jolt/Physics/Collision/TransformedShape.h +0 -194
  388. package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/CalculateSolverSteps.h +0 -70
  389. package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/ConeConstraint.cpp +0 -246
  390. package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/ConeConstraint.h +0 -133
  391. package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/Constraint.cpp +0 -73
  392. package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/Constraint.h +0 -243
  393. package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/ConstraintManager.cpp +0 -289
  394. package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/ConstraintManager.h +0 -100
  395. package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/ConstraintPart/AngleConstraintPart.h +0 -257
  396. package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/ConstraintPart/AxisConstraintPart.h +0 -682
  397. package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/ConstraintPart/DualAxisConstraintPart.h +0 -276
  398. package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/ConstraintPart/GearConstraintPart.h +0 -195
  399. package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/ConstraintPart/HingeRotationConstraintPart.h +0 -222
  400. package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/ConstraintPart/IndependentAxisConstraintPart.h +0 -246
  401. package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/ConstraintPart/PointConstraintPart.h +0 -239
  402. package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/ConstraintPart/RackAndPinionConstraintPart.h +0 -196
  403. package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/ConstraintPart/RotationEulerConstraintPart.h +0 -283
  404. package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/ConstraintPart/RotationQuatConstraintPart.h +0 -246
  405. package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/ConstraintPart/SpringPart.h +0 -169
  406. package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/ConstraintPart/SwingTwistConstraintPart.h +0 -597
  407. package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/ContactConstraintManager.cpp +0 -1804
  408. package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/ContactConstraintManager.h +0 -524
  409. package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/DistanceConstraint.cpp +0 -266
  410. package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/DistanceConstraint.h +0 -120
  411. package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/FixedConstraint.cpp +0 -215
  412. package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/FixedConstraint.h +0 -96
  413. package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/GearConstraint.cpp +0 -188
  414. package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/GearConstraint.h +0 -116
  415. package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/HingeConstraint.cpp +0 -443
  416. package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/HingeConstraint.h +0 -205
  417. package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/MotorSettings.cpp +0 -43
  418. package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/MotorSettings.h +0 -66
  419. package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/PathConstraint.cpp +0 -458
  420. package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/PathConstraint.h +0 -191
  421. package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/PathConstraintPath.cpp +0 -85
  422. package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/PathConstraintPath.h +0 -76
  423. package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/PathConstraintPathHermite.cpp +0 -308
  424. package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/PathConstraintPathHermite.h +0 -54
  425. package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/PointConstraint.cpp +0 -157
  426. package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/PointConstraint.h +0 -94
  427. package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/PulleyConstraint.cpp +0 -253
  428. package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/PulleyConstraint.h +0 -137
  429. package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/RackAndPinionConstraint.cpp +0 -189
  430. package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/RackAndPinionConstraint.h +0 -118
  431. package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/SixDOFConstraint.cpp +0 -900
  432. package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/SixDOFConstraint.h +0 -289
  433. package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/SliderConstraint.cpp +0 -501
  434. package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/SliderConstraint.h +0 -198
  435. package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/SpringSettings.cpp +0 -35
  436. package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/SpringSettings.h +0 -70
  437. package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/SwingTwistConstraint.cpp +0 -524
  438. package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/SwingTwistConstraint.h +0 -197
  439. package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/TwoBodyConstraint.cpp +0 -56
  440. package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/TwoBodyConstraint.h +0 -65
  441. package/native/third_party/JoltPhysics/Jolt/Physics/DeterminismLog.cpp +0 -17
  442. package/native/third_party/JoltPhysics/Jolt/Physics/DeterminismLog.h +0 -159
  443. package/native/third_party/JoltPhysics/Jolt/Physics/EActivation.h +0 -16
  444. package/native/third_party/JoltPhysics/Jolt/Physics/EPhysicsUpdateError.h +0 -37
  445. package/native/third_party/JoltPhysics/Jolt/Physics/IslandBuilder.cpp +0 -492
  446. package/native/third_party/JoltPhysics/Jolt/Physics/IslandBuilder.h +0 -144
  447. package/native/third_party/JoltPhysics/Jolt/Physics/LargeIslandSplitter.cpp +0 -582
  448. package/native/third_party/JoltPhysics/Jolt/Physics/LargeIslandSplitter.h +0 -187
  449. package/native/third_party/JoltPhysics/Jolt/Physics/PhysicsLock.h +0 -169
  450. package/native/third_party/JoltPhysics/Jolt/Physics/PhysicsScene.cpp +0 -261
  451. package/native/third_party/JoltPhysics/Jolt/Physics/PhysicsScene.h +0 -104
  452. package/native/third_party/JoltPhysics/Jolt/Physics/PhysicsSettings.h +0 -125
  453. package/native/third_party/JoltPhysics/Jolt/Physics/PhysicsStepListener.h +0 -37
  454. package/native/third_party/JoltPhysics/Jolt/Physics/PhysicsSystem.cpp +0 -2915
  455. package/native/third_party/JoltPhysics/Jolt/Physics/PhysicsSystem.h +0 -391
  456. package/native/third_party/JoltPhysics/Jolt/Physics/PhysicsUpdateContext.cpp +0 -25
  457. package/native/third_party/JoltPhysics/Jolt/Physics/PhysicsUpdateContext.h +0 -176
  458. package/native/third_party/JoltPhysics/Jolt/Physics/Ragdoll/Ragdoll.cpp +0 -744
  459. package/native/third_party/JoltPhysics/Jolt/Physics/Ragdoll/Ragdoll.h +0 -245
  460. package/native/third_party/JoltPhysics/Jolt/Physics/SoftBody/SoftBodyContactListener.h +0 -55
  461. package/native/third_party/JoltPhysics/Jolt/Physics/SoftBody/SoftBodyCreationSettings.cpp +0 -128
  462. package/native/third_party/JoltPhysics/Jolt/Physics/SoftBody/SoftBodyCreationSettings.h +0 -75
  463. package/native/third_party/JoltPhysics/Jolt/Physics/SoftBody/SoftBodyManifold.h +0 -74
  464. package/native/third_party/JoltPhysics/Jolt/Physics/SoftBody/SoftBodyMotionProperties.cpp +0 -1501
  465. package/native/third_party/JoltPhysics/Jolt/Physics/SoftBody/SoftBodyMotionProperties.h +0 -333
  466. package/native/third_party/JoltPhysics/Jolt/Physics/SoftBody/SoftBodyShape.cpp +0 -354
  467. package/native/third_party/JoltPhysics/Jolt/Physics/SoftBody/SoftBodyShape.h +0 -73
  468. package/native/third_party/JoltPhysics/Jolt/Physics/SoftBody/SoftBodySharedSettings.cpp +0 -1487
  469. package/native/third_party/JoltPhysics/Jolt/Physics/SoftBody/SoftBodySharedSettings.h +0 -390
  470. package/native/third_party/JoltPhysics/Jolt/Physics/SoftBody/SoftBodyUpdateContext.h +0 -63
  471. package/native/third_party/JoltPhysics/Jolt/Physics/SoftBody/SoftBodyVertex.h +0 -36
  472. package/native/third_party/JoltPhysics/Jolt/Physics/StateRecorder.h +0 -136
  473. package/native/third_party/JoltPhysics/Jolt/Physics/StateRecorderImpl.cpp +0 -90
  474. package/native/third_party/JoltPhysics/Jolt/Physics/StateRecorderImpl.h +0 -50
  475. package/native/third_party/JoltPhysics/Jolt/Physics/Vehicle/MotorcycleController.cpp +0 -306
  476. package/native/third_party/JoltPhysics/Jolt/Physics/Vehicle/MotorcycleController.h +0 -119
  477. package/native/third_party/JoltPhysics/Jolt/Physics/Vehicle/TrackedVehicleController.cpp +0 -547
  478. package/native/third_party/JoltPhysics/Jolt/Physics/Vehicle/TrackedVehicleController.h +0 -169
  479. package/native/third_party/JoltPhysics/Jolt/Physics/Vehicle/VehicleAntiRollBar.cpp +0 -33
  480. package/native/third_party/JoltPhysics/Jolt/Physics/Vehicle/VehicleAntiRollBar.h +0 -33
  481. package/native/third_party/JoltPhysics/Jolt/Physics/Vehicle/VehicleCollisionTester.cpp +0 -376
  482. package/native/third_party/JoltPhysics/Jolt/Physics/Vehicle/VehicleCollisionTester.h +0 -146
  483. package/native/third_party/JoltPhysics/Jolt/Physics/Vehicle/VehicleConstraint.cpp +0 -703
  484. package/native/third_party/JoltPhysics/Jolt/Physics/Vehicle/VehicleConstraint.h +0 -252
  485. package/native/third_party/JoltPhysics/Jolt/Physics/Vehicle/VehicleController.cpp +0 -17
  486. package/native/third_party/JoltPhysics/Jolt/Physics/Vehicle/VehicleController.h +0 -87
  487. package/native/third_party/JoltPhysics/Jolt/Physics/Vehicle/VehicleDifferential.cpp +0 -81
  488. package/native/third_party/JoltPhysics/Jolt/Physics/Vehicle/VehicleDifferential.h +0 -39
  489. package/native/third_party/JoltPhysics/Jolt/Physics/Vehicle/VehicleEngine.cpp +0 -122
  490. package/native/third_party/JoltPhysics/Jolt/Physics/Vehicle/VehicleEngine.h +0 -93
  491. package/native/third_party/JoltPhysics/Jolt/Physics/Vehicle/VehicleTrack.cpp +0 -52
  492. package/native/third_party/JoltPhysics/Jolt/Physics/Vehicle/VehicleTrack.h +0 -56
  493. package/native/third_party/JoltPhysics/Jolt/Physics/Vehicle/VehicleTransmission.cpp +0 -159
  494. package/native/third_party/JoltPhysics/Jolt/Physics/Vehicle/VehicleTransmission.h +0 -87
  495. package/native/third_party/JoltPhysics/Jolt/Physics/Vehicle/Wheel.cpp +0 -93
  496. package/native/third_party/JoltPhysics/Jolt/Physics/Vehicle/Wheel.h +0 -148
  497. package/native/third_party/JoltPhysics/Jolt/Physics/Vehicle/WheeledVehicleController.cpp +0 -866
  498. package/native/third_party/JoltPhysics/Jolt/Physics/Vehicle/WheeledVehicleController.h +0 -205
  499. package/native/third_party/JoltPhysics/Jolt/RegisterTypes.cpp +0 -204
  500. package/native/third_party/JoltPhysics/Jolt/RegisterTypes.h +0 -29
  501. package/native/third_party/JoltPhysics/Jolt/Renderer/DebugRenderer.cpp +0 -1107
  502. package/native/third_party/JoltPhysics/Jolt/Renderer/DebugRenderer.h +0 -383
  503. package/native/third_party/JoltPhysics/Jolt/Renderer/DebugRendererPlayback.cpp +0 -168
  504. package/native/third_party/JoltPhysics/Jolt/Renderer/DebugRendererPlayback.h +0 -48
  505. package/native/third_party/JoltPhysics/Jolt/Renderer/DebugRendererRecorder.cpp +0 -158
  506. package/native/third_party/JoltPhysics/Jolt/Renderer/DebugRendererRecorder.h +0 -130
  507. package/native/third_party/JoltPhysics/Jolt/Renderer/DebugRendererSimple.cpp +0 -80
  508. package/native/third_party/JoltPhysics/Jolt/Renderer/DebugRendererSimple.h +0 -88
  509. package/native/third_party/JoltPhysics/Jolt/Skeleton/SkeletalAnimation.cpp +0 -165
  510. package/native/third_party/JoltPhysics/Jolt/Skeleton/SkeletalAnimation.h +0 -91
  511. package/native/third_party/JoltPhysics/Jolt/Skeleton/Skeleton.cpp +0 -82
  512. package/native/third_party/JoltPhysics/Jolt/Skeleton/Skeleton.h +0 -72
  513. package/native/third_party/JoltPhysics/Jolt/Skeleton/SkeletonMapper.cpp +0 -237
  514. package/native/third_party/JoltPhysics/Jolt/Skeleton/SkeletonMapper.h +0 -145
  515. package/native/third_party/JoltPhysics/Jolt/Skeleton/SkeletonPose.cpp +0 -87
  516. package/native/third_party/JoltPhysics/Jolt/Skeleton/SkeletonPose.h +0 -82
  517. package/native/third_party/JoltPhysics/Jolt/TriangleSplitter/TriangleSplitter.cpp +0 -73
  518. package/native/third_party/JoltPhysics/Jolt/TriangleSplitter/TriangleSplitter.h +0 -84
  519. package/native/third_party/JoltPhysics/Jolt/TriangleSplitter/TriangleSplitterBinning.cpp +0 -139
  520. package/native/third_party/JoltPhysics/Jolt/TriangleSplitter/TriangleSplitterBinning.h +0 -52
  521. package/native/third_party/JoltPhysics/Jolt/TriangleSplitter/TriangleSplitterMean.cpp +0 -43
  522. package/native/third_party/JoltPhysics/Jolt/TriangleSplitter/TriangleSplitterMean.h +0 -28
  523. package/native/third_party/JoltPhysics/LICENSE +0 -7
  524. package/native/third_party/JoltPhysics/README.md +0 -173
  525. package/native/third_party/bloom_jolt/CMakeLists.txt +0 -87
  526. package/native/third_party/bloom_jolt/include/bloom_jolt.h +0 -519
  527. package/native/third_party/bloom_jolt/src/bloom_jolt.cpp +0 -1780
@@ -1,941 +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/HashCombine.h>
8
-
9
- // Create a std::hash/JPH::Hash for DVec3
10
- JPH_MAKE_HASHABLE(JPH::DVec3, t.GetX(), t.GetY(), t.GetZ())
11
-
12
- JPH_NAMESPACE_BEGIN
13
-
14
- DVec3::DVec3(Vec3Arg inRHS)
15
- {
16
- #if defined(JPH_USE_AVX)
17
- mValue = _mm256_cvtps_pd(inRHS.mValue);
18
- #elif defined(JPH_USE_SSE)
19
- mValue.mLow = _mm_cvtps_pd(inRHS.mValue);
20
- mValue.mHigh = _mm_cvtps_pd(_mm_shuffle_ps(inRHS.mValue, inRHS.mValue, _MM_SHUFFLE(2, 2, 2, 2)));
21
- #elif defined(JPH_USE_NEON)
22
- mValue.val[0] = vcvt_f64_f32(vget_low_f32(inRHS.mValue));
23
- mValue.val[1] = vcvt_high_f64_f32(inRHS.mValue);
24
- #else
25
- mF64[0] = (double)inRHS.GetX();
26
- mF64[1] = (double)inRHS.GetY();
27
- mF64[2] = (double)inRHS.GetZ();
28
- #ifdef JPH_FLOATING_POINT_EXCEPTIONS_ENABLED
29
- mF64[3] = mF64[2];
30
- #endif
31
- #endif
32
- }
33
-
34
- DVec3::DVec3(Vec4Arg inRHS) :
35
- DVec3(Vec3(inRHS))
36
- {
37
- }
38
-
39
- DVec3::DVec3(double inX, double inY, double inZ)
40
- {
41
- #if defined(JPH_USE_AVX)
42
- mValue = _mm256_set_pd(inZ, inZ, inY, inX); // Assure Z and W are the same
43
- #elif defined(JPH_USE_SSE)
44
- mValue.mLow = _mm_set_pd(inY, inX);
45
- mValue.mHigh = _mm_set1_pd(inZ);
46
- #elif defined(JPH_USE_NEON)
47
- mValue.val[0] = vcombine_f64(vcreate_f64(BitCast<uint64>(inX)), vcreate_f64(BitCast<uint64>(inY)));
48
- mValue.val[1] = vdupq_n_f64(inZ);
49
- #else
50
- mF64[0] = inX;
51
- mF64[1] = inY;
52
- mF64[2] = inZ;
53
- #ifdef JPH_FLOATING_POINT_EXCEPTIONS_ENABLED
54
- mF64[3] = mF64[2];
55
- #endif
56
- #endif
57
- }
58
-
59
- DVec3::DVec3(const Double3 &inV)
60
- {
61
- #if defined(JPH_USE_AVX)
62
- Type x = _mm256_castpd128_pd256(_mm_load_sd(&inV.x));
63
- Type y = _mm256_castpd128_pd256(_mm_load_sd(&inV.y));
64
- Type z = _mm256_broadcast_sd(&inV.z);
65
- Type xy = _mm256_unpacklo_pd(x, y);
66
- mValue = _mm256_blend_pd(xy, z, 0b1100); // Assure Z and W are the same
67
- #elif defined(JPH_USE_SSE)
68
- mValue.mLow = _mm_loadu_pd(&inV.x);
69
- mValue.mHigh = _mm_set1_pd(inV.z);
70
- #elif defined(JPH_USE_NEON)
71
- mValue.val[0] = vld1q_f64(&inV.x);
72
- mValue.val[1] = vdupq_n_f64(inV.z);
73
- #else
74
- mF64[0] = inV.x;
75
- mF64[1] = inV.y;
76
- mF64[2] = inV.z;
77
- #ifdef JPH_FLOATING_POINT_EXCEPTIONS_ENABLED
78
- mF64[3] = mF64[2];
79
- #endif
80
- #endif
81
- }
82
-
83
- void DVec3::CheckW() const
84
- {
85
- #ifdef JPH_FLOATING_POINT_EXCEPTIONS_ENABLED
86
- // Avoid asserts when both components are NaN
87
- JPH_ASSERT(reinterpret_cast<const uint64 *>(mF64)[2] == reinterpret_cast<const uint64 *>(mF64)[3]);
88
- #endif // JPH_FLOATING_POINT_EXCEPTIONS_ENABLED
89
- }
90
-
91
- /// Internal helper function that ensures that the Z component is replicated to the W component to prevent divisions by zero
92
- DVec3::Type DVec3::sFixW(TypeArg inValue)
93
- {
94
- #ifdef JPH_FLOATING_POINT_EXCEPTIONS_ENABLED
95
- #if defined(JPH_USE_AVX)
96
- return _mm256_shuffle_pd(inValue, inValue, 2);
97
- #elif defined(JPH_USE_SSE)
98
- Type value;
99
- value.mLow = inValue.mLow;
100
- value.mHigh = _mm_shuffle_pd(inValue.mHigh, inValue.mHigh, 0);
101
- return value;
102
- #elif defined(JPH_USE_NEON)
103
- Type value;
104
- value.val[0] = inValue.val[0];
105
- value.val[1] = vdupq_laneq_f64(inValue.val[1], 0);
106
- return value;
107
- #else
108
- Type value;
109
- value.mData[0] = inValue.mData[0];
110
- value.mData[1] = inValue.mData[1];
111
- value.mData[2] = inValue.mData[2];
112
- value.mData[3] = inValue.mData[2];
113
- return value;
114
- #endif
115
- #else
116
- return inValue;
117
- #endif // JPH_FLOATING_POINT_EXCEPTIONS_ENABLED
118
- }
119
-
120
- DVec3 DVec3::sZero()
121
- {
122
- #if defined(JPH_USE_AVX)
123
- return _mm256_setzero_pd();
124
- #elif defined(JPH_USE_SSE)
125
- __m128d zero = _mm_setzero_pd();
126
- return DVec3({ zero, zero });
127
- #elif defined(JPH_USE_NEON)
128
- float64x2_t zero = vdupq_n_f64(0.0);
129
- return DVec3({ zero, zero });
130
- #else
131
- return DVec3(0, 0, 0);
132
- #endif
133
- }
134
-
135
- DVec3 DVec3::sReplicate(double inV)
136
- {
137
- #if defined(JPH_USE_AVX)
138
- return _mm256_set1_pd(inV);
139
- #elif defined(JPH_USE_SSE)
140
- __m128d value = _mm_set1_pd(inV);
141
- return DVec3({ value, value });
142
- #elif defined(JPH_USE_NEON)
143
- float64x2_t value = vdupq_n_f64(inV);
144
- return DVec3({ value, value });
145
- #else
146
- return DVec3(inV, inV, inV);
147
- #endif
148
- }
149
-
150
- DVec3 DVec3::sOne()
151
- {
152
- return sReplicate(1.0);
153
- }
154
-
155
- DVec3 DVec3::sNaN()
156
- {
157
- return sReplicate(numeric_limits<double>::quiet_NaN());
158
- }
159
-
160
- DVec3 DVec3::sLoadDouble3Unsafe(const Double3 &inV)
161
- {
162
- #if defined(JPH_USE_AVX)
163
- Type v = _mm256_loadu_pd(&inV.x);
164
- #elif defined(JPH_USE_SSE)
165
- Type v;
166
- v.mLow = _mm_loadu_pd(&inV.x);
167
- v.mHigh = _mm_set1_pd(inV.z);
168
- #elif defined(JPH_USE_NEON)
169
- Type v = vld1q_f64_x2(&inV.x);
170
- #else
171
- Type v = { inV.x, inV.y, inV.z };
172
- #endif
173
- return sFixW(v);
174
- }
175
-
176
- void DVec3::StoreDouble3(Double3 *outV) const
177
- {
178
- outV->x = mF64[0];
179
- outV->y = mF64[1];
180
- outV->z = mF64[2];
181
- }
182
-
183
- DVec3::operator Vec3() const
184
- {
185
- #if defined(JPH_USE_AVX)
186
- return _mm256_cvtpd_ps(mValue);
187
- #elif defined(JPH_USE_SSE)
188
- __m128 low = _mm_cvtpd_ps(mValue.mLow);
189
- __m128 high = _mm_cvtpd_ps(mValue.mHigh);
190
- return _mm_shuffle_ps(low, high, _MM_SHUFFLE(1, 0, 1, 0));
191
- #elif defined(JPH_USE_NEON)
192
- return vcvt_high_f32_f64(vcvtx_f32_f64(mValue.val[0]), mValue.val[1]);
193
- #else
194
- return Vec3((float)GetX(), (float)GetY(), (float)GetZ());
195
- #endif
196
- }
197
-
198
- DVec3 DVec3::sMin(DVec3Arg inV1, DVec3Arg inV2)
199
- {
200
- #if defined(JPH_USE_AVX)
201
- return _mm256_min_pd(inV1.mValue, inV2.mValue);
202
- #elif defined(JPH_USE_SSE)
203
- return DVec3({ _mm_min_pd(inV1.mValue.mLow, inV2.mValue.mLow), _mm_min_pd(inV1.mValue.mHigh, inV2.mValue.mHigh) });
204
- #elif defined(JPH_USE_NEON)
205
- return DVec3({ vminq_f64(inV1.mValue.val[0], inV2.mValue.val[0]), vminq_f64(inV1.mValue.val[1], inV2.mValue.val[1]) });
206
- #else
207
- return DVec3(min(inV1.mF64[0], inV2.mF64[0]),
208
- min(inV1.mF64[1], inV2.mF64[1]),
209
- min(inV1.mF64[2], inV2.mF64[2]));
210
- #endif
211
- }
212
-
213
- DVec3 DVec3::sMax(DVec3Arg inV1, DVec3Arg inV2)
214
- {
215
- #if defined(JPH_USE_AVX)
216
- return _mm256_max_pd(inV1.mValue, inV2.mValue);
217
- #elif defined(JPH_USE_SSE)
218
- return DVec3({ _mm_max_pd(inV1.mValue.mLow, inV2.mValue.mLow), _mm_max_pd(inV1.mValue.mHigh, inV2.mValue.mHigh) });
219
- #elif defined(JPH_USE_NEON)
220
- return DVec3({ vmaxq_f64(inV1.mValue.val[0], inV2.mValue.val[0]), vmaxq_f64(inV1.mValue.val[1], inV2.mValue.val[1]) });
221
- #else
222
- return DVec3(max(inV1.mF64[0], inV2.mF64[0]),
223
- max(inV1.mF64[1], inV2.mF64[1]),
224
- max(inV1.mF64[2], inV2.mF64[2]));
225
- #endif
226
- }
227
-
228
- DVec3 DVec3::sClamp(DVec3Arg inV, DVec3Arg inMin, DVec3Arg inMax)
229
- {
230
- return sMax(sMin(inV, inMax), inMin);
231
- }
232
-
233
- DVec3 DVec3::sEquals(DVec3Arg inV1, DVec3Arg inV2)
234
- {
235
- #if defined(JPH_USE_AVX)
236
- return _mm256_cmp_pd(inV1.mValue, inV2.mValue, _CMP_EQ_OQ);
237
- #elif defined(JPH_USE_SSE)
238
- return DVec3({ _mm_cmpeq_pd(inV1.mValue.mLow, inV2.mValue.mLow), _mm_cmpeq_pd(inV1.mValue.mHigh, inV2.mValue.mHigh) });
239
- #elif defined(JPH_USE_NEON)
240
- return DVec3({ vreinterpretq_f64_u64(vceqq_f64(inV1.mValue.val[0], inV2.mValue.val[0])), vreinterpretq_f64_u64(vceqq_f64(inV1.mValue.val[1], inV2.mValue.val[1])) });
241
- #else
242
- return DVec3(inV1.mF64[0] == inV2.mF64[0]? cTrue : cFalse,
243
- inV1.mF64[1] == inV2.mF64[1]? cTrue : cFalse,
244
- inV1.mF64[2] == inV2.mF64[2]? cTrue : cFalse);
245
- #endif
246
- }
247
-
248
- DVec3 DVec3::sLess(DVec3Arg inV1, DVec3Arg inV2)
249
- {
250
- #if defined(JPH_USE_AVX)
251
- return _mm256_cmp_pd(inV1.mValue, inV2.mValue, _CMP_LT_OQ);
252
- #elif defined(JPH_USE_SSE)
253
- return DVec3({ _mm_cmplt_pd(inV1.mValue.mLow, inV2.mValue.mLow), _mm_cmplt_pd(inV1.mValue.mHigh, inV2.mValue.mHigh) });
254
- #elif defined(JPH_USE_NEON)
255
- return DVec3({ vreinterpretq_f64_u64(vcltq_f64(inV1.mValue.val[0], inV2.mValue.val[0])), vreinterpretq_f64_u64(vcltq_f64(inV1.mValue.val[1], inV2.mValue.val[1])) });
256
- #else
257
- return DVec3(inV1.mF64[0] < inV2.mF64[0]? cTrue : cFalse,
258
- inV1.mF64[1] < inV2.mF64[1]? cTrue : cFalse,
259
- inV1.mF64[2] < inV2.mF64[2]? cTrue : cFalse);
260
- #endif
261
- }
262
-
263
- DVec3 DVec3::sLessOrEqual(DVec3Arg inV1, DVec3Arg inV2)
264
- {
265
- #if defined(JPH_USE_AVX)
266
- return _mm256_cmp_pd(inV1.mValue, inV2.mValue, _CMP_LE_OQ);
267
- #elif defined(JPH_USE_SSE)
268
- return DVec3({ _mm_cmple_pd(inV1.mValue.mLow, inV2.mValue.mLow), _mm_cmple_pd(inV1.mValue.mHigh, inV2.mValue.mHigh) });
269
- #elif defined(JPH_USE_NEON)
270
- return DVec3({ vreinterpretq_f64_u64(vcleq_f64(inV1.mValue.val[0], inV2.mValue.val[0])), vreinterpretq_f64_u64(vcleq_f64(inV1.mValue.val[1], inV2.mValue.val[1])) });
271
- #else
272
- return DVec3(inV1.mF64[0] <= inV2.mF64[0]? cTrue : cFalse,
273
- inV1.mF64[1] <= inV2.mF64[1]? cTrue : cFalse,
274
- inV1.mF64[2] <= inV2.mF64[2]? cTrue : cFalse);
275
- #endif
276
- }
277
-
278
- DVec3 DVec3::sGreater(DVec3Arg inV1, DVec3Arg inV2)
279
- {
280
- #if defined(JPH_USE_AVX)
281
- return _mm256_cmp_pd(inV1.mValue, inV2.mValue, _CMP_GT_OQ);
282
- #elif defined(JPH_USE_SSE)
283
- return DVec3({ _mm_cmpgt_pd(inV1.mValue.mLow, inV2.mValue.mLow), _mm_cmpgt_pd(inV1.mValue.mHigh, inV2.mValue.mHigh) });
284
- #elif defined(JPH_USE_NEON)
285
- return DVec3({ vreinterpretq_f64_u64(vcgtq_f64(inV1.mValue.val[0], inV2.mValue.val[0])), vreinterpretq_f64_u64(vcgtq_f64(inV1.mValue.val[1], inV2.mValue.val[1])) });
286
- #else
287
- return DVec3(inV1.mF64[0] > inV2.mF64[0]? cTrue : cFalse,
288
- inV1.mF64[1] > inV2.mF64[1]? cTrue : cFalse,
289
- inV1.mF64[2] > inV2.mF64[2]? cTrue : cFalse);
290
- #endif
291
- }
292
-
293
- DVec3 DVec3::sGreaterOrEqual(DVec3Arg inV1, DVec3Arg inV2)
294
- {
295
- #if defined(JPH_USE_AVX)
296
- return _mm256_cmp_pd(inV1.mValue, inV2.mValue, _CMP_GE_OQ);
297
- #elif defined(JPH_USE_SSE)
298
- return DVec3({ _mm_cmpge_pd(inV1.mValue.mLow, inV2.mValue.mLow), _mm_cmpge_pd(inV1.mValue.mHigh, inV2.mValue.mHigh) });
299
- #elif defined(JPH_USE_NEON)
300
- return DVec3({ vreinterpretq_f64_u64(vcgeq_f64(inV1.mValue.val[0], inV2.mValue.val[0])), vreinterpretq_f64_u64(vcgeq_f64(inV1.mValue.val[1], inV2.mValue.val[1])) });
301
- #else
302
- return DVec3(inV1.mF64[0] >= inV2.mF64[0]? cTrue : cFalse,
303
- inV1.mF64[1] >= inV2.mF64[1]? cTrue : cFalse,
304
- inV1.mF64[2] >= inV2.mF64[2]? cTrue : cFalse);
305
- #endif
306
- }
307
-
308
- DVec3 DVec3::sFusedMultiplyAdd(DVec3Arg inMul1, DVec3Arg inMul2, DVec3Arg inAdd)
309
- {
310
- #if defined(JPH_USE_AVX)
311
- #ifdef JPH_USE_FMADD
312
- return _mm256_fmadd_pd(inMul1.mValue, inMul2.mValue, inAdd.mValue);
313
- #else
314
- return _mm256_add_pd(_mm256_mul_pd(inMul1.mValue, inMul2.mValue), inAdd.mValue);
315
- #endif
316
- #elif defined(JPH_USE_NEON)
317
- return DVec3({ vmlaq_f64(inAdd.mValue.val[0], inMul1.mValue.val[0], inMul2.mValue.val[0]), vmlaq_f64(inAdd.mValue.val[1], inMul1.mValue.val[1], inMul2.mValue.val[1]) });
318
- #else
319
- return inMul1 * inMul2 + inAdd;
320
- #endif
321
- }
322
-
323
- DVec3 DVec3::sSelect(DVec3Arg inNotSet, DVec3Arg inSet, DVec3Arg inControl)
324
- {
325
- #if defined(JPH_USE_AVX)
326
- return _mm256_blendv_pd(inNotSet.mValue, inSet.mValue, inControl.mValue);
327
- #elif defined(JPH_USE_SSE4_1)
328
- Type v = { _mm_blendv_pd(inNotSet.mValue.mLow, inSet.mValue.mLow, inControl.mValue.mLow), _mm_blendv_pd(inNotSet.mValue.mHigh, inSet.mValue.mHigh, inControl.mValue.mHigh) };
329
- return sFixW(v);
330
- #elif defined(JPH_USE_NEON)
331
- Type v = { vbslq_f64(vreinterpretq_u64_s64(vshrq_n_s64(vreinterpretq_s64_f64(inControl.mValue.val[0]), 63)), inSet.mValue.val[0], inNotSet.mValue.val[0]),
332
- vbslq_f64(vreinterpretq_u64_s64(vshrq_n_s64(vreinterpretq_s64_f64(inControl.mValue.val[1]), 63)), inSet.mValue.val[1], inNotSet.mValue.val[1]) };
333
- return sFixW(v);
334
- #else
335
- DVec3 result;
336
- for (int i = 0; i < 3; i++)
337
- result.mF64[i] = (BitCast<uint64>(inControl.mF64[i]) & (uint64(1) << 63))? inSet.mF64[i] : inNotSet.mF64[i];
338
- #ifdef JPH_FLOATING_POINT_EXCEPTIONS_ENABLED
339
- result.mF64[3] = result.mF64[2];
340
- #endif // JPH_FLOATING_POINT_EXCEPTIONS_ENABLED
341
- return result;
342
- #endif
343
- }
344
-
345
- DVec3 DVec3::sOr(DVec3Arg inV1, DVec3Arg inV2)
346
- {
347
- #if defined(JPH_USE_AVX)
348
- return _mm256_or_pd(inV1.mValue, inV2.mValue);
349
- #elif defined(JPH_USE_SSE)
350
- return DVec3({ _mm_or_pd(inV1.mValue.mLow, inV2.mValue.mLow), _mm_or_pd(inV1.mValue.mHigh, inV2.mValue.mHigh) });
351
- #elif defined(JPH_USE_NEON)
352
- return DVec3({ vreinterpretq_f64_u64(vorrq_u64(vreinterpretq_u64_f64(inV1.mValue.val[0]), vreinterpretq_u64_f64(inV2.mValue.val[0]))),
353
- vreinterpretq_f64_u64(vorrq_u64(vreinterpretq_u64_f64(inV1.mValue.val[1]), vreinterpretq_u64_f64(inV2.mValue.val[1]))) });
354
- #else
355
- return DVec3(BitCast<double>(BitCast<uint64>(inV1.mF64[0]) | BitCast<uint64>(inV2.mF64[0])),
356
- BitCast<double>(BitCast<uint64>(inV1.mF64[1]) | BitCast<uint64>(inV2.mF64[1])),
357
- BitCast<double>(BitCast<uint64>(inV1.mF64[2]) | BitCast<uint64>(inV2.mF64[2])));
358
- #endif
359
- }
360
-
361
- DVec3 DVec3::sXor(DVec3Arg inV1, DVec3Arg inV2)
362
- {
363
- #if defined(JPH_USE_AVX)
364
- return _mm256_xor_pd(inV1.mValue, inV2.mValue);
365
- #elif defined(JPH_USE_SSE)
366
- return DVec3({ _mm_xor_pd(inV1.mValue.mLow, inV2.mValue.mLow), _mm_xor_pd(inV1.mValue.mHigh, inV2.mValue.mHigh) });
367
- #elif defined(JPH_USE_NEON)
368
- return DVec3({ vreinterpretq_f64_u64(veorq_u64(vreinterpretq_u64_f64(inV1.mValue.val[0]), vreinterpretq_u64_f64(inV2.mValue.val[0]))),
369
- vreinterpretq_f64_u64(veorq_u64(vreinterpretq_u64_f64(inV1.mValue.val[1]), vreinterpretq_u64_f64(inV2.mValue.val[1]))) });
370
- #else
371
- return DVec3(BitCast<double>(BitCast<uint64>(inV1.mF64[0]) ^ BitCast<uint64>(inV2.mF64[0])),
372
- BitCast<double>(BitCast<uint64>(inV1.mF64[1]) ^ BitCast<uint64>(inV2.mF64[1])),
373
- BitCast<double>(BitCast<uint64>(inV1.mF64[2]) ^ BitCast<uint64>(inV2.mF64[2])));
374
- #endif
375
- }
376
-
377
- DVec3 DVec3::sAnd(DVec3Arg inV1, DVec3Arg inV2)
378
- {
379
- #if defined(JPH_USE_AVX)
380
- return _mm256_and_pd(inV1.mValue, inV2.mValue);
381
- #elif defined(JPH_USE_SSE)
382
- return DVec3({ _mm_and_pd(inV1.mValue.mLow, inV2.mValue.mLow), _mm_and_pd(inV1.mValue.mHigh, inV2.mValue.mHigh) });
383
- #elif defined(JPH_USE_NEON)
384
- return DVec3({ vreinterpretq_f64_u64(vandq_u64(vreinterpretq_u64_f64(inV1.mValue.val[0]), vreinterpretq_u64_f64(inV2.mValue.val[0]))),
385
- vreinterpretq_f64_u64(vandq_u64(vreinterpretq_u64_f64(inV1.mValue.val[1]), vreinterpretq_u64_f64(inV2.mValue.val[1]))) });
386
- #else
387
- return DVec3(BitCast<double>(BitCast<uint64>(inV1.mF64[0]) & BitCast<uint64>(inV2.mF64[0])),
388
- BitCast<double>(BitCast<uint64>(inV1.mF64[1]) & BitCast<uint64>(inV2.mF64[1])),
389
- BitCast<double>(BitCast<uint64>(inV1.mF64[2]) & BitCast<uint64>(inV2.mF64[2])));
390
- #endif
391
- }
392
-
393
- int DVec3::GetTrues() const
394
- {
395
- #if defined(JPH_USE_AVX)
396
- return _mm256_movemask_pd(mValue) & 0x7;
397
- #elif defined(JPH_USE_SSE)
398
- return (_mm_movemask_pd(mValue.mLow) + (_mm_movemask_pd(mValue.mHigh) << 2)) & 0x7;
399
- #else
400
- return int((BitCast<uint64>(mF64[0]) >> 63) | ((BitCast<uint64>(mF64[1]) >> 63) << 1) | ((BitCast<uint64>(mF64[2]) >> 63) << 2));
401
- #endif
402
- }
403
-
404
- bool DVec3::TestAnyTrue() const
405
- {
406
- return GetTrues() != 0;
407
- }
408
-
409
- bool DVec3::TestAllTrue() const
410
- {
411
- return GetTrues() == 0x7;
412
- }
413
-
414
- bool DVec3::operator == (DVec3Arg inV2) const
415
- {
416
- return sEquals(*this, inV2).TestAllTrue();
417
- }
418
-
419
- bool DVec3::IsClose(DVec3Arg inV2, double inMaxDistSq) const
420
- {
421
- return (inV2 - *this).LengthSq() <= inMaxDistSq;
422
- }
423
-
424
- bool DVec3::IsNearZero(double inMaxDistSq) const
425
- {
426
- return LengthSq() <= inMaxDistSq;
427
- }
428
-
429
- DVec3 DVec3::operator * (DVec3Arg inV2) const
430
- {
431
- #if defined(JPH_USE_AVX)
432
- return _mm256_mul_pd(mValue, inV2.mValue);
433
- #elif defined(JPH_USE_SSE)
434
- return DVec3({ _mm_mul_pd(mValue.mLow, inV2.mValue.mLow), _mm_mul_pd(mValue.mHigh, inV2.mValue.mHigh) });
435
- #elif defined(JPH_USE_NEON)
436
- return DVec3({ vmulq_f64(mValue.val[0], inV2.mValue.val[0]), vmulq_f64(mValue.val[1], inV2.mValue.val[1]) });
437
- #else
438
- return DVec3(mF64[0] * inV2.mF64[0], mF64[1] * inV2.mF64[1], mF64[2] * inV2.mF64[2]);
439
- #endif
440
- }
441
-
442
- DVec3 DVec3::operator * (double inV2) const
443
- {
444
- #if defined(JPH_USE_AVX)
445
- return _mm256_mul_pd(mValue, _mm256_set1_pd(inV2));
446
- #elif defined(JPH_USE_SSE)
447
- __m128d v = _mm_set1_pd(inV2);
448
- return DVec3({ _mm_mul_pd(mValue.mLow, v), _mm_mul_pd(mValue.mHigh, v) });
449
- #elif defined(JPH_USE_NEON)
450
- return DVec3({ vmulq_n_f64(mValue.val[0], inV2), vmulq_n_f64(mValue.val[1], inV2) });
451
- #else
452
- return DVec3(mF64[0] * inV2, mF64[1] * inV2, mF64[2] * inV2);
453
- #endif
454
- }
455
-
456
- DVec3 operator * (double inV1, DVec3Arg inV2)
457
- {
458
- #if defined(JPH_USE_AVX)
459
- return _mm256_mul_pd(_mm256_set1_pd(inV1), inV2.mValue);
460
- #elif defined(JPH_USE_SSE)
461
- __m128d v = _mm_set1_pd(inV1);
462
- return DVec3({ _mm_mul_pd(v, inV2.mValue.mLow), _mm_mul_pd(v, inV2.mValue.mHigh) });
463
- #elif defined(JPH_USE_NEON)
464
- return DVec3({ vmulq_n_f64(inV2.mValue.val[0], inV1), vmulq_n_f64(inV2.mValue.val[1], inV1) });
465
- #else
466
- return DVec3(inV1 * inV2.mF64[0], inV1 * inV2.mF64[1], inV1 * inV2.mF64[2]);
467
- #endif
468
- }
469
-
470
- DVec3 DVec3::operator / (double inV2) const
471
- {
472
- #if defined(JPH_USE_AVX)
473
- return _mm256_div_pd(mValue, _mm256_set1_pd(inV2));
474
- #elif defined(JPH_USE_SSE)
475
- __m128d v = _mm_set1_pd(inV2);
476
- return DVec3({ _mm_div_pd(mValue.mLow, v), _mm_div_pd(mValue.mHigh, v) });
477
- #elif defined(JPH_USE_NEON)
478
- float64x2_t v = vdupq_n_f64(inV2);
479
- return DVec3({ vdivq_f64(mValue.val[0], v), vdivq_f64(mValue.val[1], v) });
480
- #else
481
- return DVec3(mF64[0] / inV2, mF64[1] / inV2, mF64[2] / inV2);
482
- #endif
483
- }
484
-
485
- DVec3 &DVec3::operator *= (double inV2)
486
- {
487
- #if defined(JPH_USE_AVX)
488
- mValue = _mm256_mul_pd(mValue, _mm256_set1_pd(inV2));
489
- #elif defined(JPH_USE_SSE)
490
- __m128d v = _mm_set1_pd(inV2);
491
- mValue.mLow = _mm_mul_pd(mValue.mLow, v);
492
- mValue.mHigh = _mm_mul_pd(mValue.mHigh, v);
493
- #elif defined(JPH_USE_NEON)
494
- mValue.val[0] = vmulq_n_f64(mValue.val[0], inV2);
495
- mValue.val[1] = vmulq_n_f64(mValue.val[1], inV2);
496
- #else
497
- for (int i = 0; i < 3; ++i)
498
- mF64[i] *= inV2;
499
- #ifdef JPH_FLOATING_POINT_EXCEPTIONS_ENABLED
500
- mF64[3] = mF64[2];
501
- #endif
502
- #endif
503
- return *this;
504
- }
505
-
506
- DVec3 &DVec3::operator *= (DVec3Arg inV2)
507
- {
508
- #if defined(JPH_USE_AVX)
509
- mValue = _mm256_mul_pd(mValue, inV2.mValue);
510
- #elif defined(JPH_USE_SSE)
511
- mValue.mLow = _mm_mul_pd(mValue.mLow, inV2.mValue.mLow);
512
- mValue.mHigh = _mm_mul_pd(mValue.mHigh, inV2.mValue.mHigh);
513
- #elif defined(JPH_USE_NEON)
514
- mValue.val[0] = vmulq_f64(mValue.val[0], inV2.mValue.val[0]);
515
- mValue.val[1] = vmulq_f64(mValue.val[1], inV2.mValue.val[1]);
516
- #else
517
- for (int i = 0; i < 3; ++i)
518
- mF64[i] *= inV2.mF64[i];
519
- #ifdef JPH_FLOATING_POINT_EXCEPTIONS_ENABLED
520
- mF64[3] = mF64[2];
521
- #endif
522
- #endif
523
- return *this;
524
- }
525
-
526
- DVec3 &DVec3::operator /= (double inV2)
527
- {
528
- #if defined(JPH_USE_AVX)
529
- mValue = _mm256_div_pd(mValue, _mm256_set1_pd(inV2));
530
- #elif defined(JPH_USE_SSE)
531
- __m128d v = _mm_set1_pd(inV2);
532
- mValue.mLow = _mm_div_pd(mValue.mLow, v);
533
- mValue.mHigh = _mm_div_pd(mValue.mHigh, v);
534
- #elif defined(JPH_USE_NEON)
535
- float64x2_t v = vdupq_n_f64(inV2);
536
- mValue.val[0] = vdivq_f64(mValue.val[0], v);
537
- mValue.val[1] = vdivq_f64(mValue.val[1], v);
538
- #else
539
- for (int i = 0; i < 3; ++i)
540
- mF64[i] /= inV2;
541
- #ifdef JPH_FLOATING_POINT_EXCEPTIONS_ENABLED
542
- mF64[3] = mF64[2];
543
- #endif
544
- #endif
545
- return *this;
546
- }
547
-
548
- DVec3 DVec3::operator + (Vec3Arg inV2) const
549
- {
550
- #if defined(JPH_USE_AVX)
551
- return _mm256_add_pd(mValue, _mm256_cvtps_pd(inV2.mValue));
552
- #elif defined(JPH_USE_SSE)
553
- return DVec3({ _mm_add_pd(mValue.mLow, _mm_cvtps_pd(inV2.mValue)), _mm_add_pd(mValue.mHigh, _mm_cvtps_pd(_mm_shuffle_ps(inV2.mValue, inV2.mValue, _MM_SHUFFLE(2, 2, 2, 2)))) });
554
- #elif defined(JPH_USE_NEON)
555
- return DVec3({ vaddq_f64(mValue.val[0], vcvt_f64_f32(vget_low_f32(inV2.mValue))), vaddq_f64(mValue.val[1], vcvt_high_f64_f32(inV2.mValue)) });
556
- #else
557
- return DVec3(mF64[0] + inV2.mF32[0], mF64[1] + inV2.mF32[1], mF64[2] + inV2.mF32[2]);
558
- #endif
559
- }
560
-
561
- DVec3 DVec3::operator + (DVec3Arg inV2) const
562
- {
563
- #if defined(JPH_USE_AVX)
564
- return _mm256_add_pd(mValue, inV2.mValue);
565
- #elif defined(JPH_USE_SSE)
566
- return DVec3({ _mm_add_pd(mValue.mLow, inV2.mValue.mLow), _mm_add_pd(mValue.mHigh, inV2.mValue.mHigh) });
567
- #elif defined(JPH_USE_NEON)
568
- return DVec3({ vaddq_f64(mValue.val[0], inV2.mValue.val[0]), vaddq_f64(mValue.val[1], inV2.mValue.val[1]) });
569
- #else
570
- return DVec3(mF64[0] + inV2.mF64[0], mF64[1] + inV2.mF64[1], mF64[2] + inV2.mF64[2]);
571
- #endif
572
- }
573
-
574
- DVec3 &DVec3::operator += (Vec3Arg inV2)
575
- {
576
- #if defined(JPH_USE_AVX)
577
- mValue = _mm256_add_pd(mValue, _mm256_cvtps_pd(inV2.mValue));
578
- #elif defined(JPH_USE_SSE)
579
- mValue.mLow = _mm_add_pd(mValue.mLow, _mm_cvtps_pd(inV2.mValue));
580
- mValue.mHigh = _mm_add_pd(mValue.mHigh, _mm_cvtps_pd(_mm_shuffle_ps(inV2.mValue, inV2.mValue, _MM_SHUFFLE(2, 2, 2, 2))));
581
- #elif defined(JPH_USE_NEON)
582
- mValue.val[0] = vaddq_f64(mValue.val[0], vcvt_f64_f32(vget_low_f32(inV2.mValue)));
583
- mValue.val[1] = vaddq_f64(mValue.val[1], vcvt_high_f64_f32(inV2.mValue));
584
- #else
585
- for (int i = 0; i < 3; ++i)
586
- mF64[i] += inV2.mF32[i];
587
- #ifdef JPH_FLOATING_POINT_EXCEPTIONS_ENABLED
588
- mF64[3] = mF64[2];
589
- #endif
590
- #endif
591
- return *this;
592
- }
593
-
594
- DVec3 &DVec3::operator += (DVec3Arg inV2)
595
- {
596
- #if defined(JPH_USE_AVX)
597
- mValue = _mm256_add_pd(mValue, inV2.mValue);
598
- #elif defined(JPH_USE_SSE)
599
- mValue.mLow = _mm_add_pd(mValue.mLow, inV2.mValue.mLow);
600
- mValue.mHigh = _mm_add_pd(mValue.mHigh, inV2.mValue.mHigh);
601
- #elif defined(JPH_USE_NEON)
602
- mValue.val[0] = vaddq_f64(mValue.val[0], inV2.mValue.val[0]);
603
- mValue.val[1] = vaddq_f64(mValue.val[1], inV2.mValue.val[1]);
604
- #else
605
- for (int i = 0; i < 3; ++i)
606
- mF64[i] += inV2.mF64[i];
607
- #ifdef JPH_FLOATING_POINT_EXCEPTIONS_ENABLED
608
- mF64[3] = mF64[2];
609
- #endif
610
- #endif
611
- return *this;
612
- }
613
-
614
- DVec3 DVec3::operator - () const
615
- {
616
- #if defined(JPH_USE_AVX)
617
- return _mm256_sub_pd(_mm256_setzero_pd(), mValue);
618
- #elif defined(JPH_USE_SSE)
619
- __m128d zero = _mm_setzero_pd();
620
- return DVec3({ _mm_sub_pd(zero, mValue.mLow), _mm_sub_pd(zero, mValue.mHigh) });
621
- #elif defined(JPH_USE_NEON)
622
- #ifdef JPH_CROSS_PLATFORM_DETERMINISTIC
623
- float64x2_t zero = vdupq_n_f64(0);
624
- return DVec3({ vsubq_f64(zero, mValue.val[0]), vsubq_f64(zero, mValue.val[1]) });
625
- #else
626
- return DVec3({ vnegq_f64(mValue.val[0]), vnegq_f64(mValue.val[1]) });
627
- #endif
628
- #else
629
- #ifdef JPH_CROSS_PLATFORM_DETERMINISTIC
630
- return DVec3(0.0 - mF64[0], 0.0 - mF64[1], 0.0 - mF64[2]);
631
- #else
632
- return DVec3(-mF64[0], -mF64[1], -mF64[2]);
633
- #endif
634
- #endif
635
- }
636
-
637
- DVec3 DVec3::operator - (Vec3Arg inV2) const
638
- {
639
- #if defined(JPH_USE_AVX)
640
- return _mm256_sub_pd(mValue, _mm256_cvtps_pd(inV2.mValue));
641
- #elif defined(JPH_USE_SSE)
642
- return DVec3({ _mm_sub_pd(mValue.mLow, _mm_cvtps_pd(inV2.mValue)), _mm_sub_pd(mValue.mHigh, _mm_cvtps_pd(_mm_shuffle_ps(inV2.mValue, inV2.mValue, _MM_SHUFFLE(2, 2, 2, 2)))) });
643
- #elif defined(JPH_USE_NEON)
644
- return DVec3({ vsubq_f64(mValue.val[0], vcvt_f64_f32(vget_low_f32(inV2.mValue))), vsubq_f64(mValue.val[1], vcvt_high_f64_f32(inV2.mValue)) });
645
- #else
646
- return DVec3(mF64[0] - inV2.mF32[0], mF64[1] - inV2.mF32[1], mF64[2] - inV2.mF32[2]);
647
- #endif
648
- }
649
-
650
- DVec3 DVec3::operator - (DVec3Arg inV2) const
651
- {
652
- #if defined(JPH_USE_AVX)
653
- return _mm256_sub_pd(mValue, inV2.mValue);
654
- #elif defined(JPH_USE_SSE)
655
- return DVec3({ _mm_sub_pd(mValue.mLow, inV2.mValue.mLow), _mm_sub_pd(mValue.mHigh, inV2.mValue.mHigh) });
656
- #elif defined(JPH_USE_NEON)
657
- return DVec3({ vsubq_f64(mValue.val[0], inV2.mValue.val[0]), vsubq_f64(mValue.val[1], inV2.mValue.val[1]) });
658
- #else
659
- return DVec3(mF64[0] - inV2.mF64[0], mF64[1] - inV2.mF64[1], mF64[2] - inV2.mF64[2]);
660
- #endif
661
- }
662
-
663
- DVec3 &DVec3::operator -= (Vec3Arg inV2)
664
- {
665
- #if defined(JPH_USE_AVX)
666
- mValue = _mm256_sub_pd(mValue, _mm256_cvtps_pd(inV2.mValue));
667
- #elif defined(JPH_USE_SSE)
668
- mValue.mLow = _mm_sub_pd(mValue.mLow, _mm_cvtps_pd(inV2.mValue));
669
- mValue.mHigh = _mm_sub_pd(mValue.mHigh, _mm_cvtps_pd(_mm_shuffle_ps(inV2.mValue, inV2.mValue, _MM_SHUFFLE(2, 2, 2, 2))));
670
- #elif defined(JPH_USE_NEON)
671
- mValue.val[0] = vsubq_f64(mValue.val[0], vcvt_f64_f32(vget_low_f32(inV2.mValue)));
672
- mValue.val[1] = vsubq_f64(mValue.val[1], vcvt_high_f64_f32(inV2.mValue));
673
- #else
674
- for (int i = 0; i < 3; ++i)
675
- mF64[i] -= inV2.mF32[i];
676
- #ifdef JPH_FLOATING_POINT_EXCEPTIONS_ENABLED
677
- mF64[3] = mF64[2];
678
- #endif
679
- #endif
680
- return *this;
681
- }
682
-
683
- DVec3 &DVec3::operator -= (DVec3Arg inV2)
684
- {
685
- #if defined(JPH_USE_AVX)
686
- mValue = _mm256_sub_pd(mValue, inV2.mValue);
687
- #elif defined(JPH_USE_SSE)
688
- mValue.mLow = _mm_sub_pd(mValue.mLow, inV2.mValue.mLow);
689
- mValue.mHigh = _mm_sub_pd(mValue.mHigh, inV2.mValue.mHigh);
690
- #elif defined(JPH_USE_NEON)
691
- mValue.val[0] = vsubq_f64(mValue.val[0], inV2.mValue.val[0]);
692
- mValue.val[1] = vsubq_f64(mValue.val[1], inV2.mValue.val[1]);
693
- #else
694
- for (int i = 0; i < 3; ++i)
695
- mF64[i] -= inV2.mF64[i];
696
- #ifdef JPH_FLOATING_POINT_EXCEPTIONS_ENABLED
697
- mF64[3] = mF64[2];
698
- #endif
699
- #endif
700
- return *this;
701
- }
702
-
703
- DVec3 DVec3::operator / (DVec3Arg inV2) const
704
- {
705
- inV2.CheckW();
706
- #if defined(JPH_USE_AVX)
707
- return _mm256_div_pd(mValue, inV2.mValue);
708
- #elif defined(JPH_USE_SSE)
709
- return DVec3({ _mm_div_pd(mValue.mLow, inV2.mValue.mLow), _mm_div_pd(mValue.mHigh, inV2.mValue.mHigh) });
710
- #elif defined(JPH_USE_NEON)
711
- return DVec3({ vdivq_f64(mValue.val[0], inV2.mValue.val[0]), vdivq_f64(mValue.val[1], inV2.mValue.val[1]) });
712
- #else
713
- return DVec3(mF64[0] / inV2.mF64[0], mF64[1] / inV2.mF64[1], mF64[2] / inV2.mF64[2]);
714
- #endif
715
- }
716
-
717
- DVec3 DVec3::Abs() const
718
- {
719
- #if defined(JPH_USE_AVX512)
720
- return _mm256_range_pd(mValue, mValue, 0b1000);
721
- #elif defined(JPH_USE_AVX)
722
- return _mm256_max_pd(_mm256_sub_pd(_mm256_setzero_pd(), mValue), mValue);
723
- #elif defined(JPH_USE_SSE)
724
- __m128d zero = _mm_setzero_pd();
725
- return DVec3({ _mm_max_pd(_mm_sub_pd(zero, mValue.mLow), mValue.mLow), _mm_max_pd(_mm_sub_pd(zero, mValue.mHigh), mValue.mHigh) });
726
- #elif defined(JPH_USE_NEON)
727
- return DVec3({ vabsq_f64(mValue.val[0]), vabsq_f64(mValue.val[1]) });
728
- #else
729
- return DVec3(abs(mF64[0]), abs(mF64[1]), abs(mF64[2]));
730
- #endif
731
- }
732
-
733
- DVec3 DVec3::Reciprocal() const
734
- {
735
- return sOne() / mValue;
736
- }
737
-
738
- DVec3 DVec3::Cross(DVec3Arg inV2) const
739
- {
740
- #if defined(JPH_USE_AVX2)
741
- __m256d t1 = _mm256_permute4x64_pd(inV2.mValue, _MM_SHUFFLE(0, 0, 2, 1)); // Assure Z and W are the same
742
- t1 = _mm256_mul_pd(t1, mValue);
743
- __m256d t2 = _mm256_permute4x64_pd(mValue, _MM_SHUFFLE(0, 0, 2, 1)); // Assure Z and W are the same
744
- t2 = _mm256_mul_pd(t2, inV2.mValue);
745
- __m256d t3 = _mm256_sub_pd(t1, t2);
746
- return _mm256_permute4x64_pd(t3, _MM_SHUFFLE(0, 0, 2, 1)); // Assure Z and W are the same
747
- #else
748
- return DVec3(mF64[1] * inV2.mF64[2] - mF64[2] * inV2.mF64[1],
749
- mF64[2] * inV2.mF64[0] - mF64[0] * inV2.mF64[2],
750
- mF64[0] * inV2.mF64[1] - mF64[1] * inV2.mF64[0]);
751
- #endif
752
- }
753
-
754
- double DVec3::Dot(DVec3Arg inV2) const
755
- {
756
- #if defined(JPH_USE_AVX)
757
- __m256d mul = _mm256_mul_pd(mValue, inV2.mValue);
758
- __m128d xy = _mm256_castpd256_pd128(mul);
759
- __m128d yx = _mm_shuffle_pd(xy, xy, 1);
760
- __m128d sum = _mm_add_pd(xy, yx);
761
- __m128d zw = _mm256_extractf128_pd(mul, 1);
762
- sum = _mm_add_pd(sum, zw);
763
- return _mm_cvtsd_f64(sum);
764
- #elif defined(JPH_USE_SSE)
765
- __m128d xy = _mm_mul_pd(mValue.mLow, inV2.mValue.mLow);
766
- __m128d yx = _mm_shuffle_pd(xy, xy, 1);
767
- __m128d sum = _mm_add_pd(xy, yx);
768
- __m128d z = _mm_mul_sd(mValue.mHigh, inV2.mValue.mHigh);
769
- sum = _mm_add_pd(sum, z);
770
- return _mm_cvtsd_f64(sum);
771
- #elif defined(JPH_USE_NEON)
772
- float64x2_t mul_low = vmulq_f64(mValue.val[0], inV2.mValue.val[0]);
773
- float64x2_t mul_high = vmulq_f64(mValue.val[1], inV2.mValue.val[1]);
774
- return vaddvq_f64(mul_low) + vgetq_lane_f64(mul_high, 0);
775
- #else
776
- double dot = 0.0;
777
- for (int i = 0; i < 3; i++)
778
- dot += mF64[i] * inV2.mF64[i];
779
- return dot;
780
- #endif
781
- }
782
-
783
- double DVec3::LengthSq() const
784
- {
785
- return Dot(*this);
786
- }
787
-
788
- DVec3 DVec3::Sqrt() const
789
- {
790
- #if defined(JPH_USE_AVX)
791
- return _mm256_sqrt_pd(mValue);
792
- #elif defined(JPH_USE_SSE)
793
- return DVec3({ _mm_sqrt_pd(mValue.mLow), _mm_sqrt_pd(mValue.mHigh) });
794
- #elif defined(JPH_USE_NEON)
795
- return DVec3({ vsqrtq_f64(mValue.val[0]), vsqrtq_f64(mValue.val[1]) });
796
- #else
797
- return DVec3(sqrt(mF64[0]), sqrt(mF64[1]), sqrt(mF64[2]));
798
- #endif
799
- }
800
-
801
- double DVec3::Length() const
802
- {
803
- return sqrt(Dot(*this));
804
- }
805
-
806
- DVec3 DVec3::Normalized() const
807
- {
808
- return *this / Length();
809
- }
810
-
811
- bool DVec3::IsNormalized(double inTolerance) const
812
- {
813
- return abs(LengthSq() - 1.0) <= inTolerance;
814
- }
815
-
816
- bool DVec3::IsNaN() const
817
- {
818
- #if defined(JPH_USE_AVX512)
819
- return (_mm256_fpclass_pd_mask(mValue, 0b10000001) & 0x7) != 0;
820
- #elif defined(JPH_USE_AVX)
821
- return (_mm256_movemask_pd(_mm256_cmp_pd(mValue, mValue, _CMP_UNORD_Q)) & 0x7) != 0;
822
- #elif defined(JPH_USE_SSE)
823
- return ((_mm_movemask_pd(_mm_cmpunord_pd(mValue.mLow, mValue.mLow)) + (_mm_movemask_pd(_mm_cmpunord_pd(mValue.mHigh, mValue.mHigh)) << 2)) & 0x7) != 0;
824
- #else
825
- return isnan(mF64[0]) || isnan(mF64[1]) || isnan(mF64[2]);
826
- #endif
827
- }
828
-
829
- DVec3 DVec3::GetSign() const
830
- {
831
- #if defined(JPH_USE_AVX512)
832
- return _mm256_fixupimm_pd(mValue, mValue, _mm256_set1_epi32(0xA9A90A00), 0);
833
- #elif defined(JPH_USE_AVX)
834
- __m256d minus_one = _mm256_set1_pd(-1.0);
835
- __m256d one = _mm256_set1_pd(1.0);
836
- return _mm256_or_pd(_mm256_and_pd(mValue, minus_one), one);
837
- #elif defined(JPH_USE_SSE)
838
- __m128d minus_one = _mm_set1_pd(-1.0);
839
- __m128d one = _mm_set1_pd(1.0);
840
- return DVec3({ _mm_or_pd(_mm_and_pd(mValue.mLow, minus_one), one), _mm_or_pd(_mm_and_pd(mValue.mHigh, minus_one), one) });
841
- #elif defined(JPH_USE_NEON)
842
- uint64x2_t minus_one = vreinterpretq_u64_f64(vdupq_n_f64(-1.0f));
843
- uint64x2_t one = vreinterpretq_u64_f64(vdupq_n_f64(1.0f));
844
- return DVec3({ vreinterpretq_f64_u64(vorrq_u64(vandq_u64(vreinterpretq_u64_f64(mValue.val[0]), minus_one), one)),
845
- vreinterpretq_f64_u64(vorrq_u64(vandq_u64(vreinterpretq_u64_f64(mValue.val[1]), minus_one), one)) });
846
- #else
847
- return DVec3(std::signbit(mF64[0])? -1.0 : 1.0,
848
- std::signbit(mF64[1])? -1.0 : 1.0,
849
- std::signbit(mF64[2])? -1.0 : 1.0);
850
- #endif
851
- }
852
-
853
- DVec3 DVec3::PrepareRoundToZero() const
854
- {
855
- // Float has 23 bit mantissa, double 52 bit mantissa => we lose 29 bits when converting from double to float
856
- constexpr uint64 cDoubleToFloatMantissaLoss = (1U << 29) - 1;
857
-
858
- #if defined(JPH_USE_AVX)
859
- return _mm256_and_pd(mValue, _mm256_castsi256_pd(_mm256_set1_epi64x(int64_t(~cDoubleToFloatMantissaLoss))));
860
- #elif defined(JPH_USE_SSE)
861
- __m128d mask = _mm_castsi128_pd(_mm_set1_epi64x(int64_t(~cDoubleToFloatMantissaLoss)));
862
- return DVec3({ _mm_and_pd(mValue.mLow, mask), _mm_and_pd(mValue.mHigh, mask) });
863
- #elif defined(JPH_USE_NEON)
864
- uint64x2_t mask = vdupq_n_u64(~cDoubleToFloatMantissaLoss);
865
- return DVec3({ vreinterpretq_f64_u64(vandq_u64(vreinterpretq_u64_f64(mValue.val[0]), mask)),
866
- vreinterpretq_f64_u64(vandq_u64(vreinterpretq_u64_f64(mValue.val[1]), mask)) });
867
- #else
868
- double x = BitCast<double>(BitCast<uint64>(mF64[0]) & ~cDoubleToFloatMantissaLoss);
869
- double y = BitCast<double>(BitCast<uint64>(mF64[1]) & ~cDoubleToFloatMantissaLoss);
870
- double z = BitCast<double>(BitCast<uint64>(mF64[2]) & ~cDoubleToFloatMantissaLoss);
871
-
872
- return DVec3(x, y, z);
873
- #endif
874
- }
875
-
876
- DVec3 DVec3::PrepareRoundToInf() const
877
- {
878
- // Float has 23 bit mantissa, double 52 bit mantissa => we lose 29 bits when converting from double to float
879
- constexpr uint64 cDoubleToFloatMantissaLoss = (1U << 29) - 1;
880
-
881
- #if defined(JPH_USE_AVX512)
882
- __m256i mantissa_loss = _mm256_set1_epi64x(cDoubleToFloatMantissaLoss);
883
- __mmask8 is_zero = _mm256_testn_epi64_mask(_mm256_castpd_si256(mValue), mantissa_loss);
884
- __m256d value_or_mantissa_loss = _mm256_or_pd(mValue, _mm256_castsi256_pd(mantissa_loss));
885
- return _mm256_mask_blend_pd(is_zero, value_or_mantissa_loss, mValue);
886
- #elif defined(JPH_USE_AVX)
887
- __m256i mantissa_loss = _mm256_set1_epi64x(cDoubleToFloatMantissaLoss);
888
- __m256d value_and_mantissa_loss = _mm256_and_pd(mValue, _mm256_castsi256_pd(mantissa_loss));
889
- __m256d is_zero = _mm256_cmp_pd(value_and_mantissa_loss, _mm256_setzero_pd(), _CMP_EQ_OQ);
890
- __m256d value_or_mantissa_loss = _mm256_or_pd(mValue, _mm256_castsi256_pd(mantissa_loss));
891
- return _mm256_blendv_pd(value_or_mantissa_loss, mValue, is_zero);
892
- #elif defined(JPH_USE_SSE4_1)
893
- __m128i mantissa_loss = _mm_set1_epi64x(cDoubleToFloatMantissaLoss);
894
- __m128d zero = _mm_setzero_pd();
895
- __m128d value_and_mantissa_loss_low = _mm_and_pd(mValue.mLow, _mm_castsi128_pd(mantissa_loss));
896
- __m128d is_zero_low = _mm_cmpeq_pd(value_and_mantissa_loss_low, zero);
897
- __m128d value_or_mantissa_loss_low = _mm_or_pd(mValue.mLow, _mm_castsi128_pd(mantissa_loss));
898
- __m128d value_and_mantissa_loss_high = _mm_and_pd(mValue.mHigh, _mm_castsi128_pd(mantissa_loss));
899
- __m128d is_zero_high = _mm_cmpeq_pd(value_and_mantissa_loss_high, zero);
900
- __m128d value_or_mantissa_loss_high = _mm_or_pd(mValue.mHigh, _mm_castsi128_pd(mantissa_loss));
901
- return DVec3({ _mm_blendv_pd(value_or_mantissa_loss_low, mValue.mLow, is_zero_low), _mm_blendv_pd(value_or_mantissa_loss_high, mValue.mHigh, is_zero_high) });
902
- #elif defined(JPH_USE_NEON)
903
- uint64x2_t mantissa_loss = vdupq_n_u64(cDoubleToFloatMantissaLoss);
904
- float64x2_t zero = vdupq_n_f64(0.0);
905
- float64x2_t value_and_mantissa_loss_low = vreinterpretq_f64_u64(vandq_u64(vreinterpretq_u64_f64(mValue.val[0]), mantissa_loss));
906
- uint64x2_t is_zero_low = vceqq_f64(value_and_mantissa_loss_low, zero);
907
- float64x2_t value_or_mantissa_loss_low = vreinterpretq_f64_u64(vorrq_u64(vreinterpretq_u64_f64(mValue.val[0]), mantissa_loss));
908
- float64x2_t value_and_mantissa_loss_high = vreinterpretq_f64_u64(vandq_u64(vreinterpretq_u64_f64(mValue.val[1]), mantissa_loss));
909
- float64x2_t value_low = vbslq_f64(is_zero_low, mValue.val[0], value_or_mantissa_loss_low);
910
- uint64x2_t is_zero_high = vceqq_f64(value_and_mantissa_loss_high, zero);
911
- float64x2_t value_or_mantissa_loss_high = vreinterpretq_f64_u64(vorrq_u64(vreinterpretq_u64_f64(mValue.val[1]), mantissa_loss));
912
- float64x2_t value_high = vbslq_f64(is_zero_high, mValue.val[1], value_or_mantissa_loss_high);
913
- return DVec3({ value_low, value_high });
914
- #else
915
- uint64 ux = BitCast<uint64>(mF64[0]);
916
- uint64 uy = BitCast<uint64>(mF64[1]);
917
- uint64 uz = BitCast<uint64>(mF64[2]);
918
-
919
- double x = BitCast<double>((ux & cDoubleToFloatMantissaLoss) == 0? ux : (ux | cDoubleToFloatMantissaLoss));
920
- double y = BitCast<double>((uy & cDoubleToFloatMantissaLoss) == 0? uy : (uy | cDoubleToFloatMantissaLoss));
921
- double z = BitCast<double>((uz & cDoubleToFloatMantissaLoss) == 0? uz : (uz | cDoubleToFloatMantissaLoss));
922
-
923
- return DVec3(x, y, z);
924
- #endif
925
- }
926
-
927
- Vec3 DVec3::ToVec3RoundDown() const
928
- {
929
- DVec3 to_zero = PrepareRoundToZero();
930
- DVec3 to_inf = PrepareRoundToInf();
931
- return Vec3(DVec3::sSelect(to_zero, to_inf, DVec3::sLess(*this, DVec3::sZero())));
932
- }
933
-
934
- Vec3 DVec3::ToVec3RoundUp() const
935
- {
936
- DVec3 to_zero = PrepareRoundToZero();
937
- DVec3 to_inf = PrepareRoundToInf();
938
- return Vec3(DVec3::sSelect(to_inf, to_zero, DVec3::sLess(*this, DVec3::sZero())));
939
- }
940
-
941
- JPH_NAMESPACE_END