@woosh/meep-engine 2.107.0 → 2.108.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (315) hide show
  1. package/build/bundle-worker-image-decoder.js +1 -1
  2. package/build/meep.cjs +255 -172
  3. package/build/meep.min.js +1 -1
  4. package/build/meep.module.js +255 -173
  5. package/editor/tools/paint/TerrainHeightPaintTool.js +5 -5
  6. package/package.json +1 -1
  7. package/src/core/binary/float_to_uint8.d.ts +7 -0
  8. package/src/core/binary/float_to_uint8.d.ts.map +1 -0
  9. package/src/core/binary/{float2uint8.js → float_to_uint8.js} +1 -1
  10. package/src/core/binary/int32_to_binary_string.d.ts +3 -2
  11. package/src/core/binary/int32_to_binary_string.d.ts.map +1 -1
  12. package/src/core/binary/int32_to_binary_string.js +18 -14
  13. package/src/core/binary/split_by_3.spec.d.ts +2 -0
  14. package/src/core/binary/split_by_3.spec.d.ts.map +1 -0
  15. package/src/core/binary/split_by_3.spec.js +22 -0
  16. package/src/core/binary/to_half_float_uint16.d.ts.map +1 -1
  17. package/src/core/binary/to_half_float_uint16.js +7 -5
  18. package/src/core/binary/uint8_to_float.d.ts +7 -0
  19. package/src/core/binary/uint8_to_float.d.ts.map +1 -0
  20. package/src/core/binary/{uint82float.js → uint8_to_float.js} +1 -1
  21. package/src/core/binary/uint8_to_float.spec.d.ts +2 -0
  22. package/src/core/binary/uint8_to_float.spec.d.ts.map +1 -0
  23. package/src/core/binary/uint8_to_float.spec.js +7 -0
  24. package/src/core/codegen/codeToBlob.d.ts +8 -0
  25. package/src/core/codegen/codeToBlob.d.ts.map +1 -0
  26. package/src/core/codegen/codeToBlob.js +36 -0
  27. package/src/core/codegen/codeToURL.d.ts +8 -0
  28. package/src/core/codegen/codeToURL.d.ts.map +1 -0
  29. package/src/core/codegen/codeToURL.js +22 -0
  30. package/src/core/collection/array/array_shuffle.d.ts +8 -0
  31. package/src/core/collection/array/array_shuffle.d.ts.map +1 -0
  32. package/src/core/collection/array/array_shuffle.js +22 -0
  33. package/src/core/collection/array/array_shuffle.spec.d.ts +2 -0
  34. package/src/core/collection/array/array_shuffle.spec.d.ts.map +1 -0
  35. package/src/core/collection/array/{randomizeArrayElementOrder.spec.js → array_shuffle.spec.js} +4 -4
  36. package/src/core/collection/array/isArrayEqualStrict.d.ts.map +1 -1
  37. package/src/core/collection/array/isArrayEqualStrict.js +2 -2
  38. package/src/core/collection/array/iterator/ArrayIteratorRandom.js +2 -2
  39. package/src/core/collection/array/randomMultipleFromArray.js +2 -2
  40. package/src/core/color/Color.d.ts.map +1 -1
  41. package/src/core/color/Color.js +16 -11
  42. package/src/core/color/hsv/hsv2rgb.js +4 -4
  43. package/src/core/color/hsv/rgb2hsv.d.ts +3 -3
  44. package/src/core/color/hsv/rgb2hsv.d.ts.map +1 -1
  45. package/src/core/color/hsv/rgb2hsv.js +11 -18
  46. package/src/core/color/rgb2uint24.js +4 -4
  47. package/src/core/color/rgb_to_luminance.d.ts +9 -0
  48. package/src/core/color/rgb_to_luminance.d.ts.map +1 -0
  49. package/src/core/color/rgb_to_luminance.js +10 -0
  50. package/src/core/color/sRGB/linear_to_sRGB.d.ts +1 -0
  51. package/src/core/color/sRGB/linear_to_sRGB.d.ts.map +1 -1
  52. package/src/core/color/sRGB/linear_to_sRGB.js +4 -4
  53. package/src/core/geom/3d/aabb/AABB3.d.ts.map +1 -1
  54. package/src/core/geom/3d/aabb/AABB3.js +4 -1
  55. package/src/core/geom/3d/aabb/aabb3_intersects_ray.js +3 -3
  56. package/src/core/geom/3d/shape/UnitSphereShape3D.d.ts.map +1 -1
  57. package/src/core/geom/3d/shape/UnitSphereShape3D.js +14 -14
  58. package/src/core/geom/3d/sphere/harmonics/README.md +16 -2
  59. package/src/core/geom/3d/sphere/harmonics/SH3_COEFFICIENTS.d.ts +6 -0
  60. package/src/core/geom/3d/sphere/harmonics/SH3_COEFFICIENTS.d.ts.map +1 -0
  61. package/src/core/geom/3d/sphere/harmonics/SH3_COEFFICIENTS.js +17 -0
  62. package/src/core/geom/3d/sphere/harmonics/sh3_basis_at.d.ts.map +1 -1
  63. package/src/core/geom/3d/sphere/harmonics/sh3_basis_at.js +21 -9
  64. package/src/core/geom/3d/sphere/harmonics/sh3_dering_optimize_positive.d.ts +3 -3
  65. package/src/core/geom/3d/sphere/harmonics/sh3_dering_optimize_positive.d.ts.map +1 -1
  66. package/src/core/geom/3d/sphere/harmonics/sh3_dering_optimize_positive.js +35 -206
  67. package/src/core/geom/3d/sphere/harmonics/sh3_rotate.d.ts +8 -0
  68. package/src/core/geom/3d/sphere/harmonics/sh3_rotate.d.ts.map +1 -0
  69. package/src/core/geom/3d/sphere/harmonics/sh3_rotate.js +29 -0
  70. package/src/core/geom/3d/sphere/harmonics/sh3_sample_by_direction.js +10 -10
  71. package/src/core/geom/3d/sphere/harmonics/sh_index.d.ts +8 -0
  72. package/src/core/geom/3d/sphere/harmonics/sh_index.d.ts.map +1 -0
  73. package/src/core/geom/3d/sphere/harmonics/sh_index.js +9 -0
  74. package/src/core/geom/3d/sphere/harmonics/sh_rotate_band1.d.ts +8 -0
  75. package/src/core/geom/3d/sphere/harmonics/sh_rotate_band1.d.ts.map +1 -0
  76. package/src/core/geom/3d/sphere/harmonics/sh_rotate_band1.js +44 -0
  77. package/src/core/geom/3d/sphere/harmonics/sh_rotate_band2.d.ts +8 -0
  78. package/src/core/geom/3d/sphere/harmonics/sh_rotate_band2.d.ts.map +1 -0
  79. package/src/core/geom/3d/sphere/harmonics/sh_rotate_band2.js +86 -0
  80. package/src/core/geom/3d/sphere/in_sphere3d_robust.d.ts.map +1 -1
  81. package/src/core/geom/3d/sphere/in_sphere3d_robust.js +2 -1
  82. package/src/core/geom/3d/tetrahedra/TetrahedralMesh.d.ts +20 -1
  83. package/src/core/geom/3d/tetrahedra/TetrahedralMesh.d.ts.map +1 -1
  84. package/src/core/geom/3d/tetrahedra/TetrahedralMesh.js +53 -7
  85. package/src/core/geom/3d/tetrahedra/TetrahedralMesh.spec.js +2 -2
  86. package/src/core/geom/3d/tetrahedra/build_tetrahedral_mesh_buffer_geometry.d.ts +1 -1
  87. package/src/core/geom/3d/tetrahedra/build_tetrahedral_mesh_buffer_geometry.d.ts.map +1 -1
  88. package/src/core/geom/3d/tetrahedra/build_tetrahedral_mesh_buffer_geometry.js +12 -7
  89. package/src/core/geom/3d/tetrahedra/delaunay/tetrahedral_mesh_build_from_grid.d.ts +13 -0
  90. package/src/core/geom/3d/tetrahedra/delaunay/tetrahedral_mesh_build_from_grid.d.ts.map +1 -0
  91. package/src/core/geom/3d/tetrahedra/delaunay/tetrahedral_mesh_build_from_grid.js +135 -0
  92. package/src/core/geom/3d/tetrahedra/prototypeTetrahedraBuilder.js +38 -24
  93. package/src/core/geom/3d/tetrahedra/{compute_circumsphere.d.ts → tetrahedron_compute_circumsphere.d.ts} +3 -5
  94. package/src/core/geom/3d/tetrahedra/tetrahedron_compute_circumsphere.d.ts.map +1 -0
  95. package/src/core/geom/3d/tetrahedra/{compute_circumsphere.js → tetrahedron_compute_circumsphere.js} +2 -4
  96. package/src/core/geom/3d/tetrahedra/tetrahedron_compute_signed_volume.d.ts.map +1 -1
  97. package/src/core/geom/3d/tetrahedra/tetrahedron_compute_signed_volume.js +3 -1
  98. package/src/core/geom/Vector3.d.ts.map +1 -1
  99. package/src/core/geom/Vector3.js +4 -3
  100. package/src/core/geom/mat3/m3_multiply_vec3.d.ts +8 -0
  101. package/src/core/geom/mat3/m3_multiply_vec3.d.ts.map +1 -0
  102. package/src/core/geom/mat3/m3_multiply_vec3.js +21 -0
  103. package/src/core/geom/random/randomPointInSphere.d.ts +1 -1
  104. package/src/core/geom/random/randomPointInSphere.js +2 -2
  105. package/src/core/geom/random/randomPointOnSphere.d.ts +3 -3
  106. package/src/core/geom/random/randomPointOnSphere.d.ts.map +1 -1
  107. package/src/core/geom/random/randomPointOnSphere.js +5 -9
  108. package/src/core/geom/vec2/v2_cross_product.d.ts +15 -0
  109. package/src/core/geom/vec2/v2_cross_product.d.ts.map +1 -0
  110. package/src/core/geom/vec2/v2_cross_product.js +21 -0
  111. package/src/core/geom/vec3/v3_slerp.d.ts +1 -0
  112. package/src/core/geom/vec3/v3_slerp.d.ts.map +1 -1
  113. package/src/core/geom/vec3/v3_slerp.js +1 -0
  114. package/src/core/graph/MultiNode.d.ts +1 -1
  115. package/src/core/graph/MultiNode.js +1 -1
  116. package/src/core/graph/WeightedEdge.d.ts +6 -4
  117. package/src/core/graph/WeightedEdge.d.ts.map +1 -1
  118. package/src/core/graph/WeightedEdge.js +3 -0
  119. package/src/core/graph/coloring/colorizeGraph.js +19 -19
  120. package/src/core/graph/convert_graph_to_dot_string.d.ts +1 -1
  121. package/src/core/graph/convert_graph_to_dot_string.d.ts.map +1 -1
  122. package/src/core/graph/convert_graph_to_dot_string.js +10 -6
  123. package/src/core/graph/graph_compute_adjacency_matrix.d.ts +9 -0
  124. package/src/core/graph/graph_compute_adjacency_matrix.d.ts.map +1 -0
  125. package/src/core/graph/{graph_adjacency_matrix.js → graph_compute_adjacency_matrix.js} +1 -2
  126. package/src/core/graph/graph_compute_degree_matrix.d.ts +10 -0
  127. package/src/core/graph/graph_compute_degree_matrix.d.ts.map +1 -0
  128. package/src/core/graph/graph_compute_degree_matrix.js +23 -0
  129. package/src/core/graph/graph_compute_distance_matrix.d.ts +13 -0
  130. package/src/core/graph/graph_compute_distance_matrix.d.ts.map +1 -0
  131. package/src/core/graph/graph_compute_distance_matrix.js +103 -0
  132. package/src/core/graph/{graph_laplacian_matrix.d.ts → graph_compute_laplacian_matrix.d.ts} +2 -2
  133. package/src/core/graph/graph_compute_laplacian_matrix.d.ts.map +1 -0
  134. package/src/core/graph/{graph_laplacian_matrix.js → graph_compute_laplacian_matrix.js} +6 -6
  135. package/src/core/graph/graph_k_means_cluster.d.ts.map +1 -1
  136. package/src/core/graph/graph_k_means_cluster.js +4 -119
  137. package/src/core/graph/{coarsen_graph.d.ts → mn_graph_coarsen.d.ts} +2 -2
  138. package/src/core/graph/mn_graph_coarsen.d.ts.map +1 -0
  139. package/src/core/graph/{coarsen_graph.js → mn_graph_coarsen.js} +1 -1
  140. package/src/core/graph/mn_graph_coarsen.spec.d.ts +2 -0
  141. package/src/core/graph/mn_graph_coarsen.spec.d.ts.map +1 -0
  142. package/src/core/graph/{coarsen_graph.spec.js → mn_graph_coarsen.spec.js} +4 -4
  143. package/src/core/graph/mn_graph_collapse_weighted_edge.d.ts +1 -0
  144. package/src/core/graph/mn_graph_collapse_weighted_edge.d.ts.map +1 -1
  145. package/src/core/graph/mn_graph_collapse_weighted_edge.js +7 -1
  146. package/src/core/math/physics/brdf/brdf_burley.d.ts.map +1 -1
  147. package/src/core/math/physics/brdf/brdf_burley.js +9 -1
  148. package/src/core/math/physics/brdf/{D_GGX.d.ts → diffuse_GGX.d.ts} +2 -2
  149. package/src/core/math/physics/brdf/diffuse_GGX.d.ts.map +1 -0
  150. package/src/core/math/physics/brdf/{D_GGX.js → diffuse_GGX.js} +1 -1
  151. package/src/core/math/physics/brdf/fresnel_Schlick.d.ts +3 -0
  152. package/src/core/math/physics/brdf/fresnel_Schlick.d.ts.map +1 -0
  153. package/src/core/math/physics/brdf/fresnel_Schlick.js +3 -0
  154. package/src/core/math/physics/brdf/fresnel_Schlick_optimized.d.ts +9 -0
  155. package/src/core/math/physics/brdf/fresnel_Schlick_optimized.d.ts.map +1 -0
  156. package/src/core/math/physics/brdf/fresnel_Schlick_optimized.js +12 -0
  157. package/src/core/math/physics/brdf/fresnel_Schlick_original.d.ts +9 -0
  158. package/src/core/math/physics/brdf/fresnel_Schlick_original.d.ts.map +1 -0
  159. package/src/core/math/physics/brdf/fresnel_Schlick_original.js +10 -0
  160. package/src/core/math/physics/bsdf/bsdf_schlick.d.ts.map +1 -1
  161. package/src/core/math/physics/bsdf/bsdf_schlick.js +3 -11
  162. package/src/core/math/physics/ior_to_reflectivity.d.ts +7 -0
  163. package/src/core/math/physics/ior_to_reflectivity.d.ts.map +1 -0
  164. package/src/core/math/physics/ior_to_reflectivity.js +9 -0
  165. package/src/core/math/physics/pdf/README.md +1 -0
  166. package/src/core/math/physics/pdf/pdf_GGX.d.ts +16 -0
  167. package/src/core/math/physics/pdf/pdf_GGX.d.ts.map +1 -0
  168. package/src/core/math/physics/pdf/pdf_GGX.js +25 -0
  169. package/src/core/math/physics/reflectivity_to_ior.d.ts +7 -0
  170. package/src/core/math/physics/reflectivity_to_ior.d.ts.map +1 -0
  171. package/src/core/math/physics/reflectivity_to_ior.js +8 -0
  172. package/src/core/process/task/util/randomCountTask.js +3 -3
  173. package/src/core/process/worker/WorkerBuilder.d.ts.map +1 -1
  174. package/src/core/process/worker/WorkerBuilder.js +5 -35
  175. package/src/engine/EngineHarness.d.ts +10 -1
  176. package/src/engine/EngineHarness.d.ts.map +1 -1
  177. package/src/engine/EngineHarness.js +22 -11
  178. package/src/engine/asset/loaders/ArrayBufferLoader.d.ts.map +1 -1
  179. package/src/engine/asset/loaders/ArrayBufferLoader.js +17 -10
  180. package/src/engine/asset/loaders/image/png/PNGReader.d.ts +25 -11
  181. package/src/engine/asset/loaders/image/png/PNGReader.d.ts.map +1 -1
  182. package/src/engine/asset/loaders/image/png/PNGReader.js +38 -24
  183. package/src/engine/asset/loaders/material/TextureAttachmensByMaterialType.d.ts.map +1 -1
  184. package/src/engine/asset/loaders/material/TextureAttachmensByMaterialType.js +5 -0
  185. package/src/engine/ecs/terrain/overlay/TerrainOverlay.js +4 -4
  186. package/src/engine/graphics/GraphicsEngine.js +1 -1
  187. package/src/engine/graphics/ecs/camera/topdown/TopDownCameraController.d.ts.map +1 -1
  188. package/src/engine/graphics/ecs/camera/topdown/TopDownCameraController.js +4 -0
  189. package/src/engine/graphics/ecs/light/LightSystem.d.ts.map +1 -1
  190. package/src/engine/graphics/ecs/light/LightSystem.js +2 -3
  191. package/src/engine/graphics/ecs/light/binding/three/ThreeLightBinding.d.ts +6 -0
  192. package/src/engine/graphics/ecs/light/binding/three/ThreeLightBinding.d.ts.map +1 -1
  193. package/src/engine/graphics/ecs/light/binding/three/ThreeLightBinding.js +22 -11
  194. package/src/engine/graphics/ecs/sprite/SpriteSystemPE.d.ts.map +1 -1
  195. package/src/engine/graphics/ecs/sprite/SpriteSystemPE.js +7 -7
  196. package/src/engine/graphics/impostors/octahedral/bake/prepare_bake_material.js +3 -3
  197. package/src/engine/graphics/render/forward_plus/model/DirectionalLight.d.ts.map +1 -1
  198. package/src/engine/graphics/render/forward_plus/model/DirectionalLight.js +25 -25
  199. package/src/engine/graphics/sh3/SH3VisualisationMaterial.d.ts.map +1 -1
  200. package/src/engine/graphics/sh3/SH3VisualisationMaterial.js +9 -6
  201. package/src/engine/graphics/sh3/fromCubeRenderTarget.d.ts +9 -0
  202. package/src/engine/graphics/sh3/fromCubeRenderTarget.d.ts.map +1 -0
  203. package/src/engine/graphics/sh3/fromCubeRenderTarget.js +145 -0
  204. package/src/engine/graphics/sh3/gi/tetrahedral_mesh_to_texture.d.ts +8 -0
  205. package/src/engine/graphics/sh3/gi/tetrahedral_mesh_to_texture.d.ts.map +1 -0
  206. package/src/engine/graphics/sh3/gi/tetrahedral_mesh_to_texture.js +51 -0
  207. package/src/engine/graphics/sh3/{LightProbeVolume.d.ts → lpv/LightProbeVolume.d.ts} +18 -7
  208. package/src/engine/graphics/sh3/lpv/LightProbeVolume.d.ts.map +1 -0
  209. package/src/engine/graphics/sh3/lpv/LightProbeVolume.js +340 -0
  210. package/src/engine/graphics/sh3/lpv/LightProbeVolumeSerializationAdapter.d.ts +18 -0
  211. package/src/engine/graphics/sh3/lpv/LightProbeVolumeSerializationAdapter.d.ts.map +1 -0
  212. package/src/engine/graphics/sh3/lpv/LightProbeVolumeSerializationAdapter.js +44 -0
  213. package/src/engine/graphics/sh3/lpv/PathTracerProbeRenderer.d.ts +12 -0
  214. package/src/engine/graphics/sh3/lpv/PathTracerProbeRenderer.d.ts.map +1 -0
  215. package/src/engine/graphics/sh3/lpv/PathTracerProbeRenderer.js +122 -0
  216. package/src/engine/graphics/sh3/lpv/ProbeRenderer.d.ts +29 -0
  217. package/src/engine/graphics/sh3/lpv/ProbeRenderer.d.ts.map +1 -0
  218. package/src/engine/graphics/sh3/lpv/ProbeRenderer.js +35 -0
  219. package/src/engine/graphics/sh3/lpv/WebGLCubeProbeRenderer.d.ts +27 -0
  220. package/src/engine/graphics/sh3/lpv/WebGLCubeProbeRenderer.d.ts.map +1 -0
  221. package/src/engine/graphics/sh3/lpv/WebGLCubeProbeRenderer.js +158 -0
  222. package/src/engine/graphics/sh3/lpv/build_probes_for_scene.d.ts +11 -0
  223. package/src/engine/graphics/sh3/lpv/build_probes_for_scene.d.ts.map +1 -0
  224. package/src/engine/graphics/sh3/lpv/build_probes_for_scene.js +127 -0
  225. package/src/engine/graphics/sh3/lpv/probe_volume_to_textures.d.ts +12 -0
  226. package/src/engine/graphics/sh3/lpv/probe_volume_to_textures.d.ts.map +1 -0
  227. package/src/engine/graphics/sh3/lpv/probe_volume_to_textures.js +89 -0
  228. package/src/engine/graphics/sh3/path_tracer/PathTracedScene.d.ts +90 -0
  229. package/src/engine/graphics/sh3/path_tracer/PathTracedScene.d.ts.map +1 -0
  230. package/src/engine/graphics/sh3/path_tracer/PathTracedScene.js +352 -0
  231. package/src/engine/graphics/sh3/path_tracer/PathTracer.d.ts +5 -91
  232. package/src/engine/graphics/sh3/path_tracer/PathTracer.d.ts.map +1 -1
  233. package/src/engine/graphics/sh3/path_tracer/PathTracer.js +41 -477
  234. package/src/engine/graphics/sh3/path_tracer/make_one_vector3.d.ts +1 -0
  235. package/src/engine/graphics/sh3/path_tracer/make_one_vector3.d.ts.map +1 -1
  236. package/src/engine/graphics/sh3/path_tracer/make_one_vector3.js +6 -3
  237. package/src/engine/graphics/sh3/path_tracer/prototypePathTracer.js +38 -62
  238. package/src/engine/graphics/sh3/path_tracer/random_in_hemisphere.d.ts.map +1 -1
  239. package/src/engine/graphics/sh3/path_tracer/random_in_hemisphere.js +7 -1
  240. package/src/engine/graphics/sh3/path_tracer/sample_triangle_attribute.d.ts +2 -2
  241. package/src/engine/graphics/sh3/path_tracer/sample_triangle_attribute.d.ts.map +1 -1
  242. package/src/engine/graphics/sh3/path_tracer/sample_triangle_attribute.js +1 -1
  243. package/src/engine/graphics/sh3/path_tracer/sampling/generate_stratified_samples.d.ts +10 -0
  244. package/src/engine/graphics/sh3/path_tracer/sampling/generate_stratified_samples.d.ts.map +1 -0
  245. package/src/engine/graphics/sh3/path_tracer/sampling/generate_stratified_samples.js +20 -0
  246. package/src/engine/graphics/sh3/path_tracer/sampling/generate_stratified_samples_2d.d.ts +10 -0
  247. package/src/engine/graphics/sh3/path_tracer/sampling/generate_stratified_samples_2d.d.ts.map +1 -0
  248. package/src/engine/graphics/sh3/path_tracer/sampling/generate_stratified_samples_2d.js +31 -0
  249. package/src/engine/graphics/sh3/path_tracer/sampling/make_stratified_sample.d.ts +9 -0
  250. package/src/engine/graphics/sh3/path_tracer/sampling/make_stratified_sample.d.ts.map +1 -0
  251. package/src/engine/graphics/sh3/path_tracer/sampling/make_stratified_sample.js +21 -0
  252. package/src/engine/graphics/sh3/path_tracer/texture/SoftwareTextureCache.d.ts +3 -0
  253. package/src/engine/graphics/sh3/path_tracer/texture/SoftwareTextureCache.d.ts.map +1 -0
  254. package/src/engine/graphics/sh3/path_tracer/texture/SoftwareTextureCache.js +3 -0
  255. package/src/engine/graphics/sh3/path_tracer/texture/apply_texture_clamping_to_coordinate.d.ts.map +1 -0
  256. package/src/engine/graphics/sh3/path_tracer/{apply_texture_clamping_to_coordinate.js → texture/apply_texture_clamping_to_coordinate.js} +2 -2
  257. package/src/engine/graphics/sh3/path_tracer/texture/sample_material.d.ts +11 -0
  258. package/src/engine/graphics/sh3/path_tracer/texture/sample_material.d.ts.map +1 -0
  259. package/src/engine/graphics/sh3/path_tracer/texture/sample_material.js +86 -0
  260. package/src/engine/graphics/sh3/path_tracer/texture/sample_texture.d.ts +10 -0
  261. package/src/engine/graphics/sh3/path_tracer/texture/sample_texture.d.ts.map +1 -0
  262. package/src/engine/graphics/sh3/path_tracer/texture/sample_texture.js +55 -0
  263. package/src/engine/graphics/sh3/path_tracer/vec3_uint8_to_float.js +4 -4
  264. package/src/engine/graphics/sh3/prototypeSH3Probe.js +145 -185
  265. package/src/engine/graphics/sh3/sky/hosek/sky_hosek_compute_irradiance_by_direction.d.ts +5 -5
  266. package/src/engine/graphics/sh3/sky/hosek/sky_hosek_compute_irradiance_by_direction.d.ts.map +1 -1
  267. package/src/engine/graphics/sh3/sky/hosek/sky_hosek_compute_irradiance_by_direction.js +8 -8
  268. package/src/engine/graphics/sh3/visualise_spherical_harmonic_sphere.d.ts +13 -0
  269. package/src/engine/graphics/sh3/visualise_spherical_harmonic_sphere.d.ts.map +1 -0
  270. package/src/engine/graphics/sh3/visualise_spherical_harmonic_sphere.js +54 -0
  271. package/src/engine/graphics/texture/AttributeDataTexture.d.ts +2 -2
  272. package/src/engine/graphics/texture/AttributeDataTexture.d.ts.map +1 -1
  273. package/src/engine/graphics/texture/AttributeDataTexture.js +11 -11
  274. package/src/engine/graphics/texture/sampler/Sampler2D.d.ts.map +1 -1
  275. package/src/engine/graphics/texture/sampler/Sampler2D.js +2 -2
  276. package/src/engine/input/ecs/systems/InputControllerSystem.js +1 -1
  277. package/src/engine/network/convertPathToURL.d.ts +3 -1
  278. package/src/engine/network/convertPathToURL.d.ts.map +1 -1
  279. package/src/engine/network/convertPathToURL.js +68 -51
  280. package/src/engine/physics/fluid/SliceVisualiser.d.ts.map +1 -1
  281. package/src/engine/physics/fluid/SliceVisualiser.js +4 -4
  282. package/src/generation/filtering/numeric/CellFilterCache.d.ts.map +1 -1
  283. package/src/generation/filtering/numeric/CellFilterCache.js +1 -0
  284. package/src/view/elements/ColorPickerView.d.ts.map +1 -1
  285. package/src/view/elements/ColorPickerView.js +7 -7
  286. package/src/core/binary/float2uint8.d.ts +0 -7
  287. package/src/core/binary/float2uint8.d.ts.map +0 -1
  288. package/src/core/binary/uint82float.d.ts +0 -7
  289. package/src/core/binary/uint82float.d.ts.map +0 -1
  290. package/src/core/binary/uint82float.spec.d.ts +0 -2
  291. package/src/core/binary/uint82float.spec.d.ts.map +0 -1
  292. package/src/core/binary/uint82float.spec.js +0 -7
  293. package/src/core/collection/array/randomizeArrayElementOrder.d.ts +0 -8
  294. package/src/core/collection/array/randomizeArrayElementOrder.d.ts.map +0 -1
  295. package/src/core/collection/array/randomizeArrayElementOrder.js +0 -24
  296. package/src/core/collection/array/randomizeArrayElementOrder.spec.d.ts +0 -2
  297. package/src/core/collection/array/randomizeArrayElementOrder.spec.d.ts.map +0 -1
  298. package/src/core/geom/3d/tetrahedra/compute_circumsphere.d.ts.map +0 -1
  299. package/src/core/graph/coarsen_graph.d.ts.map +0 -1
  300. package/src/core/graph/coarsen_graph.spec.d.ts +0 -2
  301. package/src/core/graph/coarsen_graph.spec.d.ts.map +0 -1
  302. package/src/core/graph/graph_adjacency_matrix.d.ts +0 -9
  303. package/src/core/graph/graph_adjacency_matrix.d.ts.map +0 -1
  304. package/src/core/graph/graph_degree_matrix.d.ts +0 -9
  305. package/src/core/graph/graph_degree_matrix.d.ts.map +0 -1
  306. package/src/core/graph/graph_degree_matrix.js +0 -18
  307. package/src/core/graph/graph_laplacian_matrix.d.ts.map +0 -1
  308. package/src/core/math/physics/brdf/D_GGX.d.ts.map +0 -1
  309. package/src/engine/graphics/sh3/LightProbeVolume.d.ts.map +0 -1
  310. package/src/engine/graphics/sh3/LightProbeVolume.js +0 -609
  311. package/src/engine/graphics/sh3/path_tracer/apply_texture_clamping_to_coordinate.d.ts.map +0 -1
  312. package/src/engine/graphics/sh3/visualise_probe.d.ts +0 -12
  313. package/src/engine/graphics/sh3/visualise_probe.d.ts.map +0 -1
  314. package/src/engine/graphics/sh3/visualise_probe.js +0 -40
  315. /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,13 +1,13 @@
1
+ import { uint8_to_float } from "../../../src/core/binary/uint8_to_float.js";
2
+ import { QuadTreeNode } from "../../../src/core/geom/2d/quad-tree/QuadTreeNode.js";
1
3
  import { clamp } from "../../../src/core/math/clamp.js";
2
4
  import { inverseLerp } from "../../../src/core/math/inverseLerp.js";
3
5
  import { lerp } from "../../../src/core/math/lerp.js";
4
- import { TerrainPaintTool } from "./TerrainPaintTool.js";
5
- import { PatchTerrainHeightAction } from "../../actions/concrete/PatchTerrainHeightAction.js";
6
- import { QuadTreeNode } from "../../../src/core/geom/2d/quad-tree/QuadTreeNode.js";
7
6
  import { Transform } from "../../../src/engine/ecs/transform/Transform.js";
7
+ import { PatchTerrainHeightAction } from "../../actions/concrete/PatchTerrainHeightAction.js";
8
8
  import TransformModifyAction from "../../actions/concrete/TransformModifyAction.js";
9
9
  import EditorEntity from "../../ecs/EditorEntity.js";
10
- import { uint82float } from "../../../src/core/binary/uint82float.js";
10
+ import { TerrainPaintTool } from "./TerrainPaintTool.js";
11
11
 
12
12
  const LIMIT_VALUE = 1000;
13
13
 
@@ -56,7 +56,7 @@ function make_mod_action(terrain, uv_x0, uv_y0, uv_x1, uv_y1, marker, value_delt
56
56
  //Get alpha
57
57
  const markerValue = marker.sampleChannelBilinearUV(u, v, 3);
58
58
 
59
- const marker_value_normalized = uint82float(markerValue);
59
+ const marker_value_normalized = uint8_to_float(markerValue);
60
60
 
61
61
  const source_address = y * heightMap.width + x;
62
62
 
package/package.json CHANGED
@@ -5,7 +5,7 @@
5
5
  "description": "Fully featured ECS game engine written in JavaScript",
6
6
  "type": "module",
7
7
  "author": "Alexander Goldring",
8
- "version": "2.107.0",
8
+ "version": "2.108.2",
9
9
  "main": "build/meep.module.js",
10
10
  "module": "build/meep.module.js",
11
11
  "exports": {
@@ -0,0 +1,7 @@
1
+ /**
2
+ *
3
+ * @param {number} v
4
+ * @returns {number}
5
+ */
6
+ export function float_to_uint8(v: number): number;
7
+ //# sourceMappingURL=float_to_uint8.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"float_to_uint8.d.ts","sourceRoot":"","sources":["../../../../src/core/binary/float_to_uint8.js"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,kCAHW,MAAM,GACJ,MAAM,CAIlB"}
@@ -3,6 +3,6 @@
3
3
  * @param {number} v
4
4
  * @returns {number}
5
5
  */
6
- export function float2uint8(v) {
6
+ export function float_to_uint8(v) {
7
7
  return Math.round(v * 255);
8
8
  }
@@ -3,8 +3,9 @@
3
3
  * @see https://stackoverflow.com/questions/9939760/how-do-i-convert-an-integer-to-binary-in-javascript
4
4
  * @example 1024 -> "00000000 00000000 00000100 00000000"
5
5
  * @example -1 -> "11111111 11111111 11111111 11111111"
6
- * @param {number} nMask
6
+ * @param {number} input_value
7
+ * @param {string} [byte_separator] insert this string between each group of 8 bits
7
8
  * @returns {string}
8
9
  */
9
- export function int32_to_binary_string(nMask: number): string;
10
+ export function int32_to_binary_string(input_value: number, byte_separator?: string): string;
10
11
  //# sourceMappingURL=int32_to_binary_string.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"int32_to_binary_string.d.ts","sourceRoot":"","sources":["../../../../src/core/binary/int32_to_binary_string.js"],"names":[],"mappings":"AAgBA;;;;;;;GAOG;AACH,8CAHW,MAAM,GACJ,MAAM,CAuBlB"}
1
+ {"version":3,"file":"int32_to_binary_string.d.ts","sourceRoot":"","sources":["../../../../src/core/binary/int32_to_binary_string.js"],"names":[],"mappings":"AAcA;;;;;;;;GAQG;AACH,oDAJW,MAAM,mBACN,MAAM,GACJ,MAAM,CA4BlB"}
@@ -1,7 +1,5 @@
1
1
  import { assert } from "../assert.js";
2
2
 
3
- const RX = /\B(?=(.{8})+(?!.))/g;
4
-
5
3
  /**
6
4
  * 2147483647
7
5
  * @type {number}
@@ -19,28 +17,34 @@ const MIN_VALUE = -1 * (2 ** 31);
19
17
  * @see https://stackoverflow.com/questions/9939760/how-do-i-convert-an-integer-to-binary-in-javascript
20
18
  * @example 1024 -> "00000000 00000000 00000100 00000000"
21
19
  * @example -1 -> "11111111 11111111 11111111 11111111"
22
- * @param {number} nMask
20
+ * @param {number} input_value
21
+ * @param {string} [byte_separator] insert this string between each group of 8 bits
23
22
  * @returns {string}
24
23
  */
25
- export function int32_to_binary_string(nMask) {
24
+ export function int32_to_binary_string(input_value, byte_separator = " ") {
26
25
  // nMask must be between -2147483648 and 2147483647
27
- if (nMask > MAX_VALUE) {
26
+ if (input_value > MAX_VALUE) {
28
27
  throw "number too large. number shouldn't be > 2**31-1";//added
29
28
  }
30
- if (nMask < MIN_VALUE) {
29
+ if (input_value < MIN_VALUE) {
31
30
  throw "number too far negative, number shouldn't be < 2**31"//added
32
31
  }
33
32
 
34
- assert.isInteger(nMask, 'nMask');
33
+ assert.isInteger(input_value, 'input_value');
35
34
 
36
- let nFlag = 0, nShifted = nMask, sMask = '';
35
+ let result = '';
37
36
 
38
- for (; nFlag < 32;
39
- nFlag++, sMask += String(nShifted >>> 31), nShifted <<= 1
40
- ) {
41
- }
37
+ for (let bit_index = 0; bit_index < 32; bit_index++) {
38
+
39
+ if (bit_index > 0 && bit_index % 8 === 0) {
40
+ result += byte_separator;
41
+ }
42
42
 
43
- sMask = sMask.replace(RX, " ") // added
43
+ const bit_value = (input_value << bit_index) >>> 31;
44
+
45
+ result += String(bit_value);
46
+
47
+ }
44
48
 
45
- return sMask;
49
+ return result;
46
50
  }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=split_by_3.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"split_by_3.spec.d.ts","sourceRoot":"","sources":["../../../../src/core/binary/split_by_3.spec.js"],"names":[],"mappings":""}
@@ -0,0 +1,22 @@
1
+ import { int32_to_binary_string } from "./int32_to_binary_string.js";
2
+ import { split_by_3 } from "./split_by_3.js";
3
+
4
+ test("zero", () => {
5
+
6
+ expect(split_by_3(0)).toEqual(0);
7
+
8
+ });
9
+
10
+ test("max value", () => {
11
+
12
+ expect(
13
+ int32_to_binary_string(split_by_3(0xFFFFFFFF))
14
+ ).toEqual("00001001 00100100 10010010 01001001");
15
+
16
+ });
17
+
18
+ test("max 10bit value",()=>{
19
+ expect(
20
+ int32_to_binary_string(split_by_3(0b1111111111))
21
+ ).toEqual("00001001 00100100 10010010 01001001");
22
+ });
@@ -1 +1 @@
1
- {"version":3,"file":"to_half_float_uint16.d.ts","sourceRoot":"","sources":["../../../../src/core/binary/to_half_float_uint16.js"],"names":[],"mappings":"AAGA;;;;;GAKG;AACH,0CAHW,MAAM,GACJ,MAAM,CAyDlB"}
1
+ {"version":3,"file":"to_half_float_uint16.d.ts","sourceRoot":"","sources":["../../../../src/core/binary/to_half_float_uint16.js"],"names":[],"mappings":"AAGA;;;;;GAKG;AACH,0CAHW,MAAM,GACJ,MAAM,CA2DlB"}
@@ -20,9 +20,10 @@ export function to_half_float_uint16(val) {
20
20
 
21
21
  // Source: http://gamedev.stackexchange.com/questions/17326/conversion-of-a-number-from-single-precision-floating-point-representation-to-a/17410#17410
22
22
 
23
- /* This method is faster than the OpenEXR implementation (very often
24
- * used, eg. in Ogre), with the additional benefit of rounding, inspired
25
- * by James Tursa?s half-precision code. */
23
+ /*
24
+ This method is faster than the OpenEXR implementation (very often used, eg. in Ogre),
25
+ with the additional benefit of rounding, inspired by James Tursa's half-precision code.
26
+ */
26
27
 
27
28
  _floatView[0] = _val;
28
29
  const x = _int32View[0];
@@ -58,8 +59,9 @@ export function to_half_float_uint16(val) {
58
59
  }
59
60
 
60
61
  bits |= ((e - 112) << 10) | (m >> 1);
61
- /* Extra rounding. An overflow will set mantissa to 0 and increment
62
- * the exponent, which is OK. */
62
+
63
+ /* Extra rounding. An overflow will set mantissa to 0 and increment the exponent, which is OK. */
64
+
63
65
  bits += m & 1;
64
66
  return bits;
65
67
  }
@@ -0,0 +1,7 @@
1
+ /**
2
+ *
3
+ * @param {number} v
4
+ * @returns {number}
5
+ */
6
+ export function uint8_to_float(v: number): number;
7
+ //# sourceMappingURL=uint8_to_float.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uint8_to_float.d.ts","sourceRoot":"","sources":["../../../../src/core/binary/uint8_to_float.js"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,kCAHW,MAAM,GACJ,MAAM,CAIlB"}
@@ -3,6 +3,6 @@
3
3
  * @param {number} v
4
4
  * @returns {number}
5
5
  */
6
- export function uint82float(v) {
6
+ export function uint8_to_float(v) {
7
7
  return v / 255;
8
8
  }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=uint8_to_float.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uint8_to_float.spec.d.ts","sourceRoot":"","sources":["../../../../src/core/binary/uint8_to_float.spec.js"],"names":[],"mappings":""}
@@ -0,0 +1,7 @@
1
+ import { uint8_to_float } from "./uint8_to_float.js";
2
+
3
+ test("correctness", () => {
4
+ expect(uint8_to_float(0)).toBe(0);
5
+ expect(uint8_to_float(1)).toBeCloseTo(1 / 255);
6
+ expect(uint8_to_float(255)).toBe(1);
7
+ });
@@ -0,0 +1,8 @@
1
+ /**
2
+ *
3
+ * @param {string} code
4
+ * @param {string} [mime_type]
5
+ * @return {Blob}
6
+ */
7
+ export function codeToBlob(code: string, mime_type?: string): Blob;
8
+ //# sourceMappingURL=codeToBlob.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codeToBlob.d.ts","sourceRoot":"","sources":["../../../../src/core/codegen/codeToBlob.js"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,iCAJW,MAAM,cACN,MAAM,GACL,IAAI,CA6Bf"}
@@ -0,0 +1,36 @@
1
+ import { assert } from "../assert.js";
2
+
3
+ /**
4
+ *
5
+ * @param {string} code
6
+ * @param {string} [mime_type]
7
+ * @return {Blob}
8
+ */
9
+ export function codeToBlob(code, mime_type = 'application/javascript') {
10
+ assert.isString(code, 'code');
11
+ assert.isString(mime_type, 'mime_type');
12
+
13
+ let blob;
14
+
15
+ if (typeof globalThis.Blob !== "undefined") {
16
+ blob = new Blob([code], { type: mime_type });
17
+ } else {
18
+ // Backwards-compatibility
19
+ const BlobBuilder = globalThis.BlobBuilder
20
+ || globalThis.BlobBuilder
21
+ || globalThis.WebKitBlobBuilder
22
+ || globalThis.MozBlobBuilder;
23
+
24
+ if (BlobBuilder !== undefined) {
25
+ blob = new BlobBuilder();
26
+ blob.append(code);
27
+ blob = blob.getBlob();
28
+ } else {
29
+ throw new Error(`No BlobBuilder interface supported in current context`);
30
+ }
31
+
32
+ }
33
+
34
+
35
+ return blob;
36
+ }
@@ -0,0 +1,8 @@
1
+ /**
2
+ *
3
+ * @param {string} code
4
+ * @param {string} [mime_type]
5
+ * @return {string}
6
+ */
7
+ export function codeToURL(code: string, mime_type?: string): string;
8
+ //# sourceMappingURL=codeToURL.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codeToURL.d.ts","sourceRoot":"","sources":["../../../../src/core/codegen/codeToURL.js"],"names":[],"mappings":"AAGA;;;;;GAKG;AACH,gCAJW,MAAM,cACN,MAAM,GACL,MAAM,CAcjB"}
@@ -0,0 +1,22 @@
1
+ import { assert } from "../assert.js";
2
+ import { codeToBlob } from "./codeToBlob.js";
3
+
4
+ /**
5
+ *
6
+ * @param {string} code
7
+ * @param {string} [mime_type]
8
+ * @return {string}
9
+ */
10
+ export function codeToURL(code, mime_type = 'application/javascript') {
11
+ assert.isString(code, 'code');
12
+ assert.isString(mime_type, 'mime_type');
13
+
14
+ const blob = codeToBlob(code, mime_type);
15
+
16
+ if (blob !== undefined && URL.createObjectURL !== undefined) {
17
+ return URL.createObjectURL(blob);
18
+ } else {
19
+ // build data URL in a slowest way possible
20
+ return `data:${mime_type},${encodeURIComponent(code)}`;
21
+ }
22
+ }
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Randomly re-orders items in-place
3
+ * @template T
4
+ * @param {function} random
5
+ * @param {T[]} array
6
+ */
7
+ export function array_shuffle<T>(random: Function, array: T[]): void;
8
+ //# sourceMappingURL=array_shuffle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"array_shuffle.d.ts","sourceRoot":"","sources":["../../../../../src/core/collection/array/array_shuffle.js"],"names":[],"mappings":"AAGA;;;;;GAKG;AACH,qEAYC"}
@@ -0,0 +1,22 @@
1
+ import { randomIntegerBetween } from "../../math/random/randomIntegerBetween.js";
2
+ import { array_swap_one } from "./array_swap_one.js";
3
+
4
+ /**
5
+ * Randomly re-orders items in-place
6
+ * @template T
7
+ * @param {function} random
8
+ * @param {T[]} array
9
+ */
10
+ export function array_shuffle(random, array) {
11
+ const n = array.length;
12
+
13
+ for (let source_index = 0; source_index < n; source_index++) {
14
+ const target_index = randomIntegerBetween(random, 0, n - (source_index + 1));
15
+
16
+ if (target_index === source_index) {
17
+ continue;
18
+ }
19
+
20
+ array_swap_one(array, source_index, target_index);
21
+ }
22
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=array_shuffle.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"array_shuffle.spec.d.ts","sourceRoot":"","sources":["../../../../../src/core/collection/array/array_shuffle.spec.js"],"names":[],"mappings":""}
@@ -1,4 +1,4 @@
1
- import { randomizeArrayElementOrder } from "./randomizeArrayElementOrder.js";
1
+ import { array_shuffle } from "./array_shuffle.js";
2
2
 
3
3
  test("sanity", () => {
4
4
 
@@ -6,19 +6,19 @@ test("sanity", () => {
6
6
 
7
7
  const a = [];
8
8
 
9
- randomizeArrayElementOrder(random, a);
9
+ array_shuffle(random, a);
10
10
 
11
11
  expect(a).toEqual([]);
12
12
 
13
13
  const b = [1];
14
14
 
15
- randomizeArrayElementOrder(random, b);
15
+ array_shuffle(random, b);
16
16
 
17
17
  expect(b).toEqual([1]);
18
18
 
19
19
  const c = [1, 2, 3];
20
20
 
21
- randomizeArrayElementOrder(random, c);
21
+ array_shuffle(random, c);
22
22
 
23
23
  expect(c.length).toBe(3);
24
24
  expect(c).toContain(1);
@@ -1 +1 @@
1
- {"version":3,"file":"isArrayEqualStrict.d.ts","sourceRoot":"","sources":["../../../../../src/core/collection/array/isArrayEqualStrict.js"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,wDAFa,OAAO,CAsBnB"}
1
+ {"version":3,"file":"isArrayEqualStrict.d.ts","sourceRoot":"","sources":["../../../../../src/core/collection/array/isArrayEqualStrict.js"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,sCAJW,QAAM,UAAU,KAChB,QAAM,UAAU,GACd,OAAO,CAsBnB"}
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  *
3
- * @param {Array} a
4
- * @param {Array} b
3
+ * @param {Array|Uint8Array} a
4
+ * @param {Array|Uint8Array} b
5
5
  * @returns {boolean}
6
6
  */
7
7
  export function isArrayEqualStrict(a, b) {
@@ -1,5 +1,5 @@
1
1
  import { seededRandom } from "../../../math/random/seededRandom.js";
2
- import { randomizeArrayElementOrder } from "../randomizeArrayElementOrder.js";
2
+ import { array_shuffle } from "../array_shuffle.js";
3
3
  import { AbstractArrayIterator } from "./AbstractArrayIterator.js";
4
4
 
5
5
  export class ArrayIteratorRandom extends AbstractArrayIterator {
@@ -29,7 +29,7 @@ export class ArrayIteratorRandom extends AbstractArrayIterator {
29
29
  this.__sequence[i] = i;
30
30
  }
31
31
 
32
- randomizeArrayElementOrder(this.__random, this.__sequence);
32
+ array_shuffle(this.__random, this.__sequence);
33
33
 
34
34
  this.__i = 0;
35
35
  }
@@ -1,5 +1,5 @@
1
- import { randomizeArrayElementOrder } from "./randomizeArrayElementOrder.js";
2
1
  import { min2 } from "../../math/min2.js";
2
+ import { array_shuffle } from "./array_shuffle.js";
3
3
 
4
4
  /**
5
5
  * Pick multiple random items from an array
@@ -20,7 +20,7 @@ export function randomMultipleFromArray(random, source, target, count) {
20
20
  order[i] = i;
21
21
  }
22
22
 
23
- randomizeArrayElementOrder(random, order);
23
+ array_shuffle(random, order);
24
24
 
25
25
  const target_length = min2(source_length, count);
26
26
 
@@ -1 +1 @@
1
- {"version":3,"file":"Color.d.ts","sourceRoot":"","sources":["../../../../src/core/color/Color.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Color.d.ts","sourceRoot":"","sources":["../../../../src/core/color/Color.js"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { assert } from "../assert.js";
2
- import { float2uint8 } from "../binary/float2uint8.js";
3
- import { uint82float } from "../binary/uint82float.js";
2
+ import { float_to_uint8 } from "../binary/float_to_uint8.js";
3
+ import { uint8_to_float } from "../binary/uint8_to_float.js";
4
4
  import Signal from "../events/signal/Signal.js";
5
5
  import { clamp01 } from "../math/clamp01.js";
6
6
  import { lerp } from "../math/lerp.js";
@@ -11,6 +11,7 @@ import { rgb2hex } from "./hex/rgb2hex.js";
11
11
  import { rgb2hsv } from "./hsv/rgb2hsv.js";
12
12
  import { parse_color } from "./parse_color.js";
13
13
  import { rgb2uint24 } from "./rgb2uint24.js";
14
+ import { rgb_to_luminance } from "./rgb_to_luminance.js";
14
15
  import { linear_to_sRGB } from "./sRGB/linear_to_sRGB.js";
15
16
  import { sRGB_to_linear } from "./sRGB/sRGB_to_linear.js";
16
17
 
@@ -151,9 +152,9 @@ export class Color {
151
152
  */
152
153
  setRGBUint8(r, g, b) {
153
154
  this.setRGB(
154
- uint82float(r),
155
- uint82float(g),
156
- uint82float(b),
155
+ uint8_to_float(r),
156
+ uint8_to_float(g),
157
+ uint8_to_float(b),
157
158
  )
158
159
  }
159
160
 
@@ -420,11 +421,15 @@ export class Color {
420
421
  * @return {number}
421
422
  */
422
423
  computeLuminance() {
423
- return 0.299 * this.r + 0.587 * this.g + 0.114 * this.b;
424
+ return rgb_to_luminance(this.r, this.g, this.b);
424
425
  }
425
426
 
426
427
  getHSV() {
427
- return rgb2hsv(this.r * 255, this.g * 255, this.b * 255);
428
+ return rgb2hsv(
429
+ this.r,
430
+ this.g,
431
+ this.b
432
+ );
428
433
  }
429
434
 
430
435
  /**
@@ -457,9 +462,9 @@ export class Color {
457
462
  */
458
463
  toHex() {
459
464
  return '#' + rgb2hex(
460
- float2uint8(this.r),
461
- float2uint8(this.g),
462
- float2uint8(this.b)
465
+ float_to_uint8(this.r),
466
+ float_to_uint8(this.g),
467
+ float_to_uint8(this.b)
463
468
  );
464
469
  }
465
470
 
@@ -468,7 +473,7 @@ export class Color {
468
473
  * @returns {string}
469
474
  */
470
475
  toCssRGBAString() {
471
- return `rgba(${float2uint8(this.r)},${float2uint8(this.g)},${float2uint8(this.b)},${this.a})`;
476
+ return `rgba(${float_to_uint8(this.r)},${float_to_uint8(this.g)},${float_to_uint8(this.b)},${this.a})`;
472
477
  }
473
478
 
474
479
  /**
@@ -1,5 +1,5 @@
1
+ import { float_to_uint8 } from "../../binary/float_to_uint8.js";
1
2
  import { clamp01 } from "../../math/clamp01.js";
2
- import { float2uint8 } from "../../binary/float2uint8.js";
3
3
 
4
4
  /**
5
5
  *
@@ -52,9 +52,9 @@ export function hsv2rgb(h, s, v) {
52
52
  break;
53
53
  }
54
54
  return {
55
- r: float2uint8(r),
56
- g: float2uint8(g),
57
- b: float2uint8(b)
55
+ r: float_to_uint8(r),
56
+ g: float_to_uint8(g),
57
+ b: float_to_uint8(b)
58
58
  };
59
59
  }
60
60
 
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  *
3
- * @param {number} r 0 to 255
4
- * @param {number} g 0 to 255
5
- * @param {number} b 0 to 255
3
+ * @param {number} r 0 to 1
4
+ * @param {number} g 0 to 1
5
+ * @param {number} b 0 to 1
6
6
  * @returns {{h: number, s: number, v: number}}
7
7
  */
8
8
  export function rgb2hsv(r: number, g: number, b: number): {
@@ -1 +1 @@
1
- {"version":3,"file":"rgb2hsv.d.ts","sourceRoot":"","sources":["../../../../../src/core/color/hsv/rgb2hsv.js"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,2BALW,MAAM,KACN,MAAM,KACN,MAAM;OACA,MAAM;OAAK,MAAM;OAAK,MAAM;EAyC5C"}
1
+ {"version":3,"file":"rgb2hsv.d.ts","sourceRoot":"","sources":["../../../../../src/core/color/hsv/rgb2hsv.js"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,2BALW,MAAM,KACN,MAAM,KACN,MAAM;OACA,MAAM;OAAK,MAAM;OAAK,MAAM;EAoC5C"}
@@ -1,21 +1,14 @@
1
- import { uint82float } from "../../binary/uint82float.js";
2
-
3
1
  /**
4
2
  *
5
- * @param {number} r 0 to 255
6
- * @param {number} g 0 to 255
7
- * @param {number} b 0 to 255
3
+ * @param {number} r 0 to 1
4
+ * @param {number} g 0 to 1
5
+ * @param {number} b 0 to 1
8
6
  * @returns {{h: number, s: number, v: number}}
9
7
  */
10
8
  export function rgb2hsv(r, g, b) {
11
9
 
12
- const _r = uint82float(r);
13
- const _g = uint82float(g);
14
- const _b = uint82float(b);
15
-
16
-
17
- const max = Math.max(_r, _g, _b);
18
- const min = Math.min(_r, _g, _b);
10
+ const max = Math.max(r, g, b);
11
+ const min = Math.min(r, g, b);
19
12
 
20
13
  let h, s, v = max;
21
14
 
@@ -27,14 +20,14 @@ export function rgb2hsv(r, g, b) {
27
20
  h = 0; // achromatic
28
21
  } else {
29
22
  switch (max) {
30
- case _r:
31
- h = (_g - _b) / d + (_g < _b ? 6 : 0);
23
+ case r:
24
+ h = (g - b) / d + (g < b ? 6 : 0);
32
25
  break;
33
- case _g:
34
- h = (_b - _r) / d + 2;
26
+ case g:
27
+ h = (b - r) / d + 2;
35
28
  break;
36
- case _b:
37
- h = (_r - _g) / d + 4;
29
+ case b:
30
+ h = (r - g) / d + 4;
38
31
  break;
39
32
  }
40
33
 
@@ -1,4 +1,4 @@
1
- import { float2uint8 } from "../binary/float2uint8.js";
1
+ import { float_to_uint8 } from "../binary/float_to_uint8.js";
2
2
 
3
3
  /**
4
4
  *
@@ -8,9 +8,9 @@ import { float2uint8 } from "../binary/float2uint8.js";
8
8
  * @returns {number}
9
9
  */
10
10
  export function rgb2uint24(r, g, b) {
11
- const _r = float2uint8(r);
12
- const _g = float2uint8(g);
13
- const _b = float2uint8(b);
11
+ const _r = float_to_uint8(r);
12
+ const _g = float_to_uint8(g);
13
+ const _b = float_to_uint8(b);
14
14
 
15
15
  return (_b & 0xFF)
16
16
  | (_g & 0xFF) << 8
@@ -0,0 +1,9 @@
1
+ /**
2
+ *
3
+ * @param {number} r
4
+ * @param {number} g
5
+ * @param {number} b
6
+ * @return {number}
7
+ */
8
+ export function rgb_to_luminance(r: number, g: number, b: number): number;
9
+ //# sourceMappingURL=rgb_to_luminance.d.ts.map