@woosh/meep-engine 2.168.1 → 2.169.0

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 (287) hide show
  1. package/README.md +2 -2
  2. package/build/bundle-worker-image-decoder.js +1 -1
  3. package/package.json +1 -1
  4. package/src/REVIEW_2026_08_06/adv-core.md +511 -0
  5. package/src/REVIEW_2026_08_06/adv-gfx.md +480 -0
  6. package/src/REVIEW_2026_08_06/adv-view.md +446 -0
  7. package/src/REVIEW_2026_08_06/api-core.md +296 -0
  8. package/src/REVIEW_2026_08_06/api-engine.md +195 -0
  9. package/src/REVIEW_2026_08_06/bvh-phys-sound-net.md +507 -0
  10. package/src/REVIEW_2026_08_06/core-binary.md +348 -0
  11. package/src/REVIEW_2026_08_06/core-collection.md +376 -0
  12. package/src/REVIEW_2026_08_06/core-math.md +221 -0
  13. package/src/REVIEW_2026_08_06/core-process.md +266 -0
  14. package/src/REVIEW_2026_08_06/core-science.md +223 -0
  15. package/src/REVIEW_2026_08_06/engine-ai-nav.md +279 -0
  16. package/src/REVIEW_2026_08_06/engine-animation.md +167 -0
  17. package/src/REVIEW_2026_08_06/engine-asset.md +166 -0
  18. package/src/REVIEW_2026_08_06/engine-ecs.md +920 -0
  19. package/src/REVIEW_2026_08_06/engine-input.md +197 -0
  20. package/src/REVIEW_2026_08_06/engine-misc.md +248 -0
  21. package/src/REVIEW_2026_08_06/engine-terrain.md +52 -0
  22. package/src/REVIEW_2026_08_06/generation.md +176 -0
  23. package/src/REVIEW_2026_08_06/geom-2d.md +434 -0
  24. package/src/REVIEW_2026_08_06/geom-3d.md +117 -0
  25. package/src/REVIEW_2026_08_06/gfx-gi.md +143 -0
  26. package/src/REVIEW_2026_08_06/gfx-render.md +740 -0
  27. package/src/REVIEW_2026_08_06/gfx-texture.md +690 -0
  28. package/src/REVIEW_2026_08_06/prior-criticals.md +49 -0
  29. package/src/REVIEW_2026_08_06/prior-highs.md +138 -0
  30. package/src/REVIEW_2026_08_06/test-gaps.md +364 -0
  31. package/src/REVIEW_2026_08_06/view.md +667 -0
  32. package/src/REVIEW_2026_08_06.md +571 -0
  33. package/src/core/binary/BinaryBuffer.d.ts.map +1 -1
  34. package/src/core/binary/BinaryBuffer.js +12 -1
  35. package/src/core/binary/BitImage2.d.ts +5 -1
  36. package/src/core/binary/BitImage2.d.ts.map +1 -1
  37. package/src/core/binary/BitImage2.js +5 -1
  38. package/src/core/bvh8/build/NodeProxy.d.ts.map +1 -1
  39. package/src/core/bvh8/build/NodeProxy.js +314 -308
  40. package/src/core/collection/list/List.d.ts +15 -0
  41. package/src/core/collection/list/List.d.ts.map +1 -1
  42. package/src/core/collection/list/List.js +34 -0
  43. package/src/core/collection/list/SortedListProjection.d.ts.map +1 -1
  44. package/src/core/collection/list/SortedListProjection.js +4 -1
  45. package/src/core/collection/map/BiMap.d.ts +25 -2
  46. package/src/core/collection/map/BiMap.d.ts.map +1 -1
  47. package/src/core/collection/map/BiMap.js +57 -3
  48. package/src/core/debug/matchers/IsAnything.d.ts.map +1 -1
  49. package/src/core/debug/matchers/IsAnything.js +5 -1
  50. package/src/core/events/signal/Signal.d.ts.map +1 -1
  51. package/src/core/events/signal/Signal.js +3 -1
  52. package/src/core/geom/2d/polygon/TRIANGULATION_DESIGN.md +433 -0
  53. package/src/core/geom/2d/polygon/polygon2_is_counter_clockwise.d.ts +31 -0
  54. package/src/core/geom/2d/polygon/polygon2_is_counter_clockwise.d.ts.map +1 -0
  55. package/src/core/geom/2d/polygon/polygon2_is_counter_clockwise.js +84 -0
  56. package/src/core/geom/2d/polygon/polygon2_signed_area.d.ts +24 -2
  57. package/src/core/geom/2d/polygon/polygon2_signed_area.d.ts.map +1 -1
  58. package/src/core/geom/2d/polygon/polygon2_signed_area.js +52 -34
  59. package/src/core/geom/2d/polygon/polygon2_triangulate.corpus.d.ts +28 -0
  60. package/src/core/geom/2d/polygon/polygon2_triangulate.corpus.d.ts.map +1 -0
  61. package/src/core/geom/2d/polygon/polygon2_triangulate.corpus.js +86 -0
  62. package/src/core/geom/2d/polygon/polygon2_triangulate.d.ts +40 -0
  63. package/src/core/geom/2d/polygon/polygon2_triangulate.d.ts.map +1 -0
  64. package/src/core/geom/2d/polygon/polygon2_triangulate.js +1280 -0
  65. package/src/core/geom/2d/polygon/polygon2_triangulation_deviation.d.ts +28 -0
  66. package/src/core/geom/2d/polygon/polygon2_triangulation_deviation.d.ts.map +1 -0
  67. package/src/core/geom/2d/polygon/polygon2_triangulation_deviation.js +77 -0
  68. package/src/core/geom/2d/triangle/tri2_rasterize_conservative.d.ts +6 -3
  69. package/src/core/geom/2d/triangle/tri2_rasterize_conservative.d.ts.map +1 -1
  70. package/src/core/geom/2d/triangle/tri2_rasterize_conservative.js +26 -13
  71. package/src/core/geom/2d/triangle/tri2_signed_area.d.ts +17 -1
  72. package/src/core/geom/2d/triangle/tri2_signed_area.d.ts.map +1 -1
  73. package/src/core/geom/2d/triangle/tri2_signed_area.js +35 -23
  74. package/src/core/geom/2d/v2_morton_encode.d.ts +20 -0
  75. package/src/core/geom/2d/v2_morton_encode.d.ts.map +1 -0
  76. package/src/core/geom/2d/v2_morton_encode.js +23 -0
  77. package/src/core/geom/3d/atlas/segment/atlas_merge_charts.d.ts.map +1 -1
  78. package/src/core/geom/3d/atlas/segment/atlas_merge_charts.js +4 -1
  79. package/src/core/geom/3d/polygon/polygon3_compute_normal.d.ts +27 -0
  80. package/src/core/geom/3d/polygon/polygon3_compute_normal.d.ts.map +1 -0
  81. package/src/core/geom/3d/polygon/polygon3_compute_normal.js +60 -0
  82. package/src/core/geom/3d/polygon/polygon3_triangulate.d.ts +34 -0
  83. package/src/core/geom/3d/polygon/polygon3_triangulate.d.ts.map +1 -0
  84. package/src/core/geom/3d/polygon/polygon3_triangulate.js +94 -0
  85. package/src/core/geom/3d/quaternion/quat3_multiply.d.ts +8 -2
  86. package/src/core/geom/3d/quaternion/quat3_multiply.d.ts.map +1 -1
  87. package/src/core/geom/3d/quaternion/quat3_multiply.js +8 -2
  88. package/src/core/geom/3d/shape/ConvexHullShape3D.d.ts.map +1 -1
  89. package/src/core/geom/3d/shape/ConvexHullShape3D.js +32 -2
  90. package/src/core/geom/3d/topology/struct/binary/io/face/bt_face_triangulate.d.ts +23 -6
  91. package/src/core/geom/3d/topology/struct/binary/io/face/bt_face_triangulate.d.ts.map +1 -1
  92. package/src/core/geom/3d/topology/struct/binary/io/face/bt_face_triangulate.js +268 -124
  93. package/src/core/geom/3d/topology/struct/binary/query/bt_mesh_assert_valid.d.ts +17 -0
  94. package/src/core/geom/3d/topology/struct/binary/query/bt_mesh_assert_valid.d.ts.map +1 -0
  95. package/src/core/geom/3d/topology/struct/binary/query/bt_mesh_assert_valid.js +44 -0
  96. package/src/core/geom/3d/topology/struct/binary/query/bt_mesh_count_edge_faces.d.ts +20 -0
  97. package/src/core/geom/3d/topology/struct/binary/query/bt_mesh_count_edge_faces.d.ts.map +1 -0
  98. package/src/core/geom/3d/topology/struct/binary/query/bt_mesh_count_edge_faces.js +40 -0
  99. package/src/core/geom/3d/topology/struct/binary/query/bt_mesh_is_closed.d.ts +19 -0
  100. package/src/core/geom/3d/topology/struct/binary/query/bt_mesh_is_closed.d.ts.map +1 -0
  101. package/src/core/geom/3d/topology/struct/binary/query/bt_mesh_is_closed.js +34 -0
  102. package/src/core/geom/3d/topology/struct/binary/query/bt_mesh_is_manifold.d.ts +22 -0
  103. package/src/core/geom/3d/topology/struct/binary/query/bt_mesh_is_manifold.d.ts.map +1 -0
  104. package/src/core/geom/3d/topology/struct/binary/query/bt_mesh_is_manifold.js +37 -0
  105. package/src/core/geom/3d/topology/struct/binary/query/bt_mesh_validate.d.ts +87 -0
  106. package/src/core/geom/3d/topology/struct/binary/query/bt_mesh_validate.d.ts.map +1 -0
  107. package/src/core/geom/3d/topology/struct/binary/query/bt_mesh_validate.js +599 -0
  108. package/src/core/geom/3d/triangle/tri3_compute_signed_volume.d.ts +32 -0
  109. package/src/core/geom/3d/triangle/tri3_compute_signed_volume.d.ts.map +1 -1
  110. package/src/core/geom/3d/triangle/tri3_compute_signed_volume.js +66 -7
  111. package/src/core/geom/3d/triangle/tri3_mesh_compute_signed_volume.d.ts +22 -1
  112. package/src/core/geom/3d/triangle/tri3_mesh_compute_signed_volume.d.ts.map +1 -1
  113. package/src/core/geom/3d/triangle/tri3_mesh_compute_signed_volume.js +83 -38
  114. package/src/core/geom/MANIFOLD_COMPARISON_2026_08_01.md +554 -0
  115. package/src/core/geom/vec3/v3_cotangent.d.ts +6 -2
  116. package/src/core/geom/vec3/v3_cotangent.d.ts.map +1 -1
  117. package/src/core/geom/vec3/v3_cotangent.js +6 -2
  118. package/src/core/geom/vec3/v3_cross.d.ts +6 -2
  119. package/src/core/geom/vec3/v3_cross.d.ts.map +1 -1
  120. package/src/core/geom/vec3/v3_cross.js +6 -2
  121. package/src/core/geom/vec3/v3_multiply.d.ts +6 -2
  122. package/src/core/geom/vec3/v3_multiply.d.ts.map +1 -1
  123. package/src/core/geom/vec3/v3_multiply.js +6 -2
  124. package/src/core/geom/vec3/v3_subtract.d.ts +6 -2
  125. package/src/core/geom/vec3/v3_subtract.d.ts.map +1 -1
  126. package/src/core/geom/vec3/v3_subtract.js +6 -2
  127. package/src/core/localization/Localization.js +1 -1
  128. package/src/core/math/random/randomSeed.d.ts +13 -0
  129. package/src/core/math/random/randomSeed.d.ts.map +1 -0
  130. package/src/core/math/random/randomSeed.js +16 -0
  131. package/src/core/math/spline/spline3_hermite_apply_transform.d.ts +50 -0
  132. package/src/core/math/spline/spline3_hermite_apply_transform.d.ts.map +1 -0
  133. package/src/core/math/spline/spline3_hermite_apply_transform.js +107 -0
  134. package/src/core/math/spline/spline3_hermite_reverse.d.ts +34 -0
  135. package/src/core/math/spline/spline3_hermite_reverse.d.ts.map +1 -0
  136. package/src/core/math/spline/spline3_hermite_reverse.js +49 -0
  137. package/src/core/math/statistics/hammersley_sequence.d.ts +17 -4
  138. package/src/core/math/statistics/hammersley_sequence.d.ts.map +1 -1
  139. package/src/core/math/statistics/hammersley_sequence.js +25 -16
  140. package/src/core/process/Future.d.ts.map +1 -1
  141. package/src/core/process/Future.js +12 -0
  142. package/src/core/process/PromiseWatcher.d.ts.map +1 -1
  143. package/src/core/process/PromiseWatcher.js +9 -2
  144. package/src/core/process/executor/ConcurrentExecutor.d.ts.map +1 -1
  145. package/src/core/process/executor/ConcurrentExecutor.js +12 -2
  146. package/src/core/process/worker/WorkerProxy.d.ts.map +1 -1
  147. package/src/core/process/worker/WorkerProxy.js +5 -2
  148. package/src/core/process/worker/extractTransferables.d.ts.map +1 -1
  149. package/src/core/process/worker/extractTransferables.js +4 -1
  150. package/src/engine/Engine.d.ts +12 -12
  151. package/src/engine/Engine.d.ts.map +1 -1
  152. package/src/engine/Engine.js +149 -10
  153. package/src/engine/asset/loaders/ArrayBufferLoader.d.ts.map +1 -1
  154. package/src/engine/asset/loaders/ArrayBufferLoader.js +7 -0
  155. package/src/engine/ecs/speaker/lines/sets/LineSetDescription.d.ts.map +1 -1
  156. package/src/engine/ecs/speaker/lines/sets/LineSetDescription.js +3 -1
  157. package/src/engine/ecs/terrain/ecs/TerrainSystem.d.ts.map +1 -1
  158. package/src/engine/ecs/terrain/ecs/TerrainSystem.js +4 -1
  159. package/src/engine/ecs/terrain/tiles/TerrainTileManager.d.ts +29 -0
  160. package/src/engine/ecs/terrain/tiles/TerrainTileManager.d.ts.map +1 -1
  161. package/src/engine/ecs/terrain/tiles/TerrainTileManager.js +84 -23
  162. package/src/engine/graphics/CONTEXT_LOSS_RECOVERY_PLAN.md +446 -0
  163. package/src/engine/graphics/GraphicsEngine.d.ts +56 -7
  164. package/src/engine/graphics/GraphicsEngine.d.ts.map +1 -1
  165. package/src/engine/graphics/GraphicsEngine.js +196 -24
  166. package/src/engine/graphics/context/WebGLContextFailureReason.d.ts +9 -0
  167. package/src/engine/graphics/context/WebGLContextFailureReason.d.ts.map +1 -0
  168. package/src/engine/graphics/context/WebGLContextFailureReason.js +17 -0
  169. package/src/engine/graphics/context/WebGLContextMonitor.d.ts +106 -0
  170. package/src/engine/graphics/context/WebGLContextMonitor.d.ts.map +1 -0
  171. package/src/engine/graphics/context/WebGLContextMonitor.js +341 -0
  172. package/src/engine/graphics/context/WebGLContextState.d.ts +14 -0
  173. package/src/engine/graphics/context/WebGLContextState.d.ts.map +1 -0
  174. package/src/engine/graphics/context/WebGLContextState.js +24 -0
  175. package/src/engine/graphics/context/testWebGLContextLoss.d.ts +2 -0
  176. package/src/engine/graphics/context/testWebGLContextLoss.d.ts.map +1 -0
  177. package/src/engine/graphics/context/testWebGLContextLoss.js +696 -0
  178. package/src/engine/graphics/ecs/camera/serialization/CameraSerializationAdapter.d.ts.map +1 -1
  179. package/src/engine/graphics/ecs/camera/serialization/CameraSerializationAdapter.js +68 -32
  180. package/src/engine/graphics/ecs/camera/serialization/CameraSerializationUpgrader_0_1.d.ts +14 -0
  181. package/src/engine/graphics/ecs/camera/serialization/CameraSerializationUpgrader_0_1.d.ts.map +1 -0
  182. package/src/engine/graphics/ecs/camera/serialization/CameraSerializationUpgrader_0_1.js +41 -0
  183. package/src/engine/graphics/ecs/decal/v2/FPDecalSystem.js +1 -1
  184. package/src/engine/graphics/ecs/mesh-v2/ShadedGeometrySystem.d.ts.map +1 -1
  185. package/src/engine/graphics/ecs/mesh-v2/ShadedGeometrySystem.js +5 -0
  186. package/src/engine/graphics/ecs/trail2d/Trail2DSystem.d.ts +1 -1
  187. package/src/engine/graphics/ecs/trail2d/Trail2DSystem.d.ts.map +1 -1
  188. package/src/engine/graphics/ecs/trail2d/Trail2DSystem.js +2 -1
  189. package/src/engine/graphics/ecs/trail3d/Trail3DSystem.d.ts +1 -1
  190. package/src/engine/graphics/ecs/trail3d/Trail3DSystem.d.ts.map +1 -1
  191. package/src/engine/graphics/ecs/trail3d/Trail3DSystem.js +3 -5
  192. package/src/engine/graphics/geometry/MikkT/BuildNeighborsFast.d.ts.map +1 -1
  193. package/src/engine/graphics/geometry/MikkT/BuildNeighborsFast.js +3 -2
  194. package/src/engine/graphics/geometry/MikkT/GenerateSharedVerticesIndexList.d.ts.map +1 -1
  195. package/src/engine/graphics/geometry/MikkT/GenerateSharedVerticesIndexList.js +3 -1
  196. package/src/engine/graphics/geometry/computeMeshSurfaceArea.js +1 -1
  197. package/src/engine/graphics/load_and_set_cubemap_v0.d.ts +5 -0
  198. package/src/engine/graphics/load_and_set_cubemap_v0.d.ts.map +1 -1
  199. package/src/engine/graphics/load_and_set_cubemap_v0.js +26 -21
  200. package/src/engine/graphics/particles/particular/group/ParticleGroup.d.ts.map +1 -1
  201. package/src/engine/graphics/particles/particular/group/ParticleGroup.js +19 -8
  202. package/src/engine/graphics/particles/particular/group/optimizeCommandQueue.js +1 -1
  203. package/src/engine/graphics/texture/atlas/AtlasLookupTexture.d.ts.map +1 -1
  204. package/src/engine/graphics/texture/atlas/AtlasLookupTexture.js +10 -3
  205. package/src/engine/graphics/texture/atlas/TextureAtlas.d.ts.map +1 -1
  206. package/src/engine/graphics/texture/atlas/TextureAtlas.js +4 -1
  207. package/src/engine/graphics/texture/atlas/gpu/WebGLTextureAtlas.d.ts.map +1 -1
  208. package/src/engine/graphics/texture/atlas/gpu/WebGLTextureAtlas.js +11 -0
  209. package/src/engine/graphics/texture/cubemap/load_environment_map.d.ts.map +1 -1
  210. package/src/engine/graphics/texture/cubemap/load_environment_map.js +5 -2
  211. package/src/engine/graphics/texture/sampler/distance/computeSignedDistanceField_Chamfer.d.ts.map +1 -1
  212. package/src/engine/graphics/texture/sampler/distance/computeSignedDistanceField_Chamfer.js +26 -18
  213. package/src/engine/graphics/texture/sampler/filter/sampler2d_blur_gaussian.d.ts +15 -2
  214. package/src/engine/graphics/texture/sampler/filter/sampler2d_blur_gaussian.d.ts.map +1 -1
  215. package/src/engine/graphics/texture/sampler/filter/sampler2d_blur_gaussian.js +29 -3
  216. package/src/engine/graphics/texture/sampler/resize/sampler2d_scale_down_lanczos.d.ts +11 -1
  217. package/src/engine/graphics/texture/sampler/resize/sampler2d_scale_down_lanczos.d.ts.map +1 -1
  218. package/src/engine/graphics/texture/sampler/resize/sampler2d_scale_down_lanczos.js +158 -171
  219. package/src/engine/graphics/texture/sampler/sampler2d_paint.js +1 -1
  220. package/src/engine/graphics/texture/sampler/util/bitSet2Sampler2D.js +2 -2
  221. package/src/engine/input/ecs/util/TopDownCameraControllerHelper.d.ts.map +1 -1
  222. package/src/engine/input/ecs/util/TopDownCameraControllerHelper.js +10 -3
  223. package/src/engine/navigation/ecs/components/PathSerializationUpgrader_2_3.d.ts +14 -0
  224. package/src/engine/navigation/ecs/components/PathSerializationUpgrader_2_3.d.ts.map +1 -0
  225. package/src/engine/navigation/ecs/components/PathSerializationUpgrader_2_3.js +38 -0
  226. package/src/engine/network/orchestrator/ServerAuthoritativeClient.d.ts.map +1 -1
  227. package/src/engine/network/orchestrator/ServerAuthoritativeClient.js +433 -425
  228. package/src/engine/physics/constraint/solve_constraints.d.ts +4 -1
  229. package/src/engine/physics/constraint/solve_constraints.d.ts.map +1 -1
  230. package/src/engine/physics/constraint/solve_constraints.js +38 -13
  231. package/src/engine/physics/contact/ManifoldStore.d.ts +15 -3
  232. package/src/engine/physics/contact/ManifoldStore.d.ts.map +1 -1
  233. package/src/engine/physics/contact/ManifoldStore.js +15 -3
  234. package/src/engine/physics/ecs/Joint.d.ts +7 -4
  235. package/src/engine/physics/ecs/Joint.d.ts.map +1 -1
  236. package/src/engine/physics/ecs/Joint.js +7 -4
  237. package/src/engine/physics/ecs/PhysicsSystem.d.ts +14 -0
  238. package/src/engine/physics/ecs/PhysicsSystem.d.ts.map +1 -1
  239. package/src/engine/physics/ecs/PhysicsSystem.js +16 -0
  240. package/src/engine/physics/fluid/ecs/FluidObstacleSystem.d.ts +4 -4
  241. package/src/engine/physics/fluid/ecs/FluidSystem.d.ts +3 -3
  242. package/src/engine/physics/narrowphase/convex_convex_manifold.d.ts +15 -7
  243. package/src/engine/physics/narrowphase/convex_convex_manifold.d.ts.map +1 -1
  244. package/src/engine/physics/narrowphase/convex_convex_manifold.js +33 -10
  245. package/src/engine/physics/narrowphase/refine_ray_concave.d.ts +6 -2
  246. package/src/engine/physics/narrowphase/refine_ray_concave.d.ts.map +1 -1
  247. package/src/engine/physics/narrowphase/refine_ray_concave.js +6 -2
  248. package/src/engine/physics/narrowphase/refine_ray_hit.d.ts +6 -2
  249. package/src/engine/physics/narrowphase/refine_ray_hit.d.ts.map +1 -1
  250. package/src/engine/physics/narrowphase/refine_ray_hit.js +6 -2
  251. package/src/engine/physics/queries/raycast.d.ts.map +1 -1
  252. package/src/engine/physics/queries/raycast.js +11 -4
  253. package/src/engine/save/storage/IndexedDBStorage.d.ts.map +1 -1
  254. package/src/engine/save/storage/IndexedDBStorage.js +21 -3
  255. package/src/engine/simulation/Ticker.d.ts +12 -0
  256. package/src/engine/simulation/Ticker.d.ts.map +1 -1
  257. package/src/engine/simulation/Ticker.js +18 -0
  258. package/src/engine/sound/simulation/AcousticSimulator.d.ts.map +1 -1
  259. package/src/engine/sound/simulation/AcousticSimulator.js +9 -1
  260. package/src/engine/sound/simulation/core/VolumeField.d.ts +6 -2
  261. package/src/engine/sound/simulation/core/VolumeField.d.ts.map +1 -1
  262. package/src/engine/sound/simulation/core/VolumeField.js +6 -2
  263. package/src/engine/sound/simulation/probe/AcousticProbeField.d.ts +6 -2
  264. package/src/engine/sound/simulation/probe/AcousticProbeField.d.ts.map +1 -1
  265. package/src/engine/sound/simulation/probe/AcousticProbeField.js +6 -2
  266. package/src/engine/sound/simulation/probe/acoustic_probe_transfer.d.ts +6 -2
  267. package/src/engine/sound/simulation/probe/acoustic_probe_transfer.d.ts.map +1 -1
  268. package/src/engine/sound/simulation/probe/acoustic_probe_transfer.js +6 -2
  269. package/src/engine/sound/simulation/probe/bakeProbeReflectors.d.ts +3 -1
  270. package/src/engine/sound/simulation/probe/bakeProbeReflectors.d.ts.map +1 -1
  271. package/src/engine/sound/simulation/probe/bakeProbeReflectors.js +3 -1
  272. package/src/engine/ui/GUIEngine.d.ts.map +1 -1
  273. package/src/engine/ui/GUIEngine.js +8 -1
  274. package/src/generation/theme/TerrainTheme.d.ts.map +1 -1
  275. package/src/generation/theme/TerrainTheme.js +2 -1
  276. package/src/generation/theme/ThemeEngine.d.ts.map +1 -1
  277. package/src/generation/theme/ThemeEngine.js +6 -5
  278. package/src/view/ViewGroup.d.ts.map +1 -1
  279. package/src/view/ViewGroup.js +9 -7
  280. package/src/view/graphics/WebGLContextFailureView.d.ts +19 -0
  281. package/src/view/graphics/WebGLContextFailureView.d.ts.map +1 -0
  282. package/src/view/graphics/WebGLContextFailureView.js +76 -0
  283. package/src/view/minimap/Minimap.d.ts +8 -0
  284. package/src/view/minimap/Minimap.d.ts.map +1 -1
  285. package/src/view/minimap/Minimap.js +16 -3
  286. package/src/view/minimap/dom/MinimapMarkerView.d.ts.map +1 -1
  287. package/src/view/minimap/dom/MinimapMarkerView.js +3 -1
@@ -1,308 +1,314 @@
1
- import { array_remove_first } from "../../collection/array/array_remove_first.js";
2
- import { aabb3_array_combine } from "../../geom/3d/aabb/aabb3_array_combine.js";
3
- import { aabb3_compute_surface_area } from "../../geom/3d/aabb/aabb3_compute_surface_area.js";
4
- import { v3_distance_sqr } from "../../geom/vec3/v3_distance_sqr.js";
5
- import { BVH8_MAX_LEAF_TRIANGLE_OFFSET } from "../BVH8.js";
6
- import { aabb3_from_triangle_by_index } from "./aabb3_from_triangle_by_index.js";
7
- import { TriangleCluster } from "./TriangleCluster.js";
8
-
9
- export class NodeProxy {
10
-
11
- /**
12
- *
13
- * @type {TriangleCluster[]}
14
- */
15
- primitives = []
16
-
17
- primitive_index_low = 0xFFFFFFFF;
18
- primitive_index_high = 0;
19
-
20
- /**
21
- *
22
- * @type {NodeProxy[]}
23
- */
24
- children = []
25
-
26
- bounds = new Float32Array([
27
- Infinity, Infinity, Infinity,
28
- -Infinity, -Infinity, -Infinity
29
- ])
30
-
31
- height = 0
32
-
33
- computeHeight() {
34
- const children = this.children;
35
- const child_count = children.length;
36
-
37
- let height = 0;
38
- for (let i = 0; i < child_count; i++) {
39
- const child = children[i];
40
-
41
- if (child.height >= height) {
42
- height = child.height + 1;
43
- }
44
- }
45
-
46
- this.height = height;
47
- }
48
-
49
- primitive_count = 0;
50
-
51
- /**
52
- *
53
- * @param {NodeProxy} other
54
- * @returns {number}
55
- */
56
- computeCentroidSqrDistanceTo(other) {
57
- const ax = (this.bounds[0] + this.bounds[3]) * 0.5;
58
- const ay = (this.bounds[1] + this.bounds[4]) * 0.5;
59
- const az = (this.bounds[2] + this.bounds[5]) * 0.5;
60
-
61
- const bx = (other.bounds[0] + other.bounds[3]) * 0.5;
62
- const by = (other.bounds[1] + other.bounds[4]) * 0.5;
63
- const bz = (other.bounds[2] + other.bounds[5]) * 0.5;
64
-
65
- return v3_distance_sqr(ax, ay, az, bx, by, bz);
66
- }
67
-
68
- computePrimitiveBounds(index_array, position_array) {
69
- const clusters = this.primitives;
70
- const cluster_count = clusters.length;
71
- for (let i = 0; i < cluster_count; i++) {
72
- clusters[i].computeBounds(index_array, position_array);
73
- }
74
- }
75
-
76
- /**
77
- * A node has 8 slots that can be used for either triangle clusters or children
78
- * @returns {number}
79
- */
80
- get used_slot_count() {
81
- return this.primitives.length + this.children.length;
82
- }
83
-
84
- recomputePrimitiveSpan() {
85
- this.primitive_index_low = 0xFFFFFFFF;
86
- this.primitive_index_high = 0;
87
-
88
- for (let i = 0; i < this.primitives.length; i++) {
89
- const cluster = this.primitives[i];
90
-
91
- for (let j = 0; j < cluster.triangles.length; j++) {
92
- const triangle = cluster.triangles[j];
93
-
94
- this.primitive_index_low = Math.min(triangle, this.primitive_index_low);
95
- this.primitive_index_high = Math.max(triangle, this.primitive_index_high);
96
- }
97
- }
98
- }
99
-
100
- /**
101
- *
102
- * @param {number} index
103
- * @param {number[]|Float32Array} bounds
104
- * @returns {boolean} true if added, false otherwise
105
- */
106
- tryAddPrimitive(index, bounds) {
107
- const min = Math.min(index, this.primitive_index_low);
108
- const max = Math.max(index, this.primitive_index_high);
109
-
110
- if ((max - min) > BVH8_MAX_LEAF_TRIANGLE_OFFSET) {
111
- // a leaf meta stores the offset of its first triangle relative to the node's
112
- // lowest triangle index; offsets above the cap collide with the internal slot encoding
113
- return false;
114
- }
115
-
116
- const clusters = this.primitives;
117
- const cluster_count = clusters.length;
118
-
119
-
120
- for (let i = 0; i < cluster_count; i++) {
121
- const candidate = clusters[i];
122
-
123
-
124
- if (candidate.canAccept(index, bounds)) {
125
- candidate.add(index, bounds);
126
-
127
- this.primitive_index_low = min;
128
- this.primitive_index_high = max;
129
-
130
- return true;
131
- }
132
- }
133
-
134
- // no candidate found, see if we can create one
135
- if (this.used_slot_count === 8) {
136
- // at capacity
137
- return false;
138
- }
139
-
140
- const cluster = new TriangleCluster();
141
- cluster.add(index, bounds);
142
-
143
- let insert_position;
144
- for (insert_position = 0; insert_position < cluster_count; insert_position++) {
145
- // find where to insert new cluster, keeping clusters sorted by first triangle
146
- const candidate = clusters[insert_position];
147
- if (candidate.triangles[0] > index) {
148
- break;
149
- }
150
- }
151
-
152
- clusters.splice(insert_position, 0, cluster);
153
-
154
- this.primitive_index_low = min;
155
- this.primitive_index_high = max;
156
-
157
- return true;
158
- }
159
-
160
- addChild(node) {
161
- this.children.push(node);
162
- this.height = Math.max(this.height, node.height + 1);
163
-
164
- aabb3_array_combine(this.bounds, 0, this.bounds, 0, node.bounds, 0);
165
-
166
- this.primitive_count += node.primitive_count;
167
- }
168
-
169
- /**
170
- * Attempt to pull up data from children and in process reduce number of nodes below
171
- */
172
- optimize_pull_up(index_array, position_array) {
173
- const children = this.children;
174
- for (let i = children.length - 1; i >= 0; i--) {
175
- const child = children[i];
176
-
177
- const optimized = this.tryAbsorbChild(child, index_array, position_array);
178
-
179
- if (optimized && child.children.length > 0) {
180
- // pull up and try again
181
- child.optimize_pull_up(index_array, position_array);
182
- i++;
183
- }
184
- }
185
- }
186
-
187
- /**
188
- *
189
- * @param {NodeProxy} child
190
- * @param {number[]} index_array
191
- * @param {number[]} position_array
192
- * @return {boolean}
193
- */
194
- tryAbsorbChild(child, index_array, position_array) {
195
- const child_clusters = child.primitives;
196
- let child_cluster_count = child_clusters.length;
197
-
198
- let absorbed_count = 0;
199
-
200
- for (let i = 0; i < child_cluster_count; i++) {
201
- const cluster = child_clusters[i];
202
-
203
- const triangles = cluster.triangles;
204
- let cluster_size = triangles.length;
205
-
206
- let retry_middle = false;
207
-
208
- for (let j = 0; j < cluster_size; j++) {
209
- const triangle = triangles[j];
210
-
211
- if (j > 0 && j < cluster_size - 1) {
212
- // triangle in the middle, can't remove
213
- // triangles are indexed sequentially, gaps are not valid
214
- retry_middle = true;
215
- continue;
216
- }
217
-
218
- const bounds = [];
219
- aabb3_from_triangle_by_index(bounds, 0, triangle, index_array, position_array);
220
-
221
- if (this.tryAddPrimitive(triangle, bounds)) {
222
- triangles.splice(j, 1);
223
-
224
- child.primitive_count--;
225
-
226
- absorbed_count++;
227
-
228
- j--;
229
- cluster_size--;
230
-
231
- if (retry_middle) {
232
- j--;
233
- }
234
- }
235
- }
236
-
237
- if (cluster_size === 0) {
238
- child_clusters.splice(i, 1);
239
-
240
- i--;
241
- child_cluster_count--;
242
-
243
- }
244
- }
245
-
246
- if (absorbed_count <= 0) {
247
- // nothing absorbed, we're done
248
- return false;
249
- }
250
-
251
- child.recomputePrimitiveSpan();
252
-
253
- if (child_cluster_count === 0 && child.children.length === 0) {
254
- // dead child
255
- array_remove_first(this.children, child);
256
-
257
- if (child.height >= this.height - 1) {
258
- // should recompute height
259
- this.computeHeight();
260
- }
261
- }
262
-
263
- return true;
264
- }
265
-
266
- /**
267
- * Mostly useful for debug
268
- * @param {number} index
269
- * @returns {undefined|NodeProxy}
270
- */
271
- findNodeByPrimitive(index) {
272
- const clusters = this.primitives;
273
- for (let i = 0; i < clusters.length; i++) {
274
- if (clusters[i].contains(index)) {
275
- return this;
276
- }
277
- }
278
-
279
- const children = this.children;
280
- for (let i = 0; i < children.length; i++) {
281
- const found = children[i].findNodeByPrimitive(index);
282
-
283
- if (found !== undefined) {
284
- return found;
285
- }
286
- }
287
-
288
- // not found
289
- return undefined;
290
- }
291
-
292
- /**
293
- * Heuristic score of how good the tree is
294
- * Lower = better
295
- * @return {number}
296
- */
297
- area_score() {
298
- let result = aabb3_compute_surface_area(...this.bounds);
299
-
300
- for (const child of this.children) {
301
- result += child.area_score();
302
- }
303
-
304
- return result;
305
- }
306
- }
307
-
308
- NodeProxy.prototype.isNodeProxy = true;
1
+ import { array_remove_first } from "../../collection/array/array_remove_first.js";
2
+ import { aabb3_array_combine } from "../../geom/3d/aabb/aabb3_array_combine.js";
3
+ import { aabb3_compute_surface_area } from "../../geom/3d/aabb/aabb3_compute_surface_area.js";
4
+ import { v3_distance_sqr } from "../../geom/vec3/v3_distance_sqr.js";
5
+ import { BVH8_MAX_LEAF_TRIANGLE_OFFSET } from "../BVH8.js";
6
+ import { aabb3_from_triangle_by_index } from "./aabb3_from_triangle_by_index.js";
7
+ import { TriangleCluster } from "./TriangleCluster.js";
8
+
9
+ export class NodeProxy {
10
+
11
+ /**
12
+ *
13
+ * @type {TriangleCluster[]}
14
+ */
15
+ primitives = []
16
+
17
+ primitive_index_low = 0xFFFFFFFF;
18
+ primitive_index_high = 0;
19
+
20
+ /**
21
+ *
22
+ * @type {NodeProxy[]}
23
+ */
24
+ children = []
25
+
26
+ bounds = new Float32Array([
27
+ Infinity, Infinity, Infinity,
28
+ -Infinity, -Infinity, -Infinity
29
+ ])
30
+
31
+ height = 0
32
+
33
+ computeHeight() {
34
+ const children = this.children;
35
+ const child_count = children.length;
36
+
37
+ let height = 0;
38
+ for (let i = 0; i < child_count; i++) {
39
+ const child = children[i];
40
+
41
+ if (child.height >= height) {
42
+ height = child.height + 1;
43
+ }
44
+ }
45
+
46
+ this.height = height;
47
+ }
48
+
49
+ primitive_count = 0;
50
+
51
+ /**
52
+ *
53
+ * @param {NodeProxy} other
54
+ * @returns {number}
55
+ */
56
+ computeCentroidSqrDistanceTo(other) {
57
+ const ax = (this.bounds[0] + this.bounds[3]) * 0.5;
58
+ const ay = (this.bounds[1] + this.bounds[4]) * 0.5;
59
+ const az = (this.bounds[2] + this.bounds[5]) * 0.5;
60
+
61
+ const bx = (other.bounds[0] + other.bounds[3]) * 0.5;
62
+ const by = (other.bounds[1] + other.bounds[4]) * 0.5;
63
+ const bz = (other.bounds[2] + other.bounds[5]) * 0.5;
64
+
65
+ return v3_distance_sqr(ax, ay, az, bx, by, bz);
66
+ }
67
+
68
+ computePrimitiveBounds(index_array, position_array) {
69
+ const clusters = this.primitives;
70
+ const cluster_count = clusters.length;
71
+ for (let i = 0; i < cluster_count; i++) {
72
+ clusters[i].computeBounds(index_array, position_array);
73
+ }
74
+ }
75
+
76
+ /**
77
+ * A node has 8 slots that can be used for either triangle clusters or children
78
+ * @returns {number}
79
+ */
80
+ get used_slot_count() {
81
+ return this.primitives.length + this.children.length;
82
+ }
83
+
84
+ recomputePrimitiveSpan() {
85
+ this.primitive_index_low = 0xFFFFFFFF;
86
+ this.primitive_index_high = 0;
87
+
88
+ for (let i = 0; i < this.primitives.length; i++) {
89
+ const cluster = this.primitives[i];
90
+
91
+ for (let j = 0; j < cluster.triangles.length; j++) {
92
+ const triangle = cluster.triangles[j];
93
+
94
+ this.primitive_index_low = Math.min(triangle, this.primitive_index_low);
95
+ this.primitive_index_high = Math.max(triangle, this.primitive_index_high);
96
+ }
97
+ }
98
+ }
99
+
100
+ /**
101
+ *
102
+ * @param {number} index
103
+ * @param {number[]|Float32Array} bounds
104
+ * @returns {boolean} true if added, false otherwise
105
+ */
106
+ tryAddPrimitive(index, bounds) {
107
+ const min = Math.min(index, this.primitive_index_low);
108
+ const max = Math.max(index, this.primitive_index_high);
109
+
110
+ if ((max - min) > BVH8_MAX_LEAF_TRIANGLE_OFFSET) {
111
+ // a leaf meta stores the offset of its first triangle relative to the node's
112
+ // lowest triangle index; offsets above the cap collide with the internal slot encoding
113
+ return false;
114
+ }
115
+
116
+ const clusters = this.primitives;
117
+ const cluster_count = clusters.length;
118
+
119
+
120
+ for (let i = 0; i < cluster_count; i++) {
121
+ const candidate = clusters[i];
122
+
123
+
124
+ if (candidate.canAccept(index, bounds)) {
125
+ candidate.add(index, bounds);
126
+
127
+ this.primitive_index_low = min;
128
+ this.primitive_index_high = max;
129
+
130
+ return true;
131
+ }
132
+ }
133
+
134
+ // no candidate found, see if we can create one
135
+ if (this.used_slot_count === 8) {
136
+ // at capacity
137
+ return false;
138
+ }
139
+
140
+ const cluster = new TriangleCluster();
141
+ cluster.add(index, bounds);
142
+
143
+ let insert_position;
144
+ for (insert_position = 0; insert_position < cluster_count; insert_position++) {
145
+ // find where to insert new cluster, keeping clusters sorted by first triangle
146
+ const candidate = clusters[insert_position];
147
+ if (candidate.triangles[0] > index) {
148
+ break;
149
+ }
150
+ }
151
+
152
+ clusters.splice(insert_position, 0, cluster);
153
+
154
+ this.primitive_index_low = min;
155
+ this.primitive_index_high = max;
156
+
157
+ return true;
158
+ }
159
+
160
+ addChild(node) {
161
+ this.children.push(node);
162
+ this.height = Math.max(this.height, node.height + 1);
163
+
164
+ aabb3_array_combine(this.bounds, 0, this.bounds, 0, node.bounds, 0);
165
+
166
+ this.primitive_count += node.primitive_count;
167
+ }
168
+
169
+ /**
170
+ * Attempt to pull up data from children and in process reduce number of nodes below
171
+ */
172
+ optimize_pull_up(index_array, position_array) {
173
+ const children = this.children;
174
+ for (let i = children.length - 1; i >= 0; i--) {
175
+ const child = children[i];
176
+
177
+ const optimized = this.tryAbsorbChild(child, index_array, position_array);
178
+
179
+ if (optimized && child.children.length > 0) {
180
+ // pull up and try again
181
+ child.optimize_pull_up(index_array, position_array);
182
+ i++;
183
+ }
184
+ }
185
+ }
186
+
187
+ /**
188
+ *
189
+ * @param {NodeProxy} child
190
+ * @param {number[]} index_array
191
+ * @param {number[]} position_array
192
+ * @return {boolean}
193
+ */
194
+ tryAbsorbChild(child, index_array, position_array) {
195
+ const child_clusters = child.primitives;
196
+ let child_cluster_count = child_clusters.length;
197
+
198
+ let absorbed_count = 0;
199
+
200
+ for (let i = 0; i < child_cluster_count; i++) {
201
+ const cluster = child_clusters[i];
202
+
203
+ const triangles = cluster.triangles;
204
+ let cluster_size = triangles.length;
205
+
206
+ let retry_middle = false;
207
+
208
+ for (let j = 0; j < cluster_size; j++) {
209
+ const triangle = triangles[j];
210
+
211
+ if (j > 0 && j < cluster_size - 1) {
212
+ // triangle in the middle, can't remove
213
+ // triangles are indexed sequentially, gaps are not valid
214
+ retry_middle = true;
215
+ continue;
216
+ }
217
+
218
+ const bounds = [];
219
+ aabb3_from_triangle_by_index(bounds, 0, triangle, index_array, position_array);
220
+
221
+ if (this.tryAddPrimitive(triangle, bounds)) {
222
+ triangles.splice(j, 1);
223
+
224
+ child.primitive_count--;
225
+
226
+ absorbed_count++;
227
+
228
+ j--;
229
+ cluster_size--;
230
+
231
+ // step back one further so a triangle previously skipped as
232
+ // "middle" is reconsidered now that the cluster has shrunk.
233
+ // Guarded: without it the index can reach -2, the loop's
234
+ // increment then hands the body -1, and triangles[-1] is
235
+ // undefined -- which gets absorbed as if it were a real
236
+ // primitive and drives leaves past the offset ceiling.
237
+ if (retry_middle && j >= 0) {
238
+ j--;
239
+ }
240
+ }
241
+ }
242
+
243
+ if (cluster_size === 0) {
244
+ child_clusters.splice(i, 1);
245
+
246
+ i--;
247
+ child_cluster_count--;
248
+
249
+ }
250
+ }
251
+
252
+ if (absorbed_count <= 0) {
253
+ // nothing absorbed, we're done
254
+ return false;
255
+ }
256
+
257
+ child.recomputePrimitiveSpan();
258
+
259
+ if (child_cluster_count === 0 && child.children.length === 0) {
260
+ // dead child
261
+ array_remove_first(this.children, child);
262
+
263
+ if (child.height >= this.height - 1) {
264
+ // should recompute height
265
+ this.computeHeight();
266
+ }
267
+ }
268
+
269
+ return true;
270
+ }
271
+
272
+ /**
273
+ * Mostly useful for debug
274
+ * @param {number} index
275
+ * @returns {undefined|NodeProxy}
276
+ */
277
+ findNodeByPrimitive(index) {
278
+ const clusters = this.primitives;
279
+ for (let i = 0; i < clusters.length; i++) {
280
+ if (clusters[i].contains(index)) {
281
+ return this;
282
+ }
283
+ }
284
+
285
+ const children = this.children;
286
+ for (let i = 0; i < children.length; i++) {
287
+ const found = children[i].findNodeByPrimitive(index);
288
+
289
+ if (found !== undefined) {
290
+ return found;
291
+ }
292
+ }
293
+
294
+ // not found
295
+ return undefined;
296
+ }
297
+
298
+ /**
299
+ * Heuristic score of how good the tree is
300
+ * Lower = better
301
+ * @return {number}
302
+ */
303
+ area_score() {
304
+ let result = aabb3_compute_surface_area(...this.bounds);
305
+
306
+ for (const child of this.children) {
307
+ result += child.area_score();
308
+ }
309
+
310
+ return result;
311
+ }
312
+ }
313
+
314
+ NodeProxy.prototype.isNodeProxy = true;
@@ -151,6 +151,14 @@ declare class List<T> {
151
151
  * @return {T[]}
152
152
  */
153
153
  slice(start?: number, end?: number): T[];
154
+ /**
155
+ * Whether every element satisfies the condition. Vacuously true when empty,
156
+ * matching Array.prototype.every.
157
+ *
158
+ * @param {function(element:T):boolean} condition
159
+ * @returns {boolean}
160
+ */
161
+ every(condition: any): boolean;
154
162
  /**
155
163
  *
156
164
  * @param {function(element:T):boolean} condition
@@ -330,5 +338,12 @@ declare class List<T> {
330
338
  * @returns {number}
331
339
  */
332
340
  compare(other: List<T>): number;
341
+ /**
342
+ * Iterate the list's elements, so `for...of` and spread work on it the way
343
+ * they already do on HashMap, HashSet and Deque.
344
+ *
345
+ * @returns {Iterator<T>}
346
+ */
347
+ [Symbol.iterator](): Iterator<T>;
333
348
  }
334
349
  //# sourceMappingURL=List.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"List.d.ts","sourceRoot":"","sources":["../../../../../src/core/collection/list/List.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"List.d.ts","sourceRoot":"","sources":["../../../../../src/core/collection/list/List.js"],"names":[],"mappings":"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"}