@woosh/meep-engine 2.138.18 → 2.138.19

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 (444) hide show
  1. package/README.md +2 -2
  2. package/build/bundle-worker-image-decoder.js +1 -1
  3. package/editor/actions/concrete/ActionUpdateTexture.d.ts +12 -0
  4. package/editor/actions/concrete/ActionUpdateTexture.d.ts.map +1 -0
  5. package/editor/actions/concrete/ArrayCopyAction.d.ts +20 -0
  6. package/editor/actions/concrete/ArrayCopyAction.d.ts.map +1 -0
  7. package/editor/actions/concrete/ComponentRemoveAction.d.ts +11 -0
  8. package/editor/actions/concrete/ComponentRemoveAction.d.ts.map +1 -0
  9. package/editor/actions/concrete/ModifyPatchSampler2DAction.d.ts +47 -0
  10. package/editor/actions/concrete/ModifyPatchSampler2DAction.d.ts.map +1 -0
  11. package/editor/actions/concrete/ModifyPatchTextureArray2DAction.d.ts +38 -0
  12. package/editor/actions/concrete/ModifyPatchTextureArray2DAction.d.ts.map +1 -0
  13. package/editor/actions/concrete/PaintTerrainOverlayAction.d.ts +23 -0
  14. package/editor/actions/concrete/PaintTerrainOverlayAction.d.ts.map +1 -0
  15. package/editor/actions/concrete/PatchTerrainHeightAction.d.ts +19 -0
  16. package/editor/actions/concrete/PatchTerrainHeightAction.d.ts.map +1 -0
  17. package/editor/actions/concrete/SelectionRemoveAction.d.ts +10 -0
  18. package/editor/actions/concrete/SelectionRemoveAction.d.ts.map +1 -0
  19. package/editor/actions/concrete/WriteGridValueAction.d.ts +15 -0
  20. package/editor/actions/concrete/WriteGridValueAction.d.ts.map +1 -0
  21. package/editor/ecs/component/FieldDescriptor.d.ts +27 -0
  22. package/editor/ecs/component/FieldDescriptor.d.ts.map +1 -0
  23. package/editor/ecs/component/FieldValueAdapter.d.ts +7 -0
  24. package/editor/ecs/component/FieldValueAdapter.d.ts.map +1 -0
  25. package/editor/ecs/component/createFieldEditor.d.ts +9 -0
  26. package/editor/ecs/component/createFieldEditor.d.ts.map +1 -0
  27. package/editor/ecs/component/createObjectEditor.d.ts +14 -0
  28. package/editor/ecs/component/createObjectEditor.d.ts.map +1 -0
  29. package/editor/ecs/component/editors/geom/QuaternionEditor.d.ts.map +1 -1
  30. package/editor/ecs/component/findNearestRegisteredType.d.ts +8 -0
  31. package/editor/ecs/component/findNearestRegisteredType.d.ts.map +1 -0
  32. package/editor/process/ObstacleGridDisplayProcess.d.ts.map +1 -1
  33. package/editor/process/symbolic/makeGridPositionSymbolDisplay.d.ts.map +1 -1
  34. package/editor/tools/GridPaintTool.d.ts +17 -0
  35. package/editor/tools/GridPaintTool.d.ts.map +1 -0
  36. package/editor/tools/SelectionTool.d.ts +27 -0
  37. package/editor/tools/SelectionTool.d.ts.map +1 -0
  38. package/editor/tools/TopDownCameraControlTool.d.ts +13 -0
  39. package/editor/tools/TopDownCameraControlTool.d.ts.map +1 -0
  40. package/editor/view/ecs/ComponentControlFactory.d.ts.map +1 -0
  41. package/editor/view/ecs/ComponentControlView.d.ts.map +1 -1
  42. package/editor/view/ecs/EntityEditor.d.ts.map +1 -0
  43. package/editor/view/ecs/EntityList.d.ts.map +1 -0
  44. package/editor/view/ecs/HierarchicalEntityListView.d.ts.map +1 -0
  45. package/editor/view/node-graph/NodeGraphEditorView.d.ts.map +1 -1
  46. package/editor/view/node-graph/NodeGraphView.d.ts.map +1 -1
  47. package/editor/view/node-graph/NodeView.d.ts.map +1 -1
  48. package/editor/view/node-graph/PortView.d.ts.map +1 -1
  49. package/package.json +1 -1
  50. package/src/core/binary/BinaryBuffer.d.ts +1 -1
  51. package/src/core/binary/BinaryBuffer.js +1 -1
  52. package/src/core/binary/BitSet.d.ts +1 -1
  53. package/src/core/binary/BitSet.js +1 -1
  54. package/src/core/cache/Cache.js +1 -1
  55. package/src/core/cache/LoadingCache.js +1 -1
  56. package/src/core/collection/list/List.js +1 -1
  57. package/src/core/collection/map/HashMap.js +1 -1
  58. package/src/core/collection/table/RowFirstTable.d.ts +1 -1
  59. package/src/core/collection/table/RowFirstTable.js +1 -1
  60. package/src/core/collection/table/RowFirstTableSpec.d.ts +1 -1
  61. package/src/core/collection/table/RowFirstTableSpec.js +1 -1
  62. package/src/core/color/oklab/compute_max_saturation.d.ts +1 -1
  63. package/src/core/color/oklab/compute_max_saturation.js +1 -1
  64. package/src/core/color/oklab/find_cusp.d.ts +1 -1
  65. package/src/core/color/oklab/find_cusp.js +1 -1
  66. package/src/core/color/oklab/find_gamut_intersection.d.ts +1 -1
  67. package/src/core/color/oklab/find_gamut_intersection.js +1 -1
  68. package/src/core/color/oklab/okhsv_to_linear_srgb.d.ts +1 -1
  69. package/src/core/color/oklab/okhsv_to_linear_srgb.js +1 -1
  70. package/src/core/color/oklab/oklab_to_linear_srgb.d.ts +1 -1
  71. package/src/core/color/oklab/oklab_to_linear_srgb.js +1 -1
  72. package/src/core/color/oklab/oklab_to_xyz.d.ts +1 -1
  73. package/src/core/color/oklab/oklab_to_xyz.js +1 -1
  74. package/src/core/color/oklab/xyz_to_oklab.d.ts +1 -1
  75. package/src/core/color/oklab/xyz_to_oklab.js +1 -1
  76. package/src/core/geom/2d/convex-hull/fixed_convex_hull_relaxation.d.ts +1 -1
  77. package/src/core/geom/2d/convex-hull/fixed_convex_hull_relaxation.js +1 -1
  78. package/src/core/geom/3d/aabb/aabb3_nearest_point_on_surface.d.ts.map +1 -1
  79. package/src/core/geom/3d/aabb/aabb3_nearest_point_on_surface.js +57 -65
  80. package/src/core/geom/3d/octahedra/octahedral_uv_wrap.d.ts +1 -1
  81. package/src/core/geom/3d/octahedra/octahedral_uv_wrap.js +1 -1
  82. package/src/core/geom/3d/quaternion/quat_decode_from_uint32.d.ts +1 -1
  83. package/src/core/geom/3d/quaternion/quat_decode_from_uint32.js +1 -1
  84. package/src/core/geom/3d/quaternion/quat_encode_to_uint32.d.ts +1 -1
  85. package/src/core/geom/3d/quaternion/quat_encode_to_uint32.js +1 -1
  86. package/src/core/geom/3d/shape/AbstractShape3D.d.ts +74 -3
  87. package/src/core/geom/3d/shape/CapsuleShape3D.d.ts +37 -0
  88. package/src/core/geom/3d/shape/CapsuleShape3D.d.ts.map +1 -0
  89. package/src/core/geom/3d/shape/CapsuleShape3D.js +210 -0
  90. package/src/core/geom/3d/shape/PointShape3D.d.ts +5 -0
  91. package/src/core/geom/3d/shape/PointShape3D.d.ts.map +1 -1
  92. package/src/core/geom/3d/shape/PointShape3D.js +52 -14
  93. package/src/core/geom/3d/shape/TransformedShape3D.d.ts +75 -12
  94. package/src/core/geom/3d/shape/TransformedShape3D.d.ts.map +1 -1
  95. package/src/core/geom/3d/shape/TransformedShape3D.js +12 -3
  96. package/src/core/geom/3d/shape/UnionShape3D.d.ts +47 -5
  97. package/src/core/geom/3d/shape/UnionShape3D.d.ts.map +1 -1
  98. package/src/core/geom/3d/shape/UnitCubeShape3D.d.ts +12 -5
  99. package/src/core/geom/3d/shape/UnitCubeShape3D.d.ts.map +1 -1
  100. package/src/core/geom/3d/shape/UnitSphereShape3D.d.ts +17 -5
  101. package/src/core/geom/3d/shape/UnitSphereShape3D.d.ts.map +1 -1
  102. package/src/core/geom/3d/shape/json/shape_to_type.d.ts.map +1 -1
  103. package/src/core/geom/3d/shape/json/shape_to_type.js +4 -1
  104. package/src/core/geom/3d/shape/json/type_adapters.d.ts +17 -2
  105. package/src/core/geom/3d/shape/json/type_adapters.d.ts.map +1 -1
  106. package/src/core/geom/3d/shape/json/type_adapters.js +18 -2
  107. package/src/core/geom/3d/shape/util/compute_signed_distance_gradient_by_sampling.d.ts.map +1 -1
  108. package/src/core/geom/3d/shape/util/compute_signed_distance_gradient_by_sampling.js +51 -48
  109. package/src/core/geom/3d/tetrahedra/compute_bounding_simplex_3d.d.ts +1 -1
  110. package/src/core/geom/3d/tetrahedra/compute_bounding_simplex_3d.js +1 -1
  111. package/src/core/geom/ConicRay.d.ts +1 -1
  112. package/src/core/geom/ConicRay.js +1 -1
  113. package/src/core/geom/Quaternion.d.ts +2 -2
  114. package/src/core/geom/Quaternion.js +2 -2
  115. package/src/core/geom/Vector1.d.ts +1 -1
  116. package/src/core/geom/Vector1.js +1 -1
  117. package/src/core/geom/Vector2.d.ts +1 -1
  118. package/src/core/geom/Vector2.js +1 -1
  119. package/src/core/geom/Vector3.d.ts +1 -1
  120. package/src/core/geom/Vector3.js +1 -1
  121. package/src/core/geom/packing/miniball/Miniball.d.ts +1 -1
  122. package/src/core/geom/packing/miniball/Miniball.js +1 -1
  123. package/src/core/geom/vec3/serialization/v3_binary_equality_decode.d.ts +1 -1
  124. package/src/core/geom/vec3/serialization/v3_binary_equality_decode.js +1 -1
  125. package/src/core/geom/vec3/serialization/v3_binary_equality_encode.d.ts +1 -1
  126. package/src/core/geom/vec3/serialization/v3_binary_equality_encode.js +1 -1
  127. package/src/core/math/spline/spline3_hermite.d.ts +1 -1
  128. package/src/core/math/spline/spline3_hermite.js +1 -1
  129. package/src/core/math/spline/spline3_hermite_bounds.d.ts +1 -1
  130. package/src/core/math/spline/spline3_hermite_bounds.js +1 -1
  131. package/src/core/math/spline/spline3_hermite_bounds_t.d.ts +1 -1
  132. package/src/core/math/spline/spline3_hermite_bounds_t.js +1 -1
  133. package/src/core/math/spline/spline3_hermite_to_monomial.d.ts +1 -1
  134. package/src/core/math/spline/spline3_hermite_to_monomial.js +1 -1
  135. package/src/core/model/ObservedBoolean.d.ts +1 -1
  136. package/src/core/model/ObservedBoolean.js +1 -1
  137. package/src/core/model/ObservedString.d.ts +1 -1
  138. package/src/core/model/ObservedString.js +1 -1
  139. package/src/core/process/undo/Action.js +1 -1
  140. package/src/core/process/undo/ActionProcessor.js +1 -1
  141. package/src/engine/animation/curve/AnimationCurve.d.ts +1 -1
  142. package/src/engine/animation/curve/AnimationCurve.js +1 -1
  143. package/src/engine/animation/curve/Keyframe.d.ts +1 -1
  144. package/src/engine/animation/curve/Keyframe.js +1 -1
  145. package/src/engine/animation/curve/animation_curve_compute_aabb.d.ts +1 -1
  146. package/src/engine/animation/curve/animation_curve_compute_aabb.js +1 -1
  147. package/src/engine/animation/curve/animation_curve_optimize.d.ts +1 -1
  148. package/src/engine/animation/curve/animation_curve_optimize.js +2 -2
  149. package/src/engine/asset/loaders/image/jpeg/JpegImage.js +1 -1
  150. package/src/engine/asset/loaders/image/png/PNGReader.d.ts.map +1 -1
  151. package/src/engine/asset/loaders/image/png/PNGReader.js +27 -7
  152. package/src/engine/asset/loaders/image/png/crc32.d.ts +1 -1
  153. package/src/engine/asset/loaders/image/png/crc32.js +1 -1
  154. package/src/engine/control/first-person/DESIGN.md +616 -0
  155. package/src/engine/control/first-person/FirstPersonPlayerController.d.ts +229 -0
  156. package/src/engine/control/first-person/FirstPersonPlayerController.d.ts.map +1 -0
  157. package/src/engine/control/first-person/FirstPersonPlayerController.js +176 -0
  158. package/src/engine/control/first-person/FirstPersonPlayerControllerConfig.d.ts +251 -0
  159. package/src/engine/control/first-person/FirstPersonPlayerControllerConfig.d.ts.map +1 -0
  160. package/src/engine/control/first-person/FirstPersonPlayerControllerConfig.js +205 -0
  161. package/src/engine/control/first-person/FirstPersonPlayerControllerSystem.d.ts +151 -0
  162. package/src/engine/control/first-person/FirstPersonPlayerControllerSystem.d.ts.map +1 -0
  163. package/src/engine/control/first-person/FirstPersonPlayerControllerSystem.js +799 -0
  164. package/src/engine/control/first-person/math/computeJumpFromApex.d.ts +23 -0
  165. package/src/engine/control/first-person/math/computeJumpFromApex.d.ts.map +1 -0
  166. package/src/engine/control/first-person/math/computeJumpFromApex.js +23 -0
  167. package/src/engine/control/first-person/math/criticallyDampedSpring.d.ts +23 -0
  168. package/src/engine/control/first-person/math/criticallyDampedSpring.d.ts.map +1 -0
  169. package/src/engine/control/first-person/math/criticallyDampedSpring.js +34 -0
  170. package/src/engine/control/first-person/math/dampedSpringStep.d.ts +23 -0
  171. package/src/engine/control/first-person/math/dampedSpringStep.d.ts.map +1 -0
  172. package/src/engine/control/first-person/math/dampedSpringStep.js +72 -0
  173. package/src/engine/control/first-person/math/stepTowards.d.ts +12 -0
  174. package/src/engine/control/first-person/math/stepTowards.d.ts.map +1 -0
  175. package/src/engine/control/first-person/math/stepTowards.js +20 -0
  176. package/src/engine/control/first-person/pose/FirstPersonPose.d.ts +69 -0
  177. package/src/engine/control/first-person/pose/FirstPersonPose.d.ts.map +1 -0
  178. package/src/engine/control/first-person/pose/FirstPersonPose.js +91 -0
  179. package/src/engine/control/first-person/prototype_first_person_controller.d.ts +2 -0
  180. package/src/engine/control/first-person/prototype_first_person_controller.d.ts.map +1 -0
  181. package/src/engine/control/first-person/prototype_first_person_controller.js +314 -0
  182. package/src/engine/ecs/Entity.js +1 -1
  183. package/src/engine/ecs/EntityComponentDataset.js +1 -1
  184. package/src/engine/ecs/EntityManager.d.ts +1 -1
  185. package/src/engine/ecs/EntityManager.js +1 -1
  186. package/src/engine/ecs/EntityObserver.js +1 -1
  187. package/src/engine/ecs/EntityReference.d.ts +1 -1
  188. package/src/engine/ecs/EntityReference.js +1 -1
  189. package/src/engine/ecs/System.js +1 -1
  190. package/src/engine/ecs/attachment/AttachmentSystem.d.ts +2 -2
  191. package/src/engine/ecs/attachment/AttachmentSystem.d.ts.map +1 -1
  192. package/src/engine/ecs/guid/UUID.d.ts +1 -1
  193. package/src/engine/ecs/guid/UUID.js +1 -1
  194. package/src/engine/ecs/name/Name.d.ts +1 -1
  195. package/src/engine/ecs/name/Name.js +1 -1
  196. package/src/engine/ecs/parent/ParentEntity.js +1 -1
  197. package/src/engine/ecs/storage/BinaryBufferDeSerializer.d.ts +1 -1
  198. package/src/engine/ecs/storage/BinaryBufferDeSerializer.js +1 -1
  199. package/src/engine/ecs/storage/BinaryBufferSerializer.d.ts +1 -1
  200. package/src/engine/ecs/storage/BinaryBufferSerializer.js +1 -1
  201. package/src/engine/ecs/storage/binary/BinaryClassSerializationAdapter.js +1 -1
  202. package/src/engine/ecs/storage/binary/BinarySerializationRegistry.d.ts +1 -1
  203. package/src/engine/ecs/storage/binary/BinarySerializationRegistry.js +1 -1
  204. package/src/engine/ecs/storage/binary/collection/BinaryCollectionDeSerializer.d.ts +1 -1
  205. package/src/engine/ecs/storage/binary/collection/BinaryCollectionDeSerializer.js +1 -1
  206. package/src/engine/ecs/transform/Transform.d.ts +1 -1
  207. package/src/engine/ecs/transform/Transform.js +1 -1
  208. package/src/engine/graphics/ecs/path/PathDisplaySystem.d.ts.map +1 -1
  209. package/src/engine/graphics/impostors/octahedral/ImpostorBaker.d.ts.map +1 -1
  210. package/src/engine/graphics/impostors/octahedral/ImpostorBaker.js +10 -1
  211. package/src/engine/graphics/impostors/voxel/README.md +149 -0
  212. package/src/engine/graphics/impostors/voxel/VoxelImpostorBaker.d.ts +91 -0
  213. package/src/engine/graphics/impostors/voxel/VoxelImpostorBaker.d.ts.map +1 -0
  214. package/src/engine/graphics/impostors/voxel/VoxelImpostorBaker.js +376 -0
  215. package/src/engine/graphics/impostors/voxel/VoxelImpostorDescription.d.ts +128 -0
  216. package/src/engine/graphics/impostors/voxel/VoxelImpostorDescription.d.ts.map +1 -0
  217. package/src/engine/graphics/impostors/voxel/VoxelImpostorDescription.js +141 -0
  218. package/src/engine/graphics/impostors/voxel/bake/read_atlas_to_samples.d.ts +38 -0
  219. package/src/engine/graphics/impostors/voxel/bake/read_atlas_to_samples.d.ts.map +1 -0
  220. package/src/engine/graphics/impostors/voxel/bake/read_atlas_to_samples.js +338 -0
  221. package/src/engine/graphics/impostors/voxel/bake/voxelize_samples.d.ts +43 -0
  222. package/src/engine/graphics/impostors/voxel/bake/voxelize_samples.d.ts.map +1 -0
  223. package/src/engine/graphics/impostors/voxel/bake/voxelize_samples.js +192 -0
  224. package/src/engine/graphics/impostors/voxel/prototype_voxel_impostors.d.ts +2 -0
  225. package/src/engine/graphics/impostors/voxel/prototype_voxel_impostors.d.ts.map +1 -0
  226. package/src/engine/graphics/impostors/voxel/prototype_voxel_impostors.js +343 -0
  227. package/src/engine/graphics/impostors/voxel/shader/VoxelImpostorShaderDepthV0.d.ts +13 -0
  228. package/src/engine/graphics/impostors/voxel/shader/VoxelImpostorShaderDepthV0.d.ts.map +1 -0
  229. package/src/engine/graphics/impostors/voxel/shader/VoxelImpostorShaderDepthV0.js +99 -0
  230. package/src/engine/graphics/impostors/voxel/shader/VoxelImpostorShaderLitV0.d.ts +19 -0
  231. package/src/engine/graphics/impostors/voxel/shader/VoxelImpostorShaderLitV0.d.ts.map +1 -0
  232. package/src/engine/graphics/impostors/voxel/shader/VoxelImpostorShaderLitV0.js +231 -0
  233. package/src/engine/graphics/impostors/voxel/shader/VoxelImpostorShaderNormalsV0.d.ts +5 -0
  234. package/src/engine/graphics/impostors/voxel/shader/VoxelImpostorShaderNormalsV0.d.ts.map +1 -0
  235. package/src/engine/graphics/impostors/voxel/shader/VoxelImpostorShaderNormalsV0.js +70 -0
  236. package/src/engine/graphics/impostors/voxel/shader/VoxelImpostorShaderV0.d.ts +13 -0
  237. package/src/engine/graphics/impostors/voxel/shader/VoxelImpostorShaderV0.d.ts.map +1 -0
  238. package/src/engine/graphics/impostors/voxel/shader/VoxelImpostorShaderV0.js +127 -0
  239. package/src/engine/graphics/impostors/voxel/shader/VoxelImpostorShaderViewportDepthV0.d.ts +5 -0
  240. package/src/engine/graphics/impostors/voxel/shader/VoxelImpostorShaderViewportDepthV0.d.ts.map +1 -0
  241. package/src/engine/graphics/impostors/voxel/shader/VoxelImpostorShaderViewportDepthV0.js +68 -0
  242. package/src/engine/graphics/impostors/voxel/util/make_voxel_impostor_geometry.d.ts +27 -0
  243. package/src/engine/graphics/impostors/voxel/util/make_voxel_impostor_geometry.d.ts.map +1 -0
  244. package/src/engine/graphics/impostors/voxel/util/make_voxel_impostor_geometry.js +96 -0
  245. package/src/engine/graphics/particles/particular/engine/utils/volume/ParticleVolume.d.ts +113 -29
  246. package/src/engine/graphics/render/forward_plus/SPECIFICATION.md +1 -1
  247. package/src/engine/graphics/texture/sampler/Sampler2D.d.ts +1 -1
  248. package/src/engine/graphics/texture/sampler/Sampler2D.js +1 -1
  249. package/src/engine/graphics/texture/sampler/distance/computeSignedDistanceField_NaiveFlood.d.ts +1 -1
  250. package/src/engine/graphics/texture/sampler/distance/computeSignedDistanceField_NaiveFlood.js +1 -1
  251. package/src/engine/graphics/util/build_max_height_pyramid.d.ts.map +1 -1
  252. package/src/engine/graphics/util/build_max_height_pyramid.js +1 -7
  253. package/src/engine/input/devices/InputDeviceSwitch.js +1 -1
  254. package/src/engine/input/devices/KeyboardDevice.js +1 -1
  255. package/src/engine/input/devices/PointerDevice.js +1 -1
  256. package/src/engine/intelligence/behavior/Behavior.js +1 -1
  257. package/src/engine/intelligence/behavior/SelectorBehavior.d.ts +1 -1
  258. package/src/engine/intelligence/behavior/SelectorBehavior.js +1 -1
  259. package/src/engine/intelligence/behavior/behavior_to_dot.d.ts +1 -1
  260. package/src/engine/intelligence/behavior/behavior_to_dot.js +1 -1
  261. package/src/engine/intelligence/behavior/composite/CompositeBehavior.d.ts +1 -1
  262. package/src/engine/intelligence/behavior/composite/CompositeBehavior.js +1 -1
  263. package/src/engine/intelligence/behavior/composite/ParallelBehavior.d.ts +1 -1
  264. package/src/engine/intelligence/behavior/composite/ParallelBehavior.js +1 -1
  265. package/src/engine/intelligence/behavior/composite/SequenceBehavior.d.ts +1 -1
  266. package/src/engine/intelligence/behavior/composite/SequenceBehavior.js +1 -1
  267. package/src/engine/intelligence/behavior/decorator/AbstractDecoratorBehavior.d.ts +1 -1
  268. package/src/engine/intelligence/behavior/decorator/AbstractDecoratorBehavior.js +1 -1
  269. package/src/engine/intelligence/behavior/decorator/IgnoreFailureBehavior.d.ts +1 -1
  270. package/src/engine/intelligence/behavior/decorator/IgnoreFailureBehavior.js +1 -1
  271. package/src/engine/intelligence/behavior/decorator/InvertStatusBehavior.d.ts +1 -1
  272. package/src/engine/intelligence/behavior/decorator/InvertStatusBehavior.js +1 -1
  273. package/src/engine/intelligence/behavior/decorator/RepeatBehavior.d.ts +1 -1
  274. package/src/engine/intelligence/behavior/decorator/RepeatBehavior.js +1 -1
  275. package/src/engine/intelligence/behavior/decorator/RepeatUntilSuccessBehavior.d.ts +1 -1
  276. package/src/engine/intelligence/behavior/decorator/RepeatUntilSuccessBehavior.js +1 -1
  277. package/src/engine/intelligence/behavior/ecs/BehaviorComponent.d.ts +1 -1
  278. package/src/engine/intelligence/behavior/ecs/BehaviorComponent.js +1 -1
  279. package/src/engine/intelligence/behavior/ecs/BehaviorSystem.d.ts +1 -1
  280. package/src/engine/intelligence/behavior/ecs/BehaviorSystem.js +1 -1
  281. package/src/engine/intelligence/behavior/ecs/DieBehavior.d.ts +1 -1
  282. package/src/engine/intelligence/behavior/ecs/DieBehavior.js +1 -1
  283. package/src/engine/intelligence/behavior/ecs/EntityBehavior.d.ts +1 -1
  284. package/src/engine/intelligence/behavior/ecs/EntityBehavior.js +1 -1
  285. package/src/engine/intelligence/behavior/ecs/KillBehavior.d.ts +1 -1
  286. package/src/engine/intelligence/behavior/ecs/KillBehavior.js +1 -1
  287. package/src/engine/intelligence/behavior/ecs/SendEventBehavior.d.ts +1 -1
  288. package/src/engine/intelligence/behavior/ecs/SendEventBehavior.js +1 -1
  289. package/src/engine/intelligence/behavior/ecs/WaitForEventBehavior.d.ts +1 -1
  290. package/src/engine/intelligence/behavior/ecs/WaitForEventBehavior.js +1 -1
  291. package/src/engine/intelligence/behavior/primitive/ActionBehavior.d.ts +1 -1
  292. package/src/engine/intelligence/behavior/primitive/ActionBehavior.js +1 -1
  293. package/src/engine/intelligence/behavior/primitive/FailingBehavior.d.ts +1 -1
  294. package/src/engine/intelligence/behavior/primitive/FailingBehavior.js +1 -1
  295. package/src/engine/intelligence/behavior/primitive/PromiseBehavior.d.ts +1 -1
  296. package/src/engine/intelligence/behavior/primitive/PromiseBehavior.js +1 -1
  297. package/src/engine/intelligence/behavior/primitive/SucceedingBehavior.d.ts +1 -1
  298. package/src/engine/intelligence/behavior/primitive/SucceedingBehavior.js +1 -1
  299. package/src/engine/intelligence/behavior/selector/WeightedElement.d.ts +1 -1
  300. package/src/engine/intelligence/behavior/selector/WeightedElement.js +1 -1
  301. package/src/engine/intelligence/behavior/selector/WeightedRandomBehavior.d.ts +1 -1
  302. package/src/engine/intelligence/behavior/selector/WeightedRandomBehavior.js +1 -1
  303. package/src/engine/intelligence/behavior/util/BranchBehavior.d.ts +1 -1
  304. package/src/engine/intelligence/behavior/util/BranchBehavior.js +1 -1
  305. package/src/engine/intelligence/behavior/util/DelayBehavior.d.ts +1 -1
  306. package/src/engine/intelligence/behavior/util/DelayBehavior.js +1 -1
  307. package/src/engine/intelligence/behavior/util/LogMessageBehavior.d.ts +1 -1
  308. package/src/engine/intelligence/behavior/util/LogMessageBehavior.js +1 -1
  309. package/src/engine/intelligence/behavior/util/RandomDelayBehavior.d.ts +1 -1
  310. package/src/engine/intelligence/behavior/util/RandomDelayBehavior.js +1 -1
  311. package/src/engine/intelligence/blackboard/Blackboard.js +1 -1
  312. package/src/engine/intelligence/mcts/MonteCarlo.d.ts +1 -1
  313. package/src/engine/intelligence/mcts/MonteCarlo.js +1 -1
  314. package/src/engine/intelligence/mcts/MoveEdge.d.ts +1 -1
  315. package/src/engine/intelligence/mcts/MoveEdge.js +1 -1
  316. package/src/engine/intelligence/mcts/StateNode.d.ts +1 -1
  317. package/src/engine/intelligence/mcts/StateNode.js +1 -1
  318. package/src/engine/intelligence/resource/ActionSequence.d.ts +1 -1
  319. package/src/engine/intelligence/resource/ActionSequence.js +1 -1
  320. package/src/engine/intelligence/resource/Resource.d.ts +1 -1
  321. package/src/engine/intelligence/resource/Resource.js +1 -1
  322. package/src/engine/intelligence/resource/ResourceAllocation.d.ts +1 -1
  323. package/src/engine/intelligence/resource/ResourceAllocation.js +1 -1
  324. package/src/engine/intelligence/resource/ResourceAllocationBid.d.ts +1 -1
  325. package/src/engine/intelligence/resource/ResourceAllocationBid.js +1 -1
  326. package/src/engine/intelligence/resource/ResourceAllocationSolver.d.ts +1 -1
  327. package/src/engine/intelligence/resource/ResourceAllocationSolver.js +1 -1
  328. package/src/engine/intelligence/resource/StrategicResourceAllocator.d.ts +1 -1
  329. package/src/engine/intelligence/resource/StrategicResourceAllocator.js +1 -1
  330. package/src/engine/intelligence/resource/TacticalModule.d.ts +1 -1
  331. package/src/engine/intelligence/resource/TacticalModule.js +1 -1
  332. package/src/engine/network/NetworkSession.d.ts +1 -1
  333. package/src/engine/network/NetworkSession.js +1 -1
  334. package/src/engine/network/adapters/QuaternionInterpolationAdapter.d.ts +1 -1
  335. package/src/engine/network/adapters/QuaternionInterpolationAdapter.js +1 -1
  336. package/src/engine/network/adapters/TransformInterpolationAdapter.d.ts +1 -1
  337. package/src/engine/network/adapters/TransformInterpolationAdapter.js +1 -1
  338. package/src/engine/network/adapters/TransformReplicationAdapter.d.ts +1 -1
  339. package/src/engine/network/adapters/TransformReplicationAdapter.js +1 -1
  340. package/src/engine/network/adapters/Vector3InterpolationAdapter.d.ts +1 -1
  341. package/src/engine/network/adapters/Vector3InterpolationAdapter.js +1 -1
  342. package/src/engine/network/core/quantize/quantize_float.d.ts +1 -1
  343. package/src/engine/network/core/quantize/quantize_float.js +1 -1
  344. package/src/engine/network/core/quantize/quantize_position.d.ts +1 -1
  345. package/src/engine/network/core/quantize/quantize_position.js +1 -1
  346. package/src/engine/network/core/sequence/ack_bitfield.d.ts +1 -1
  347. package/src/engine/network/core/sequence/ack_bitfield.js +1 -1
  348. package/src/engine/network/core/sequence/seq16.d.ts +1 -1
  349. package/src/engine/network/core/sequence/seq16.js +1 -1
  350. package/src/engine/network/core/sequence/seq32.d.ts +1 -1
  351. package/src/engine/network/core/sequence/seq32.js +1 -1
  352. package/src/engine/network/diagnostics/BandwidthMeter.d.ts +1 -1
  353. package/src/engine/network/diagnostics/BandwidthMeter.js +1 -1
  354. package/src/engine/network/diagnostics/ReplayLog.d.ts +1 -1
  355. package/src/engine/network/diagnostics/ReplayLog.js +1 -1
  356. package/src/engine/network/diagnostics/SyncTest.d.ts +1 -1
  357. package/src/engine/network/diagnostics/SyncTest.js +1 -1
  358. package/src/engine/network/ecs/NetworkSystem.d.ts +1 -1
  359. package/src/engine/network/ecs/NetworkSystem.js +1 -1
  360. package/src/engine/network/ecs/components/NetworkIdentity.d.ts +1 -1
  361. package/src/engine/network/ecs/components/NetworkIdentity.js +1 -1
  362. package/src/engine/network/ecs/serialization/NetworkIdentitySerializationAdapter.d.ts +1 -1
  363. package/src/engine/network/ecs/serialization/NetworkIdentitySerializationAdapter.js +1 -1
  364. package/src/engine/network/orchestrator/NetworkPeer.d.ts +1 -1
  365. package/src/engine/network/orchestrator/NetworkPeer.js +1 -1
  366. package/src/engine/network/orchestrator/ServerAuthoritativeClient.d.ts +1 -1
  367. package/src/engine/network/orchestrator/ServerAuthoritativeClient.js +1 -1
  368. package/src/engine/network/orchestrator/ServerAuthoritativeServer.d.ts +1 -1
  369. package/src/engine/network/orchestrator/ServerAuthoritativeServer.js +1 -1
  370. package/src/engine/network/replication/Replicator.d.ts +1 -1
  371. package/src/engine/network/replication/Replicator.js +1 -1
  372. package/src/engine/network/replication/ScopeFilter.d.ts +2 -2
  373. package/src/engine/network/replication/ScopeFilter.js +2 -2
  374. package/src/engine/network/sim/ActionLog.d.ts +1 -1
  375. package/src/engine/network/sim/ActionLog.js +1 -1
  376. package/src/engine/network/sim/BinaryInterpolationAdapter.d.ts +1 -1
  377. package/src/engine/network/sim/BinaryInterpolationAdapter.js +1 -1
  378. package/src/engine/network/sim/InterpolationLog.d.ts +1 -1
  379. package/src/engine/network/sim/InterpolationLog.js +1 -1
  380. package/src/engine/network/sim/ReplicatedComponentRegistry.d.ts +1 -1
  381. package/src/engine/network/sim/ReplicatedComponentRegistry.js +1 -1
  382. package/src/engine/network/sim/RewindEngine.d.ts +1 -1
  383. package/src/engine/network/sim/RewindEngine.js +1 -1
  384. package/src/engine/network/sim/SimAction.d.ts +1 -1
  385. package/src/engine/network/sim/SimAction.js +1 -1
  386. package/src/engine/network/sim/SimActionExecutor.d.ts +1 -1
  387. package/src/engine/network/sim/SimActionExecutor.js +1 -1
  388. package/src/engine/network/sim/SimActionRegistry.d.ts +1 -1
  389. package/src/engine/network/sim/SimActionRegistry.js +1 -1
  390. package/src/engine/network/sim/SmoothingState.js +1 -1
  391. package/src/engine/network/sim/Snapshotter.d.ts +1 -1
  392. package/src/engine/network/sim/Snapshotter.js +1 -1
  393. package/src/engine/network/sim/SpeculationLog.d.ts +1 -1
  394. package/src/engine/network/sim/SpeculationLog.js +1 -1
  395. package/src/engine/network/state/Baseline.d.ts +1 -1
  396. package/src/engine/network/state/Baseline.js +1 -1
  397. package/src/engine/network/state/ChangedEntitySet.d.ts +1 -1
  398. package/src/engine/network/state/ChangedEntitySet.js +1 -1
  399. package/src/engine/network/state/InputRing.d.ts +1 -1
  400. package/src/engine/network/state/InputRing.js +1 -1
  401. package/src/engine/network/state/MutationLedger.d.ts +1 -1
  402. package/src/engine/network/state/MutationLedger.js +1 -1
  403. package/src/engine/network/state/PriorityAccumulator.d.ts +1 -1
  404. package/src/engine/network/state/PriorityAccumulator.js +1 -1
  405. package/src/engine/network/state/ReplicationSlotTable.d.ts +1 -1
  406. package/src/engine/network/state/ReplicationSlotTable.js +1 -1
  407. package/src/engine/network/time/AdaptiveRenderDelay.d.ts +1 -1
  408. package/src/engine/network/time/AdaptiveRenderDelay.js +1 -1
  409. package/src/engine/network/time/JitterBuffer.d.ts +1 -1
  410. package/src/engine/network/time/JitterBuffer.js +1 -1
  411. package/src/engine/network/time/TimeDilation.d.ts +1 -1
  412. package/src/engine/network/time/TimeDilation.js +1 -1
  413. package/src/engine/network/time/TimeSync.d.ts +1 -1
  414. package/src/engine/network/time/TimeSync.js +1 -1
  415. package/src/engine/network/transport/Channel.d.ts.map +1 -1
  416. package/src/engine/network/transport/Channel.js +3 -6
  417. package/src/engine/network/transport/LoopbackTransport.d.ts +1 -1
  418. package/src/engine/network/transport/LoopbackTransport.js +1 -1
  419. package/src/engine/network/transport/ReliableCommandPipeline.d.ts +1 -1
  420. package/src/engine/network/transport/ReliableCommandPipeline.js +1 -1
  421. package/src/engine/network/transport/Transport.d.ts +1 -1
  422. package/src/engine/network/transport/Transport.js +1 -1
  423. package/src/engine/network/transport/adapters/NodeUDPTransport.d.ts +1 -1
  424. package/src/engine/network/transport/adapters/NodeUDPTransport.js +2 -2
  425. package/src/engine/network/transport/adapters/SimulatedTransport.d.ts +1 -1
  426. package/src/engine/network/transport/adapters/SimulatedTransport.js +1 -1
  427. package/src/engine/network/transport/adapters/WebRTCDataChannelTransport.d.ts +1 -1
  428. package/src/engine/network/transport/adapters/WebRTCDataChannelTransport.js +1 -1
  429. package/src/engine/network/transport/adapters/WebSocketTransport.d.ts +1 -1
  430. package/src/engine/network/transport/adapters/WebSocketTransport.js +1 -1
  431. package/src/engine/network/transport/adapters/WebTransportTransport.d.ts +1 -1
  432. package/src/engine/network/transport/adapters/WebTransportTransport.js +1 -1
  433. package/src/engine/network/transport/fragments/FragmentAssembler.d.ts +1 -1
  434. package/src/engine/network/transport/fragments/FragmentAssembler.js +1 -1
  435. package/src/engine/network/transport/fragments/FragmentRetention.d.ts +1 -1
  436. package/src/engine/network/transport/fragments/FragmentRetention.js +1 -1
  437. package/src/engine/network/transport/fragments/packet_size.d.ts +1 -1
  438. package/src/engine/network/transport/fragments/packet_size.js +1 -1
  439. package/src/engine/simulation/Ticker.d.ts +1 -1
  440. package/src/engine/simulation/Ticker.js +1 -1
  441. package/src/engine/sound/SoundEngine.js +1 -1
  442. package/src/engine/ui/DraggableAspect.d.ts +1 -1
  443. package/src/engine/ui/DraggableAspect.js +1 -1
  444. package/src/view/View.js +1 -1
@@ -1,65 +1,57 @@
1
- import { clamp } from "../../../math/clamp.js";
2
- import { min2 } from "../../../math/min2.js";
3
-
4
- //
5
-
6
- /**
7
- *
8
- * @param {number[]|ArrayLike<number>} result
9
- * @param {number} x0
10
- * @param {number} y0
11
- * @param {number} z0
12
- * @param {number} x1
13
- * @param {number} y1
14
- * @param {number} z1
15
- * @param {number} r_x
16
- * @param {number} r_y
17
- * @param {number} r_z
18
- */
19
- export function aabb3_nearest_point_on_surface(result, x0, y0, z0, x1, y1, z1, r_x, r_y, r_z) {
20
- const ar_x0 = Math.abs(r_x - x0);
21
- const ar_x1 = Math.abs(r_x - x1);
22
- const ar_x_min = min2(ar_x0, ar_x1);
23
-
24
- const ar_y0 = Math.abs(r_y - y0);
25
- const ar_y1 = Math.abs(r_y - y1);
26
- const ar_y_min = min2(ar_y0, ar_y1);
27
-
28
- const ar_z0 = Math.abs(r_z - z0);
29
- const ar_z1 = Math.abs(r_z - z1);
30
- const ar_z_min = min2(ar_z0, ar_z1);
31
-
32
- // figure out closest face to the reference point
33
- if (ar_x_min > ar_y_min && ar_x_min > ar_z_min) {
34
- // X is smallest, project onto X axis
35
- if (ar_x0 <= ar_x1) {
36
- result[0] = x0;
37
- } else {
38
- result[0] = x1;
39
- }
40
-
41
- result[1] = clamp(r_y, y0, y1);
42
- result[2] = clamp(r_z, z0, z1);
43
- } else if (ar_y_min > ar_x_min && ar_y_min > ar_z_min) {
44
- // Y is smallest, project onto X axis
45
- if (ar_y0 <= ar_y1) {
46
- result[1] = y0;
47
- } else {
48
- result[1] = y1;
49
- }
50
-
51
- result[0] = clamp(r_x, x0, x1);
52
- result[2] = clamp(r_z, z0, z1);
53
- } else {
54
- // project onto Z axis
55
-
56
- if (ar_z0 <= ar_z1) {
57
- result[2] = z0;
58
- } else {
59
- result[2] = z1;
60
- }
61
-
62
- result[0] = clamp(r_x, x0, x1);
63
- result[1] = clamp(r_y, y0, y1);
64
- }
65
- }
1
+ import { clamp } from "../../../math/clamp.js";
2
+ import { min2 } from "../../../math/min2.js";
3
+
4
+ /**
5
+ *
6
+ * @param {number[]|ArrayLike<number>} result
7
+ * @param {number} x0
8
+ * @param {number} y0
9
+ * @param {number} z0
10
+ * @param {number} x1
11
+ * @param {number} y1
12
+ * @param {number} z1
13
+ * @param {number} r_x
14
+ * @param {number} r_y
15
+ * @param {number} r_z
16
+ */
17
+ export function aabb3_nearest_point_on_surface(result, x0, y0, z0, x1, y1, z1, r_x, r_y, r_z) {
18
+ // clamp the reference to the box; for exterior points this is already the nearest surface point
19
+ const cx = clamp(r_x, x0, x1);
20
+ const cy = clamp(r_y, y0, y1);
21
+ const cz = clamp(r_z, z0, z1);
22
+
23
+ const inside = (cx === r_x) && (cy === r_y) && (cz === r_z);
24
+
25
+ if (!inside) {
26
+ result[0] = cx;
27
+ result[1] = cy;
28
+ result[2] = cz;
29
+ return;
30
+ }
31
+
32
+ // interior point: snap to the nearest face
33
+ const dx0 = r_x - x0;
34
+ const dx1 = x1 - r_x;
35
+ const dy0 = r_y - y0;
36
+ const dy1 = y1 - r_y;
37
+ const dz0 = r_z - z0;
38
+ const dz1 = z1 - r_z;
39
+
40
+ const dx = min2(dx0, dx1);
41
+ const dy = min2(dy0, dy1);
42
+ const dz = min2(dz0, dz1);
43
+
44
+ if (dx <= dy && dx <= dz) {
45
+ result[0] = (dx0 <= dx1) ? x0 : x1;
46
+ result[1] = r_y;
47
+ result[2] = r_z;
48
+ } else if (dy <= dz) {
49
+ result[0] = r_x;
50
+ result[1] = (dy0 <= dy1) ? y0 : y1;
51
+ result[2] = r_z;
52
+ } else {
53
+ result[0] = r_x;
54
+ result[1] = r_y;
55
+ result[2] = (dz0 <= dz1) ? z0 : z1;
56
+ }
57
+ }
@@ -24,7 +24,7 @@
24
24
  * @param {number} in_offset - Index to start reading from
25
25
  *
26
26
  * @author Alex Goldring
27
- * @copyright Company Named Limited (c) 2025
27
+ * @copyright Company Named Limited (c) 2026
28
28
  */
29
29
  export function octahedral_uv_wrap(out_uv: number[], out_offset: number, in_uv: number[], in_offset: number): void;
30
30
  //# sourceMappingURL=octahedral_uv_wrap.d.ts.map
@@ -31,7 +31,7 @@ function reduce_even_wrap(x) {
31
31
  * @param {number} in_offset - Index to start reading from
32
32
  *
33
33
  * @author Alex Goldring
34
- * @copyright Company Named Limited (c) 2025
34
+ * @copyright Company Named Limited (c) 2026
35
35
  */
36
36
  export function octahedral_uv_wrap(
37
37
  out_uv, out_offset,
@@ -2,7 +2,7 @@
2
2
  * Based on GDC talk from Bungie on destiny, compressing quaternions for animation
3
3
  *
4
4
  * @author Alex Goldring
5
- * @copyright Company Named Limited (c) 2025
5
+ * @copyright Company Named Limited (c) 2026
6
6
  *
7
7
  * @param {number[]} output
8
8
  * @param {number} output_offset
@@ -4,7 +4,7 @@ const K = Math.SQRT1_2 / 511;
4
4
  * Based on GDC talk from Bungie on destiny, compressing quaternions for animation
5
5
  *
6
6
  * @author Alex Goldring
7
- * @copyright Company Named Limited (c) 2025
7
+ * @copyright Company Named Limited (c) 2026
8
8
  *
9
9
  * @param {number[]} output
10
10
  * @param {number} output_offset
@@ -2,7 +2,7 @@
2
2
  * Based on GDC talk from Bungie on destiny, compressing quaternions for animation
3
3
  *
4
4
  * @author Alex Goldring
5
- * @copyright Company Named Limited (c) 2025
5
+ * @copyright Company Named Limited (c) 2026
6
6
  *
7
7
  * @param {number} x
8
8
  * @param {number} y
@@ -5,7 +5,7 @@ import { v4_length } from "../../vec4/v4_length.js";
5
5
  * Based on GDC talk from Bungie on destiny, compressing quaternions for animation
6
6
  *
7
7
  * @author Alex Goldring
8
- * @copyright Company Named Limited (c) 2025
8
+ * @copyright Company Named Limited (c) 2026
9
9
  *
10
10
  * @param {number} x
11
11
  * @param {number} y
@@ -1,3 +1,74 @@
1
- export class AbstractShape3D {
2
-
3
- }
1
+ export class AbstractShape3D {
2
+ /**
3
+ * Signed distance to boundary of the shape from the given point
4
+ * @param {number[]} point
5
+ * @returns {number}
6
+ */
7
+ signed_distance_at_point(point: number[]): number;
8
+ /**
9
+ * Samples both distances as well as the gradient
10
+ * @param {number[]} result resulting gradient is written here
11
+ * @param {number[]} point sampling point
12
+ * @returns {number}
13
+ */
14
+ signed_distance_gradient_at_point(result: number[], point: number[]): number;
15
+ /**
16
+ *
17
+ * @param {number[]} result where the resulting point is stored
18
+ * @param {number[]} reference reference point from which to go
19
+ * @returns {void}
20
+ */
21
+ nearest_point_on_surface(result: number[], reference: number[]): void;
22
+ /**
23
+ *
24
+ * @param {number[]} result
25
+ * @param {number} result_offset
26
+ * @param {function} random
27
+ * @returns {void}
28
+ */
29
+ sample_random_point_in_volume(result: number[], result_offset: number, random: Function): void;
30
+ /**
31
+ * Whether or not given point is inside the shape
32
+ * @param {number[]} point
33
+ * @returns {boolean}
34
+ */
35
+ contains_point(point: number[]): boolean;
36
+ /**
37
+ * Total volume of the shape
38
+ * @returns {number}
39
+ */
40
+ get volume(): number;
41
+ /**
42
+ * @returns {number}
43
+ */
44
+ get surface_area(): number;
45
+ /**
46
+ *
47
+ * @param {number[]|ArrayLike<number>|Float32Array|Float64Array} result format: x0,y0,z0,x1,y1,z1
48
+ * @returns {void}
49
+ */
50
+ compute_bounding_box(result: number[] | ArrayLike<number> | Float32Array | Float64Array): void;
51
+ /**
52
+ * Support function, given a direction vector, return point on the shape that's furthest in that direction
53
+ * Assumes direction is a unit vector
54
+ * @param {number[]|Float32Array} result
55
+ * @param {number} result_offset
56
+ * @param {number} direction_x
57
+ * @param {number} direction_y
58
+ * @param {number} direction_z
59
+ * @returns {void}
60
+ */
61
+ support(result: number[] | Float32Array, result_offset: number, direction_x: number, direction_y: number, direction_z: number): void;
62
+ /**
63
+ * @template {AbstractShape3D} T
64
+ * @param {T} other
65
+ * @returns {boolean}
66
+ */
67
+ equals<T extends AbstractShape3D>(other: T): boolean;
68
+ /**
69
+ *
70
+ * @returns {number}
71
+ */
72
+ hash(): number;
73
+ }
74
+ //# sourceMappingURL=AbstractShape3D.d.ts.map
@@ -0,0 +1,37 @@
1
+ /**
2
+ * A capsule aligned with the Y axis. Composed of a cylindrical section of
3
+ * length {@link height} and two hemispherical caps of radius {@link radius}.
4
+ * Total extent along Y is `height + 2 * radius`.
5
+ */
6
+ export class CapsuleShape3D extends AbstractShape3D {
7
+ /**
8
+ * @param {number} radius
9
+ * @param {number} height
10
+ * @returns {CapsuleShape3D}
11
+ */
12
+ static from(radius: number, height: number): CapsuleShape3D;
13
+ /**
14
+ * Radius of the hemispherical caps and the cylindrical section
15
+ * @type {number}
16
+ */
17
+ radius: number;
18
+ /**
19
+ * Length of the cylindrical (straight) section, NOT including the hemispheres
20
+ * @type {number}
21
+ */
22
+ height: number;
23
+ compute_bounding_box(result: any): void;
24
+ signed_distance_at_point(point: any): number;
25
+ signed_distance_gradient_at_point(result: any, point: any): number;
26
+ contains_point(point: any): boolean;
27
+ nearest_point_on_surface(result: any, reference: any): void;
28
+ support(result: any, result_offset: any, direction_x: any, direction_y: any, direction_z: any): void;
29
+ sample_random_point_in_volume(result: any, result_offset: any, random: any): void;
30
+ /**
31
+ * @param {CapsuleShape3D} other
32
+ * @returns {boolean}
33
+ */
34
+ equals(other: CapsuleShape3D): boolean;
35
+ }
36
+ import { AbstractShape3D } from "./AbstractShape3D.js";
37
+ //# sourceMappingURL=CapsuleShape3D.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CapsuleShape3D.d.ts","sourceRoot":"","sources":["../../../../../../src/core/geom/3d/shape/CapsuleShape3D.js"],"names":[],"mappings":"AAYA;;;;GAIG;AACH;IAiBI;;;;OAIG;IACH,oBAJW,MAAM,UACN,MAAM,GACJ,cAAc,CAa1B;IA7BG;;;OAGG;IACH,QAFU,MAAM,CAEC;IAEjB;;;OAGG;IACH,QAFU,MAAM,CAED;IAqCnB,wCAUC;IAED,6CAaC;IAED,mEAEC;IAED,oCAcC;IAED,4DA+BC;IAED,qGAUC;IAED,kFA+BC;IAED;;;OAGG;IACH,cAHW,cAAc,GACZ,OAAO,CAMnB;CAQJ;gCA1M+B,sBAAsB"}
@@ -0,0 +1,210 @@
1
+ import { assert } from "../../../assert.js";
2
+ import { clamp } from "../../../math/clamp.js";
3
+ import { sign_not_zero } from "../../../math/sign_not_zero.js";
4
+ import { computeHashFloat } from "../../../primitives/numbers/computeHashFloat.js";
5
+ import { randomPointInCircle } from "../../random/randomPointInCircle.js";
6
+ import { randomPointInSphere } from "../../random/randomPointInSphere.js";
7
+ import { v3_length } from "../../vec3/v3_length.js";
8
+ import { AbstractShape3D } from "./AbstractShape3D.js";
9
+ import { compute_signed_distance_gradient_by_sampling } from "./util/compute_signed_distance_gradient_by_sampling.js";
10
+
11
+ const scratch_v3 = [0, 0, 0];
12
+
13
+ /**
14
+ * A capsule aligned with the Y axis. Composed of a cylindrical section of
15
+ * length {@link height} and two hemispherical caps of radius {@link radius}.
16
+ * Total extent along Y is `height + 2 * radius`.
17
+ */
18
+ export class CapsuleShape3D extends AbstractShape3D {
19
+ constructor() {
20
+ super();
21
+
22
+ /**
23
+ * Radius of the hemispherical caps and the cylindrical section
24
+ * @type {number}
25
+ */
26
+ this.radius = 0.5;
27
+
28
+ /**
29
+ * Length of the cylindrical (straight) section, NOT including the hemispheres
30
+ * @type {number}
31
+ */
32
+ this.height = 1;
33
+ }
34
+
35
+ /**
36
+ * @param {number} radius
37
+ * @param {number} height
38
+ * @returns {CapsuleShape3D}
39
+ */
40
+ static from(radius, height) {
41
+ assert.isNumber(radius, 'radius');
42
+ assert.isNumber(height, 'height');
43
+ assert.greaterThanOrEqual(radius, 0, 'radius');
44
+ assert.greaterThanOrEqual(height, 0, 'height');
45
+
46
+ const r = new CapsuleShape3D();
47
+ r.radius = radius;
48
+ r.height = height;
49
+
50
+ return r;
51
+ }
52
+
53
+ get volume() {
54
+ const r = this.radius;
55
+ const h = this.height;
56
+
57
+ // cylindrical core + full sphere (two hemispheres)
58
+ return Math.PI * r * r * h + (4 / 3) * Math.PI * r * r * r;
59
+ }
60
+
61
+ get surface_area() {
62
+ const r = this.radius;
63
+ const h = this.height;
64
+
65
+ // side of the cylinder + full sphere surface (two hemispheres)
66
+ return 2 * Math.PI * r * h + 4 * Math.PI * r * r;
67
+ }
68
+
69
+ compute_bounding_box(result) {
70
+ const r = this.radius;
71
+ const half_h = this.height / 2;
72
+
73
+ result[0] = -r;
74
+ result[1] = -half_h - r;
75
+ result[2] = -r;
76
+ result[3] = r;
77
+ result[4] = half_h + r;
78
+ result[5] = r;
79
+ }
80
+
81
+ signed_distance_at_point(point) {
82
+ const px = point[0];
83
+ const py = point[1];
84
+ const pz = point[2];
85
+
86
+ const half_h = this.height / 2;
87
+
88
+ // collapse Y onto the central segment
89
+ const y_seg = clamp(py, -half_h, half_h);
90
+
91
+ const dy = py - y_seg;
92
+
93
+ return v3_length(px, dy, pz) - this.radius;
94
+ }
95
+
96
+ signed_distance_gradient_at_point(result, point) {
97
+ return compute_signed_distance_gradient_by_sampling(result, this, point);
98
+ }
99
+
100
+ contains_point(point) {
101
+ const px = point[0];
102
+ const py = point[1];
103
+ const pz = point[2];
104
+
105
+ const half_h = this.height / 2;
106
+
107
+ const y_seg = clamp(py, -half_h, half_h);
108
+
109
+ const dy = py - y_seg;
110
+
111
+ const r = this.radius;
112
+
113
+ return px * px + dy * dy + pz * pz < r * r;
114
+ }
115
+
116
+ nearest_point_on_surface(result, reference) {
117
+ const rx = reference[0];
118
+ const ry = reference[1];
119
+ const rz = reference[2];
120
+
121
+ const half_h = this.height / 2;
122
+
123
+ // closest point on the central segment
124
+ const y_seg = clamp(ry, -half_h, half_h);
125
+
126
+ const dx = rx;
127
+ const dy = ry - y_seg;
128
+ const dz = rz;
129
+
130
+ const dist = v3_length(dx, dy, dz);
131
+
132
+ const r = this.radius;
133
+
134
+ if (dist === 0) {
135
+ // reference is on the central axis, pick an arbitrary surface direction (+X)
136
+ result[0] = r;
137
+ result[1] = y_seg;
138
+ result[2] = 0;
139
+ return;
140
+ }
141
+
142
+ const scale = r / dist;
143
+
144
+ result[0] = dx * scale;
145
+ result[1] = y_seg + dy * scale;
146
+ result[2] = dz * scale;
147
+ }
148
+
149
+ support(result, result_offset, direction_x, direction_y, direction_z) {
150
+ const half_h = this.height / 2;
151
+ const r = this.radius;
152
+
153
+ // pick the hemisphere whose center is along +direction.y
154
+ const cap_y = sign_not_zero(direction_y) * half_h;
155
+
156
+ result[result_offset] = direction_x * r;
157
+ result[result_offset + 1] = cap_y + direction_y * r;
158
+ result[result_offset + 2] = direction_z * r;
159
+ }
160
+
161
+ sample_random_point_in_volume(result, result_offset, random) {
162
+ const r = this.radius;
163
+ const h = this.height;
164
+
165
+ const cylinder_volume = Math.PI * r * r * h;
166
+ const sphere_volume = (4 / 3) * Math.PI * r * r * r;
167
+ const total_volume = cylinder_volume + sphere_volume;
168
+
169
+ const pick = random() * total_volume;
170
+
171
+ if (pick < cylinder_volume) {
172
+ // sample inside the cylindrical core
173
+ randomPointInCircle(random, scratch_v3, 0);
174
+
175
+ const y = (random() - 0.5) * h;
176
+
177
+ result[result_offset] = scratch_v3[0] * r;
178
+ result[result_offset + 1] = y;
179
+ result[result_offset + 2] = scratch_v3[1] * r;
180
+ } else {
181
+ // sample inside a hemispherical cap
182
+ randomPointInSphere(random, scratch_v3, 0);
183
+
184
+ const sy = scratch_v3[1];
185
+
186
+ const cap_offset = sign_not_zero(sy) * (h / 2);
187
+
188
+ result[result_offset] = scratch_v3[0] * r;
189
+ result[result_offset + 1] = sy * r + cap_offset;
190
+ result[result_offset + 2] = scratch_v3[2] * r;
191
+ }
192
+ }
193
+
194
+ /**
195
+ * @param {CapsuleShape3D} other
196
+ * @returns {boolean}
197
+ */
198
+ equals(other) {
199
+ return super.equals(other)
200
+ && this.radius === other.radius
201
+ && this.height === other.height;
202
+ }
203
+
204
+ hash() {
205
+ const a = computeHashFloat(this.radius);
206
+ const b = computeHashFloat(this.height);
207
+
208
+ return ((a << 5) - a + b) | 0;
209
+ }
210
+ }
@@ -3,6 +3,11 @@
3
3
  */
4
4
  export class PointShape3D extends AbstractShape3D {
5
5
  static INSTANCE: PointShape3D;
6
+ compute_bounding_box(result: any): void;
7
+ signed_distance_at_point(point: any): number;
8
+ contains_point(point: any): boolean;
9
+ nearest_point_on_surface(result: any, reference: any): void;
10
+ sample_random_point_in_volume(result: any, result_offset: any, random: any): void;
6
11
  support(result: any, result_offset: any, direction_x: any, direction_y: any, direction_z: any): void;
7
12
  }
8
13
  import { AbstractShape3D } from "./AbstractShape3D.js";
@@ -1 +1 @@
1
- {"version":3,"file":"PointShape3D.d.ts","sourceRoot":"","sources":["../../../../../../src/core/geom/3d/shape/PointShape3D.js"],"names":[],"mappings":"AAEA;;GAEG;AACH;IAOI,8BAAqC;IANrC,qGAIC;CAGJ;gCAb+B,sBAAsB"}
1
+ {"version":3,"file":"PointShape3D.d.ts","sourceRoot":"","sources":["../../../../../../src/core/geom/3d/shape/PointShape3D.js"],"names":[],"mappings":"AAGA;;GAEG;AACH;IA4CI,8BAAqC;IAnCrC,wCAOC;IAED,6CAEC;IAED,oCAEC;IAED,4DAIC;IAED,kFAIC;IAED,qGAIC;CAGJ;gCAlD+B,sBAAsB"}
@@ -1,14 +1,52 @@
1
- import { AbstractShape3D } from "./AbstractShape3D.js";
2
-
3
- /**
4
- * Describes a point, shape that encloses no space
5
- */
6
- export class PointShape3D extends AbstractShape3D {
7
- support(result, result_offset, direction_x, direction_y, direction_z) {
8
- result[result_offset] = 0;
9
- result[result_offset + 1] = 0;
10
- result[result_offset + 2] = 0;
11
- }
12
-
13
- static INSTANCE = new PointShape3D();
14
- }
1
+ import { v3_length } from "../../vec3/v3_length.js";
2
+ import { AbstractShape3D } from "./AbstractShape3D.js";
3
+
4
+ /**
5
+ * Describes a point, shape that encloses no space
6
+ */
7
+ export class PointShape3D extends AbstractShape3D {
8
+ get volume() {
9
+ return 0;
10
+ }
11
+
12
+ get surface_area() {
13
+ return 0;
14
+ }
15
+
16
+ compute_bounding_box(result) {
17
+ result[0] = 0;
18
+ result[1] = 0;
19
+ result[2] = 0;
20
+ result[3] = 0;
21
+ result[4] = 0;
22
+ result[5] = 0;
23
+ }
24
+
25
+ signed_distance_at_point(point) {
26
+ return v3_length(point[0], point[1], point[2]);
27
+ }
28
+
29
+ contains_point(point) {
30
+ return false;
31
+ }
32
+
33
+ nearest_point_on_surface(result, reference) {
34
+ result[0] = 0;
35
+ result[1] = 0;
36
+ result[2] = 0;
37
+ }
38
+
39
+ sample_random_point_in_volume(result, result_offset, random) {
40
+ result[result_offset] = 0;
41
+ result[result_offset + 1] = 0;
42
+ result[result_offset + 2] = 0;
43
+ }
44
+
45
+ support(result, result_offset, direction_x, direction_y, direction_z) {
46
+ result[result_offset] = 0;
47
+ result[result_offset + 1] = 0;
48
+ result[result_offset + 2] = 0;
49
+ }
50
+
51
+ static INSTANCE = new PointShape3D();
52
+ }