@woosh/meep-engine 2.164.0 → 2.165.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (451) hide show
  1. package/README.md +137 -108
  2. package/build/bundle-worker-image-decoder.js +1 -1
  3. package/build/bundle-worker-terrain.js +1 -1
  4. package/package.json +1 -1
  5. package/samples/generation/SampleGenerator0.js +3 -3
  6. package/samples/generation/filters/SampleGroundMoistureFilter.js +63 -56
  7. package/samples/generation/filters/SampleNoise20_0.js +6 -1
  8. package/samples/generation/themes/SampleTheme0.js +47 -47
  9. package/src/core/binary/BitImage2.d.ts +91 -0
  10. package/src/core/binary/BitImage2.d.ts.map +1 -0
  11. package/src/core/binary/BitImage2.js +242 -0
  12. package/src/core/color/YCoCg/rgb_to_ycocg.d.ts +17 -0
  13. package/src/core/color/YCoCg/rgb_to_ycocg.d.ts.map +1 -0
  14. package/src/core/color/YCoCg/rgb_to_ycocg.js +20 -0
  15. package/src/core/color/YCoCg/ycocg_to_rgb.d.ts +14 -0
  16. package/src/core/color/YCoCg/ycocg_to_rgb.d.ts.map +1 -0
  17. package/src/core/color/YCoCg/ycocg_to_rgb.js +17 -0
  18. package/src/core/geom/2d/oriented-box/min_area_rect_2d.d.ts +22 -0
  19. package/src/core/geom/2d/oriented-box/min_area_rect_2d.d.ts.map +1 -0
  20. package/src/core/geom/2d/oriented-box/min_area_rect_2d.js +69 -0
  21. package/src/core/geom/2d/packing/skyline.d.ts +116 -0
  22. package/src/core/geom/2d/packing/skyline.d.ts.map +1 -0
  23. package/src/core/geom/2d/packing/skyline.js +258 -0
  24. package/src/core/geom/2d/triangle/tri2_rasterize_conservative.d.ts +18 -0
  25. package/src/core/geom/2d/triangle/tri2_rasterize_conservative.d.ts.map +1 -0
  26. package/src/core/geom/2d/triangle/tri2_rasterize_conservative.js +86 -0
  27. package/src/core/geom/3d/atlas/ATLAS_PORT_PLAN.md +486 -0
  28. package/src/core/geom/3d/atlas/BFF_PLAN.md +174 -0
  29. package/src/core/geom/3d/atlas/Chart.d.ts +58 -0
  30. package/src/core/geom/3d/atlas/Chart.d.ts.map +1 -0
  31. package/src/core/geom/3d/atlas/Chart.js +77 -0
  32. package/src/core/geom/3d/atlas/REVIEW_02.md +392 -0
  33. package/src/core/geom/3d/atlas/atlas_bench_lib.d.ts +73 -0
  34. package/src/core/geom/3d/atlas/atlas_bench_lib.d.ts.map +1 -0
  35. package/src/core/geom/3d/atlas/atlas_bench_lib.js +315 -0
  36. package/src/core/geom/3d/atlas/atlas_chart_type.d.ts +17 -0
  37. package/src/core/geom/3d/atlas/atlas_chart_type.d.ts.map +1 -0
  38. package/src/core/geom/3d/atlas/atlas_chart_type.js +16 -0
  39. package/src/core/geom/3d/atlas/atlas_compute_charts.d.ts +25 -0
  40. package/src/core/geom/3d/atlas/atlas_compute_charts.d.ts.map +1 -0
  41. package/src/core/geom/3d/atlas/atlas_compute_charts.js +188 -0
  42. package/src/core/geom/3d/atlas/atlas_extract_chart.d.ts +17 -0
  43. package/src/core/geom/3d/atlas/atlas_extract_chart.d.ts.map +1 -0
  44. package/src/core/geom/3d/atlas/atlas_extract_chart.js +107 -0
  45. package/src/core/geom/3d/atlas/atlas_generate.d.ts +39 -0
  46. package/src/core/geom/3d/atlas/atlas_generate.d.ts.map +1 -0
  47. package/src/core/geom/3d/atlas/atlas_generate.js +43 -0
  48. package/src/core/geom/3d/atlas/atlas_test_fixtures.d.ts +84 -0
  49. package/src/core/geom/3d/atlas/atlas_test_fixtures.d.ts.map +1 -0
  50. package/src/core/geom/3d/atlas/atlas_test_fixtures.js +266 -0
  51. package/src/core/geom/3d/atlas/atlas_write_chart_uvs.d.ts +25 -0
  52. package/src/core/geom/3d/atlas/atlas_write_chart_uvs.d.ts.map +1 -0
  53. package/src/core/geom/3d/atlas/atlas_write_chart_uvs.js +36 -0
  54. package/src/core/geom/3d/atlas/data/atlas_build_edge_dihedrals.d.ts +22 -0
  55. package/src/core/geom/3d/atlas/data/atlas_build_edge_dihedrals.d.ts.map +1 -0
  56. package/src/core/geom/3d/atlas/data/atlas_build_edge_dihedrals.js +62 -0
  57. package/src/core/geom/3d/atlas/data/atlas_build_edge_lengths.d.ts +9 -0
  58. package/src/core/geom/3d/atlas/data/atlas_build_edge_lengths.d.ts.map +1 -0
  59. package/src/core/geom/3d/atlas/data/atlas_build_edge_lengths.js +33 -0
  60. package/src/core/geom/3d/atlas/data/atlas_build_face_areas.d.ts +9 -0
  61. package/src/core/geom/3d/atlas/data/atlas_build_face_areas.d.ts.map +1 -0
  62. package/src/core/geom/3d/atlas/data/atlas_build_face_areas.js +50 -0
  63. package/src/core/geom/3d/atlas/io/atlas_mesh_weld_colocals.d.ts +27 -0
  64. package/src/core/geom/3d/atlas/io/atlas_mesh_weld_colocals.d.ts.map +1 -0
  65. package/src/core/geom/3d/atlas/io/atlas_mesh_weld_colocals.js +39 -0
  66. package/src/core/geom/3d/atlas/io/bt_loop_uv.d.ts +22 -0
  67. package/src/core/geom/3d/atlas/io/bt_loop_uv.d.ts.map +1 -0
  68. package/src/core/geom/3d/atlas/io/bt_loop_uv.js +57 -0
  69. package/src/core/geom/3d/atlas/pack/ChartPlacement.d.ts +36 -0
  70. package/src/core/geom/3d/atlas/pack/ChartPlacement.d.ts.map +1 -0
  71. package/src/core/geom/3d/atlas/pack/ChartPlacement.js +46 -0
  72. package/src/core/geom/3d/atlas/pack/atlas_pack_charts.d.ts +62 -0
  73. package/src/core/geom/3d/atlas/pack/atlas_pack_charts.d.ts.map +1 -0
  74. package/src/core/geom/3d/atlas/pack/atlas_pack_charts.js +551 -0
  75. package/src/core/geom/3d/atlas/param/atlas_chart_param_validity.d.ts +22 -0
  76. package/src/core/geom/3d/atlas/param/atlas_chart_param_validity.d.ts.map +1 -0
  77. package/src/core/geom/3d/atlas/param/atlas_chart_param_validity.js +73 -0
  78. package/src/core/geom/3d/atlas/param/atlas_chart_parameterize_bff.d.ts +37 -0
  79. package/src/core/geom/3d/atlas/param/atlas_chart_parameterize_bff.d.ts.map +1 -0
  80. package/src/core/geom/3d/atlas/param/atlas_chart_parameterize_bff.js +270 -0
  81. package/src/core/geom/3d/atlas/param/atlas_chart_parameterize_lscm.d.ts +23 -0
  82. package/src/core/geom/3d/atlas/param/atlas_chart_parameterize_lscm.d.ts.map +1 -0
  83. package/src/core/geom/3d/atlas/param/atlas_chart_parameterize_lscm.js +224 -0
  84. package/src/core/geom/3d/atlas/param/atlas_chart_parameterize_ortho.d.ts +14 -0
  85. package/src/core/geom/3d/atlas/param/atlas_chart_parameterize_ortho.d.ts.map +1 -0
  86. package/src/core/geom/3d/atlas/param/atlas_chart_parameterize_ortho.js +38 -0
  87. package/src/core/geom/3d/atlas/param/atlas_chart_stretch_metric.d.ts +22 -0
  88. package/src/core/geom/3d/atlas/param/atlas_chart_stretch_metric.d.ts.map +1 -0
  89. package/src/core/geom/3d/atlas/param/atlas_chart_stretch_metric.js +86 -0
  90. package/src/core/geom/3d/atlas/param/atlas_piecewise_resegment.d.ts +20 -0
  91. package/src/core/geom/3d/atlas/param/atlas_piecewise_resegment.d.ts.map +1 -0
  92. package/src/core/geom/3d/atlas/param/atlas_piecewise_resegment.js +183 -0
  93. package/src/core/geom/3d/atlas/param/fit_plane_basis.d.ts +27 -0
  94. package/src/core/geom/3d/atlas/param/fit_plane_basis.d.ts.map +1 -0
  95. package/src/core/geom/3d/atlas/param/fit_plane_basis.js +66 -0
  96. package/src/core/geom/3d/atlas/segment/RegionGraph.d.ts +31 -0
  97. package/src/core/geom/3d/atlas/segment/RegionGraph.d.ts.map +1 -0
  98. package/src/core/geom/3d/atlas/segment/RegionGraph.js +40 -0
  99. package/src/core/geom/3d/atlas/segment/atlas_build_region_graph.d.ts +23 -0
  100. package/src/core/geom/3d/atlas/segment/atlas_build_region_graph.d.ts.map +1 -0
  101. package/src/core/geom/3d/atlas/segment/atlas_build_region_graph.js +136 -0
  102. package/src/core/geom/3d/atlas/segment/atlas_compute_planar_regions.d.ts +24 -0
  103. package/src/core/geom/3d/atlas/segment/atlas_compute_planar_regions.d.ts.map +1 -0
  104. package/src/core/geom/3d/atlas/segment/atlas_compute_planar_regions.js +77 -0
  105. package/src/core/geom/3d/atlas/segment/atlas_merge_charts.d.ts +27 -0
  106. package/src/core/geom/3d/atlas/segment/atlas_merge_charts.d.ts.map +1 -0
  107. package/src/core/geom/3d/atlas/segment/atlas_merge_charts.js +113 -0
  108. package/src/core/geom/3d/atlas/segment/atlas_segment_charts.d.ts +44 -0
  109. package/src/core/geom/3d/atlas/segment/atlas_segment_charts.d.ts.map +1 -0
  110. package/src/core/geom/3d/atlas/segment/atlas_segment_charts.js +275 -0
  111. package/src/core/geom/3d/atlas/segment/atlas_segment_charts_atomic.d.ts +22 -0
  112. package/src/core/geom/3d/atlas/segment/atlas_segment_charts_atomic.d.ts.map +1 -0
  113. package/src/core/geom/3d/atlas/segment/atlas_segment_charts_atomic.js +199 -0
  114. package/src/core/geom/3d/line/line3_compute_point_segment_point_distance_unfolded.d.ts +32 -0
  115. package/src/core/geom/3d/line/line3_compute_point_segment_point_distance_unfolded.d.ts.map +1 -0
  116. package/src/core/geom/3d/line/line3_compute_point_segment_point_distance_unfolded.js +64 -0
  117. package/src/core/geom/3d/mat4/m4_from_rotation_translation_scale.d.ts +20 -0
  118. package/src/core/geom/3d/mat4/m4_from_rotation_translation_scale.d.ts.map +1 -0
  119. package/src/core/geom/3d/mat4/m4_from_rotation_translation_scale.js +66 -0
  120. package/src/core/geom/3d/sphere/harmonics/sh3_dering_optimize_positive.d.ts.map +1 -1
  121. package/src/core/geom/3d/sphere/harmonics/sh3_dering_optimize_positive.js +13 -11
  122. package/src/core/geom/3d/sphere/sphere_compute_bounding_of_2_spheres.d.ts.map +1 -1
  123. package/src/core/geom/3d/sphere/sphere_compute_bounding_of_2_spheres.js +4 -3
  124. package/src/core/geom/3d/topology/simplify/decimate_edge_collapse_snap.d.ts.map +1 -1
  125. package/src/core/geom/3d/topology/simplify/decimate_edge_collapse_snap.js +4 -3
  126. package/src/core/geom/3d/topology/simplify/quadratic/Quadric3.d.ts.map +1 -1
  127. package/src/core/geom/3d/topology/simplify/quadratic/Quadric3.js +4 -3
  128. package/src/core/geom/3d/topology/simplify/quadratic/apply_border_penalty_to_vertex_quadrics.d.ts.map +1 -1
  129. package/src/core/geom/3d/topology/simplify/quadratic/apply_border_penalty_to_vertex_quadrics.js +10 -6
  130. package/src/core/geom/3d/topology/struct/TopoMesh.js +2 -2
  131. package/src/core/geom/3d/topology/struct/TopoTriangle.d.ts +0 -2
  132. package/src/core/geom/3d/topology/struct/TopoTriangle.d.ts.map +1 -1
  133. package/src/core/geom/3d/topology/struct/TopoTriangle.js +2 -2
  134. package/src/core/geom/3d/topology/struct/binary/query/bt_mesh_face_find_path_polyanya.d.ts.map +1 -1
  135. package/src/core/geom/3d/topology/struct/binary/query/bt_mesh_face_find_path_polyanya.js +8 -27
  136. package/src/core/geom/vec3/v3_cotangent.d.ts +20 -0
  137. package/src/core/geom/vec3/v3_cotangent.d.ts.map +1 -0
  138. package/src/core/geom/vec3/v3_cotangent.js +29 -0
  139. package/src/core/geom/vec3/v3_matrix3_multiply.d.ts +19 -0
  140. package/src/core/geom/vec3/v3_matrix3_multiply.d.ts.map +1 -0
  141. package/src/core/geom/vec3/v3_matrix3_multiply.js +30 -0
  142. package/src/core/geom/vec3/v3_multiply.d.ts +16 -0
  143. package/src/core/geom/vec3/v3_multiply.d.ts.map +1 -0
  144. package/src/core/geom/vec3/v3_multiply.js +19 -0
  145. package/src/core/math/linalg/cg/cg_solve.d.ts +24 -0
  146. package/src/core/math/linalg/cg/cg_solve.d.ts.map +1 -0
  147. package/src/core/math/linalg/cg/cg_solve.js +106 -0
  148. package/src/core/math/linalg/cg/cg_solve_normal_equations.d.ts +21 -0
  149. package/src/core/math/linalg/cg/cg_solve_normal_equations.d.ts.map +1 -0
  150. package/src/core/math/linalg/cg/cg_solve_normal_equations.js +59 -0
  151. package/src/core/math/linalg/eigen/matrix_symmetric_3x3_eigen.d.ts +19 -0
  152. package/src/core/math/linalg/eigen/matrix_symmetric_3x3_eigen.d.ts.map +1 -0
  153. package/src/core/math/linalg/eigen/matrix_symmetric_3x3_eigen.js +117 -0
  154. package/src/core/math/linalg/sparse/SparseMatrixCSR.d.ts +50 -0
  155. package/src/core/math/linalg/sparse/SparseMatrixCSR.d.ts.map +1 -0
  156. package/src/core/math/linalg/sparse/SparseMatrixCSR.js +88 -0
  157. package/src/core/math/linalg/sparse/spm_matvec.d.ts +9 -0
  158. package/src/core/math/linalg/sparse/spm_matvec.d.ts.map +1 -0
  159. package/src/core/math/linalg/sparse/spm_matvec.js +22 -0
  160. package/src/core/math/linalg/sparse/spm_matvec_transpose.d.ts +12 -0
  161. package/src/core/math/linalg/sparse/spm_matvec_transpose.d.ts.map +1 -0
  162. package/src/core/math/linalg/sparse/spm_matvec_transpose.js +29 -0
  163. package/src/core/math/physics/mie/MIE_PARTICLES_STANDARD_PRECOMPUTED.d.ts +39 -0
  164. package/src/core/math/physics/mie/MIE_PARTICLES_STANDARD_PRECOMPUTED.js +22 -1
  165. package/src/core/math/physics/mie/compute_mie_particle_properties_rgb.d.ts.map +1 -1
  166. package/src/core/math/physics/mie/compute_mie_particle_properties_rgb.js +32 -9
  167. package/src/core/math/physics/mie/compute_mie_phase.d.ts +2 -3
  168. package/src/core/math/physics/mie/compute_mie_phase.d.ts.map +1 -1
  169. package/src/core/math/physics/mie/compute_mie_phase.js +1 -3
  170. package/src/core/math/physics/mie/lorenz_mie_coefs.d.ts +0 -1
  171. package/src/core/math/physics/mie/lorenz_mie_coefs.d.ts.map +1 -1
  172. package/src/core/math/physics/mie/lorenz_mie_coefs.js +0 -7
  173. package/src/engine/REVIEW_2026_07_03.md +211 -0
  174. package/src/engine/animation/curve/actionProcessorOperations/curveActions.d.ts.map +1 -1
  175. package/src/engine/animation/curve/actionProcessorOperations/curveActions.js +3 -2
  176. package/src/engine/animation/curve/compression/sample_animation_curve_to_float_array.js +1 -1
  177. package/src/engine/animation/keyed2/AnimationTrackPlayback.d.ts.map +1 -1
  178. package/src/engine/animation/keyed2/AnimationTrackPlayback.js +3 -1
  179. package/src/engine/asset/loaders/image/png/filter/png_filter_unFilterNone.js +2 -2
  180. package/src/engine/asset/preloader/AssetPreloader.d.ts.map +1 -1
  181. package/src/engine/asset/preloader/AssetPreloader.js +6 -0
  182. package/src/engine/control/first-person/sensors/FirstPersonSensorsSystem.d.ts.map +1 -1
  183. package/src/engine/control/first-person/sensors/FirstPersonSensorsSystem.js +5 -2
  184. package/src/engine/ecs/Entity.js +1 -1
  185. package/src/engine/ecs/EntityComponentDataset.d.ts.map +1 -1
  186. package/src/engine/ecs/EntityComponentDataset.js +1 -0
  187. package/src/engine/ecs/EntityManager.js +1 -1
  188. package/src/engine/ecs/EntityObserver.js +1 -1
  189. package/src/engine/ecs/animation/AnimationClip.js +1 -1
  190. package/src/engine/ecs/attachment/AttachmentSystem.js +2 -2
  191. package/src/engine/ecs/attachment/TransformAttachmentBinding.d.ts.map +1 -1
  192. package/src/engine/ecs/attachment/TransformAttachmentBinding.js +14 -3
  193. package/src/engine/ecs/fow/FogOfWar.js +2 -2
  194. package/src/engine/ecs/fow/shader/screenSpaceFogOfWarShader.d.ts.map +1 -1
  195. package/src/engine/ecs/fow/shader/screenSpaceFogOfWarShader.js +8 -0
  196. package/src/engine/ecs/gui/hud/HeadsUpDisplaySystem.js +3 -3
  197. package/src/engine/ecs/gui/position/ViewportPosition.d.ts +3 -1
  198. package/src/engine/ecs/gui/position/ViewportPosition.d.ts.map +1 -1
  199. package/src/engine/ecs/gui/position/ViewportPosition.js +4 -1
  200. package/src/engine/ecs/storage/binary/BinarySerializationRegistry.d.ts +10 -0
  201. package/src/engine/ecs/storage/binary/BinarySerializationRegistry.d.ts.map +1 -1
  202. package/src/engine/ecs/storage/binary/BinarySerializationRegistry.js +43 -0
  203. package/src/engine/ecs/storage/binary/object-v2/BinaryObjectDeSerializer.d.ts +93 -0
  204. package/src/engine/ecs/storage/binary/object-v2/BinaryObjectDeSerializer.d.ts.map +1 -0
  205. package/src/engine/ecs/storage/binary/object-v2/BinaryObjectDeSerializer.js +315 -0
  206. package/src/engine/ecs/storage/binary/object-v2/BinaryObjectSerializer.d.ts +48 -0
  207. package/src/engine/ecs/storage/binary/object-v2/BinaryObjectSerializer.d.ts.map +1 -0
  208. package/src/engine/ecs/storage/binary/object-v2/BinaryObjectSerializer.js +331 -0
  209. package/src/engine/ecs/storage/binary/object-v2/DESIGN.md +199 -0
  210. package/src/engine/ecs/storage/binary/object-v2/ObjectBinaryFormat.d.ts +53 -0
  211. package/src/engine/ecs/storage/binary/object-v2/ObjectBinaryFormat.d.ts.map +1 -0
  212. package/src/engine/ecs/storage/binary/object-v2/ObjectBinaryFormat.js +57 -0
  213. package/src/engine/ecs/storage/binary/object-v2/ObjectSerializationAdapter.d.ts +53 -0
  214. package/src/engine/ecs/storage/binary/object-v2/ObjectSerializationAdapter.d.ts.map +1 -0
  215. package/src/engine/ecs/storage/binary/object-v2/ObjectSerializationAdapter.js +56 -0
  216. package/src/engine/ecs/storage/binary/object-v2/README.md +110 -0
  217. package/src/engine/ecs/storage/binary/object-v2/objectStringCodec.d.ts +13 -0
  218. package/src/engine/ecs/storage/binary/object-v2/objectStringCodec.d.ts.map +1 -0
  219. package/src/engine/ecs/storage/binary/object-v2/objectStringCodec.js +48 -0
  220. package/src/engine/ecs/storage/binary/object-v2/serializerTestHarness.d.ts +29 -0
  221. package/src/engine/ecs/storage/binary/object-v2/serializerTestHarness.d.ts.map +1 -0
  222. package/src/engine/ecs/storage/binary/object-v2/serializerTestHarness.js +44 -0
  223. package/src/engine/ecs/terrain/ecs/Terrain.d.ts.map +1 -1
  224. package/src/engine/ecs/terrain/ecs/Terrain.js +4 -3
  225. package/src/engine/ecs/terrain/tiles/TerrainTile.js +2 -2
  226. package/src/engine/ecs/terrain/tiles/TerrainTileManager.d.ts.map +1 -1
  227. package/src/engine/ecs/terrain/tiles/TerrainTileManager.js +9 -8
  228. package/src/engine/graphics/GraphicsEngine.d.ts.map +1 -1
  229. package/src/engine/graphics/GraphicsEngine.js +2 -1
  230. package/src/engine/graphics/camera/makeScreenScissorFrustum.d.ts.map +1 -1
  231. package/src/engine/graphics/camera/makeScreenScissorFrustum.js +11 -10
  232. package/src/engine/graphics/canvas/canvas2d_draw_linear_scale.d.ts.map +1 -1
  233. package/src/engine/graphics/canvas/canvas2d_draw_linear_scale.js +3 -1
  234. package/src/engine/graphics/ecs/animation/animator/graph/definition/serialization/readAnimationGraphDefinitionFromJSON.d.ts +1 -1
  235. package/src/engine/graphics/ecs/animation/animator/graph/definition/serialization/readAnimationGraphDefinitionFromJSON.d.ts.map +1 -1
  236. package/src/engine/graphics/ecs/animation/animator/graph/definition/serialization/readAnimationGraphDefinitionFromJSON.js +2 -2
  237. package/src/engine/graphics/ecs/animation/animator/graph/definition/serialization/writeAnimationGraphDefinitionToJSON.d.ts.map +1 -1
  238. package/src/engine/graphics/ecs/animation/animator/graph/definition/serialization/writeAnimationGraphDefinitionToJSON.js +2 -0
  239. package/src/engine/graphics/ecs/camera/Camera.d.ts.map +1 -1
  240. package/src/engine/graphics/ecs/camera/Camera.js +4 -0
  241. package/src/engine/graphics/ecs/camera/auto_set_camera_clipping_planes.d.ts.map +1 -1
  242. package/src/engine/graphics/ecs/camera/auto_set_camera_clipping_planes.js +7 -2
  243. package/src/engine/graphics/ecs/camera/set_camera_aspect_ratio.js +1 -1
  244. package/src/engine/graphics/ecs/decal/v2/FPDecalSystem.js +2 -2
  245. package/src/engine/graphics/ecs/decal/v2/prototypeDecalSystem.js +2 -2
  246. package/src/engine/graphics/ecs/highlight/system/ShadedGeometryHighlightSystem.d.ts.map +1 -1
  247. package/src/engine/graphics/ecs/highlight/system/ShadedGeometryHighlightSystem.js +4 -1
  248. package/src/engine/graphics/ecs/light/binding/LightBinding.js +2 -2
  249. package/src/engine/graphics/ecs/mesh/MeshSystem.js +1 -1
  250. package/src/engine/graphics/ecs/mesh/SkeletonUtils.js +1 -1
  251. package/src/engine/graphics/ecs/mesh-v2/ShadedGeometry.js +2 -2
  252. package/src/engine/graphics/ecs/mesh-v2/ShadedGeometrySystem.d.ts.map +1 -1
  253. package/src/engine/graphics/ecs/mesh-v2/ShadedGeometrySystem.js +0 -1
  254. package/src/engine/graphics/ecs/mesh-v2/sg_hierarchy_compute_bounding_box_via_parent_entity.js +1 -1
  255. package/src/engine/graphics/ecs/path/tube/build/computeFrenetFrames.d.ts.map +1 -1
  256. package/src/engine/graphics/ecs/path/tube/build/computeFrenetFrames.js +8 -7
  257. package/src/engine/graphics/ecs/water/WaterSystem.d.ts +6 -0
  258. package/src/engine/graphics/ecs/water/WaterSystem.d.ts.map +1 -1
  259. package/src/engine/graphics/ecs/water/WaterSystem.js +12 -1
  260. package/src/engine/graphics/geometry/MikkT/AvgTSpace.d.ts.map +1 -1
  261. package/src/engine/graphics/geometry/MikkT/AvgTSpace.js +11 -6
  262. package/src/engine/graphics/geometry/MikkT/BuildNeighborsFast.d.ts.map +1 -1
  263. package/src/engine/graphics/geometry/MikkT/BuildNeighborsFast.js +2 -3
  264. package/src/engine/graphics/geometry/MikkT/CalcTexArea.d.ts.map +1 -1
  265. package/src/engine/graphics/geometry/MikkT/CalcTexArea.js +3 -4
  266. package/src/engine/graphics/geometry/MikkT/DegenEpilogue.js +4 -4
  267. package/src/engine/graphics/geometry/MikkT/EvalTspace.d.ts.map +1 -1
  268. package/src/engine/graphics/geometry/MikkT/EvalTspace.js +11 -8
  269. package/src/engine/graphics/geometry/MikkT/GenerateSharedVerticesIndexList.d.ts.map +1 -1
  270. package/src/engine/graphics/geometry/MikkT/GenerateSharedVerticesIndexList.js +7 -8
  271. package/src/engine/graphics/geometry/MikkT/GenerateTSpaces.js +8 -8
  272. package/src/engine/graphics/geometry/MikkT/InitTriInfo.d.ts.map +1 -1
  273. package/src/engine/graphics/geometry/MikkT/InitTriInfo.js +30 -25
  274. package/src/engine/graphics/geometry/MikkT/MikkTSpace.js +7 -7
  275. package/src/engine/graphics/geometry/MikkT/NormalizeSafe.d.ts +0 -1
  276. package/src/engine/graphics/geometry/MikkT/NormalizeSafe.d.ts.map +1 -1
  277. package/src/engine/graphics/geometry/MikkT/NormalizeSafe.js +6 -4
  278. package/src/engine/graphics/geometry/MikkT/STSpace.d.ts +0 -2
  279. package/src/engine/graphics/geometry/MikkT/STSpace.d.ts.map +1 -1
  280. package/src/engine/graphics/geometry/MikkT/STSpace.js +3 -3
  281. package/src/engine/graphics/geometry/MikkT/v3_scale_dot_sub_normalize.d.ts +0 -2
  282. package/src/engine/graphics/geometry/MikkT/v3_scale_dot_sub_normalize.d.ts.map +1 -1
  283. package/src/engine/graphics/geometry/MikkT/v3_scale_dot_sub_normalize.js +0 -1
  284. package/src/engine/graphics/geometry/buffered/ensureGeometryBoundingSphere.js +1 -1
  285. package/src/engine/graphics/geometry/buffered/query/bvh32_geometry_nearest.d.ts.map +1 -1
  286. package/src/engine/graphics/geometry/buffered/query/bvh32_geometry_nearest.js +0 -15
  287. package/src/engine/graphics/geometry/instancing/InstancedMeshGroup.js +10 -10
  288. package/src/engine/graphics/geometry/optimization/merge/merge_geometry_hierarchy.js +1 -1
  289. package/src/engine/graphics/impostors/octahedral/ImpostorBaker.d.ts +0 -2
  290. package/src/engine/graphics/impostors/octahedral/ImpostorBaker.d.ts.map +1 -1
  291. package/src/engine/graphics/impostors/octahedral/ImpostorBaker.js +4 -3
  292. package/src/engine/graphics/impostors/octahedral/grid/HemiOctahedralUvEncoder.js +2 -2
  293. package/src/engine/graphics/impostors/octahedral/grid/UvEncoder.d.ts +17 -7
  294. package/src/engine/graphics/impostors/voxel/VoxelImpostorBaker.js +2 -2
  295. package/src/engine/graphics/material/SplatMaterial.js +1 -1
  296. package/src/engine/graphics/particles/particular/engine/emitter/ParticleEmitter.d.ts.map +1 -1
  297. package/src/engine/graphics/particles/particular/engine/emitter/ParticleEmitter.js +3 -2
  298. package/src/engine/graphics/particles/particular/engine/emitter/ParticlePool.js +1 -1
  299. package/src/engine/graphics/particles/particular/engine/utils/volume/ParticleVolume.js +3 -3
  300. package/src/engine/graphics/particles/particular/engine/utils/volume/prototypeParticleVolume.js +4 -3
  301. package/src/engine/graphics/particles/particular/group/ParticleGroup.d.ts.map +1 -1
  302. package/src/engine/graphics/particles/particular/group/ParticleGroup.js +3 -2
  303. package/src/engine/graphics/render/forward_plus/LightManager.js +2 -2
  304. package/src/engine/graphics/render/forward_plus/model/Decal.d.ts +0 -2
  305. package/src/engine/graphics/render/forward_plus/model/Decal.d.ts.map +1 -1
  306. package/src/engine/graphics/render/forward_plus/model/Decal.js +3 -3
  307. package/src/engine/graphics/render/forward_plus/plugin/ForwardPlusRenderingPlugin.js +1 -1
  308. package/src/engine/graphics/render/forward_plus/prototype/prototypeLightManager.js +4 -3
  309. package/src/engine/graphics/render/visibility/hiz/prototypeHiZ.js +6 -4
  310. package/src/engine/graphics/sh3/gi/material/MaterialTransformer.d.ts +1 -8
  311. package/src/engine/graphics/sh3/gi/material/MaterialTransformer.d.ts.map +1 -1
  312. package/src/engine/graphics/sh3/gi/material/MaterialTransformer.js +2 -14
  313. package/src/engine/graphics/sh3/gi/material/ProbeResolutionStage.d.ts +9 -0
  314. package/src/engine/graphics/sh3/gi/material/ProbeResolutionStage.d.ts.map +1 -0
  315. package/src/engine/graphics/sh3/gi/material/ProbeResolutionStage.js +14 -0
  316. package/src/engine/graphics/sh3/lightmap/ARTIFACTS_PLAN.md +146 -0
  317. package/src/engine/graphics/sh3/lightmap/CODE_REVIEW.md +121 -0
  318. package/src/engine/graphics/sh3/lightmap/LIGHTMAPPER_REVIEW.md +183 -0
  319. package/src/engine/graphics/sh3/lightmap/bake_lightmap_for_scene.d.ts +90 -0
  320. package/src/engine/graphics/sh3/lightmap/bake_lightmap_for_scene.d.ts.map +1 -0
  321. package/src/engine/graphics/sh3/lightmap/bake_lightmap_for_scene.js +681 -0
  322. package/src/engine/graphics/sh3/lightmap/lightmap_build_geometry.d.ts +32 -0
  323. package/src/engine/graphics/sh3/lightmap/lightmap_build_geometry.d.ts.map +1 -0
  324. package/src/engine/graphics/sh3/lightmap/lightmap_build_geometry.js +155 -0
  325. package/src/engine/graphics/sh3/lightmap/lightmap_denoise.d.ts +49 -0
  326. package/src/engine/graphics/sh3/lightmap/lightmap_denoise.d.ts.map +1 -0
  327. package/src/engine/graphics/sh3/lightmap/lightmap_denoise.js +136 -0
  328. package/src/engine/graphics/sh3/lightmap/lightmap_dilate.d.ts +19 -0
  329. package/src/engine/graphics/sh3/lightmap/lightmap_dilate.d.ts.map +1 -0
  330. package/src/engine/graphics/sh3/lightmap/lightmap_dilate.js +89 -0
  331. package/src/engine/graphics/sh3/lightmap/lightmap_gather.d.ts +54 -0
  332. package/src/engine/graphics/sh3/lightmap/lightmap_gather.d.ts.map +1 -0
  333. package/src/engine/graphics/sh3/lightmap/lightmap_gather.js +168 -0
  334. package/src/engine/graphics/sh3/lightmap/lightmap_rasterize_triangle.d.ts +30 -0
  335. package/src/engine/graphics/sh3/lightmap/lightmap_rasterize_triangle.d.ts.map +1 -0
  336. package/src/engine/graphics/sh3/lightmap/lightmap_rasterize_triangle.js +145 -0
  337. package/src/engine/graphics/sh3/lightmap/lightmap_seam_fix.d.ts +38 -0
  338. package/src/engine/graphics/sh3/lightmap/lightmap_seam_fix.d.ts.map +1 -0
  339. package/src/engine/graphics/sh3/lightmap/lightmap_seam_fix.js +152 -0
  340. package/src/engine/graphics/sh3/lightmap/prototypeLightmapBaker.d.ts +2 -0
  341. package/src/engine/graphics/sh3/lightmap/prototypeLightmapBaker.d.ts.map +1 -0
  342. package/src/engine/graphics/sh3/lightmap/prototypeLightmapBaker.js +186 -0
  343. package/src/engine/graphics/sh3/lpg/LightProbeGrid.d.ts +69 -0
  344. package/src/engine/graphics/sh3/lpg/LightProbeGrid.d.ts.map +1 -0
  345. package/src/engine/graphics/sh3/lpg/LightProbeGrid.js +173 -0
  346. package/src/engine/graphics/sh3/lpg/LightProbeGridBaker.d.ts +24 -0
  347. package/src/engine/graphics/sh3/lpg/LightProbeGridBaker.d.ts.map +1 -0
  348. package/src/engine/graphics/sh3/lpg/LightProbeGridBaker.js +88 -0
  349. package/src/engine/graphics/sh3/lpg/build_light_probe_grid_for_scene.d.ts +20 -0
  350. package/src/engine/graphics/sh3/lpg/build_light_probe_grid_for_scene.d.ts.map +1 -0
  351. package/src/engine/graphics/sh3/lpg/build_light_probe_grid_for_scene.js +79 -0
  352. package/src/engine/graphics/sh3/lpg/light_probe_grid_obtain_storage_cached.d.ts +11 -0
  353. package/src/engine/graphics/sh3/lpg/light_probe_grid_obtain_storage_cached.d.ts.map +1 -0
  354. package/src/engine/graphics/sh3/lpg/light_probe_grid_obtain_storage_cached.js +84 -0
  355. package/src/engine/graphics/sh3/lpg/light_probe_grid_textures.d.ts +29 -0
  356. package/src/engine/graphics/sh3/lpg/light_probe_grid_textures.d.ts.map +1 -0
  357. package/src/engine/graphics/sh3/lpg/light_probe_grid_textures.js +160 -0
  358. package/src/engine/graphics/sh3/lpg/material/LightProbeGridMaterialTransformer.d.ts +23 -0
  359. package/src/engine/graphics/sh3/lpg/material/LightProbeGridMaterialTransformer.d.ts.map +1 -0
  360. package/src/engine/graphics/sh3/lpg/material/LightProbeGridMaterialTransformer.js +228 -0
  361. package/src/engine/graphics/sh3/lpg/material/chunk_lpg_get_irradiance_at.d.ts +2 -0
  362. package/src/engine/graphics/sh3/lpg/material/chunk_lpg_get_irradiance_at.d.ts.map +1 -0
  363. package/src/engine/graphics/sh3/lpg/material/chunk_lpg_get_irradiance_at.js +24 -0
  364. package/src/engine/graphics/sh3/lpg/material/common.d.ts +3 -0
  365. package/src/engine/graphics/sh3/lpg/material/common.d.ts.map +1 -0
  366. package/src/engine/graphics/sh3/lpg/material/common.js +73 -0
  367. package/src/engine/graphics/sh3/lpg/material/space_fragment/build_fragment_shader.d.ts +6 -0
  368. package/src/engine/graphics/sh3/lpg/material/space_fragment/build_fragment_shader.d.ts.map +1 -0
  369. package/src/engine/graphics/sh3/lpg/material/space_fragment/build_fragment_shader.js +42 -0
  370. package/src/engine/graphics/sh3/lpg/material/space_fragment/build_vertex_shader.d.ts +6 -0
  371. package/src/engine/graphics/sh3/lpg/material/space_fragment/build_vertex_shader.d.ts.map +1 -0
  372. package/src/engine/graphics/sh3/lpg/material/space_fragment/build_vertex_shader.js +49 -0
  373. package/src/engine/graphics/sh3/lpg/material/space_fragment/space_fragment_transform_shader.d.ts +9 -0
  374. package/src/engine/graphics/sh3/lpg/material/space_fragment/space_fragment_transform_shader.d.ts.map +1 -0
  375. package/src/engine/graphics/sh3/lpg/material/space_fragment/space_fragment_transform_shader.js +12 -0
  376. package/src/engine/graphics/sh3/lpg/material/space_vertex/build_fragment_shader.d.ts +6 -0
  377. package/src/engine/graphics/sh3/lpg/material/space_vertex/build_fragment_shader.d.ts.map +1 -0
  378. package/src/engine/graphics/sh3/lpg/material/space_vertex/build_fragment_shader.js +30 -0
  379. package/src/engine/graphics/sh3/lpg/material/space_vertex/build_vertex_shader.d.ts +6 -0
  380. package/src/engine/graphics/sh3/lpg/material/space_vertex/build_vertex_shader.d.ts.map +1 -0
  381. package/src/engine/graphics/sh3/lpg/material/space_vertex/build_vertex_shader.js +41 -0
  382. package/src/engine/graphics/sh3/lpg/material/space_vertex/preamble.frag.d.ts +3 -0
  383. package/src/engine/graphics/sh3/lpg/material/space_vertex/preamble.frag.d.ts.map +1 -0
  384. package/src/engine/graphics/sh3/lpg/material/space_vertex/preamble.frag.js +15 -0
  385. package/src/engine/graphics/sh3/lpg/material/space_vertex/preamble.vert.d.ts +3 -0
  386. package/src/engine/graphics/sh3/lpg/material/space_vertex/preamble.vert.d.ts.map +1 -0
  387. package/src/engine/graphics/sh3/lpg/material/space_vertex/preamble.vert.js +9 -0
  388. package/src/engine/graphics/sh3/lpg/material/space_vertex/space_vertex_transform_shader.d.ts +9 -0
  389. package/src/engine/graphics/sh3/lpg/material/space_vertex/space_vertex_transform_shader.d.ts.map +1 -0
  390. package/src/engine/graphics/sh3/lpg/material/space_vertex/space_vertex_transform_shader.js +12 -0
  391. package/src/engine/graphics/sh3/lpg/serialization/LightProbeGridSerializationAdapter.d.ts +20 -0
  392. package/src/engine/graphics/sh3/lpg/serialization/LightProbeGridSerializationAdapter.d.ts.map +1 -0
  393. package/src/engine/graphics/sh3/lpg/serialization/LightProbeGridSerializationAdapter.js +59 -0
  394. package/src/engine/graphics/sh3/path_tracer/PathTracedMesh.d.ts.map +1 -1
  395. package/src/engine/graphics/sh3/path_tracer/PathTracedMesh.js +2 -2
  396. package/src/engine/graphics/sh3/path_tracer/PathTracer.js +2 -2
  397. package/src/engine/graphics/sh3/path_tracer/material/MaterialConverter.d.ts.map +1 -1
  398. package/src/engine/graphics/sh3/path_tracer/material/MaterialConverter.js +8 -0
  399. package/src/engine/graphics/sh3/path_tracer/prepare_scene_gltf.d.ts.map +1 -1
  400. package/src/engine/graphics/sh3/path_tracer/prepare_scene_gltf.js +6 -4
  401. package/src/engine/graphics/sh3/path_tracer/prototypePathTracer.js +3 -3
  402. package/src/engine/graphics/sh3/path_tracer/texture/sample_material.d.ts.map +1 -1
  403. package/src/engine/graphics/sh3/path_tracer/texture/sample_material.js +5 -4
  404. package/src/engine/graphics/sh3/prototypeLightProbeGrid.d.ts +2 -0
  405. package/src/engine/graphics/sh3/prototypeLightProbeGrid.d.ts.map +1 -0
  406. package/src/engine/graphics/sh3/prototypeLightProbeGrid.js +170 -0
  407. package/src/engine/graphics/sh3/sky/hosek/prototype_hosek.js +2 -2
  408. package/src/engine/graphics/texture/atlas/AtlasLookupTexture.js +1 -1
  409. package/src/engine/graphics/texture/atlas/CachingTextureAtlas.js +1 -1
  410. package/src/engine/graphics/texture/sampler/resize/sampler2d_scale_down_lanczos.js +1 -1
  411. package/src/engine/graphics/texture/sampler/sampler2d_copy_with_margins.js +3 -3
  412. package/src/engine/graphics/util/build_max_height_pyramid.d.ts.map +1 -1
  413. package/src/engine/graphics/util/build_max_height_pyramid.js +5 -2
  414. package/src/engine/grid/transform2grid/Transform2GridPositionSystem.js +1 -1
  415. package/src/engine/input/devices/KeyboardDevice.d.ts +61 -14
  416. package/src/engine/input/devices/KeyboardDevice.d.ts.map +1 -1
  417. package/src/engine/input/devices/KeyboardDevice.js +41 -15
  418. package/src/engine/input/devices/isHTMLElementFocusable.d.ts.map +1 -1
  419. package/src/engine/input/devices/isHTMLElementFocusable.js +2 -9
  420. package/src/engine/input/ecs/components/InputBinding.d.ts +7 -1
  421. package/src/engine/input/ecs/components/InputBinding.d.ts.map +1 -1
  422. package/src/engine/input/ecs/components/InputBinding.js +8 -1
  423. package/src/engine/input/ecs/systems/InputControllerSystem.js +1 -1
  424. package/src/engine/intelligence/behavior/decorator/OverrideContextBehavior.d.ts +2 -1
  425. package/src/engine/intelligence/behavior/decorator/OverrideContextBehavior.d.ts.map +1 -1
  426. package/src/engine/intelligence/behavior/decorator/OverrideContextBehavior.js +6 -2
  427. package/src/engine/intelligence/behavior/selector/WeightedElement.js +1 -1
  428. package/src/engine/knowledge/database/StaticKnowledgeDatabase.d.ts.map +1 -1
  429. package/src/engine/knowledge/database/StaticKnowledgeDatabase.js +2 -4
  430. package/src/engine/logging/elastic/ElasticSearchLogger.d.ts +1 -2
  431. package/src/engine/logging/elastic/ElasticSearchLogger.d.ts.map +1 -1
  432. package/src/engine/logging/elastic/ElasticSearchLogger.js +14 -10
  433. package/src/engine/navigation/ecs/path_following/PathFollower.js +1 -1
  434. package/src/engine/navigation/grid/find_path_on_grid_astar.d.ts.map +1 -1
  435. package/src/engine/navigation/grid/find_path_on_grid_astar.js +5 -2
  436. package/src/engine/network/orchestrator/ServerAuthoritativeServer.d.ts +1 -1
  437. package/src/engine/network/orchestrator/ServerAuthoritativeServer.d.ts.map +1 -1
  438. package/src/engine/network/orchestrator/ServerAuthoritativeServer.js +17 -0
  439. package/src/engine/physics/fluid/ecs/FluidObstacleSystem.d.ts +4 -4
  440. package/src/engine/physics/fluid/ecs/FluidSystem.d.ts +3 -3
  441. package/src/engine/scene/SceneManager.d.ts.map +1 -1
  442. package/src/engine/scene/SceneManager.js +4 -2
  443. package/src/engine/simulation/Ticker.d.ts.map +1 -1
  444. package/src/engine/simulation/Ticker.js +9 -0
  445. package/src/engine/sound/ecs/emitter/SoundEmitterSystem.d.ts.map +1 -1
  446. package/src/engine/sound/ecs/emitter/SoundEmitterSystem.js +6 -1
  447. package/src/engine/sound/material/concrete/json/serializeSoundMaterialToJSON.js +1 -1
  448. package/src/engine/sound/simulation/prototypeAcousticSolver.js +261 -143
  449. package/src/generation/theme/ThemeEngine.d.ts +9 -0
  450. package/src/generation/theme/ThemeEngine.d.ts.map +1 -1
  451. package/src/generation/theme/ThemeEngine.js +37 -2
@@ -38,6 +38,13 @@ export function auto_set_camera_clipping_planes(c, layers) {
38
38
  return;
39
39
  }
40
40
 
41
+ // Capture the previous frame's tightened planes *before* overwriting them
42
+ // with the outer bounds below — the hysteresis further down compares the new
43
+ // range against them, so sampling after the overwrite would always measure
44
+ // against the full outer span and never let the planes tighten.
45
+ const old_near = camera.near;
46
+ const old_far = camera.far;
47
+
41
48
  // Run visibility against the user-specified outer bounds, not the previous
42
49
  // frame's tightened range — otherwise objects could be culled before we
43
50
  // ever see them and the autoClip would shrink toward nothing.
@@ -97,8 +104,6 @@ export function auto_set_camera_clipping_planes(c, layers) {
97
104
 
98
105
  // Hysteresis: only shrink each plane if the shrink is meaningful relative
99
106
  // to the current span. Loosening always applies immediately.
100
- const old_near = camera.near;
101
- const old_far = camera.far;
102
107
  const old_span = old_far - old_near;
103
108
  const shrink_threshold = HYSTERESIS * old_span;
104
109
 
@@ -22,7 +22,7 @@ export function set_camera_aspect_ratio(camera, width, height) {
22
22
  case Camera.ProjectionType.Orthographic:
23
23
  //use smaller values to get a bit of a "zoom" on the world
24
24
  const w = c.right - c.left;
25
- const h = c.bottom - c.top;
25
+ const h = c.top - c.bottom;
26
26
 
27
27
  const existingAspect = w / h;
28
28
 
@@ -1,4 +1,4 @@
1
- import { mat4 } from "gl-matrix";
1
+ import { m4_invert } from "../../../../../core/geom/3d/mat4/m4_invert.js";
2
2
  import { assert } from "../../../../../core/assert.js";
3
3
  import { BVH } from "../../../../../core/bvh2/bvh3/BVH.js";
4
4
  import { BvhClient } from "../../../../../core/bvh2/bvh3/BvhClient.js";
@@ -439,7 +439,7 @@ export class FPDecalSystem extends AbstractContextSystem {
439
439
 
440
440
 
441
441
  // get transform in local space
442
- mat4.invert(scratch_m4, transform.matrix);
442
+ m4_invert(scratch_m4, transform.matrix);
443
443
 
444
444
  // transform ray into decal's local space
445
445
  ray3_array_apply_matrix4(scratch_ray_0, 0, scratch_ray_0, 0, scratch_m4);
@@ -1,4 +1,4 @@
1
- import { vec3 } from "gl-matrix";
1
+ import { v3_negate_array } from "../../../../../core/geom/vec3/v3_negate_array.js";
2
2
  import { DoubleSide, LineBasicMaterial, MeshStandardMaterial } from "three";
3
3
  import '../../../../../../../../../css/game.scss';
4
4
  import { makeHelperBoxGeometry } from "../../../../../../editor/process/symbolic/makeHelperBoxGeometry.js";
@@ -294,7 +294,7 @@ function makeNormalTestGridDecal(ecd, root_transform = new Transform()) {
294
294
 
295
295
  uv.uv_to_unit(direction, [i / (GRID_SIZE - 1), j / (GRID_SIZE - 1)]);
296
296
 
297
- vec3.negate(direction, direction);
297
+ v3_negate_array(direction, 0, direction, 0);
298
298
 
299
299
  const decal = new Decal();
300
300
 
@@ -1 +1 @@
1
- {"version":3,"file":"ShadedGeometryHighlightSystem.d.ts","sourceRoot":"","sources":["../../../../../../../src/engine/graphics/ecs/highlight/system/ShadedGeometryHighlightSystem.js"],"names":[],"mappings":"AAoGA;IACI;;;;OAIG;IACH,4BAqBC;IAlBG;;;;OAIG;IACH,iBAAsB;IAEtB,2DAA+C;IAE/C,2BAA0C;IAE1C;;;;OAIG;IACH,8BAAiC;IAIrC;;;OAGG;IACH,sDAWC;IAED;;;OAGG;IACH,qDAoBC;CACJ;uBA3KsB,2BAA2B;+BAEnB,iCAAiC;sBAC1C,iBAAiB;AAIvC;IACI;;;OAGG;IACH,oBAFW,6BAA6B,EA+BvC;IA1BG;;;;OAIG;IACH,iBAAsB;IAEtB;;;;OAIG;IACH,eAAkB;IAClB;;;;OAIG;IACH,gBAAmB;IAEnB;;;;OAIG;IACH,uBAAiD;IAGrD,qCAoBC;IAED;;;;;;OAMG;IACH,gBAyBC;CACJ;6CA9F4C,2CAA2C"}
1
+ {"version":3,"file":"ShadedGeometryHighlightSystem.d.ts","sourceRoot":"","sources":["../../../../../../../src/engine/graphics/ecs/highlight/system/ShadedGeometryHighlightSystem.js"],"names":[],"mappings":"AAuGA;IACI;;;;OAIG;IACH,4BAqBC;IAlBG;;;;OAIG;IACH,iBAAsB;IAEtB,2DAA+C;IAE/C,2BAA0C;IAE1C;;;;OAIG;IACH,8BAAiC;IAIrC;;;OAGG;IACH,sDAWC;IAED;;;OAGG;IACH,qDAoBC;CACJ;uBA9KsB,2BAA2B;+BAEnB,iCAAiC;sBAC1C,iBAAiB;AAIvC;IACI;;;OAGG;IACH,oBAFW,6BAA6B,EA+BvC;IA1BG;;;;OAIG;IACH,iBAAsB;IAEtB;;;;OAIG;IACH,eAAkB;IAClB;;;;OAIG;IACH,gBAAmB;IAEnB;;;;OAIG;IACH,uBAAiD;IAGrD,qCAoBC;IAED;;;;;;OAMG;IACH,gBA4BC;CACJ;6CAjG4C,2CAA2C"}
@@ -87,7 +87,10 @@ class Supplier extends HighlightRenderElementSource {
87
87
 
88
88
  const object = this.__object_cache.get(sg);
89
89
 
90
- object.matrixWorld.elements = sg.transform;
90
+ // element-copy rather than aliasing: assigning sg.transform (the live ECS
91
+ // Transform.matrix) as `.elements` would let any three.js write into the
92
+ // cached object's matrix corrupt the entity's transform.
93
+ object.matrixWorld.fromArray(sg.transform);
91
94
 
92
95
  const renderElement = this.__pool.create();
93
96
 
@@ -48,7 +48,7 @@ export class LightBinding {
48
48
  link(ctx) {
49
49
  this.__c_transform.position.onChanged.add(this.__apply_position, this);
50
50
  this.__c_transform.rotation.onChanged.add(this.__apply_rotation, this);
51
- this.__c_transform.rotation.onChanged.add(this.__apply_scale, this);
51
+ this.__c_transform.scale.onChanged.add(this.__apply_scale, this);
52
52
 
53
53
  const l = this.__c_light;
54
54
 
@@ -86,7 +86,7 @@ export class LightBinding {
86
86
  unlink(ctx) {
87
87
  this.__c_transform.position.onChanged.remove(this.__apply_position, this);
88
88
  this.__c_transform.rotation.onChanged.remove(this.__apply_rotation, this);
89
- this.__c_transform.rotation.onChanged.remove(this.__apply_scale, this);
89
+ this.__c_transform.scale.onChanged.remove(this.__apply_scale, this);
90
90
 
91
91
  this.__c_light.intensity.onChanged.remove(this.__apply_intensity, this);
92
92
  this.__c_light.color.onChanged.remove(this.__apply_color, this);
@@ -234,7 +234,7 @@ export class MeshSystem extends System {
234
234
  if (!ecd.entityExists(entity)) {
235
235
  //entity was destroyed at some point, visibility set updates asynchronously from ECS dataset updates
236
236
  //skip
237
- return;
237
+ continue;
238
238
  }
239
239
 
240
240
  if (component !== undefined) {
@@ -151,7 +151,7 @@ export function findSkeletonBoneByType(skeleton, boneType) {
151
151
  export function getSkeletonBoneByType(component, boneType) {
152
152
  const skeleton = extractSkeletonFromMeshComponent(component);
153
153
 
154
- if (skeleton === undefined) {
154
+ if (skeleton === undefined || skeleton === null) {
155
155
  return null;
156
156
  }
157
157
 
@@ -1,4 +1,4 @@
1
- import { mat4 } from "gl-matrix";
1
+ import { m4_invert } from "../../../../core/geom/3d/mat4/m4_invert.js";
2
2
  import { BvhClient } from "../../../../core/bvh2/bvh3/BvhClient.js";
3
3
  import { AABB3 } from "../../../../core/geom/3d/aabb/AABB3.js";
4
4
  import { aabb3_from_three_geometry } from "../../../../core/geom/3d/aabb/aabb3_from_three_geometry.js";
@@ -271,7 +271,7 @@ export class ShadedGeometry {
271
271
  query_raycast_nearest(contact, ray, transform_matrix4) {
272
272
 
273
273
  // get transform in local space
274
- mat4.invert(scratch_m4, transform_matrix4);
274
+ m4_invert(scratch_m4, transform_matrix4);
275
275
 
276
276
  // transform ray to local space
277
277
  if (!ray3_array_apply_matrix4(scratch_ray_0, 0, ray, 0, scratch_m4)) {
@@ -1 +1 @@
1
- {"version":3,"file":"ShadedGeometrySystem.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/graphics/ecs/mesh-v2/ShadedGeometrySystem.js"],"names":[],"mappings":"AA8DA;IACI;;;OAGG;IACH,4BAmEC;IAjEG,2DAA+C;IAE/C;;;;OAIG;IACH,iBAAsB;IAEtB;;;;OAIG;IACH,uBAA0B;IAE1B;;;;OAIG;IACH,wBAAgC;IAEhC;;;;OAIG;IACH,4BAAoC;IAEpC;;;;OAIG;IACH,kCAA0C;IAE1C;;;;OAIG;IACH,qBAA6B;IAI7B,0BAYE;IAEF,yBAIC;IAIL;;;OAGG;IACH,eAEC;IAED;;;OAGG;IACH,4BAFa,IAAI,MAAM,EAAC,MAAM,CAAC,CAI9B;IAED;;;;OAIG;IACH,+BAHW,MAAM,+CAsBhB;IAED;;;;OAIG;IACH,iCAHW,MAAM,GACL,OAAO,CAmBlB;IAED;;;;OAIG;IACH,4BASC;IAED;;;;OAIG;IACH,8BAMC;IAED,2CAqCC;IAED,4CAcC;IAED;;;;;OAKG;IACH,SAJW,cAAc,KACd,SAAS,UACT,MAAM,QAqBhB;IAED;;;;;OAKG;IACH,WAJW,cAAc,KACd,SAAS,UACT,MAAM,QAsBhB;IAED;;;;;;OAMG;IACH,4BALW,MAAM,EAAE,iBACR,MAAM,UACN,MAAM,EAAE,GAAC,UAAU,MAAM,CAAC,GACxB,MAAM,CAQlB;IAED;;;;;;;;;;;OAWG;IACH,kBAVW,MAAM,YACN,MAAM,YACN,MAAM,eACN,MAAM,eACN,MAAM,eACN,MAAM,uEAGJ;QAAC,MAAM,EAAC,MAAM,CAAC;QAAC,IAAI,EAAC,cAAc,CAAC;QAAC,OAAO,EAAE,aAAa,CAAA;KAAC,EAAE,CA8D1E;IAGD;;;;;;;;;;;;OAYG;IACH,wBAXW,aAAa,YACb,MAAM,YACN,MAAM,YACN,MAAM,eACN,MAAM,eACN,MAAM,eACN,MAAM,uEAGJ;QAAC,MAAM,EAAC,MAAM,CAAC;QAAC,IAAI,EAAC,cAAc,CAAA;KAAC,GAAC,SAAS,CAmF1D;CACJ;uBA7fsB,wBAAwB;0BACrB,qCAAqC;+BAGhC,qBAAqB;iBARnC,uCAAuC;oBAZpC,mCAAmC;2BAQ5B,yCAAyC;8BAEtC,2CAA2C"}
1
+ {"version":3,"file":"ShadedGeometrySystem.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/graphics/ecs/mesh-v2/ShadedGeometrySystem.js"],"names":[],"mappings":"AA6DA;IACI;;;OAGG;IACH,4BAmEC;IAjEG,2DAA+C;IAE/C;;;;OAIG;IACH,iBAAsB;IAEtB;;;;OAIG;IACH,uBAA0B;IAE1B;;;;OAIG;IACH,wBAAgC;IAEhC;;;;OAIG;IACH,4BAAoC;IAEpC;;;;OAIG;IACH,kCAA0C;IAE1C;;;;OAIG;IACH,qBAA6B;IAI7B,0BAYE;IAEF,yBAIC;IAIL;;;OAGG;IACH,eAEC;IAED;;;OAGG;IACH,4BAFa,IAAI,MAAM,EAAC,MAAM,CAAC,CAI9B;IAED;;;;OAIG;IACH,+BAHW,MAAM,+CAsBhB;IAED;;;;OAIG;IACH,iCAHW,MAAM,GACL,OAAO,CAmBlB;IAED;;;;OAIG;IACH,4BASC;IAED;;;;OAIG;IACH,8BAMC;IAED,2CAqCC;IAED,4CAcC;IAED;;;;;OAKG;IACH,SAJW,cAAc,KACd,SAAS,UACT,MAAM,QAqBhB;IAED;;;;;OAKG;IACH,WAJW,cAAc,KACd,SAAS,UACT,MAAM,QAsBhB;IAED;;;;;;OAMG;IACH,4BALW,MAAM,EAAE,iBACR,MAAM,UACN,MAAM,EAAE,GAAC,UAAU,MAAM,CAAC,GACxB,MAAM,CAQlB;IAED;;;;;;;;;;;OAWG;IACH,kBAVW,MAAM,YACN,MAAM,YACN,MAAM,eACN,MAAM,eACN,MAAM,eACN,MAAM,uEAGJ;QAAC,MAAM,EAAC,MAAM,CAAC;QAAC,IAAI,EAAC,cAAc,CAAC;QAAC,OAAO,EAAE,aAAa,CAAA;KAAC,EAAE,CA8D1E;IAGD;;;;;;;;;;;;OAYG;IACH,wBAXW,aAAa,YACb,MAAM,YACN,MAAM,YACN,MAAM,eACN,MAAM,eACN,MAAM,eACN,MAAM,uEAGJ;QAAC,MAAM,EAAC,MAAM,CAAC;QAAC,IAAI,EAAC,cAAc,CAAA;KAAC,GAAC,SAAS,CAmF1D;CACJ;uBA7fsB,wBAAwB;0BACrB,qCAAqC;+BAGhC,qBAAqB;iBARnC,uCAAuC;oBAZpC,mCAAmC;2BAQ5B,yCAAyC;8BAEtC,2CAA2C"}
@@ -1,4 +1,3 @@
1
- import { mat4 } from "gl-matrix";
2
1
  import { assert } from "../../../../core/assert.js";
3
2
  import { BVH } from "../../../../core/bvh2/bvh3/BVH.js";
4
3
  import { bvh_query_depth_range_in_frustum } from "../../../../core/bvh2/bvh3/query/bvh_query_depth_range_in_frustum.js";
@@ -16,7 +16,7 @@ export function sg_hierarchy_compute_bounding_box_via_parent_entity(result, root
16
16
  /**
17
17
  * @type {ShadedGeometry}
18
18
  */
19
- const sg = ecd.getComponent(root_entity, ShadedGeometry);
19
+ const sg = ecd.getComponent(entity, ShadedGeometry);
20
20
 
21
21
  if (sg !== undefined) {
22
22
  sg.getBoundingBox(scratch_aabb3);
@@ -1 +1 @@
1
- {"version":3,"file":"computeFrenetFrames.d.ts","sourceRoot":"","sources":["../../../../../../../../src/engine/graphics/ecs/path/tube/build/computeFrenetFrames.js"],"names":[],"mappings":"AA0CA;;;;;;GAMG;AACH,4CALW,YAAY,GAAC,MAAM,EAAE,WACrB,OAAO,gBACP,OAAO;aACI,OAAO,EAAE;eAAY,OAAO,EAAE;cAAW,OAAO,EAAE;EA+IvE;wBA9LgC,OAAO"}
1
+ {"version":3,"file":"computeFrenetFrames.d.ts","sourceRoot":"","sources":["../../../../../../../../src/engine/graphics/ecs/path/tube/build/computeFrenetFrames.js"],"names":[],"mappings":"AA2CA;;;;;;GAMG;AACH,4CALW,YAAY,GAAC,MAAM,EAAE,WACrB,OAAO,gBACP,OAAO;aACI,OAAO,EAAE;eAAY,OAAO,EAAE;cAAW,OAAO,EAAE;EA+IvE;wBA/LgC,OAAO"}
@@ -2,7 +2,8 @@ import { Matrix4, Vector3 } from "three";
2
2
  import { max2 } from "../../../../../../core/math/max2.js";
3
3
  import { min2 } from "../../../../../../core/math/min2.js";
4
4
  import { clamp } from "../../../../../../core/math/clamp.js";
5
- import { vec3 } from "gl-matrix";
5
+ import { v3_subtract } from "../../../../../../core/geom/vec3/v3_subtract.js";
6
+ import { v3_normalize_array } from "../../../../../../core/geom/vec3/v3_normalize_array.js";
6
7
  import { array_copy } from "../../../../../../core/collection/array/array_copy.js";
7
8
 
8
9
  /**
@@ -83,14 +84,14 @@ export function computeFrenetFrames(points, closed = false, normal_hint) {
83
84
 
84
85
  // get points along the lines close to the reference
85
86
 
86
- vec3.sub(v3_0, p0_a, pR_a);
87
- vec3.normalize(v3_0, v3_0);
87
+ v3_subtract(v3_0, 0, p0_a[0], p0_a[1], p0_a[2], pR_a[0], pR_a[1], pR_a[2]);
88
+ v3_normalize_array(v3_0, 0, v3_0, 0);
88
89
 
89
- vec3.sub(v3_1, p1_a, pR_a);
90
- vec3.normalize(v3_1, v3_1);
90
+ v3_subtract(v3_1, 0, p1_a[0], p1_a[1], p1_a[2], pR_a[0], pR_a[1], pR_a[2]);
91
+ v3_normalize_array(v3_1, 0, v3_1, 0);
91
92
 
92
- vec3.sub(v3_1, v3_1, v3_0);
93
- vec3.normalize(v3_1, v3_1);
93
+ v3_subtract(v3_1, 0, v3_1[0], v3_1[1], v3_1[2], v3_0[0], v3_0[1], v3_0[2]);
94
+ v3_normalize_array(v3_1, 0, v3_1, 0);
94
95
 
95
96
  // write out
96
97
  const tangent_x = v3_1[0];
@@ -30,6 +30,12 @@ declare class WaterSystem extends System<any, any, any, any, any> {
30
30
  * @type {RenderLayer|null}
31
31
  */
32
32
  renderLayer: RenderLayer | null;
33
+ /**
34
+ * preRender hook installed in startup, kept so shutdown can detach it
35
+ * @type {Function|null}
36
+ * @private
37
+ */
38
+ private __preRenderHook;
33
39
  shutdown(entityManager: any): Promise<void>;
34
40
  startup(entityManager: any): Promise<void>;
35
41
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"WaterSystem.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/graphics/ecs/water/WaterSystem.js"],"names":[],"mappings":";AAaA;IAyBI;;;;OAIG;IACH,sCAYC;IAzCD,+BAAuB;IAEvB;;;OAGG;IACH,cAFU,GAAG,CAEG;IAGhB,cAAY;IAEZ;;;OAGG;IACH,aAFU,KAAK,EAAE,CAEA;IAEjB;;;;OAIG;IACH,qBAAiB;IAWb,+BAA8B;IAE9B;;;OAGG;IACH,aAFU,cAAY,IAAI,CAEH;IAK3B,4CAMC;IAED,2CAiEC;IAED;;;;OAIG;IACH,gBAHW,KAAK,UACL,MAAM,QAsDhB;IAED;;;;OAIG;IACH,kBAHW,KAAK,UACL,MAAM,QAgBhB;IAED,2BAgCC;IAED;;;;;OAKG;IACH,0BAUC;IAED,6BAcC;CACJ;;;;uBApRsB,wBAAwB;kBAM7B,YAAY;oBARV,mCAAmC"}
1
+ {"version":3,"file":"WaterSystem.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/graphics/ecs/water/WaterSystem.js"],"names":[],"mappings":";AAaA;IAyBI;;;;OAIG;IACH,sCAmBC;IAhDD,+BAAuB;IAEvB;;;OAGG;IACH,cAFU,GAAG,CAEG;IAGhB,cAAY;IAEZ;;;OAGG;IACH,aAFU,KAAK,EAAE,CAEA;IAEjB;;;;OAIG;IACH,qBAAiB;IAWb,+BAA8B;IAE9B;;;OAGG;IACH,aAFU,cAAY,IAAI,CAEH;IAEvB;;;;OAIG;IACH,wBAA2B;IAK/B,4CASC;IAED,2CAkEC;IAED;;;;OAIG;IACH,gBAHW,KAAK,UACL,MAAM,QAsDhB;IAED;;;;OAIG;IACH,kBAHW,KAAK,UACL,MAAM,QAgBhB;IAED,2BAgCC;IAED;;;;;OAKG;IACH,0BAUC;IAED,6BAcC;CACJ;;;;uBA/RsB,wBAAwB;kBAM7B,YAAY;oBARV,mCAAmC"}
@@ -53,12 +53,22 @@ class WaterSystem extends System {
53
53
  */
54
54
  this.renderLayer = null;
55
55
 
56
+ /**
57
+ * preRender hook installed in startup, kept so shutdown can detach it
58
+ * @type {Function|null}
59
+ * @private
60
+ */
61
+ this.__preRenderHook = null;
62
+
56
63
  }
57
64
 
58
65
 
59
66
  async shutdown(entityManager) {
60
67
 
61
- this.graphicsEngine.size.onChanged.remove(this.setViewportSize);
68
+ if (this.__preRenderHook !== null) {
69
+ this.graphicsEngine.on.preRender.remove(this.__preRenderHook);
70
+ this.__preRenderHook = null;
71
+ }
62
72
 
63
73
  this.graphicsEngine.layers.remove(this.renderLayer);
64
74
 
@@ -128,6 +138,7 @@ class WaterSystem extends System {
128
138
  });
129
139
  }
130
140
 
141
+ this.__preRenderHook = preRenderHook;
131
142
  graphicsEngine.on.preRender.add(preRenderHook);
132
143
  }
133
144
 
@@ -1 +1 @@
1
- {"version":3,"file":"AvgTSpace.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/graphics/geometry/MikkT/AvgTSpace.js"],"names":[],"mappings":"AAGA;;;;;;GAMG;AACH,0EAFa,IAAI,CA6BhB"}
1
+ {"version":3,"file":"AvgTSpace.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/graphics/geometry/MikkT/AvgTSpace.js"],"names":[],"mappings":"AAKA;;;;;;GAMG;AACH,0EAFa,IAAI,CAgChB"}
@@ -1,4 +1,6 @@
1
- import { vec3 } from "gl-matrix";
1
+ import { v3_equals_array } from "../../../../core/geom/vec3/v3_equals_array.js";
2
+ import { v3_copy_array } from "../../../../core/geom/vec3/v3_copy_array.js";
3
+ import { v3_add_array } from "../../../../core/geom/vec3/v3_add_array.js";
2
4
  import { NormalizeSafe } from "./NormalizeSafe.js";
3
5
 
4
6
  /**
@@ -15,21 +17,24 @@ export function AvgTSpace(ts_res, pTS0, pTS1) {
15
17
  // which results in tangent space splits later on
16
18
  if (
17
19
  pTS0.fMagS === pTS1.fMagS && pTS0.fMagT === pTS1.fMagT &&
18
- vec3.exactEquals(pTS0.vOs, pTS1.vOs) && vec3.exactEquals(pTS0.vOt, pTS1.vOt)
20
+ v3_equals_array(pTS0.vOs, 0, pTS1.vOs, 0) && v3_equals_array(pTS0.vOt, 0, pTS1.vOt, 0)
19
21
  ) {
20
22
 
21
23
  ts_res.fMagS = pTS0.fMagS;
22
24
  ts_res.fMagT = pTS0.fMagT;
23
25
 
24
- vec3.copy(ts_res.vOs, pTS0.vOs);
25
- vec3.copy(ts_res.vOt, pTS0.vOt);
26
+ v3_copy_array(ts_res.vOs, 0, pTS0.vOs, 0);
27
+ v3_copy_array(ts_res.vOt, 0, pTS0.vOt, 0);
26
28
 
27
29
  } else {
28
30
  ts_res.fMagS = 0.5 * (pTS0.fMagS + pTS1.fMagS);
29
31
  ts_res.fMagT = 0.5 * (pTS0.fMagT + pTS1.fMagT);
30
32
 
31
- vec3.add(ts_res.vOs, pTS0.vOs, pTS1.vOs);
32
- vec3.add(ts_res.vOt, pTS0.vOt, pTS1.vOt);
33
+ v3_copy_array(ts_res.vOs, 0, pTS0.vOs, 0);
34
+ v3_add_array(ts_res.vOs, 0, pTS1.vOs, 0);
35
+
36
+ v3_copy_array(ts_res.vOt, 0, pTS0.vOt, 0);
37
+ v3_add_array(ts_res.vOt, 0, pTS1.vOt, 0);
33
38
 
34
39
  NormalizeSafe(ts_res.vOs, ts_res.vOs);
35
40
  NormalizeSafe(ts_res.vOt, ts_res.vOt);
@@ -1 +1 @@
1
- {"version":3,"file":"BuildNeighborsFast.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/graphics/geometry/MikkT/BuildNeighborsFast.js"],"names":[],"mappings":"AAKA;;;;;;;GAOG;AACH,8CANW,UAAU,UACV,MAAM,EAAE,GAAC,YAAY,eACrB,MAAM,EAAE,kBACR,MAAM,GACJ,IAAI,CA6HhB"}
1
+ {"version":3,"file":"BuildNeighborsFast.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/graphics/geometry/MikkT/BuildNeighborsFast.js"],"names":[],"mappings":"AAIA;;;;;;;GAOG;AACH,8CANW,UAAU,UACV,MAAM,EAAE,GAAC,YAAY,eACrB,MAAM,EAAE,kBACR,MAAM,GACJ,IAAI,CA6HhB"}
@@ -1,6 +1,5 @@
1
1
  import { INTERNAL_RND_SORT_SEED } from "./constants/INTERNAL_RND_SORT_SEED.js";
2
2
  import { QuickSortEdges } from "./QuickSortEdges.js";
3
- import { vec3 } from "gl-matrix";
4
3
  import { GetEdge } from "./GetEdge.js";
5
4
 
6
5
  /**
@@ -71,8 +70,8 @@ export function BuildNeighborsFast(pTriInfos, pEdges, piTriListIn, iNrTrianglesI
71
70
 
72
71
  }
73
72
 
74
- const temp_edge_A = vec3.create();
75
- const temp_edge_B = vec3.create();
73
+ const temp_edge_A = new Float32Array(3);
74
+ const temp_edge_B = new Float32Array(3);
76
75
 
77
76
  // pair up, adjacent triangles
78
77
  for (let i = 0; i < iEntries; i++) {
@@ -1 +1 @@
1
- {"version":3,"file":"CalcTexArea.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/graphics/geometry/MikkT/CalcTexArea.js"],"names":[],"mappings":"AAOA;;;;;;GAMG;AACH,mEAJW,MAAM,EAAE,kBACR,MAAM,GACJ,MAAM,CAiBlB"}
1
+ {"version":3,"file":"CalcTexArea.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/graphics/geometry/MikkT/CalcTexArea.js"],"names":[],"mappings":"AAMA;;;;;;GAMG;AACH,mEAJW,MAAM,EAAE,kBACR,MAAM,GACJ,MAAM,CAiBlB"}
@@ -1,9 +1,8 @@
1
- import { vec3 } from "gl-matrix";
2
1
  import { GetTexCoord } from "./GetTexCoord.js";
3
2
 
4
- const t1 = vec3.create();
5
- const t2 = vec3.create();
6
- const t3 = vec3.create();
3
+ const t1 = new Float32Array(3);
4
+ const t2 = new Float32Array(3);
5
+ const t3 = new Float32Array(3);
7
6
 
8
7
  /**
9
8
  * returns the texture area times 2
@@ -1,5 +1,5 @@
1
1
  import { QUAD_ONE_DEGEN_TRI } from "./constants/QUAD_ONE_DEGEN_TRI.js";
2
- import { vec3 } from "gl-matrix";
2
+ import { v3_equals_array } from "../../../../core/geom/vec3/v3_equals_array.js";
3
3
  import { GetPosition } from "./GetPosition.js";
4
4
  import { MakeIndex } from "./MakeIndex.js";
5
5
  import { assert } from "../../../../core/assert.js";
@@ -7,8 +7,8 @@ import { assert } from "../../../../core/assert.js";
7
7
  /**
8
8
  * @type {vec3}
9
9
  */
10
- const vDstP = vec3.create();
11
- const vSrcP = vec3.create();
10
+ const vDstP = new Float32Array(3);
11
+ const vSrcP = new Float32Array(3);
12
12
 
13
13
  class VertReverseLookupContext {
14
14
  /**
@@ -199,7 +199,7 @@ export function DegenEpilogue(psTspace, pTriInfos, piTriListIn, pContext, iNrTri
199
199
  const iVert = pV[i];
200
200
  GetPosition(vSrcP, 0, pContext, MakeIndex(iOrgF, iVert));
201
201
 
202
- if (vec3.exactEquals(vSrcP, vDstP)) {
202
+ if (v3_equals_array(vSrcP, 0, vDstP, 0)) {
203
203
 
204
204
  const iOffs = tri.iTSpacesOffs;
205
205
 
@@ -1 +1 @@
1
- {"version":3,"file":"EvalTspace.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/graphics/geometry/MikkT/EvalTspace.js"],"names":[],"mappings":"AA4BA;;;;;;;;;GASG;AACH,gCARW,OAAO,gBACP,MAAM,EAAE,GAAC,WAAW,GAAC,UAAU,UAC/B,MAAM,eACN,MAAM,EAAE,aACR,UAAU,uDAEV,MAAM,QA2FhB;wBA/HuB,cAAc"}
1
+ {"version":3,"file":"EvalTspace.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/graphics/geometry/MikkT/EvalTspace.js"],"names":[],"mappings":"AA+BA;;;;;;;;;GASG;AACH,gCARW,OAAO,gBACP,MAAM,EAAE,GAAC,WAAW,GAAC,UAAU,UAC/B,MAAM,eACN,MAAM,EAAE,aACR,UAAU,uDAEV,MAAM,QA2FhB;wBAlIuB,cAAc"}
@@ -1,5 +1,8 @@
1
1
  import { STSpace } from "./STSpace.js";
2
- import { vec3 } from "gl-matrix";
2
+ import { v3_subtract } from "../../../../core/geom/vec3/v3_subtract.js";
3
+ import { v3_scale } from "../../../../core/geom/vec3/v3_scale.js";
4
+ import { v3_dot } from "../../../../core/geom/vec3/v3_dot.js";
5
+ import { v3_add_array } from "../../../../core/geom/vec3/v3_add_array.js";
3
6
  import { GROUP_WITH_ANY } from "./constants/GROUP_WITH_ANY.js";
4
7
  import { assert } from "../../../../core/assert.js";
5
8
  import { GetNormal } from "./GetNormal.js";
@@ -88,8 +91,8 @@ export function EvalTspace(res, face_indices, iFaces, piTriListIn, pTriInfos, pC
88
91
  GetPosition(p1, 0, pContext, i1);
89
92
  GetPosition(p2, 0, pContext, i2);
90
93
 
91
- vec3.sub(p0, p0, p1);
92
- vec3.sub(p1, p2, p1);
94
+ v3_subtract(p0, 0, p0[0], p0[1], p0[2], p1[0], p1[1], p1[2]);
95
+ v3_subtract(p1, 0, p2[0], p2[1], p2[2], p1[0], p1[1], p1[2]);
93
96
 
94
97
  // project
95
98
  v3_scale_dot_sub_normalize(p0, n, p0);
@@ -98,16 +101,16 @@ export function EvalTspace(res, face_indices, iFaces, piTriListIn, pTriInfos, pC
98
101
  // weight contribution by the angle
99
102
  // between the two edge vectors
100
103
 
101
- const fCos = clamp01(vec3.dot(p0, p1));
104
+ const fCos = clamp01(v3_dot(p0[0], p0[1], p0[2], p1[0], p1[1], p1[2]));
102
105
  const fAngle = Math.acos(fCos);
103
106
  const fMagS = tri_info.fMagS;
104
107
  const fMagT = tri_info.fMagT;
105
108
 
106
- vec3.scale(p2, vOs, fAngle);
107
- vec3.add(res.vOs, res.vOs, p2);
109
+ v3_scale(p2, 0, vOs[0], vOs[1], vOs[2], fAngle);
110
+ v3_add_array(res.vOs, 0, p2, 0);
108
111
 
109
- vec3.scale(p2, vOt, fAngle);
110
- vec3.add(res.vOt, res.vOt, p2);
112
+ v3_scale(p2, 0, vOt[0], vOt[1], vOt[2], fAngle);
113
+ v3_add_array(res.vOt, 0, p2, 0);
111
114
 
112
115
  res.fMagS += (fAngle * fMagS);
113
116
  res.fMagT += (fAngle * fMagT);
@@ -1 +1 @@
1
- {"version":3,"file":"GenerateSharedVerticesIndexList.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/graphics/geometry/MikkT/GenerateSharedVerticesIndexList.js"],"names":[],"mappings":"AAoGA;;;;;;GAMG;AACH,sEALW,MAAM,EAAE,GAAC,UAAU,gDAEnB,MAAM,GACJ,IAAI,CAuGhB"}
1
+ {"version":3,"file":"GenerateSharedVerticesIndexList.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/graphics/geometry/MikkT/GenerateSharedVerticesIndexList.js"],"names":[],"mappings":"AAmGA;;;;;;GAMG;AACH,sEALW,MAAM,EAAE,GAAC,UAAU,gDAEnB,MAAM,GACJ,IAAI,CAuGhB"}
@@ -1,4 +1,3 @@
1
- import { vec3 } from "gl-matrix";
2
1
  import { computeHashFloat } from "../../../../core/primitives/numbers/computeHashFloat.js";
3
2
  import { GetNormal } from "./GetNormal.js";
4
3
  import { GetPosition } from "./GetPosition.js";
@@ -119,7 +118,7 @@ export function GenerateSharedVerticesIndexList(
119
118
  const temp_hashes = new Uint32Array(_buffer, numVertices * 2 * 4, numVertices);
120
119
  const temp_indices = new Int32Array(_buffer, numVertices * 3 * 4, numVertices);
121
120
 
122
- const v = vec3.create();
121
+ const v = new Float32Array(3);
123
122
 
124
123
  for (let i = 0; i < numVertices; i++) {
125
124
  const index = piTriList_in_and_out[i];
@@ -143,14 +142,14 @@ export function GenerateSharedVerticesIndexList(
143
142
  // free(temp_indices);
144
143
 
145
144
 
146
- const vT = vec3.create();
147
- const vP = vec3.create();
145
+ const vT = new Float32Array(3);
146
+ const vP = new Float32Array(3);
148
147
 
149
- const vT2 = vec3.create();
150
- const vP2 = vec3.create();
148
+ const vT2 = new Float32Array(3);
149
+ const vP2 = new Float32Array(3);
151
150
 
152
- const vN = vec3.create();
153
- const vN2 = vec3.create();
151
+ const vN = new Float32Array(3);
152
+ const vN2 = new Float32Array(3);
154
153
 
155
154
  /*
156
155
  * Process blocks of vertices with the same hash.
@@ -1,7 +1,7 @@
1
1
  import { malloc } from "./malloc.js";
2
2
  import { STSpace } from "./STSpace.js";
3
3
  import { SSubGroup } from "./SSubGroup.js";
4
- import { vec3 } from "gl-matrix";
4
+ import { v3_dot } from "../../../../core/geom/vec3/v3_dot.js";
5
5
  import { assert } from "../../../../core/assert.js";
6
6
  import { GetNormal } from "./GetNormal.js";
7
7
  import { GROUP_WITH_ANY } from "./constants/GROUP_WITH_ANY.js";
@@ -14,15 +14,15 @@ import { ORIENT_PRESERVING } from "./constants/ORIENT_PRESERVING.js";
14
14
  import { AvgTSpace } from "./AvgTSpace.js";
15
15
  import { v3_scale_dot_sub_normalize } from "./v3_scale_dot_sub_normalize.js";
16
16
 
17
- const vOs = vec3.create();
18
- const vOt = vec3.create();
17
+ const vOs = new Float32Array(3);
18
+ const vOt = new Float32Array(3);
19
19
 
20
- const vOs2 = vec3.create();
21
- const vOt2 = vec3.create();
20
+ const vOs2 = new Float32Array(3);
21
+ const vOt2 = new Float32Array(3);
22
22
  /**
23
23
  * @type {vec3}
24
24
  */
25
- const n = vec3.create();
25
+ const n = new Float32Array(3);
26
26
 
27
27
  /**
28
28
  * @type {SSubGroup}
@@ -129,8 +129,8 @@ export function GenerateTSpaces(psTspace, pTriInfos, pGroups, iNrActiveGroups, p
129
129
  // make sure triangles which belong to the same quad are joined.
130
130
  const bSameOrgFace = iOF_1 === iOF_2;
131
131
 
132
- const fCosS = vec3.dot(vOs, vOs2);
133
- const fCosT = vec3.dot(vOt, vOt2);
132
+ const fCosS = v3_dot(vOs[0], vOs[1], vOs[2], vOs2[0], vOs2[1], vOs2[2]);
133
+ const fCosT = v3_dot(vOt[0], vOt[1], vOt[2], vOt2[0], vOt2[1], vOt2[2]);
134
134
 
135
135
  assert(f !== t || bSameOrgFace); // sanity check
136
136
 
@@ -1 +1 @@
1
- {"version":3,"file":"InitTriInfo.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/graphics/geometry/MikkT/InitTriInfo.js"],"names":[],"mappings":"AA2BA;;;;;;;GAOG;AACH,uCANW,UAAU,eACV,MAAM,EAAE,GAAC,UAAU,gDAEnB,MAAM,GACJ,IAAI,CAgJhB"}
1
+ {"version":3,"file":"InitTriInfo.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/graphics/geometry/MikkT/InitTriInfo.js"],"names":[],"mappings":"AA+BA;;;;;;;GAOG;AACH,uCANW,UAAU,eACV,MAAM,EAAE,GAAC,UAAU,gDAEnB,MAAM,GACJ,IAAI,CAiJhB"}
@@ -1,4 +1,8 @@
1
- import { vec3 } from "gl-matrix";
1
+ import { v3_subtract } from "../../../../core/geom/vec3/v3_subtract.js";
2
+ import { v3_scale } from "../../../../core/geom/vec3/v3_scale.js";
3
+ import { v3_add_array } from "../../../../core/geom/vec3/v3_add_array.js";
4
+ import { v3_copy_array } from "../../../../core/geom/vec3/v3_copy_array.js";
5
+ import { v3_length } from "../../../../core/geom/vec3/v3_length.js";
2
6
  import { BuildNeighborsFast } from "./BuildNeighborsFast.js";
3
7
  import { CalcTexArea } from "./CalcTexArea.js";
4
8
  import { GROUP_WITH_ANY } from "./constants/GROUP_WITH_ANY.js";
@@ -8,22 +12,22 @@ import { GetPosition } from "./GetPosition.js";
8
12
  import { GetTexCoord } from "./GetTexCoord.js";
9
13
  import { NotZero } from "./NotZero.js";
10
14
 
11
- const t1 = vec3.create();
12
- const t2 = vec3.create();
13
- const t3 = vec3.create();
15
+ const t1 = new Float32Array(3);
16
+ const t2 = new Float32Array(3);
17
+ const t3 = new Float32Array(3);
14
18
 
15
- const d1 = vec3.create();
16
- const d2 = vec3.create();
19
+ const d1 = new Float32Array(3);
20
+ const d2 = new Float32Array(3);
17
21
 
18
- const vOs = vec3.create();
19
- const vOt = vec3.create();
22
+ const vOs = new Float32Array(3);
23
+ const vOt = new Float32Array(3);
20
24
 
21
- const v1 = vec3.create();
22
- const v2 = vec3.create();
23
- const v3 = vec3.create();
25
+ const v1 = new Float32Array(3);
26
+ const v2 = new Float32Array(3);
27
+ const v3 = new Float32Array(3);
24
28
 
25
- const v_temp_0 = vec3.create();
26
- const v_temp_1 = vec3.create();
29
+ const v_temp_0 = new Float32Array(3);
30
+ const v_temp_1 = new Float32Array(3);
27
31
 
28
32
  /**
29
33
  *
@@ -82,20 +86,21 @@ export function InitTriInfo(pTriInfos, piTriListIn, pContext, iNrTrianglesIn) {
82
86
  const t31x = t3[0] - t1[0];
83
87
  const t31y = t3[1] - t1[1];
84
88
 
85
- vec3.sub(d1, v2, v1);
86
- vec3.sub(d2, v3, v1);
89
+ v3_subtract(d1, 0, v2[0], v2[1], v2[2], v1[0], v1[1], v1[2]);
90
+ v3_subtract(d2, 0, v3[0], v3[1], v3[2], v1[0], v1[1], v1[2]);
87
91
 
88
92
  const fSignedAreaSTx2 = t21x * t31y - t21y * t31x;
89
93
  //assert(fSignedAreaSTx2!=0);
90
94
 
91
- vec3.scale(v_temp_0, d1, t31y);
92
- vec3.scale(v_temp_1, d2, t21y);
93
- vec3.sub(vOs, v_temp_0, v_temp_1); // eq 18
95
+ v3_scale(v_temp_0, 0, d1[0], d1[1], d1[2], t31y);
96
+ v3_scale(v_temp_1, 0, d2[0], d2[1], d2[2], t21y);
97
+ v3_subtract(vOs, 0, v_temp_0[0], v_temp_0[1], v_temp_0[2], v_temp_1[0], v_temp_1[1], v_temp_1[2]); // eq 18
94
98
 
95
99
 
96
- vec3.scale(v_temp_0, d1, -t31x);
97
- vec3.scale(v_temp_1, d2, t21x);
98
- vec3.add(vOt, v_temp_0, v_temp_1); // eq 19
100
+ v3_scale(v_temp_0, 0, d1[0], d1[1], d1[2], -t31x);
101
+ v3_scale(v_temp_1, 0, d2[0], d2[1], d2[2], t21x);
102
+ v3_copy_array(vOt, 0, v_temp_0, 0);
103
+ v3_add_array(vOt, 0, v_temp_1, 0); // eq 19
99
104
 
100
105
  const tri_info = pTriInfos[f];
101
106
  tri_info.iFlag |= (fSignedAreaSTx2 > 0 ? ORIENT_PRESERVING : 0);
@@ -103,17 +108,17 @@ export function InitTriInfo(pTriInfos, piTriListIn, pContext, iNrTrianglesIn) {
103
108
  if (NotZero(fSignedAreaSTx2)) {
104
109
  const fAbsArea = Math.abs(fSignedAreaSTx2);
105
110
 
106
- const fLenOs = vec3.length(vOs);
107
- const fLenOt = vec3.length(vOt);
111
+ const fLenOs = v3_length(vOs[0], vOs[1], vOs[2]);
112
+ const fLenOt = v3_length(vOt[0], vOt[1], vOt[2]);
108
113
 
109
114
  const fS = (tri_info.iFlag & ORIENT_PRESERVING) === 0 ? (-1.0) : 1.0;
110
115
 
111
116
  if (NotZero(fLenOs)) {
112
- vec3.scale(tri_info.vOs, vOs, fS / fLenOs);
117
+ v3_scale(tri_info.vOs, 0, vOs[0], vOs[1], vOs[2], fS / fLenOs);
113
118
  }
114
119
 
115
120
  if (NotZero(fLenOt)) {
116
- vec3.scale(tri_info.vOt, vOt, fS / fLenOt);
121
+ v3_scale(tri_info.vOt, 0, vOt[0], vOt[1], vOt[2], fS / fLenOt);
117
122
  }
118
123
 
119
124
  // evaluate magnitudes prior to normalization of vOs and vOt