@woosh/meep-engine 2.106.1 → 2.108.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 (808) hide show
  1. package/build/bundle-worker-image-decoder.js +1 -1
  2. package/build/meep.cjs +1972 -2314
  3. package/build/meep.min.js +1 -1
  4. package/build/meep.module.js +1972 -2315
  5. package/editor/Editor.js +55 -60
  6. package/editor/SelectionVisualizer.js +111 -109
  7. package/editor/actions/concrete/ComponentAddAction.js +0 -3
  8. package/editor/actions/concrete/ComponentRemoveAction.js +0 -4
  9. package/editor/actions/concrete/EntityCreateAction.js +0 -3
  10. package/editor/actions/concrete/EntityRemoveAction.js +0 -4
  11. package/editor/actions/concrete/SelectionAddAction.js +0 -3
  12. package/editor/actions/concrete/SelectionClearAction.js +0 -3
  13. package/editor/actions/concrete/SelectionRemoveAction.js +0 -3
  14. package/editor/ecs/EditorEntity.js +8 -6
  15. package/editor/tools/SelectionTool.js +0 -5
  16. package/editor/tools/TopDownCameraControlTool.js +2 -5
  17. package/editor/tools/TransformTool.js +137 -136
  18. package/editor/tools/engine/Tool.js +1 -6
  19. package/editor/tools/engine/ToolEngine.js +145 -148
  20. package/editor/tools/v2/TransformControls.js +25 -24
  21. package/editor/view/EditorView.js +0 -5
  22. package/editor/view/ecs/ComponentControlFactory.js +37 -40
  23. package/editor/view/ecs/EntityEditor.js +0 -3
  24. package/editor/view/ecs/EntityList.js +6 -11
  25. package/editor/view/ecs/components/MeshController.js +4 -7
  26. package/editor/view/ecs/components/TransformController.js +3 -9
  27. package/editor/view/tools/ToolView.js +2 -8
  28. package/package.json +1 -1
  29. package/src/core/IdPool.d.ts.map +1 -1
  30. package/src/core/IdPool.js +0 -5
  31. package/src/core/UUID.d.ts.map +1 -1
  32. package/src/core/UUID.js +0 -4
  33. package/src/core/binary/BitSet.d.ts +17 -14
  34. package/src/core/binary/BitSet.d.ts.map +1 -1
  35. package/src/core/binary/BitSet.js +411 -412
  36. package/src/core/binary/int32_to_binary_string.d.ts +3 -2
  37. package/src/core/binary/int32_to_binary_string.d.ts.map +1 -1
  38. package/src/core/binary/int32_to_binary_string.js +18 -14
  39. package/src/core/binary/split_by_3.spec.d.ts +2 -0
  40. package/src/core/binary/split_by_3.spec.d.ts.map +1 -0
  41. package/src/core/binary/split_by_3.spec.js +22 -0
  42. package/src/core/binary/to_half_float_uint16.d.ts.map +1 -1
  43. package/src/core/binary/to_half_float_uint16.js +7 -5
  44. package/src/core/binary/type/Field.d.ts +0 -8
  45. package/src/core/binary/type/Field.d.ts.map +1 -1
  46. package/src/core/binary/type/Field.js +16 -19
  47. package/src/core/binary/type/MultiplicityType.js +0 -4
  48. package/src/core/binary/type/PrimitiveTypes.d.ts.map +1 -1
  49. package/src/core/binary/type/PrimitiveTypes.js +0 -4
  50. package/src/core/binary/type/Type.d.ts +0 -6
  51. package/src/core/binary/type/Type.d.ts.map +1 -1
  52. package/src/core/binary/type/Type.js +63 -64
  53. package/src/core/binary/type/TypeBuilder.d.ts +0 -1
  54. package/src/core/binary/type/TypeBuilder.d.ts.map +1 -1
  55. package/src/core/binary/type/TypeBuilder.js +15 -18
  56. package/src/core/binary/type/TypeRegistry.d.ts +6 -4
  57. package/src/core/binary/type/TypeRegistry.d.ts.map +1 -1
  58. package/src/core/binary/type/TypeRegistry.js +38 -42
  59. package/src/core/bvh2/visual/BVHGeometry.d.ts.map +1 -1
  60. package/src/core/bvh2/visual/BVHGeometry.js +0 -3
  61. package/src/core/codegen/LineBuilder.d.ts.map +1 -1
  62. package/src/core/codegen/LineBuilder.js +0 -5
  63. package/src/core/collection/array/isArrayEqualStrict.d.ts.map +1 -1
  64. package/src/core/collection/array/isArrayEqualStrict.js +2 -2
  65. package/src/core/collection/set/ArraySet.d.ts.map +1 -1
  66. package/src/core/collection/set/ArraySet.js +1 -5
  67. package/src/core/collection/table/RowFirstTable.d.ts.map +1 -1
  68. package/src/core/collection/table/RowFirstTable.js +0 -5
  69. package/src/core/color/Color.d.ts.map +1 -1
  70. package/src/core/color/Color.js +7 -2
  71. package/src/core/color/hsv/rgb2hsv.d.ts +3 -3
  72. package/src/core/color/hsv/rgb2hsv.d.ts.map +1 -1
  73. package/src/core/color/hsv/rgb2hsv.js +11 -18
  74. package/src/core/color/parse_color.d.ts.map +1 -1
  75. package/src/core/color/parse_color.js +1 -5
  76. package/src/core/color/rgb_to_luminance.d.ts +9 -0
  77. package/src/core/color/rgb_to_luminance.d.ts.map +1 -0
  78. package/src/core/color/rgb_to_luminance.js +10 -0
  79. package/src/core/geom/2d/Rectangle.d.ts.map +1 -1
  80. package/src/core/geom/2d/Rectangle.js +0 -4
  81. package/src/core/geom/2d/aabb/AABB2.d.ts.map +1 -1
  82. package/src/core/geom/2d/aabb/AABB2.js +0 -6
  83. package/src/core/geom/3d/aabb/AABB3.d.ts.map +1 -1
  84. package/src/core/geom/3d/aabb/AABB3.js +0 -5
  85. package/src/core/geom/3d/morton/Morton.d.ts.map +1 -1
  86. package/src/core/geom/3d/morton/Morton.js +0 -3
  87. package/src/core/geom/3d/sphere/harmonics/README.md +16 -2
  88. package/src/core/geom/3d/sphere/harmonics/SH3_COEFFICIENTS.d.ts +6 -0
  89. package/src/core/geom/3d/sphere/harmonics/SH3_COEFFICIENTS.d.ts.map +1 -0
  90. package/src/core/geom/3d/sphere/harmonics/SH3_COEFFICIENTS.js +15 -0
  91. package/src/core/geom/3d/sphere/harmonics/sh3_basis_at.d.ts.map +1 -1
  92. package/src/core/geom/3d/sphere/harmonics/sh3_basis_at.js +21 -9
  93. package/src/core/geom/3d/sphere/harmonics/sh3_dering_optimize_positive.d.ts +3 -3
  94. package/src/core/geom/3d/sphere/harmonics/sh3_dering_optimize_positive.d.ts.map +1 -1
  95. package/src/core/geom/3d/sphere/harmonics/sh3_dering_optimize_positive.js +45 -216
  96. package/src/core/geom/3d/sphere/harmonics/sh3_rotate.d.ts +8 -0
  97. package/src/core/geom/3d/sphere/harmonics/sh3_rotate.d.ts.map +1 -0
  98. package/src/core/geom/3d/sphere/harmonics/sh3_rotate.js +29 -0
  99. package/src/core/geom/3d/sphere/harmonics/sh3_sample_by_direction.js +10 -10
  100. package/src/core/geom/3d/sphere/harmonics/sh_index.d.ts +8 -0
  101. package/src/core/geom/3d/sphere/harmonics/sh_index.d.ts.map +1 -0
  102. package/src/core/geom/3d/sphere/harmonics/sh_index.js +9 -0
  103. package/src/core/geom/3d/sphere/harmonics/sh_rotate_band1.d.ts +8 -0
  104. package/src/core/geom/3d/sphere/harmonics/sh_rotate_band1.d.ts.map +1 -0
  105. package/src/core/geom/3d/sphere/harmonics/sh_rotate_band1.js +44 -0
  106. package/src/core/geom/3d/sphere/harmonics/sh_rotate_band2.d.ts +8 -0
  107. package/src/core/geom/3d/sphere/harmonics/sh_rotate_band2.d.ts.map +1 -0
  108. package/src/core/geom/3d/sphere/harmonics/sh_rotate_band2.js +86 -0
  109. package/src/core/geom/3d/sphere/in_sphere3d_robust.d.ts.map +1 -1
  110. package/src/core/geom/3d/sphere/in_sphere3d_robust.js +2 -1
  111. package/src/core/geom/3d/tetrahedra/TetrahedralMesh.d.ts +20 -1
  112. package/src/core/geom/3d/tetrahedra/TetrahedralMesh.d.ts.map +1 -1
  113. package/src/core/geom/3d/tetrahedra/TetrahedralMesh.js +53 -7
  114. package/src/core/geom/3d/tetrahedra/TetrahedralMesh.spec.js +2 -2
  115. package/src/core/geom/3d/tetrahedra/build_tetrahedral_mesh_buffer_geometry.d.ts +1 -1
  116. package/src/core/geom/3d/tetrahedra/build_tetrahedral_mesh_buffer_geometry.d.ts.map +1 -1
  117. package/src/core/geom/3d/tetrahedra/build_tetrahedral_mesh_buffer_geometry.js +12 -7
  118. package/src/core/geom/3d/tetrahedra/delaunay/tetrahedral_mesh_build_from_grid.d.ts +13 -0
  119. package/src/core/geom/3d/tetrahedra/delaunay/tetrahedral_mesh_build_from_grid.d.ts.map +1 -0
  120. package/src/core/geom/3d/tetrahedra/delaunay/tetrahedral_mesh_build_from_grid.js +135 -0
  121. package/src/core/geom/3d/tetrahedra/prototypeTetrahedraBuilder.js +38 -24
  122. package/src/core/geom/3d/tetrahedra/{compute_circumsphere.d.ts → tetrahedron_compute_circumsphere.d.ts} +3 -5
  123. package/src/core/geom/3d/tetrahedra/tetrahedron_compute_circumsphere.d.ts.map +1 -0
  124. package/src/core/geom/3d/tetrahedra/{compute_circumsphere.js → tetrahedron_compute_circumsphere.js} +2 -4
  125. package/src/core/geom/3d/tetrahedra/tetrahedron_compute_signed_volume.d.ts.map +1 -1
  126. package/src/core/geom/3d/tetrahedra/tetrahedron_compute_signed_volume.js +3 -1
  127. package/src/core/geom/Quaternion.d.ts.map +1 -1
  128. package/src/core/geom/Quaternion.js +0 -5
  129. package/src/core/geom/Vector3.d.ts.map +1 -1
  130. package/src/core/geom/Vector3.js +1 -0
  131. package/src/core/geom/Vector4.d.ts.map +1 -1
  132. package/src/core/geom/Vector4.js +0 -4
  133. package/src/core/geom/mat3/m3_multiply_vec3.d.ts +8 -0
  134. package/src/core/geom/mat3/m3_multiply_vec3.d.ts.map +1 -0
  135. package/src/core/geom/mat3/m3_multiply_vec3.js +21 -0
  136. package/src/core/geom/vec2/v2_cross_product.d.ts +15 -0
  137. package/src/core/geom/vec2/v2_cross_product.d.ts.map +1 -0
  138. package/src/core/geom/vec2/v2_cross_product.js +21 -0
  139. package/src/core/geom/vec3/v3_slerp.d.ts +1 -0
  140. package/src/core/geom/vec3/v3_slerp.d.ts.map +1 -1
  141. package/src/core/geom/vec3/v3_slerp.js +1 -0
  142. package/src/core/graph/Edge.d.ts.map +1 -1
  143. package/src/core/graph/Edge.js +0 -5
  144. package/src/core/graph/MultiNode.d.ts +1 -1
  145. package/src/core/graph/MultiNode.js +1 -1
  146. package/src/core/graph/WeightedEdge.d.ts +6 -4
  147. package/src/core/graph/WeightedEdge.d.ts.map +1 -1
  148. package/src/core/graph/WeightedEdge.js +3 -0
  149. package/src/core/graph/coloring/colorizeGraph.js +19 -19
  150. package/src/core/graph/convert_graph_to_dot_string.d.ts +1 -1
  151. package/src/core/graph/convert_graph_to_dot_string.d.ts.map +1 -1
  152. package/src/core/graph/convert_graph_to_dot_string.js +10 -6
  153. package/src/core/graph/graph_compute_adjacency_matrix.d.ts +9 -0
  154. package/src/core/graph/graph_compute_adjacency_matrix.d.ts.map +1 -0
  155. package/src/core/graph/{graph_adjacency_matrix.js → graph_compute_adjacency_matrix.js} +1 -2
  156. package/src/core/graph/graph_compute_degree_matrix.d.ts +10 -0
  157. package/src/core/graph/graph_compute_degree_matrix.d.ts.map +1 -0
  158. package/src/core/graph/graph_compute_degree_matrix.js +23 -0
  159. package/src/core/graph/graph_compute_distance_matrix.d.ts +13 -0
  160. package/src/core/graph/graph_compute_distance_matrix.d.ts.map +1 -0
  161. package/src/core/graph/graph_compute_distance_matrix.js +103 -0
  162. package/src/core/graph/{graph_laplacian_matrix.d.ts → graph_compute_laplacian_matrix.d.ts} +2 -2
  163. package/src/core/graph/graph_compute_laplacian_matrix.d.ts.map +1 -0
  164. package/src/core/graph/{graph_laplacian_matrix.js → graph_compute_laplacian_matrix.js} +6 -6
  165. package/src/core/graph/graph_k_means_cluster.d.ts.map +1 -1
  166. package/src/core/graph/graph_k_means_cluster.js +4 -119
  167. package/src/core/graph/{coarsen_graph.d.ts → mn_graph_coarsen.d.ts} +2 -2
  168. package/src/core/graph/mn_graph_coarsen.d.ts.map +1 -0
  169. package/src/core/graph/{coarsen_graph.js → mn_graph_coarsen.js} +1 -1
  170. package/src/core/graph/mn_graph_coarsen.spec.d.ts +2 -0
  171. package/src/core/graph/mn_graph_coarsen.spec.d.ts.map +1 -0
  172. package/src/core/graph/{coarsen_graph.spec.js → mn_graph_coarsen.spec.js} +4 -4
  173. package/src/core/graph/mn_graph_collapse_weighted_edge.d.ts +1 -0
  174. package/src/core/graph/mn_graph_collapse_weighted_edge.d.ts.map +1 -1
  175. package/src/core/graph/mn_graph_collapse_weighted_edge.js +7 -1
  176. package/src/core/json/JsonUtils.d.ts.map +1 -1
  177. package/src/core/json/JsonUtils.js +0 -4
  178. package/src/core/math/physics/brdf/brdf_burley.d.ts.map +1 -1
  179. package/src/core/math/physics/brdf/brdf_burley.js +9 -1
  180. package/src/core/math/physics/brdf/{D_GGX.d.ts → diffuse_GGX.d.ts} +2 -2
  181. package/src/core/math/physics/brdf/diffuse_GGX.d.ts.map +1 -0
  182. package/src/core/math/physics/brdf/{D_GGX.js → diffuse_GGX.js} +1 -1
  183. package/src/core/math/physics/brdf/fresnel_Schlick.d.ts +3 -0
  184. package/src/core/math/physics/brdf/fresnel_Schlick.d.ts.map +1 -0
  185. package/src/core/math/physics/brdf/fresnel_Schlick.js +3 -0
  186. package/src/core/math/physics/brdf/fresnel_Schlick_optimized.d.ts +9 -0
  187. package/src/core/math/physics/brdf/fresnel_Schlick_optimized.d.ts.map +1 -0
  188. package/src/core/math/physics/brdf/fresnel_Schlick_optimized.js +12 -0
  189. package/src/core/math/physics/brdf/fresnel_Schlick_original.d.ts +9 -0
  190. package/src/core/math/physics/brdf/fresnel_Schlick_original.d.ts.map +1 -0
  191. package/src/core/math/physics/brdf/fresnel_Schlick_original.js +10 -0
  192. package/src/core/math/physics/bsdf/bsdf_schlick.d.ts.map +1 -1
  193. package/src/core/math/physics/bsdf/bsdf_schlick.js +3 -11
  194. package/src/core/math/physics/ior_to_reflectivity.d.ts +7 -0
  195. package/src/core/math/physics/ior_to_reflectivity.d.ts.map +1 -0
  196. package/src/core/math/physics/ior_to_reflectivity.js +9 -0
  197. package/src/core/math/physics/pdf/README.md +1 -0
  198. package/src/core/math/physics/pdf/pdf_GGX.d.ts +16 -0
  199. package/src/core/math/physics/pdf/pdf_GGX.d.ts.map +1 -0
  200. package/src/core/math/physics/pdf/pdf_GGX.js +25 -0
  201. package/src/core/math/physics/reflectivity_to_ior.d.ts +7 -0
  202. package/src/core/math/physics/reflectivity_to_ior.d.ts.map +1 -0
  203. package/src/core/math/physics/reflectivity_to_ior.js +8 -0
  204. package/src/core/math/random/MersenneTwister.d.ts +1 -2
  205. package/src/core/math/random/MersenneTwister.d.ts.map +1 -1
  206. package/src/core/math/random/MersenneTwister.js +134 -133
  207. package/src/core/model/BooleanVector3.d.ts.map +1 -1
  208. package/src/core/model/BooleanVector3.js +108 -108
  209. package/src/core/model/BoundedValue.d.ts +116 -0
  210. package/src/core/model/BoundedValue.d.ts.map +1 -0
  211. package/src/core/model/BoundedValue.js +214 -217
  212. package/src/core/model/LinearValue.d.ts +84 -0
  213. package/src/core/model/LinearValue.d.ts.map +1 -0
  214. package/src/core/model/LinearValue.js +116 -117
  215. package/src/core/model/ObservedEnum.d.ts.map +1 -1
  216. package/src/core/model/ObservedEnum.js +82 -80
  217. package/src/core/model/ObservedValue.d.ts +10 -17
  218. package/src/core/model/ObservedValue.d.ts.map +1 -1
  219. package/src/core/model/ObservedValue.js +85 -88
  220. package/src/core/model/object/ObjectPoolFactory.d.ts +1 -9
  221. package/src/core/model/object/ObjectPoolFactory.d.ts.map +1 -1
  222. package/src/core/model/object/ObjectPoolFactory.js +73 -73
  223. package/src/core/model/scheme/Schema.d.ts +0 -6
  224. package/src/core/model/scheme/Schema.d.ts.map +1 -1
  225. package/src/core/model/scheme/Schema.js +50 -48
  226. package/src/core/model/scheme/SchemeRegistry.d.ts +6 -1
  227. package/src/core/model/scheme/SchemeRegistry.d.ts.map +1 -1
  228. package/src/core/model/scheme/SchemeRegistry.js +46 -44
  229. package/src/core/process/Future.d.ts +14 -9
  230. package/src/core/process/Future.d.ts.map +1 -1
  231. package/src/core/process/Future.js +96 -98
  232. package/src/core/process/executor/ConcurrentExecutor.d.ts.map +1 -1
  233. package/src/core/process/executor/ConcurrentExecutor.js +0 -3
  234. package/src/core/process/task/Task.d.ts.map +1 -1
  235. package/src/core/process/task/Task.js +0 -5
  236. package/src/core/process/task/TaskGroup.d.ts.map +1 -1
  237. package/src/core/process/task/TaskGroup.js +178 -180
  238. package/src/core/process/task/TaskSignal.d.ts.map +1 -1
  239. package/src/core/process/task/TaskSignal.js +0 -5
  240. package/src/core/process/task/TaskState.d.ts.map +1 -1
  241. package/src/core/process/task/TaskState.js +0 -4
  242. package/src/core/process/worker/WorkerBuilder.d.ts.map +1 -1
  243. package/src/core/process/worker/WorkerBuilder.js +0 -5
  244. package/src/core/process/worker/WorkerProxy.d.ts.map +1 -1
  245. package/src/core/process/worker/WorkerProxy.js +0 -5
  246. package/src/engine/Clock.d.ts.map +1 -1
  247. package/src/engine/Clock.js +0 -5
  248. package/src/engine/Engine.js +4 -4
  249. package/src/engine/EngineHarness.d.ts +10 -1
  250. package/src/engine/EngineHarness.d.ts.map +1 -1
  251. package/src/engine/EngineHarness.js +16 -11
  252. package/src/engine/EntityCreator.d.ts.map +1 -1
  253. package/src/engine/EntityCreator.js +7 -10
  254. package/src/engine/animation/AnimatedActions.d.ts.map +1 -1
  255. package/src/engine/animation/AnimatedActions.js +0 -5
  256. package/src/engine/animation/Animations.d.ts.map +1 -1
  257. package/src/engine/animation/Animations.js +1 -6
  258. package/src/engine/animation/EntityAnimation.js +1 -4
  259. package/src/engine/animation/Tween.js +1 -4
  260. package/src/engine/animation/keyed2/AnimationTrack.d.ts +0 -6
  261. package/src/engine/animation/keyed2/AnimationTrack.d.ts.map +1 -1
  262. package/src/engine/animation/keyed2/AnimationTrack.js +154 -152
  263. package/src/engine/animation/keyed2/AnimationTrackPlayback.d.ts +0 -10
  264. package/src/engine/animation/keyed2/AnimationTrackPlayback.d.ts.map +1 -1
  265. package/src/engine/animation/keyed2/AnimationTrackPlayback.js +173 -171
  266. package/src/engine/asset/AssetManager.d.ts.map +1 -1
  267. package/src/engine/asset/AssetManager.js +0 -5
  268. package/src/engine/asset/loaders/image/png/PNGReader.d.ts +25 -11
  269. package/src/engine/asset/loaders/image/png/PNGReader.d.ts.map +1 -1
  270. package/src/engine/asset/loaders/image/png/PNGReader.js +38 -24
  271. package/src/engine/asset/loaders/material/TextureAttachmensByMaterialType.js +2 -0
  272. package/src/engine/asset/preloader/AssetLevel.js +0 -3
  273. package/src/engine/ecs/EntityManager.d.ts.map +1 -1
  274. package/src/engine/ecs/EntityManager.js +0 -4
  275. package/src/engine/ecs/System.d.ts.map +1 -1
  276. package/src/engine/ecs/System.js +0 -5
  277. package/src/engine/ecs/animation/Animation.d.ts.map +1 -1
  278. package/src/engine/ecs/animation/Animation.js +1 -19
  279. package/src/engine/ecs/components/Motion.d.ts.map +1 -1
  280. package/src/engine/ecs/components/Motion.js +0 -5
  281. package/src/engine/ecs/components/PropertySet.d.ts +8 -1
  282. package/src/engine/ecs/components/PropertySet.d.ts.map +1 -1
  283. package/src/engine/ecs/components/PropertySet.js +87 -83
  284. package/src/engine/ecs/components/Script.d.ts +0 -16
  285. package/src/engine/ecs/components/Script.d.ts.map +1 -1
  286. package/src/engine/ecs/components/Script.js +14 -18
  287. package/src/engine/ecs/components/Tag.d.ts.map +1 -1
  288. package/src/engine/ecs/components/Tag.js +4 -5
  289. package/src/engine/ecs/components/Timer.d.ts +0 -5
  290. package/src/engine/ecs/components/Timer.d.ts.map +1 -1
  291. package/src/engine/ecs/components/Timer.js +0 -5
  292. package/src/engine/ecs/grid/HeightMap2NormalMap.d.ts.map +1 -1
  293. package/src/engine/ecs/grid/HeightMap2NormalMap.js +2 -6
  294. package/src/engine/ecs/grid/HeightSampler2NormalSamplerSoft.d.ts.map +1 -1
  295. package/src/engine/ecs/grid/HeightSampler2NormalSamplerSoft.js +0 -3
  296. package/src/engine/ecs/grid/NormalMap2AOMap.d.ts.map +1 -1
  297. package/src/engine/ecs/grid/NormalMap2AOMap.js +3 -8
  298. package/src/engine/ecs/gui/GUIElement.d.ts.map +1 -1
  299. package/src/engine/ecs/gui/GUIElement.js +0 -3
  300. package/src/engine/ecs/gui/GUIElementSystem.d.ts.map +1 -1
  301. package/src/engine/ecs/gui/GUIElementSystem.js +0 -4
  302. package/src/engine/ecs/gui/hud/HeadsUpDisplay.d.ts.map +1 -1
  303. package/src/engine/ecs/gui/hud/HeadsUpDisplay.js +0 -7
  304. package/src/engine/ecs/gui/hud/HeadsUpDisplaySystem.d.ts.map +1 -1
  305. package/src/engine/ecs/gui/hud/HeadsUpDisplaySystem.js +0 -5
  306. package/src/engine/ecs/gui/menu/radial/RadialContextMenu.d.ts.map +1 -1
  307. package/src/engine/ecs/gui/menu/radial/RadialContextMenu.js +5 -8
  308. package/src/engine/ecs/gui/position/ViewportPosition.d.ts.map +1 -1
  309. package/src/engine/ecs/gui/position/ViewportPosition.js +0 -4
  310. package/src/engine/ecs/gui/position/ViewportPositionSystem.d.ts +1 -2
  311. package/src/engine/ecs/gui/position/ViewportPositionSystem.d.ts.map +1 -1
  312. package/src/engine/ecs/gui/position/ViewportPositionSystem.js +6 -10
  313. package/src/engine/ecs/ik/IKProblem.d.ts +1 -2
  314. package/src/engine/ecs/ik/IKProblem.d.ts.map +1 -1
  315. package/src/engine/ecs/renderable/RenderSystem.d.ts.map +1 -1
  316. package/src/engine/ecs/renderable/RenderSystem.js +0 -3
  317. package/src/engine/ecs/renderable/Renderable.d.ts.map +1 -1
  318. package/src/engine/ecs/renderable/Renderable.js +0 -5
  319. package/src/engine/ecs/systems/AnimationSystem.d.ts.map +1 -1
  320. package/src/engine/ecs/systems/AnimationSystem.js +9 -17
  321. package/src/engine/ecs/systems/MotionSystem.d.ts.map +1 -1
  322. package/src/engine/ecs/systems/MotionSystem.js +1 -6
  323. package/src/engine/ecs/systems/ScriptSystem.d.ts.map +1 -1
  324. package/src/engine/ecs/systems/ScriptSystem.js +1 -6
  325. package/src/engine/ecs/systems/TimerSystem.d.ts.map +1 -1
  326. package/src/engine/ecs/systems/TimerSystem.js +1 -6
  327. package/src/engine/ecs/team/Team.d.ts.map +1 -1
  328. package/src/engine/ecs/team/Team.js +0 -3
  329. package/src/engine/ecs/terrain/BufferedGeometryArraysBuilder.d.ts.map +1 -1
  330. package/src/engine/ecs/terrain/BufferedGeometryArraysBuilder.js +0 -5
  331. package/src/engine/ecs/terrain/TerrainClouds.d.ts.map +1 -1
  332. package/src/engine/ecs/terrain/TerrainClouds.js +0 -5
  333. package/src/engine/ecs/terrain/ecs/Terrain.d.ts.map +1 -1
  334. package/src/engine/ecs/terrain/ecs/Terrain.js +0 -5
  335. package/src/engine/ecs/terrain/ecs/cling/ClingToTerrain.d.ts.map +1 -1
  336. package/src/engine/ecs/terrain/ecs/cling/ClingToTerrain.js +0 -3
  337. package/src/engine/ecs/terrain/ecs/cling/ClingToTerrainSystem.d.ts.map +1 -1
  338. package/src/engine/ecs/terrain/ecs/cling/ClingToTerrainSystem.js +11 -14
  339. package/src/engine/ecs/terrain/overlay/TerrainOverlay.d.ts.map +1 -1
  340. package/src/engine/ecs/terrain/overlay/TerrainOverlay.js +0 -5
  341. package/src/engine/ecs/terrain/tiles/TerrainTile.d.ts.map +1 -1
  342. package/src/engine/ecs/terrain/tiles/TerrainTile.js +0 -5
  343. package/src/engine/ecs/terrain/tiles/TerrainTileManager.d.ts +1 -1
  344. package/src/engine/ecs/terrain/tiles/TerrainTileManager.d.ts.map +1 -1
  345. package/src/engine/ecs/terrain/tiles/TerrainTileManager.js +0 -3
  346. package/src/engine/ecs/terrain/tiles/TileBuildWorker.js +0 -4
  347. package/src/engine/ecs/transform/Transform.d.ts.map +1 -1
  348. package/src/engine/ecs/transform/Transform.js +0 -4
  349. package/src/engine/google/gapi.js +0 -4
  350. package/src/engine/graphics/FrameThrottle.d.ts +0 -4
  351. package/src/engine/graphics/FrameThrottle.d.ts.map +1 -1
  352. package/src/engine/graphics/FrameThrottle.js +0 -5
  353. package/src/engine/graphics/GraphicsEngine.d.ts.map +1 -1
  354. package/src/engine/graphics/GraphicsEngine.js +2 -7
  355. package/src/engine/graphics/composit/LayerCompositer.d.ts.map +1 -1
  356. package/src/engine/graphics/composit/LayerCompositer.js +2 -5
  357. package/src/engine/graphics/ecs/animation/AnimationController.d.ts.map +1 -1
  358. package/src/engine/graphics/ecs/animation/AnimationController.js +0 -5
  359. package/src/engine/graphics/ecs/animation/AnimationControllerSystem.d.ts.map +1 -1
  360. package/src/engine/graphics/ecs/animation/AnimationControllerSystem.js +2 -7
  361. package/src/engine/graphics/ecs/animation/AnimationRule.d.ts +0 -1
  362. package/src/engine/graphics/ecs/animation/AnimationRule.d.ts.map +1 -1
  363. package/src/engine/graphics/ecs/animation/AnimationRule.js +70 -66
  364. package/src/engine/graphics/ecs/camera/Camera.d.ts.map +1 -1
  365. package/src/engine/graphics/ecs/camera/Camera.js +0 -5
  366. package/src/engine/graphics/ecs/camera/CameraSystem.d.ts.map +1 -1
  367. package/src/engine/graphics/ecs/camera/CameraSystem.js +0 -5
  368. package/src/engine/graphics/ecs/camera/FrustumProjector.d.ts.map +1 -1
  369. package/src/engine/graphics/ecs/camera/FrustumProjector.js +0 -5
  370. package/src/engine/graphics/ecs/camera/topdown/TopDownCameraController.d.ts.map +1 -1
  371. package/src/engine/graphics/ecs/camera/topdown/TopDownCameraController.js +4 -9
  372. package/src/engine/graphics/ecs/camera/topdown/TopDownCameraControllerSystem.d.ts.map +1 -1
  373. package/src/engine/graphics/ecs/camera/topdown/TopDownCameraControllerSystem.js +3 -8
  374. package/src/engine/graphics/ecs/highlight/Highlight.d.ts.map +1 -1
  375. package/src/engine/graphics/ecs/highlight/Highlight.js +0 -3
  376. package/src/engine/graphics/ecs/highlight/system/MeshHighlightSystem.d.ts.map +1 -1
  377. package/src/engine/graphics/ecs/highlight/system/MeshHighlightSystem.js +3 -8
  378. package/src/engine/graphics/ecs/light/Light.d.ts.map +1 -1
  379. package/src/engine/graphics/ecs/light/Light.js +2 -6
  380. package/src/engine/graphics/ecs/light/LightSystem.d.ts.map +1 -1
  381. package/src/engine/graphics/ecs/light/LightSystem.js +2 -8
  382. package/src/engine/graphics/ecs/light/binding/three/ThreeLightBinding.d.ts +6 -0
  383. package/src/engine/graphics/ecs/light/binding/three/ThreeLightBinding.d.ts.map +1 -1
  384. package/src/engine/graphics/ecs/light/binding/three/ThreeLightBinding.js +22 -11
  385. package/src/engine/graphics/ecs/mesh/Mesh.d.ts.map +1 -1
  386. package/src/engine/graphics/ecs/mesh/Mesh.js +0 -3
  387. package/src/engine/graphics/ecs/mesh/MeshSystem.d.ts.map +1 -1
  388. package/src/engine/graphics/ecs/mesh/MeshSystem.js +0 -5
  389. package/src/engine/graphics/ecs/trail2d/Trail2D.d.ts.map +1 -1
  390. package/src/engine/graphics/ecs/trail2d/Trail2D.js +0 -5
  391. package/src/engine/graphics/ecs/trail2d/Trail2DSystem.d.ts.map +1 -1
  392. package/src/engine/graphics/ecs/trail2d/Trail2DSystem.js +0 -5
  393. package/src/engine/graphics/ecs/water/Water.d.ts.map +1 -1
  394. package/src/engine/graphics/ecs/water/Water.js +0 -5
  395. package/src/engine/graphics/ecs/water/WaterSystem.d.ts.map +1 -1
  396. package/src/engine/graphics/ecs/water/WaterSystem.js +0 -3
  397. package/src/engine/graphics/filter/ImageFilter.d.ts.map +1 -1
  398. package/src/engine/graphics/filter/ImageFilter.js +0 -5
  399. package/src/engine/graphics/geometry/BufferGeometryWrap.js +1 -3
  400. package/src/engine/graphics/geometry/buffered/ComputeNormals.d.ts.map +1 -1
  401. package/src/engine/graphics/geometry/buffered/ComputeNormals.js +0 -5
  402. package/src/engine/graphics/geometry/ribbon/Ribbon.d.ts.map +1 -1
  403. package/src/engine/graphics/geometry/ribbon/Ribbon.js +1 -4
  404. package/src/engine/graphics/material/SplatMaterial.d.ts.map +1 -1
  405. package/src/engine/graphics/material/SplatMaterial.js +0 -3
  406. package/src/engine/graphics/material/WaterMaterial.d.ts.map +1 -1
  407. package/src/engine/graphics/material/WaterMaterial.js +0 -3
  408. package/src/engine/graphics/particles/particular/engine/MovingBoundingBox.d.ts +0 -5
  409. package/src/engine/graphics/particles/particular/engine/MovingBoundingBox.d.ts.map +1 -1
  410. package/src/engine/graphics/particles/particular/engine/MovingBoundingBox.js +114 -114
  411. package/src/engine/graphics/particles/particular/engine/emitter/ParticleLayer.d.ts +0 -1
  412. package/src/engine/graphics/particles/particular/engine/emitter/ParticleLayer.d.ts.map +1 -1
  413. package/src/engine/graphics/particles/particular/engine/emitter/ParticleLayer.js +347 -348
  414. package/src/engine/graphics/particles/particular/engine/emitter/ParticlePool.d.ts +1 -3
  415. package/src/engine/graphics/particles/particular/engine/emitter/ParticlePool.d.ts.map +1 -1
  416. package/src/engine/graphics/particles/particular/engine/parameter/ParameterSet.d.ts +0 -1
  417. package/src/engine/graphics/particles/particular/engine/parameter/ParameterSet.d.ts.map +1 -1
  418. package/src/engine/graphics/particles/particular/engine/parameter/ParameterSet.js +110 -111
  419. package/src/engine/graphics/particles/particular/engine/parameter/ParameterSheet.d.ts +0 -9
  420. package/src/engine/graphics/particles/particular/engine/parameter/ParameterSheet.d.ts.map +1 -1
  421. package/src/engine/graphics/particles/particular/engine/parameter/ParameterSheet.js +70 -66
  422. package/src/engine/graphics/particles/particular/engine/parameter/ParameterTrackSet.d.ts +0 -5
  423. package/src/engine/graphics/particles/particular/engine/parameter/ParameterTrackSet.d.ts.map +1 -1
  424. package/src/engine/graphics/particles/particular/engine/parameter/ParameterTrackSet.js +82 -82
  425. package/src/engine/graphics/particles/particular/group/Operation.d.ts +0 -7
  426. package/src/engine/graphics/particles/particular/group/Operation.d.ts.map +1 -1
  427. package/src/engine/graphics/particles/particular/group/Operation.js +16 -14
  428. package/src/engine/graphics/particles/particular/group/ParticleAttribute.d.ts +0 -9
  429. package/src/engine/graphics/particles/particular/group/ParticleAttribute.d.ts.map +1 -1
  430. package/src/engine/graphics/particles/particular/group/ParticleAttribute.js +23 -21
  431. package/src/engine/graphics/particles/particular/group/ParticleGroup.d.ts +2 -10
  432. package/src/engine/graphics/particles/particular/group/ParticleGroup.d.ts.map +1 -1
  433. package/src/engine/graphics/particles/particular/group/ParticleGroup.js +463 -464
  434. package/src/engine/graphics/particles/particular/group/ParticleSpecification.d.ts +0 -2
  435. package/src/engine/graphics/particles/particular/group/ParticleSpecification.d.ts.map +1 -1
  436. package/src/engine/graphics/particles/particular/group/ParticleSpecification.js +39 -33
  437. package/src/engine/graphics/render/buffer/FrameBufferManager.d.ts +6 -1
  438. package/src/engine/graphics/render/buffer/FrameBufferManager.d.ts.map +1 -1
  439. package/src/engine/graphics/render/buffer/FrameBufferManager.js +166 -163
  440. package/src/engine/graphics/render/forward_plus/model/DirectionalLight.d.ts.map +1 -1
  441. package/src/engine/graphics/render/forward_plus/model/DirectionalLight.js +25 -25
  442. package/src/engine/graphics/render/layers/RenderLayer.d.ts.map +1 -1
  443. package/src/engine/graphics/render/layers/RenderLayer.js +0 -5
  444. package/src/engine/graphics/sh3/fromCubeRenderTarget.d.ts +9 -0
  445. package/src/engine/graphics/sh3/fromCubeRenderTarget.d.ts.map +1 -0
  446. package/src/engine/graphics/sh3/fromCubeRenderTarget.js +145 -0
  447. package/src/engine/graphics/sh3/gi/tetrahedral_mesh_to_texture.d.ts +8 -0
  448. package/src/engine/graphics/sh3/gi/tetrahedral_mesh_to_texture.d.ts.map +1 -0
  449. package/src/engine/graphics/sh3/gi/tetrahedral_mesh_to_texture.js +51 -0
  450. package/src/engine/graphics/sh3/{LightProbeVolume.d.ts → lpv/LightProbeVolume.d.ts} +18 -7
  451. package/src/engine/graphics/sh3/lpv/LightProbeVolume.d.ts.map +1 -0
  452. package/src/engine/graphics/sh3/lpv/LightProbeVolume.js +340 -0
  453. package/src/engine/graphics/sh3/lpv/LightProbeVolumeSerializationAdapter.d.ts +18 -0
  454. package/src/engine/graphics/sh3/lpv/LightProbeVolumeSerializationAdapter.d.ts.map +1 -0
  455. package/src/engine/graphics/sh3/lpv/LightProbeVolumeSerializationAdapter.js +44 -0
  456. package/src/engine/graphics/sh3/lpv/PathTracerProbeRenderer.d.ts +12 -0
  457. package/src/engine/graphics/sh3/lpv/PathTracerProbeRenderer.d.ts.map +1 -0
  458. package/src/engine/graphics/sh3/lpv/PathTracerProbeRenderer.js +123 -0
  459. package/src/engine/graphics/sh3/lpv/ProbeRenderer.d.ts +29 -0
  460. package/src/engine/graphics/sh3/lpv/ProbeRenderer.d.ts.map +1 -0
  461. package/src/engine/graphics/sh3/lpv/ProbeRenderer.js +35 -0
  462. package/src/engine/graphics/sh3/lpv/WebGLCubeProbeRenderer.d.ts +27 -0
  463. package/src/engine/graphics/sh3/lpv/WebGLCubeProbeRenderer.d.ts.map +1 -0
  464. package/src/engine/graphics/sh3/lpv/WebGLCubeProbeRenderer.js +158 -0
  465. package/src/engine/graphics/sh3/lpv/build_probes_for_scene.d.ts +11 -0
  466. package/src/engine/graphics/sh3/lpv/build_probes_for_scene.d.ts.map +1 -0
  467. package/src/engine/graphics/sh3/lpv/build_probes_for_scene.js +127 -0
  468. package/src/engine/graphics/sh3/lpv/probe_volume_to_textures.d.ts +12 -0
  469. package/src/engine/graphics/sh3/lpv/probe_volume_to_textures.d.ts.map +1 -0
  470. package/src/engine/graphics/sh3/lpv/probe_volume_to_textures.js +89 -0
  471. package/src/engine/graphics/sh3/path_tracer/PathTracedScene.d.ts +90 -0
  472. package/src/engine/graphics/sh3/path_tracer/PathTracedScene.d.ts.map +1 -0
  473. package/src/engine/graphics/sh3/path_tracer/PathTracedScene.js +352 -0
  474. package/src/engine/graphics/sh3/path_tracer/PathTracer.d.ts +5 -91
  475. package/src/engine/graphics/sh3/path_tracer/PathTracer.d.ts.map +1 -1
  476. package/src/engine/graphics/sh3/path_tracer/PathTracer.js +41 -477
  477. package/src/engine/graphics/sh3/path_tracer/make_one_vector3.d.ts +1 -0
  478. package/src/engine/graphics/sh3/path_tracer/make_one_vector3.d.ts.map +1 -1
  479. package/src/engine/graphics/sh3/path_tracer/make_one_vector3.js +6 -3
  480. package/src/engine/graphics/sh3/path_tracer/prototypePathTracer.js +26 -58
  481. package/src/engine/graphics/sh3/path_tracer/random_in_hemisphere.d.ts.map +1 -1
  482. package/src/engine/graphics/sh3/path_tracer/random_in_hemisphere.js +7 -1
  483. package/src/engine/graphics/sh3/path_tracer/sample_triangle_attribute.d.ts +2 -2
  484. package/src/engine/graphics/sh3/path_tracer/sample_triangle_attribute.d.ts.map +1 -1
  485. package/src/engine/graphics/sh3/path_tracer/sample_triangle_attribute.js +1 -1
  486. package/src/engine/graphics/sh3/path_tracer/texture/SoftwareTextureCache.d.ts +3 -0
  487. package/src/engine/graphics/sh3/path_tracer/texture/SoftwareTextureCache.d.ts.map +1 -0
  488. package/src/engine/graphics/sh3/path_tracer/texture/SoftwareTextureCache.js +3 -0
  489. package/src/engine/graphics/sh3/path_tracer/texture/apply_texture_clamping_to_coordinate.d.ts.map +1 -0
  490. package/src/engine/graphics/sh3/path_tracer/{apply_texture_clamping_to_coordinate.js → texture/apply_texture_clamping_to_coordinate.js} +2 -2
  491. package/src/engine/graphics/sh3/path_tracer/texture/sample_material.d.ts +11 -0
  492. package/src/engine/graphics/sh3/path_tracer/texture/sample_material.d.ts.map +1 -0
  493. package/src/engine/graphics/sh3/path_tracer/texture/sample_material.js +86 -0
  494. package/src/engine/graphics/sh3/path_tracer/texture/sample_texture.d.ts +10 -0
  495. package/src/engine/graphics/sh3/path_tracer/texture/sample_texture.d.ts.map +1 -0
  496. package/src/engine/graphics/sh3/path_tracer/texture/sample_texture.js +56 -0
  497. package/src/engine/graphics/sh3/prototypeSH3Probe.js +87 -195
  498. package/src/engine/graphics/sh3/sky/hosek/sky_hosek_compute_irradiance_by_direction.d.ts +5 -5
  499. package/src/engine/graphics/sh3/sky/hosek/sky_hosek_compute_irradiance_by_direction.d.ts.map +1 -1
  500. package/src/engine/graphics/sh3/sky/hosek/sky_hosek_compute_irradiance_by_direction.js +8 -8
  501. package/src/engine/graphics/sh3/visualise_spherical_harmonic_sphere.d.ts +13 -0
  502. package/src/engine/graphics/sh3/visualise_spherical_harmonic_sphere.d.ts.map +1 -0
  503. package/src/engine/graphics/sh3/visualise_spherical_harmonic_sphere.js +54 -0
  504. package/src/engine/graphics/shaders/AlphaBlendShader.js +1 -3
  505. package/src/engine/graphics/shaders/AmbientOcclusionShader.d.ts.map +1 -1
  506. package/src/engine/graphics/shaders/AmbientOcclusionShader.js +0 -3
  507. package/src/engine/graphics/shaders/ClearShader.js +1 -3
  508. package/src/engine/graphics/shaders/CopyShader.d.ts +0 -3
  509. package/src/engine/graphics/shaders/CopyShader.d.ts.map +1 -1
  510. package/src/engine/graphics/shaders/CopyShader.js +1 -3
  511. package/src/engine/graphics/shaders/NormalMapShader2.d.ts.map +1 -1
  512. package/src/engine/graphics/shaders/NormalMapShader2.js +0 -5
  513. package/src/engine/graphics/shaders/TerrainShader.js +0 -4
  514. package/src/engine/graphics/shaders/WaterShader.js +0 -3
  515. package/src/engine/graphics/shaders/lib/ShaderChunks.js +1 -3
  516. package/src/engine/graphics/texture/AttributeDataTexture.d.ts +2 -2
  517. package/src/engine/graphics/texture/AttributeDataTexture.d.ts.map +1 -1
  518. package/src/engine/graphics/texture/AttributeDataTexture.js +11 -11
  519. package/src/engine/graphics/texture/Canvas2Sampler2D.d.ts.map +1 -1
  520. package/src/engine/graphics/texture/Canvas2Sampler2D.js +1 -4
  521. package/src/engine/graphics/texture/CheckersTexture.d.ts.map +1 -1
  522. package/src/engine/graphics/texture/CheckersTexture.js +0 -3
  523. package/src/engine/graphics/texture/CheckersTextureURI.js +1 -3
  524. package/src/engine/graphics/texture/sampler/Sampler2D.d.ts.map +1 -1
  525. package/src/engine/graphics/texture/sampler/Sampler2D.js +0 -5
  526. package/src/engine/graphics/texture/sampler/Sampler2D2Canvas.d.ts.map +1 -1
  527. package/src/engine/graphics/texture/sampler/Sampler2D2Canvas.js +0 -5
  528. package/src/engine/graphics/texture/sampler/Sampler2D2Texture.d.ts.map +1 -1
  529. package/src/engine/graphics/texture/sampler/Sampler2D2Texture.js +0 -3
  530. package/src/engine/graphics/three/ThreeFactory.d.ts.map +1 -1
  531. package/src/engine/graphics/three/ThreeFactory.js +0 -5
  532. package/src/engine/grid/grid2transform/GridPosition2Transform.d.ts.map +1 -1
  533. package/src/engine/grid/grid2transform/GridPosition2Transform.js +0 -4
  534. package/src/engine/grid/grid2transform/GridPosition2TransformSystem.d.ts.map +1 -1
  535. package/src/engine/grid/grid2transform/GridPosition2TransformSystem.js +4 -7
  536. package/src/engine/grid/obstacle/GridObstacle.d.ts.map +1 -1
  537. package/src/engine/grid/obstacle/GridObstacle.js +0 -5
  538. package/src/engine/grid/position/GridPosition.d.ts.map +1 -1
  539. package/src/engine/grid/position/GridPosition.js +0 -4
  540. package/src/engine/grid/position/GridPositionSystem.d.ts.map +1 -1
  541. package/src/engine/grid/position/GridPositionSystem.js +1 -4
  542. package/src/engine/input/devices/KeyCodes.d.ts.map +1 -1
  543. package/src/engine/input/devices/KeyCodes.js +3 -4
  544. package/src/engine/input/devices/KeyboardDevice.d.ts.map +1 -1
  545. package/src/engine/input/devices/KeyboardDevice.js +0 -4
  546. package/src/engine/input/devices/PointerDevice.d.ts.map +1 -1
  547. package/src/engine/input/devices/PointerDevice.js +0 -3
  548. package/src/engine/input/ecs/components/InputController.d.ts.map +1 -1
  549. package/src/engine/input/ecs/components/InputController.js +1 -5
  550. package/src/engine/input/ecs/controllers/KeyboardCameraController.d.ts.map +1 -1
  551. package/src/engine/input/ecs/controllers/KeyboardCameraController.js +5 -10
  552. package/src/engine/input/ecs/systems/InputControllerSystem.d.ts.map +1 -1
  553. package/src/engine/input/ecs/systems/InputControllerSystem.js +79 -79
  554. package/src/engine/input/ecs/util/TopDownCameraControllerHelper.d.ts.map +1 -1
  555. package/src/engine/input/ecs/util/TopDownCameraControllerHelper.js +3 -6
  556. package/src/engine/intelligence/mcts/MonteCarlo.spec.js +78 -76
  557. package/src/engine/navigation/ecs/components/Path.d.ts.map +1 -1
  558. package/src/engine/navigation/ecs/components/Path.js +0 -5
  559. package/src/engine/navigation/ecs/path_following/PathFollower.d.ts.map +1 -1
  560. package/src/engine/navigation/ecs/path_following/PathFollower.js +1 -6
  561. package/src/engine/navigation/ecs/path_following/PathFollowingSystem.d.ts.map +1 -1
  562. package/src/engine/navigation/ecs/path_following/PathFollowingSystem.js +5 -12
  563. package/src/engine/network/DataChannel.js +284 -284
  564. package/src/engine/network/xhr.d.ts +0 -3
  565. package/src/engine/network/xhr.d.ts.map +1 -1
  566. package/src/engine/network/xhr.js +0 -3
  567. package/src/engine/notify/Notification.d.ts +1 -1
  568. package/src/engine/notify/Notification.d.ts.map +1 -1
  569. package/src/engine/notify/Notification.js +1 -6
  570. package/src/engine/notify/NotificationLog.d.ts.map +1 -1
  571. package/src/engine/notify/NotificationLog.js +0 -5
  572. package/src/engine/options/OptionsView.d.ts.map +1 -1
  573. package/src/engine/options/OptionsView.js +1 -6
  574. package/src/engine/physics/ammo/Body.js +0 -3
  575. package/src/engine/physics/ammo/PhysicsWorker.d.ts.map +1 -1
  576. package/src/engine/physics/ammo/PhysicsWorker.js +1 -3
  577. package/src/engine/physics/ammo/World.d.ts +68 -0
  578. package/src/engine/physics/ammo/World.d.ts.map +1 -0
  579. package/src/engine/physics/ammo/World.js +277 -278
  580. package/src/engine/physics/ammo/shapes/BoxShape.js +0 -3
  581. package/src/engine/physics/ammo/shapes/CapsuleShape.js +0 -3
  582. package/src/engine/physics/ammo/shapes/MeshShape.js +0 -3
  583. package/src/engine/physics/ammo/shapes/PlaneShape.js +0 -3
  584. package/src/engine/physics/ammo/shapes/Shape.js +1 -3
  585. package/src/engine/physics/ammo/shapes/SphereShape.js +0 -3
  586. package/src/engine/physics/cannon/CannonJSPhysicsSystem.d.ts.map +1 -1
  587. package/src/engine/physics/cannon/CannonJSPhysicsSystem.js +3 -6
  588. package/src/engine/save/GameStateLoader.d.ts.map +1 -1
  589. package/src/engine/save/GameStateLoader.js +1 -5
  590. package/src/engine/save/Storage.d.ts.map +1 -1
  591. package/src/engine/save/Storage.js +0 -7
  592. package/src/engine/scene/Scene.d.ts.map +1 -1
  593. package/src/engine/scene/Scene.js +2 -7
  594. package/src/engine/scene/SceneManager.d.ts.map +1 -1
  595. package/src/engine/scene/SceneManager.js +1 -4
  596. package/src/engine/simulation/DormandPrince.d.ts +0 -1
  597. package/src/engine/simulation/DormandPrince.d.ts.map +1 -1
  598. package/src/engine/simulation/DormandPrince.js +5 -5
  599. package/src/engine/simulation/Ticker.d.ts.map +1 -1
  600. package/src/engine/simulation/Ticker.js +0 -3
  601. package/src/engine/sound/ecs/SoundController.d.ts +0 -7
  602. package/src/engine/sound/ecs/SoundController.d.ts.map +1 -1
  603. package/src/engine/sound/ecs/SoundController.js +118 -119
  604. package/src/engine/sound/ecs/SoundControllerSystem.d.ts.map +1 -1
  605. package/src/engine/sound/ecs/SoundControllerSystem.js +3 -8
  606. package/src/engine/sound/ecs/SoundListener.d.ts +0 -1
  607. package/src/engine/sound/ecs/SoundListener.d.ts.map +1 -1
  608. package/src/engine/sound/ecs/SoundListener.js +26 -29
  609. package/src/engine/sound/ecs/SoundListenerSystem.d.ts.map +1 -1
  610. package/src/engine/sound/ecs/SoundListenerSystem.js +0 -5
  611. package/src/engine/sound/ecs/emitter/SoundEmitter.d.ts.map +1 -1
  612. package/src/engine/sound/ecs/emitter/SoundEmitter.js +0 -5
  613. package/src/engine/sound/ecs/emitter/SoundEmitterSystem.d.ts.map +1 -1
  614. package/src/engine/sound/ecs/emitter/SoundEmitterSystem.js +0 -7
  615. package/src/engine/ui/GUIEngine.d.ts.map +1 -1
  616. package/src/engine/ui/GUIEngine.js +0 -5
  617. package/src/engine/ui/tiles2d/TileGrid.d.ts.map +1 -1
  618. package/src/engine/ui/tiles2d/TileGrid.js +1 -4
  619. package/src/generation/markers/debug/visualizeMarkers.js +10 -10
  620. package/src/view/DOM.js +1 -3
  621. package/src/view/SVG.d.ts +0 -3
  622. package/src/view/SVG.d.ts.map +1 -1
  623. package/src/view/SVG.js +0 -4
  624. package/src/view/asset/PreloaderView.d.ts.map +1 -1
  625. package/src/view/asset/PreloaderView.js +0 -3
  626. package/src/view/common/LabelView.d.ts +1 -6
  627. package/src/view/common/LabelView.d.ts.map +1 -1
  628. package/src/view/common/LabelView.js +24 -33
  629. package/src/view/common/ListView.d.ts.map +1 -1
  630. package/src/view/common/ListView.js +0 -6
  631. package/src/view/common/MeshView.js +3 -6
  632. package/src/view/common/VirtualListView.d.ts.map +1 -1
  633. package/src/view/common/VirtualListView.js +0 -5
  634. package/src/view/common/dnd/DragAndDropContext.d.ts +1 -2
  635. package/src/view/common/dnd/DragAndDropContext.d.ts.map +1 -1
  636. package/src/view/common/dnd/DragAndDropContext.js +107 -110
  637. package/src/view/controller/GuiController.d.ts.map +1 -1
  638. package/src/view/controller/GuiController.js +1 -6
  639. package/src/view/controller/controls/BooleanVector3Control.d.ts +1 -1
  640. package/src/view/controller/controls/BooleanVector3Control.d.ts.map +1 -1
  641. package/src/view/controller/controls/GuiControl.js +2 -7
  642. package/src/view/controller/controls/Vector1Control.d.ts +1 -1
  643. package/src/view/controller/controls/Vector1Control.d.ts.map +1 -1
  644. package/src/view/controller/controls/Vector1Control.js +2 -7
  645. package/src/view/controller/controls/Vector2Control.d.ts.map +1 -1
  646. package/src/view/controller/controls/Vector2Control.js +0 -4
  647. package/src/view/controller/controls/Vector3Control.d.ts.map +1 -1
  648. package/src/view/controller/controls/Vector3Control.js +0 -3
  649. package/src/view/elements/ColorPickerView.d.ts.map +1 -1
  650. package/src/view/elements/ColorPickerView.js +7 -7
  651. package/src/view/elements/ConfirmationDialogView.d.ts.map +1 -1
  652. package/src/view/elements/ConfirmationDialogView.js +1 -6
  653. package/src/view/elements/DropDownSelectionView.d.ts.map +1 -1
  654. package/src/view/elements/DropDownSelectionView.js +0 -5
  655. package/src/view/elements/EmptyView.d.ts.map +1 -1
  656. package/src/view/elements/EmptyView.js +0 -4
  657. package/src/view/elements/Group.d.ts.map +1 -1
  658. package/src/view/elements/Group.js +0 -3
  659. package/src/view/elements/MeshPreview.d.ts.map +1 -1
  660. package/src/view/elements/MeshPreview.js +5 -8
  661. package/src/view/elements/SimpleWindow.d.ts +1 -1
  662. package/src/view/elements/SimpleWindow.d.ts.map +1 -1
  663. package/src/view/elements/SimpleWindow.js +5 -11
  664. package/src/view/elements/button/ButtonView.d.ts.map +1 -1
  665. package/src/view/elements/button/ButtonView.js +1 -5
  666. package/src/view/elements/image/ImageView.d.ts.map +1 -1
  667. package/src/view/elements/image/ImageView.js +0 -4
  668. package/src/view/elements/image/SvgImageView.d.ts.map +1 -1
  669. package/src/view/elements/image/SvgImageView.js +2 -7
  670. package/src/view/elements/label/LabeledValueView.d.ts.map +1 -1
  671. package/src/view/elements/label/LabeledValueView.js +3 -8
  672. package/src/view/elements/navigation/ViewStack.d.ts +0 -7
  673. package/src/view/elements/navigation/ViewStack.d.ts.map +1 -1
  674. package/src/view/elements/navigation/ViewStack.js +17 -19
  675. package/src/view/elements/notify/NotificationView.js +1 -4
  676. package/src/view/elements/notify/ToastLogView.d.ts.map +1 -1
  677. package/src/view/elements/notify/ToastLogView.js +0 -3
  678. package/src/view/elements/progress/SmoothProgressBar.d.ts +72 -0
  679. package/src/view/elements/progress/SmoothProgressBar.d.ts.map +1 -0
  680. package/src/view/elements/radial/RadialMenu.d.ts.map +1 -1
  681. package/src/view/elements/radial/RadialMenu.js +1 -6
  682. package/src/view/elements/radial/RadialMenuElement.d.ts.map +1 -1
  683. package/src/view/elements/radial/RadialMenuElement.js +1 -4
  684. package/src/view/elements/radial/RadialProgressView.d.ts +1 -1
  685. package/src/view/elements/radial/RadialProgressView.d.ts.map +1 -1
  686. package/src/view/elements/radial/RadialProgressView.js +4 -9
  687. package/src/view/elements/tiles2d/Tile.d.ts.map +1 -1
  688. package/src/view/elements/tiles2d/Tile.js +3 -6
  689. package/src/view/elements/tiles2d/TileGrid.d.ts.map +1 -1
  690. package/src/view/elements/tiles2d/TileGrid.js +0 -5
  691. package/src/view/minimap/Minimap.d.ts.map +1 -1
  692. package/src/view/minimap/Minimap.js +11 -16
  693. package/src/view/minimap/dom/MinimapCameraView.d.ts +1 -2
  694. package/src/view/minimap/dom/MinimapCameraView.d.ts.map +1 -1
  695. package/src/view/minimap/dom/MinimapTerrainView.d.ts +1 -1
  696. package/src/view/minimap/dom/MinimapTerrainView.d.ts.map +1 -1
  697. package/src/view/minimap/gl/MarkerGL.d.ts +2 -12
  698. package/src/view/minimap/gl/MarkerGL.d.ts.map +1 -1
  699. package/src/view/minimap/gl/MarkerGL.js +60 -56
  700. package/src/view/minimap/gl/MinimapMarkersGL.d.ts +1 -1
  701. package/src/view/minimap/gl/MinimapMarkersGL.d.ts.map +1 -1
  702. package/src/view/minimap/gl/MinimapTerrainGL.d.ts +1 -2
  703. package/src/view/minimap/gl/MinimapTerrainGL.d.ts.map +1 -1
  704. package/src/view/renderModel.d.ts.map +1 -1
  705. package/src/view/renderModel.js +3 -7
  706. package/src/view/task/TaskProgressView.d.ts.map +1 -1
  707. package/src/view/task/TaskProgressView.js +0 -5
  708. package/src/core/geom/3d/tetrahedra/compute_circumsphere.d.ts.map +0 -1
  709. package/src/core/graph/coarsen_graph.d.ts.map +0 -1
  710. package/src/core/graph/coarsen_graph.spec.d.ts +0 -2
  711. package/src/core/graph/coarsen_graph.spec.d.ts.map +0 -1
  712. package/src/core/graph/graph_adjacency_matrix.d.ts +0 -9
  713. package/src/core/graph/graph_adjacency_matrix.d.ts.map +0 -1
  714. package/src/core/graph/graph_degree_matrix.d.ts +0 -9
  715. package/src/core/graph/graph_degree_matrix.d.ts.map +0 -1
  716. package/src/core/graph/graph_degree_matrix.js +0 -18
  717. package/src/core/graph/graph_laplacian_matrix.d.ts.map +0 -1
  718. package/src/core/math/physics/brdf/D_GGX.d.ts.map +0 -1
  719. package/src/engine/asset/loaders/LegacyThreeJSONAssetLoader.d.ts +0 -9
  720. package/src/engine/asset/loaders/LegacyThreeJSONAssetLoader.d.ts.map +0 -1
  721. package/src/engine/asset/loaders/LegacyThreeJSONAssetLoader.js +0 -105
  722. package/src/engine/graphics/geometry/decimation/SimplifyModifier.d.ts +0 -117
  723. package/src/engine/graphics/geometry/decimation/SimplifyModifier.d.ts.map +0 -1
  724. package/src/engine/graphics/geometry/decimation/SimplifyModifier.js +0 -971
  725. package/src/engine/graphics/loader/threejs/GLTFLoader.js +0 -3179
  726. package/src/engine/graphics/loader/threejs/LegacyJSONLoader.d.ts +0 -6
  727. package/src/engine/graphics/loader/threejs/LegacyJSONLoader.d.ts.map +0 -1
  728. package/src/engine/graphics/loader/threejs/LegacyJSONLoader.js +0 -845
  729. package/src/engine/graphics/postprocess/Postprocess.js +0 -284
  730. package/src/engine/graphics/postprocess/threejs/Mirror.js +0 -330
  731. package/src/engine/graphics/postprocess/threejs/WaterShader.js +0 -306
  732. package/src/engine/graphics/postprocess/threejs/postprocessing/AdaptiveToneMappingPass.js +0 -338
  733. package/src/engine/graphics/postprocess/threejs/postprocessing/BloomPass.js +0 -132
  734. package/src/engine/graphics/postprocess/threejs/postprocessing/BokehPass.js +0 -115
  735. package/src/engine/graphics/postprocess/threejs/postprocessing/ClearMaskPass.d.ts +0 -4
  736. package/src/engine/graphics/postprocess/threejs/postprocessing/ClearMaskPass.d.ts.map +0 -1
  737. package/src/engine/graphics/postprocess/threejs/postprocessing/ClearMaskPass.js +0 -23
  738. package/src/engine/graphics/postprocess/threejs/postprocessing/DotScreenPass.d.ts +0 -1
  739. package/src/engine/graphics/postprocess/threejs/postprocessing/DotScreenPass.d.ts.map +0 -1
  740. package/src/engine/graphics/postprocess/threejs/postprocessing/DotScreenPass.js +0 -60
  741. package/src/engine/graphics/postprocess/threejs/postprocessing/EffectComposer.js +0 -150
  742. package/src/engine/graphics/postprocess/threejs/postprocessing/FilmPass.d.ts +0 -1
  743. package/src/engine/graphics/postprocess/threejs/postprocessing/FilmPass.d.ts.map +0 -1
  744. package/src/engine/graphics/postprocess/threejs/postprocessing/FilmPass.js +0 -61
  745. package/src/engine/graphics/postprocess/threejs/postprocessing/GlitchPass.d.ts +0 -1
  746. package/src/engine/graphics/postprocess/threejs/postprocessing/GlitchPass.d.ts.map +0 -1
  747. package/src/engine/graphics/postprocess/threejs/postprocessing/GlitchPass.js +0 -117
  748. package/src/engine/graphics/postprocess/threejs/postprocessing/RenderPass.js +0 -63
  749. package/src/engine/graphics/postprocess/threejs/postprocessing/SMAAPass.js +0 -187
  750. package/src/engine/graphics/postprocess/threejs/postprocessing/SavePass.d.ts +0 -1
  751. package/src/engine/graphics/postprocess/threejs/postprocessing/SavePass.d.ts.map +0 -1
  752. package/src/engine/graphics/postprocess/threejs/postprocessing/SavePass.js +0 -67
  753. package/src/engine/graphics/postprocess/threejs/postprocessing/TexturePass.js +0 -50
  754. package/src/engine/graphics/postprocess/threejs/shaders/BokehShader.d.ts +0 -42
  755. package/src/engine/graphics/postprocess/threejs/shaders/BokehShader.d.ts.map +0 -1
  756. package/src/engine/graphics/postprocess/threejs/shaders/BokehShader.js +0 -117
  757. package/src/engine/graphics/postprocess/threejs/shaders/ConvolutionShader.d.ts +0 -30
  758. package/src/engine/graphics/postprocess/threejs/shaders/ConvolutionShader.d.ts.map +0 -1
  759. package/src/engine/graphics/postprocess/threejs/shaders/ConvolutionShader.js +0 -106
  760. package/src/engine/graphics/postprocess/threejs/shaders/FXAAShader.d.ts +0 -19
  761. package/src/engine/graphics/postprocess/threejs/shaders/FXAAShader.d.ts.map +0 -1
  762. package/src/engine/graphics/postprocess/threejs/shaders/FXAAShader.js +0 -90
  763. package/src/engine/graphics/postprocess/threejs/shaders/GammaCorrectionShader.d.ts +0 -12
  764. package/src/engine/graphics/postprocess/threejs/shaders/GammaCorrectionShader.d.ts.map +0 -1
  765. package/src/engine/graphics/postprocess/threejs/shaders/GammaCorrectionShader.js +0 -52
  766. package/src/engine/graphics/postprocess/threejs/shaders/LuminosityShader.d.ts +0 -12
  767. package/src/engine/graphics/postprocess/threejs/shaders/LuminosityShader.d.ts.map +0 -1
  768. package/src/engine/graphics/postprocess/threejs/shaders/LuminosityShader.js +0 -51
  769. package/src/engine/graphics/postprocess/threejs/shaders/SMAAShader.d.ts +0 -76
  770. package/src/engine/graphics/postprocess/threejs/shaders/SMAAShader.d.ts.map +0 -1
  771. package/src/engine/graphics/postprocess/threejs/shaders/SMAAShader.js +0 -468
  772. package/src/engine/graphics/postprocess/threejs/shaders/SSAOShader.d.ts +0 -61
  773. package/src/engine/graphics/postprocess/threejs/shaders/SSAOShader.d.ts.map +0 -1
  774. package/src/engine/graphics/postprocess/threejs/shaders/SSAOShader.js +0 -230
  775. package/src/engine/graphics/postprocess/threejs/shaders/ToneMapShader.d.ts +0 -36
  776. package/src/engine/graphics/postprocess/threejs/shaders/ToneMapShader.d.ts.map +0 -1
  777. package/src/engine/graphics/postprocess/threejs/shaders/ToneMapShader.js +0 -76
  778. package/src/engine/graphics/sh3/LightProbeVolume.d.ts.map +0 -1
  779. package/src/engine/graphics/sh3/LightProbeVolume.js +0 -609
  780. package/src/engine/graphics/sh3/path_tracer/apply_texture_clamping_to_coordinate.d.ts.map +0 -1
  781. package/src/engine/graphics/sh3/visualise_probe.d.ts +0 -12
  782. package/src/engine/graphics/sh3/visualise_probe.d.ts.map +0 -1
  783. package/src/engine/graphics/sh3/visualise_probe.js +0 -40
  784. package/src/engine/graphics/shaders/GaussianBlurShader.d.ts +0 -22
  785. package/src/engine/graphics/shaders/GaussianBlurShader.d.ts.map +0 -1
  786. package/src/engine/graphics/shaders/GaussianBlurShader.js +0 -79
  787. package/src/engine/graphics/shaders/GaussianGlowShader.d.ts +0 -26
  788. package/src/engine/graphics/shaders/GaussianGlowShader.d.ts.map +0 -1
  789. package/src/engine/graphics/shaders/GaussianGlowShader.js +0 -83
  790. package/src/engine/graphics/shaders/NormalMapShader.d.ts +0 -33
  791. package/src/engine/graphics/shaders/NormalMapShader.d.ts.map +0 -1
  792. package/src/engine/graphics/shaders/NormalMapShader.js +0 -62
  793. package/src/engine/graphics/shaders/SoftOutlineShader.d.ts +0 -3
  794. package/src/engine/graphics/shaders/SoftOutlineShader.d.ts.map +0 -1
  795. package/src/engine/graphics/shaders/SoftOutlineShader.js +0 -111
  796. package/src/engine/graphics/three/Reflector.d.ts +0 -12
  797. package/src/engine/graphics/three/Reflector.d.ts.map +0 -1
  798. package/src/engine/graphics/three/Reflector.js +0 -281
  799. package/src/engine/graphics/three/Refractor.d.ts +0 -11
  800. package/src/engine/graphics/three/Refractor.d.ts.map +0 -1
  801. package/src/engine/graphics/three/Refractor.js +0 -352
  802. package/src/engine/navigation/ecs/components/PathFinder.d.ts +0 -14
  803. package/src/engine/navigation/ecs/components/PathFinder.d.ts.map +0 -1
  804. package/src/engine/navigation/ecs/components/PathFinder.js +0 -11
  805. package/src/view/elements/navigation/NavigationMenu.d.ts +0 -13
  806. package/src/view/elements/navigation/NavigationMenu.d.ts.map +0 -1
  807. package/src/view/elements/navigation/NavigationMenu.js +0 -27
  808. /package/src/engine/graphics/sh3/path_tracer/{apply_texture_clamping_to_coordinate.d.ts → texture/apply_texture_clamping_to_coordinate.d.ts} +0 -0
@@ -1,173 +1,28 @@
1
- import {mat3, vec3} from "gl-matrix";
2
- import {assert} from "../../../../assert.js";
3
- import {array_copy} from "../../../../collection/array/array_copy.js";
4
- import {min2} from "../../../../math/min2.js";
1
+ import { mat3, vec3 } from "gl-matrix";
2
+ import { assert } from "../../../../assert.js";
3
+ import { array_copy } from "../../../../collection/array/array_copy.js";
4
+ import { min2 } from "../../../../math/min2.js";
5
+ import { SH3_COEFFICIENTS } from "./SH3_COEFFICIENTS.js";
6
+ import { sh3_rotate } from "./sh3_rotate.js";
7
+ import { sh_index } from "./sh_index.js";
5
8
 
6
9
  /*
7
10
  @see https://github.com/Bestmaker602/olacziy/blob/212b64ea5f1856b390cdf7629801243f76a4466d/libs/ibl/src/CubemapSH.cpp
8
11
  */
9
12
 
10
13
 
11
- const F_PI = 3.14159265358979323846264338327950288;
12
- const F_SQRT1_2 = 0.707106781186547524400844362104849039;
13
- const M_SQRT_3 = 1.7320508076;
14
-
15
- const M_SQRT_PI = 1.7724538509;
16
- const M_SQRT_5 = 2.2360679775;
17
- const M_SQRT_15 = 3.8729833462;
18
-
19
- /**
20
- *
21
- * @param {number[]} M 5x5 matrix
22
- * @param {number[]} x vec5
23
- * @return {number[]} vec5
24
- */
25
- function multiply_5d(M, x) {
26
- return [
27
- M[0] * x[0] + M[5] * x[1] + M[10] * x[2] + M[15] * x[3] + M[20] * x[4],
28
- M[1] * x[0] + M[6] * x[1] + M[11] * x[2] + M[16] * x[3] + M[21] * x[4],
29
- M[2] * x[0] + M[7] * x[1] + M[12] * x[2] + M[17] * x[3] + M[22] * x[4],
30
- M[3] * x[0] + M[8] * x[1] + M[13] * x[2] + M[18] * x[3] + M[23] * x[4],
31
- M[4] * x[0] + M[9] * x[1] + M[14] * x[2] + M[19] * x[3] + M[24] * x[4]
32
- ];
33
- }
34
-
35
- /**
36
- * compute Index of spherical harmonics coefficient
37
- * @param {number} m signed offset from zonal harmonic
38
- * @param {number} l band
39
- * @return {number}
40
- */
41
- function SHindex(m, l) {
42
- return l * (l + 1) + m;
43
- }
44
-
45
-
46
- /*
47
- * utilities to rotate very low order spherical harmonics (up to 3rd band)
48
- * @param {number[]} band1
49
- * @param {number[]} M 3x3 matrix
50
- * @returns {number[]}
51
- */
52
- function rotateShericalHarmonicBand1(band1, M) {
53
-
54
- // inverse() is not constexpr -- so we pre-calculate it in mathematica
55
- //
56
- // constexpr float3 N0{ 1, 0, 0 };
57
- // constexpr float3 N1{ 0, 1, 0 };
58
- // constexpr float3 N2{ 0, 0, 1 };
59
- //
60
- // constexpr mat3f A1 = { // this is the projection of N0, N1, N2 to SH space
61
- // float3{ -N0.y, N0.z, -N0.x },
62
- // float3{ -N1.y, N1.z, -N1.x },
63
- // float3{ -N2.y, N2.z, -N2.x }
64
- // };
65
- //
66
- // const mat3f invA1 = inverse(A1);
67
-
68
- const invA1TimesK = [
69
- 0, -1, 0,
70
- 0, 0, 1,
71
- -1, 0, 0
72
- ];
73
-
74
- const R1OverK = [
75
- -M[1], M[2], -M[0],
76
- -M[4], M[5], -M[3],
77
- -M[7], M[8], -M[6]
78
- ];
79
-
80
-
81
- mat3.scale(invA1TimesK, invA1TimesK, band1);
82
-
83
-
84
- mat3.multiply(R1OverK, R1OverK, invA1TimesK);
85
-
86
- return R1OverK;
87
- }
88
-
89
- /**
90
- * This projects a vec3 to SH2/k space (i.e. we premultiply by 1/k)
91
- * below can't be constexpr
92
- * @param {number} x
93
- * @param {number} y
94
- * @param {number} z
95
- * @return {number[]} vec5
96
- */
97
- function project_v3_to_sh(x, y, z) {
98
- return [
99
- (y * x),
100
- -(y * z),
101
- 1 / (2 * M_SQRT_3) * ((3 * z * z - 1)),
102
- -(z * x),
103
- 0.5 * ((x * x - y * y))
104
- ];
105
- }
106
-
107
- /**
108
- *
109
- * @param {number[]} band2 vec5
110
- * @param {number[]} M mat3
111
- * @return {number[]} vec5
112
- */
113
- function rotateShericalHarmonicBand2(band2, M) {
114
- const n = F_SQRT1_2;
115
-
116
- // Below we precompute (with help of Mathematica):
117
- // constexpr float3 N0{ 1, 0, 0 };
118
- // constexpr float3 N1{ 0, 0, 1 };
119
- // constexpr float3 N2{ n, n, 0 };
120
- // constexpr float3 N3{ n, 0, n };
121
- // constexpr float3 N4{ 0, n, n };
122
- // constexpr float M_SQRT_PI = 1.7724538509f;
123
- // constexpr float M_SQRT_15 = 3.8729833462f;
124
- // constexpr float k = M_SQRT_15 / (2.0f * M_SQRT_PI);
125
- // --> k * inverse(mat5{project(N0), project(N1), project(N2), project(N3), project(N4)})
126
- const invATimesK = [
127
- 0, 1, 2, 0, 0,
128
- -1, 0, 0, 0, -2,
129
- 0, M_SQRT_3, 0, 0, 0,
130
- 1, 1, 0, -2, 0,
131
- 2, 1, 0, 0, 0
132
- ];
133
-
134
- // this is: invA * k * band2
135
- // 5x5 matrix by vec5 (this a lot of zeroes and constants, which the compiler should eliminate)
136
- const invATimesKTimesBand2 = multiply_5d(invATimesK, band2);
137
-
138
- // this is: mat5{project(N0), project(N1), project(N2), project(N3), project(N4)} / k
139
- // (the 1/k comes from project(), see above)
140
- const ROverK =
141
- project_v3_to_sh(M[0], M[1], M[2]) // M * N0
142
- .concat(project_v3_to_sh(M[6], M[7], M[8])) // M * N1
143
- .concat(project_v3_to_sh(n * (M[0] + M[3]), n * (M[1] + M[4]), n * (M[2] + M[5]))) // M * N2
144
- .concat(project_v3_to_sh(n * (M[0] + M[6]), n * (M[1] + M[7]), n * (M[2] + M[8]))) // M * N3
145
- .concat(project_v3_to_sh(n * (M[3] + M[6]), n * (M[4] + M[7]), n * (M[5] + M[8]))) // M * N4
146
- ;
147
-
148
- // notice how "k" disappears
149
- // this is: (R / k) * (invA * k) * band2 == R * invA * band2
150
- const result = multiply_5d(ROverK, invATimesKTimesBand2);
151
-
152
- return result;
153
- }
154
-
155
14
  /**
156
15
  * SH from environment with high dynamic range (or high frequencies -- high dynamic range creates
157
16
  * high frequencies) exhibit "ringing" and negative values when reconstructed.
158
17
  * To mitigate this, we need to low-pass the input image -- or equivalently window the SH by
159
18
  * coefficient that tapper towards zero with the band.
160
19
  *
161
- * We use ideas and techniques from
162
- * Stupid Spherical Harmonics (SH)
163
- * Deringing Spherical Harmonics
164
- * by Peter-Pike Sloan
165
- * https://www.ppsloan.org/publications/shdering.pdf
166
- * @param {number} w
20
+ * We use ideas and techniques from Stupid Spherical Harmonics (SH) Deringing Spherical Harmonics by Peter-Pike Sloan ( see https://www.ppsloan.org/publications/shdering.pdf )
21
+ * @param {number} w cutoff
167
22
  * @param {number} l
168
23
  * @returns {number}
169
24
  */
170
- function sincWindow(l, w) {
25
+ function sinc_window(l, w) {
171
26
  if (l === 0) {
172
27
  return 1.0;
173
28
  } else if (l >= w) {
@@ -176,7 +31,7 @@ function sincWindow(l, w) {
176
31
 
177
32
  // we use a sinc window scaled to the desired window size in bands units
178
33
  // a sinc window only has zonal harmonics
179
- let x = ((F_PI) * l) / w;
34
+ let x = (Math.PI * l) / w;
180
35
 
181
36
  x = Math.sin(x) / x;
182
37
 
@@ -188,52 +43,15 @@ function sincWindow(l, w) {
188
43
  }
189
44
 
190
45
  /**
191
- *
192
- * @param {number[]|Float32Array} result sh3
193
- * @param {number[]} sh input
194
- * @param {number[]} M mat3
195
- */
196
- function rotate_sh3_bands(result, sh, M) {
197
-
198
- const b0 = sh[0];
199
- const band1 = [sh[1], sh[2], sh[3]];
200
- const b1 = rotateShericalHarmonicBand1(band1, M);
201
- const band2 = [sh[4], sh[5], sh[6], sh[7], sh[8]];
202
- const b2 = rotateShericalHarmonicBand2(band2, M);
203
-
204
- result[0] = b0;
205
-
206
- result[1] = b1[0];
207
- result[2] = b1[1];
208
- result[3] = b1[2];
209
-
210
- result[4] = b2[0];
211
- result[5] = b2[1];
212
- result[6] = b2[2];
213
- result[7] = b2[3];
214
- result[8] = b2[4];
215
- }
216
-
217
- /**
218
- *
219
- * @param {number[]} input_sh3 sh3
46
+ * Minimum values encoded on the spherical harmonics
47
+ * Lets us find ringing artifacts, which are cases where harmonics encode a negative value
48
+ * @param {number[]|Float32Array} input_sh3 sh3
220
49
  * @returns {number}
221
50
  */
222
- function shmin(input_sh3) {
51
+ function sh3_min(input_sh3) {
223
52
  // See "Deringing Spherical Harmonics" by Peter-Pike Sloan
224
53
  // https://www.ppsloan.org/publications/shdering.pdf
225
54
 
226
- const A = [
227
- 1.0 / (2.0 * M_SQRT_PI), // 0: 0 0
228
- -M_SQRT_3 / (2.0 * M_SQRT_PI), // 1: 1 -1
229
- M_SQRT_3 / (2.0 * M_SQRT_PI), // 2: 1 0
230
- -M_SQRT_3 / (2.0 * M_SQRT_PI), // 3: 1 1
231
- M_SQRT_15 / (2.0 * M_SQRT_PI), // 4: 2 -2
232
- -M_SQRT_15 / (2.0 * M_SQRT_PI), // 5: 2 -1
233
- M_SQRT_5 / (4.0 * M_SQRT_PI), // 6: 2 0
234
- -M_SQRT_15 / (2.0 * M_SQRT_PI), // 7: 2 1
235
- M_SQRT_15 / (4.0 * M_SQRT_PI) // 8: 2 2
236
- ];
237
55
 
238
56
  // first this to do is to rotate the SH to align Z with the optimal linear direction
239
57
  const dir = vec3.fromValues(-input_sh3[3], -input_sh3[1], input_sh3[2]);
@@ -259,7 +77,7 @@ function shmin(input_sh3) {
259
77
 
260
78
  const f = new Float32Array(9);
261
79
 
262
- rotate_sh3_bands(f, input_sh3, M);
80
+ sh3_rotate(f, input_sh3, M);
263
81
  // here we're guaranteed to have normalize(float3{ -f[3], -f[1], f[2] }) == { 0, 0, 1 }
264
82
 
265
83
 
@@ -270,7 +88,7 @@ function shmin(input_sh3) {
270
88
  // of z such as: m2min = -m2max * (1 - z^2) = m2max * z^2 - m2max
271
89
  // with m2max = A[8] * std::sqrt(f[8] * f[8] + f[4] * f[4]);
272
90
  // We can therefore include this in the ZH min computation (which is function of z^2 as well)
273
- const m2max = A[8] * Math.sqrt(f[8] * f[8] + f[4] * f[4]);
91
+ const m2max = SH3_COEFFICIENTS[8] * Math.sqrt(f[8] * f[8] + f[4] * f[4]);
274
92
 
275
93
  // Find the min of the zonal harmonics
276
94
  // -----------------------------------
@@ -286,9 +104,9 @@ function shmin(input_sh3) {
286
104
  //
287
105
  // We also needs to check that -1 < z < 1, otherwise the min is either in z = -1 or 1
288
106
  //
289
- const a = 3 * A[6] * f[6] + m2max;
290
- const b = A[2] * f[2];
291
- const c = A[0] * f[0] - A[6] * f[6] - m2max;
107
+ const a = 3 * SH3_COEFFICIENTS[6] * f[6] + m2max;
108
+ const b = SH3_COEFFICIENTS[2] * f[2];
109
+ const c = SH3_COEFFICIENTS[0] * f[0] - SH3_COEFFICIENTS[6] * f[6] - m2max;
292
110
 
293
111
  const zmin = -b / (2.0 * a);
294
112
  const m0min_z = a * zmin * zmin + b * zmin + c;
@@ -304,7 +122,7 @@ function shmin(input_sh3) {
304
122
  // The function considered is:
305
123
  // Y(x, y, z) = A[5] * f[5] * s.y * s.z
306
124
  // + A[7] * f[7] * s.z * s.x
307
- const d = A[4] * Math.sqrt(f[5] * f[5] + f[7] * f[7]);
125
+ const d = SH3_COEFFICIENTS[4] * Math.sqrt(f[5] * f[5] + f[7] * f[7]);
308
126
 
309
127
  // the |m|=1 function is minimal in -0.5 -- use that to skip the Newton's loop when possible
310
128
  let minimum = m0min - 0.5 * d;
@@ -315,7 +133,7 @@ function shmin(input_sh3) {
315
133
 
316
134
 
317
135
  let dz;
318
- let z = -F_SQRT1_2; // we start guessing at the min of |m|=1 function
136
+ let z = -Math.SQRT1_2; // we start guessing at the min of |m|=1 function
319
137
  do {
320
138
  minimum = func_(z, a, b, c, d); // evaluate our function
321
139
  dz = increment_(z, a, b, d); // refine our guess by this amount
@@ -366,14 +184,22 @@ function increment_(x, a, b, d) {
366
184
  * @param {number} numBands
367
185
  */
368
186
  function windowing(f, cutoff, numBands) {
187
+
369
188
  for (let l = 0; l < numBands; l++) {
370
- const w = sincWindow(l, cutoff);
371
- f[SHindex(0, l)] *= w;
189
+
190
+ const w = sinc_window(l, cutoff);
191
+
192
+ f[sh_index(0, l)] *= w;
193
+
372
194
  for (let m = 1; m <= l; m++) {
373
- f[SHindex(-m, l)] *= w;
374
- f[SHindex(m, l)] *= w;
195
+
196
+ f[sh_index(-m, l)] *= w;
197
+ f[sh_index(m, l)] *= w;
198
+
375
199
  }
200
+
376
201
  }
202
+
377
203
  return f;
378
204
  }
379
205
 
@@ -390,7 +216,8 @@ function windowing(f, cutoff, numBands) {
390
216
  function windowSH(
391
217
  output, output_offset,
392
218
  input, input_offset,
393
- numBands, channel_count, cutoff = 0
219
+ numBands, channel_count,
220
+ cutoff = 0
394
221
  ) {
395
222
  assert.isNonNegativeInteger(channel_count, 'channel_count');
396
223
  assert.greaterThan(channel_count, 0, 'channel_count must be greater than 0');
@@ -424,7 +251,9 @@ function windowSH(
424
251
 
425
252
  const m = 0.5 * (l + r);
426
253
 
427
- if (shmin(windowing(SH, m, numBands)) < 0) {
254
+ windowing(SH, m, numBands);
255
+
256
+ if (sh3_min(SH) < 0) {
428
257
  r = m;
429
258
  } else {
430
259
  l = m;
@@ -442,18 +271,18 @@ function windowSH(
442
271
 
443
272
  for (let l = 0; l < numBands; l++) {
444
273
  // scale each band individually
445
- let w = sincWindow(l, cutoff);
274
+ const w = sinc_window(l, cutoff);
446
275
 
447
276
  // write zonal harmonic
448
277
  for (let i = 0; i < channel_count; i++) {
449
- output[output_offset + SHindex(0, l) * channel_count + i] *= w;
278
+ output[output_offset + sh_index(0, l) * channel_count + i] *= w;
450
279
  }
451
280
 
452
281
  // write the rest of the band
453
282
  for (let m = 1; m <= l; m++) {
454
283
  for (let i = 0; i < channel_count; i++) {
455
- output[output_offset + SHindex(-m, l) * channel_count + i] *= w;
456
- output[output_offset + SHindex(m, l) * channel_count + i] *= w;
284
+ output[output_offset + sh_index(-m, l) * channel_count + i] *= w;
285
+ output[output_offset + sh_index(m, l) * channel_count + i] *= w;
457
286
  }
458
287
  }
459
288
  }
@@ -461,9 +290,9 @@ function windowSH(
461
290
 
462
291
  /**
463
292
  *
464
- * @param {number[]|Float32Array} result
293
+ * @param {number[]|Float32Array|Float64Array} result
465
294
  * @param {number} result_offset
466
- * @param {number[]|Float32Array} harmonics
295
+ * @param {number[]|Float32Array|Float64Array} harmonics
467
296
  * @param {number} harmonics_offset
468
297
  * @param {number} dimension_count
469
298
  */
@@ -0,0 +1,8 @@
1
+ /**
2
+ *
3
+ * @param {number[]|Float32Array} result sh3
4
+ * @param {number[]} sh input
5
+ * @param {number[]} rotation 3x3 rotation matrix
6
+ */
7
+ export function sh3_rotate(result: number[] | Float32Array, sh: number[], rotation: number[]): void;
8
+ //# sourceMappingURL=sh3_rotate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sh3_rotate.d.ts","sourceRoot":"","sources":["../../../../../../../src/core/geom/3d/sphere/harmonics/sh3_rotate.js"],"names":[],"mappings":"AAGA;;;;;GAKG;AACH,mCAJW,MAAM,EAAE,GAAC,YAAY,MACrB,MAAM,EAAE,YACR,MAAM,EAAE,QAqBlB"}
@@ -0,0 +1,29 @@
1
+ import { sh_rotate_band1 } from "./sh_rotate_band1.js";
2
+ import { sh_rotate_band2 } from "./sh_rotate_band2.js";
3
+
4
+ /**
5
+ *
6
+ * @param {number[]|Float32Array} result sh3
7
+ * @param {number[]} sh input
8
+ * @param {number[]} rotation 3x3 rotation matrix
9
+ */
10
+ export function sh3_rotate(result, sh, rotation) {
11
+
12
+ const b0 = sh[0];
13
+ const band1 = [sh[1], sh[2], sh[3]];
14
+ const b1 = sh_rotate_band1(band1, rotation);
15
+ const band2 = [sh[4], sh[5], sh[6], sh[7], sh[8]];
16
+ const b2 = sh_rotate_band2(band2, rotation);
17
+
18
+ result[0] = b0;
19
+
20
+ result[1] = b1[0];
21
+ result[2] = b1[1];
22
+ result[3] = b1[2];
23
+
24
+ result[4] = b2[0];
25
+ result[5] = b2[1];
26
+ result[6] = b2[2];
27
+ result[7] = b2[3];
28
+ result[8] = b2[4];
29
+ }
@@ -1,4 +1,4 @@
1
- //
1
+ import { SH3_COEFFICIENTS } from "./SH3_COEFFICIENTS.js";
2
2
 
3
3
  /**
4
4
  * Sample value from a 3-band spherical harmonic defined by 9 coefficients
@@ -30,19 +30,19 @@ export function sh3_sample_by_direction(
30
30
  const offset = harmonics_offset + dimension_count * i;
31
31
 
32
32
  // band 0
33
- channel_value = harmonics[offset] * 0.282095;
33
+ channel_value = harmonics[offset] * SH3_COEFFICIENTS[0];
34
34
 
35
35
  // band 1
36
- channel_value += harmonics[offset + 1] * 0.488603 * y;
37
- channel_value += harmonics[offset + 2] * 0.488603 * z;
38
- channel_value += harmonics[offset + 3] * 0.488603 * x;
36
+ channel_value += harmonics[offset + 1] * SH3_COEFFICIENTS[1] * y;
37
+ channel_value += harmonics[offset + 2] * SH3_COEFFICIENTS[2] * z;
38
+ channel_value += harmonics[offset + 3] * SH3_COEFFICIENTS[3] * x;
39
39
 
40
40
  // band 2
41
- channel_value += harmonics[offset + 4] * 1.092548 * (x * y);
42
- channel_value += harmonics[offset + 5] * 1.092548 * (y * z);
43
- channel_value += harmonics[offset + 6] * 0.315392 * (3.0 * z * z - 1.0);
44
- channel_value += harmonics[offset + 7] * 1.092548 * (x * z);
45
- channel_value += harmonics[offset + 8] * 0.546274 * (x * x - y * y);
41
+ channel_value += harmonics[offset + 4] * SH3_COEFFICIENTS[4] * (x * y);
42
+ channel_value += harmonics[offset + 5] * SH3_COEFFICIENTS[5] * (y * z);
43
+ channel_value += harmonics[offset + 6] * SH3_COEFFICIENTS[6] * (3.0 * z * z - 1.0);
44
+ channel_value += harmonics[offset + 7] * SH3_COEFFICIENTS[7] * (x * z);
45
+ channel_value += harmonics[offset + 8] * SH3_COEFFICIENTS[8] * (x * x - y * y);
46
46
 
47
47
  // write out
48
48
  result[result_offset + i] = channel_value;
@@ -0,0 +1,8 @@
1
+ /**
2
+ * compute index of spherical harmonics coefficient
3
+ * @param {number} m signed offset from zonal harmonic
4
+ * @param {number} l band
5
+ * @return {number}
6
+ */
7
+ export function sh_index(m: number, l: number): number;
8
+ //# sourceMappingURL=sh_index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sh_index.d.ts","sourceRoot":"","sources":["../../../../../../../src/core/geom/3d/sphere/harmonics/sh_index.js"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,4BAJW,MAAM,KACN,MAAM,GACL,MAAM,CAIjB"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * compute index of spherical harmonics coefficient
3
+ * @param {number} m signed offset from zonal harmonic
4
+ * @param {number} l band
5
+ * @return {number}
6
+ */
7
+ export function sh_index(m, l) {
8
+ return l * (l + 1) + m;
9
+ }
@@ -0,0 +1,8 @@
1
+ /**
2
+ * utilities to rotate very low order spherical harmonics (up to 3rd band)
3
+ * @param {number[]} band1 vec3
4
+ * @param {number[]} M 3x3 matrix
5
+ * @returns {number[]}
6
+ */
7
+ export function sh_rotate_band1(band1: number[], M: number[]): number[];
8
+ //# sourceMappingURL=sh_rotate_band1.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sh_rotate_band1.d.ts","sourceRoot":"","sources":["../../../../../../../src/core/geom/3d/sphere/harmonics/sh_rotate_band1.js"],"names":[],"mappings":"AAGA;;;;;GAKG;AACH,uCAJW,MAAM,EAAE,KACR,MAAM,EAAE,GACN,MAAM,EAAE,CAoCpB"}
@@ -0,0 +1,44 @@
1
+ import { mat3 } from "gl-matrix";
2
+ import { m3_multiply_vec3 } from "../../../mat3/m3_multiply_vec3.js";
3
+
4
+ /**
5
+ * utilities to rotate very low order spherical harmonics (up to 3rd band)
6
+ * @param {number[]} band1 vec3
7
+ * @param {number[]} M 3x3 matrix
8
+ * @returns {number[]}
9
+ */
10
+ export function sh_rotate_band1(band1, M) {
11
+
12
+ // inverse() is not constexpr -- so we pre-calculate it in mathematica
13
+ //
14
+ // constexpr float3 N0{ 1, 0, 0 };
15
+ // constexpr float3 N1{ 0, 1, 0 };
16
+ // constexpr float3 N2{ 0, 0, 1 };
17
+ //
18
+ // constexpr mat3f A1 = { // this is the projection of N0, N1, N2 to SH space
19
+ // float3{ -N0.y, N0.z, -N0.x },
20
+ // float3{ -N1.y, N1.z, -N1.x },
21
+ // float3{ -N2.y, N2.z, -N2.x }
22
+ // };
23
+ //
24
+ // const mat3f invA1 = inverse(A1);
25
+
26
+ const invA1TimesK = [
27
+ 0, -1, 0,
28
+ 0, 0, 1,
29
+ -1, 0, 0
30
+ ];
31
+
32
+ const R1OverK = [
33
+ -M[1], M[2], -M[0],
34
+ -M[4], M[5], -M[3],
35
+ -M[7], M[8], -M[6]
36
+ ];
37
+
38
+
39
+ m3_multiply_vec3(invA1TimesK, invA1TimesK, band1);
40
+
41
+ mat3.multiply(R1OverK, R1OverK, invA1TimesK);
42
+
43
+ return R1OverK;
44
+ }
@@ -0,0 +1,8 @@
1
+ /**
2
+ *
3
+ * @param {number[]} band2 vec5
4
+ * @param {number[]} M mat3
5
+ * @return {number[]} vec5
6
+ */
7
+ export function sh_rotate_band2(band2: number[], M: number[]): number[];
8
+ //# sourceMappingURL=sh_rotate_band2.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sh_rotate_band2.d.ts","sourceRoot":"","sources":["../../../../../../../src/core/geom/3d/sphere/harmonics/sh_rotate_band2.js"],"names":[],"mappings":"AAuCA;;;;;GAKG;AACH,uCAJW,MAAM,EAAE,KACR,MAAM,EAAE,GACP,MAAM,EAAE,CA0CnB"}
@@ -0,0 +1,86 @@
1
+ /**
2
+ * Math.sqrt(3)
3
+ * @type {number}
4
+ */
5
+ const SQRT_3 = 1.7320508075688772;
6
+
7
+ /**
8
+ *
9
+ * @param {number[]|Float32Array} M 5x5 matrix
10
+ * @param {number[]} x vec5
11
+ * @return {number[]} vec5
12
+ */
13
+ function multiply_5d(M, x) {
14
+ return [
15
+ M[0] * x[0] + M[5] * x[1] + M[10] * x[2] + M[15] * x[3] + M[20] * x[4],
16
+ M[1] * x[0] + M[6] * x[1] + M[11] * x[2] + M[16] * x[3] + M[21] * x[4],
17
+ M[2] * x[0] + M[7] * x[1] + M[12] * x[2] + M[17] * x[3] + M[22] * x[4],
18
+ M[3] * x[0] + M[8] * x[1] + M[13] * x[2] + M[18] * x[3] + M[23] * x[4],
19
+ M[4] * x[0] + M[9] * x[1] + M[14] * x[2] + M[19] * x[3] + M[24] * x[4]
20
+ ];
21
+ }
22
+
23
+ /**
24
+ * This projects a vec3 to SH2/k space (i.e. we premultiply by 1/k)
25
+ * these are second band SH factors, multiplied by 1/K ( K = Math.sqrt(15) / (2*Math.sqrt(Math.PI)) )
26
+ * @param {number[]|Float32Array} output
27
+ * @param {number} output_offset
28
+ * @param {number} x
29
+ * @param {number} y
30
+ * @param {number} z
31
+ */
32
+ function project_v3_to_sh2k(output, output_offset, x, y, z) {
33
+ output[output_offset] = (y * x)
34
+ output[output_offset + 1] = -(y * z)
35
+ output[output_offset + 2] = 0.28867513459481287 * (3 * z * z - 1)
36
+ output[output_offset + 3] = -(z * x)
37
+ output[output_offset + 4] = 0.5 * (x * x - y * y)
38
+ }
39
+
40
+ /**
41
+ *
42
+ * @param {number[]} band2 vec5
43
+ * @param {number[]} M mat3
44
+ * @return {number[]} vec5
45
+ */
46
+ export function sh_rotate_band2(band2, M) {
47
+ const n = Math.SQRT1_2;
48
+
49
+ // Below we precompute (with help of Mathematica):
50
+ // constexpr float3 N0{ 1, 0, 0 };
51
+ // constexpr float3 N1{ 0, 0, 1 };
52
+ // constexpr float3 N2{ n, n, 0 };
53
+ // constexpr float3 N3{ n, 0, n };
54
+ // constexpr float3 N4{ 0, n, n };
55
+ // constexpr float M_SQRT_PI = 1.7724538509f;
56
+ // constexpr float M_SQRT_15 = 3.8729833462f;
57
+ // constexpr float k = M_SQRT_15 / (2.0f * M_SQRT_PI);
58
+ // --> k * inverse(mat5{project(N0), project(N1), project(N2), project(N3), project(N4)})
59
+ const invATimesK = [
60
+ 0, 1, 2, 0, 0,
61
+ -1, 0, 0, 0, -2,
62
+ 0, SQRT_3, 0, 0, 0,
63
+ 1, 1, 0, -2, 0,
64
+ 2, 1, 0, 0, 0
65
+ ];
66
+
67
+ // this is: invA * k * band2
68
+ // 5x5 matrix by vec5 (this a lot of zeroes and constants, which the compiler should eliminate)
69
+ const invATimesKTimesBand2 = multiply_5d(invATimesK, band2);
70
+
71
+ // this is: mat5{project(N0), project(N1), project(N2), project(N3), project(N4)} / k
72
+ // (the 1/k comes from project(), see above)
73
+ const ROverK = new Float32Array(25);
74
+
75
+ project_v3_to_sh2k(ROverK, 0, M[0], M[1], M[2]) // M * N0
76
+ project_v3_to_sh2k(ROverK, 5, M[6], M[7], M[8]) // M * N1
77
+ project_v3_to_sh2k(ROverK, 10, n * (M[0] + M[3]), n * (M[1] + M[4]), n * (M[2] + M[5])) // M * N2
78
+ project_v3_to_sh2k(ROverK, 15, n * (M[0] + M[6]), n * (M[1] + M[7]), n * (M[2] + M[8])) // M * N3
79
+ project_v3_to_sh2k(ROverK, 20, n * (M[3] + M[6]), n * (M[4] + M[7]), n * (M[5] + M[8])) // M * N4;
80
+
81
+ // notice how "k" disappears
82
+ // this is: (R / k) * (invA * k) * band2 == R * invA * band2
83
+ const result = multiply_5d(ROverK, invATimesKTimesBand2);
84
+
85
+ return result;
86
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"in_sphere3d_robust.d.ts","sourceRoot":"","sources":["../../../../../../src/core/geom/3d/sphere/in_sphere3d_robust.js"],"names":[],"mappings":"AAEA;;;;;;;;;;;GAWG;AACH,2CARW,MAAM,EAAE,KACR,MAAM,KACN,MAAM,KACN,MAAM,KACN,MAAM,KACN,MAAM,GACJ,MAAM,CAwClB"}
1
+ {"version":3,"file":"in_sphere3d_robust.d.ts","sourceRoot":"","sources":["../../../../../../src/core/geom/3d/sphere/in_sphere3d_robust.js"],"names":[],"mappings":"AAEA;;;;;;;;;;;GAWG;AACH,2CARW,MAAM,EAAE,KACR,MAAM,KACN,MAAM,KACN,MAAM,KACN,MAAM,KACN,MAAM,GACJ,MAAM,CAyClB"}
@@ -14,7 +14,8 @@ import { insphere } from "robust-predicates";
14
14
  */
15
15
  export function in_sphere3d_robust(
16
16
  points,
17
- a, b, c, d, e
17
+ a, b, c, d,
18
+ e
18
19
  ) {
19
20
 
20
21
  const a3 = a * 3;