@woosh/meep-engine 2.108.0 → 2.108.3

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 (216) hide show
  1. package/build/bundle-worker-terrain.js +1 -1
  2. package/build/meep.cjs +650 -308
  3. package/build/meep.min.js +1 -1
  4. package/build/meep.module.js +650 -308
  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/uint8_to_float.d.ts +7 -0
  11. package/src/core/binary/uint8_to_float.d.ts.map +1 -0
  12. package/src/core/binary/{uint82float.js → uint8_to_float.js} +1 -1
  13. package/src/core/binary/uint8_to_float.spec.d.ts +2 -0
  14. package/src/core/binary/uint8_to_float.spec.d.ts.map +1 -0
  15. package/src/core/binary/uint8_to_float.spec.js +7 -0
  16. package/src/core/bvh2/binary/2/BinaryUint32BVH.d.ts +6 -0
  17. package/src/core/bvh2/binary/2/BinaryUint32BVH.d.ts.map +1 -1
  18. package/src/core/bvh2/binary/2/BinaryUint32BVH.js +15 -3
  19. package/src/core/bvh2/bvh3/build_triangle_morton_codes.js +3 -3
  20. package/src/core/bvh2/bvh3/ebvh_build_for_geometry_morton.d.ts.map +1 -1
  21. package/src/core/bvh2/bvh3/ebvh_build_for_geometry_morton.js +25 -14
  22. package/src/core/codegen/codeToBlob.d.ts +8 -0
  23. package/src/core/codegen/codeToBlob.d.ts.map +1 -0
  24. package/src/core/codegen/codeToBlob.js +36 -0
  25. package/src/core/codegen/codeToURL.d.ts +8 -0
  26. package/src/core/codegen/codeToURL.d.ts.map +1 -0
  27. package/src/core/codegen/codeToURL.js +22 -0
  28. package/src/core/collection/array/arrayQuickSort.d.ts +0 -9
  29. package/src/core/collection/array/arrayQuickSort.d.ts.map +1 -1
  30. package/src/core/collection/array/arrayQuickSort.js +0 -73
  31. package/src/core/collection/array/array_quick_sort_by_comparator.d.ts +10 -0
  32. package/src/core/collection/array/array_quick_sort_by_comparator.d.ts.map +1 -0
  33. package/src/core/collection/array/array_quick_sort_by_comparator.js +75 -0
  34. package/src/core/collection/array/array_quick_sort_by_lookup.d.ts +8 -0
  35. package/src/core/collection/array/array_quick_sort_by_lookup.d.ts.map +1 -0
  36. package/src/core/collection/array/array_quick_sort_by_lookup.js +78 -0
  37. package/src/core/collection/array/array_shuffle.d.ts +8 -0
  38. package/src/core/collection/array/array_shuffle.d.ts.map +1 -0
  39. package/src/core/collection/array/array_shuffle.js +22 -0
  40. package/src/core/collection/array/array_shuffle.spec.d.ts +2 -0
  41. package/src/core/collection/array/array_shuffle.spec.d.ts.map +1 -0
  42. package/src/core/collection/array/{randomizeArrayElementOrder.spec.js → array_shuffle.spec.js} +4 -4
  43. package/src/core/collection/array/iterator/ArrayIteratorRandom.js +2 -2
  44. package/src/core/collection/array/randomMultipleFromArray.js +2 -2
  45. package/src/core/color/Color.js +9 -9
  46. package/src/core/color/hsv/hsv2rgb.js +4 -4
  47. package/src/core/color/rgb2uint24.js +4 -4
  48. package/src/core/color/sRGB/linear_to_sRGB.d.ts +1 -0
  49. package/src/core/color/sRGB/linear_to_sRGB.d.ts.map +1 -1
  50. package/src/core/color/sRGB/linear_to_sRGB.js +4 -4
  51. package/src/core/geom/2d/triangle2d_get_barycentric.d.ts +15 -0
  52. package/src/core/geom/2d/triangle2d_get_barycentric.d.ts.map +1 -0
  53. package/src/core/geom/2d/triangle2d_get_barycentric.js +48 -0
  54. package/src/core/geom/3d/aabb/AABB3.d.ts.map +1 -1
  55. package/src/core/geom/3d/aabb/AABB3.js +4 -1
  56. package/src/core/geom/3d/aabb/aabb3_from_v3_array.d.ts.map +1 -1
  57. package/src/core/geom/3d/aabb/aabb3_from_v3_array.js +2 -7
  58. package/src/core/geom/3d/aabb/aabb3_intersects_ray.js +3 -3
  59. package/src/core/geom/3d/aabb3_compute_from_triangle.d.ts +11 -0
  60. package/src/core/geom/3d/aabb3_compute_from_triangle.d.ts.map +1 -0
  61. package/src/core/geom/3d/aabb3_compute_from_triangle.js +43 -0
  62. package/src/core/geom/3d/shape/UnitSphereShape3D.d.ts.map +1 -1
  63. package/src/core/geom/3d/shape/UnitSphereShape3D.js +14 -14
  64. package/src/core/geom/3d/sphere/harmonics/SH3_COEFFICIENTS.d.ts.map +1 -1
  65. package/src/core/geom/3d/sphere/harmonics/SH3_COEFFICIENTS.js +2 -0
  66. package/src/core/geom/3d/sphere/harmonics/sh3_dering_optimize_positive.js +5 -5
  67. package/src/core/geom/3d/sphere/harmonics/sh_compute_K.d.ts +9 -0
  68. package/src/core/geom/3d/sphere/harmonics/sh_compute_K.d.ts.map +1 -0
  69. package/src/core/geom/3d/sphere/harmonics/sh_compute_K.js +17 -0
  70. package/src/core/geom/3d/tetrahedra/TetrahedralMesh.d.ts +6 -3
  71. package/src/core/geom/3d/tetrahedra/TetrahedralMesh.d.ts.map +1 -1
  72. package/src/core/geom/3d/tetrahedra/TetrahedralMesh.js +56 -18
  73. package/src/core/geom/3d/tetrahedra/delaunay/tetrahedral_mesh_walk_towards_containing_tetrahedron.d.ts +1 -1
  74. package/src/core/geom/3d/tetrahedra/delaunay/tetrahedral_mesh_walk_towards_containing_tetrahedron.d.ts.map +1 -1
  75. package/src/core/geom/3d/tetrahedra/delaunay/tetrahedral_mesh_walk_towards_containing_tetrahedron.js +11 -4
  76. package/src/core/geom/3d/tetrahedra/{GetDepthForTetrahedronProbe.glsl → triangle/GetDepthForTetrahedronProbe.glsl} +17 -10
  77. package/src/core/geom/3d/tetrahedra/triangle/prototype.d.ts +2 -0
  78. package/src/core/geom/3d/tetrahedra/triangle/prototype.d.ts.map +1 -0
  79. package/src/core/geom/3d/tetrahedra/triangle/prototype.js +128 -0
  80. package/src/core/geom/3d/tetrahedra/triangle/trace_triangular_depth_map.d.ts +13 -0
  81. package/src/core/geom/3d/tetrahedra/triangle/trace_triangular_depth_map.d.ts.map +1 -0
  82. package/src/core/geom/3d/tetrahedra/triangle/trace_triangular_depth_map.js +120 -0
  83. package/src/core/geom/3d/tetrahedra/triangle/triangle_encode_rasterized_depth.d.ts +3 -0
  84. package/src/core/geom/3d/tetrahedra/triangle/triangle_encode_rasterized_depth.d.ts.map +1 -0
  85. package/src/core/geom/3d/tetrahedra/triangle/triangle_encode_rasterized_depth.js +106 -0
  86. package/src/core/geom/Vector3.js +3 -3
  87. package/src/core/geom/random/randomPointInSphere.d.ts +1 -1
  88. package/src/core/geom/random/randomPointInSphere.js +2 -2
  89. package/src/core/geom/random/randomPointOnSphere.d.ts +3 -3
  90. package/src/core/geom/random/randomPointOnSphere.d.ts.map +1 -1
  91. package/src/core/geom/random/randomPointOnSphere.js +5 -9
  92. package/src/core/math/factorial.d.ts +7 -0
  93. package/src/core/math/factorial.d.ts.map +1 -0
  94. package/src/core/math/factorial.js +15 -0
  95. package/src/core/math/factorial.spec.d.ts +2 -0
  96. package/src/core/math/factorial.spec.d.ts.map +1 -0
  97. package/src/core/math/factorial.spec.js +9 -0
  98. package/src/core/model/DebouncedObservedBoolean.d.ts +1 -1
  99. package/src/core/model/DebouncedObservedBoolean.d.ts.map +1 -1
  100. package/src/core/model/node-graph/node/NodeDescription.d.ts +6 -4
  101. package/src/core/process/task/util/randomCountTask.js +3 -3
  102. package/src/core/process/worker/WorkerBuilder.d.ts.map +1 -1
  103. package/src/core/process/worker/WorkerBuilder.js +5 -35
  104. package/src/engine/EngineHarness.d.ts.map +1 -1
  105. package/src/engine/EngineHarness.js +7 -1
  106. package/src/engine/asset/loaders/ArrayBufferLoader.d.ts.map +1 -1
  107. package/src/engine/asset/loaders/ArrayBufferLoader.js +17 -10
  108. package/src/engine/asset/loaders/material/TextureAttachmensByMaterialType.d.ts.map +1 -1
  109. package/src/engine/asset/loaders/material/TextureAttachmensByMaterialType.js +3 -0
  110. package/src/engine/asset/loaders/material/computeTextureEquality.d.ts.map +1 -1
  111. package/src/engine/asset/loaders/material/computeTextureEquality.js +8 -1
  112. package/src/engine/ecs/terrain/overlay/TerrainOverlay.js +4 -4
  113. package/src/engine/graphics/ecs/camera/topdown/TopDownCameraController.d.ts.map +1 -1
  114. package/src/engine/graphics/ecs/camera/topdown/TopDownCameraController.js +4 -0
  115. package/src/engine/graphics/ecs/mesh-v2/render/adapters/AbstractRenderAdapter.d.ts.map +1 -1
  116. package/src/engine/graphics/ecs/mesh-v2/render/adapters/AbstractRenderAdapter.js +3 -1
  117. package/src/engine/graphics/ecs/sprite/SpriteSystemPE.d.ts.map +1 -1
  118. package/src/engine/graphics/ecs/sprite/SpriteSystemPE.js +7 -7
  119. package/src/engine/graphics/filter/sampler2d_flipY_in_place.d.ts +8 -0
  120. package/src/engine/graphics/filter/sampler2d_flipY_in_place.d.ts.map +1 -0
  121. package/src/engine/graphics/filter/{FlipArrayInPlace.js → sampler2d_flipY_in_place.js} +1 -1
  122. package/src/engine/graphics/geometry/bvh/buffered/bvh32_set_leaf_from_triangle.d.ts.map +1 -1
  123. package/src/engine/graphics/geometry/bvh/buffered/bvh32_set_leaf_from_triangle.js +5 -27
  124. package/src/engine/graphics/impostors/octahedral/bake/prepare_bake_material.js +3 -3
  125. package/src/engine/graphics/render/Lines.d.ts.map +1 -1
  126. package/src/engine/graphics/render/Lines.js +10 -2
  127. package/src/engine/graphics/sh3/SH3VisualisationMaterial.d.ts.map +1 -1
  128. package/src/engine/graphics/sh3/SH3VisualisationMaterial.js +9 -6
  129. package/src/engine/graphics/sh3/gi/material/MaterialTransformer.d.ts +24 -0
  130. package/src/engine/graphics/sh3/gi/material/MaterialTransformer.d.ts.map +1 -0
  131. package/src/engine/graphics/sh3/gi/material/MaterialTransformer.js +293 -0
  132. package/src/engine/graphics/sh3/gi/material/build_fragment_shader.d.ts +6 -0
  133. package/src/engine/graphics/sh3/gi/material/build_fragment_shader.d.ts.map +1 -0
  134. package/src/engine/graphics/sh3/gi/material/build_fragment_shader.js +71 -0
  135. package/src/engine/graphics/sh3/gi/material/build_vertex_shader.d.ts +6 -0
  136. package/src/engine/graphics/sh3/gi/material/build_vertex_shader.d.ts.map +1 -0
  137. package/src/engine/graphics/sh3/gi/material/build_vertex_shader.js +256 -0
  138. package/src/engine/graphics/sh3/gi/tetrahedral_mesh_to_texture.js +4 -4
  139. package/src/engine/graphics/sh3/lpv/LightProbeVolume.d.ts +3 -1
  140. package/src/engine/graphics/sh3/lpv/LightProbeVolume.d.ts.map +1 -1
  141. package/src/engine/graphics/sh3/lpv/LightProbeVolume.js +12 -1
  142. package/src/engine/graphics/sh3/lpv/PathTracerProbeRenderer.d.ts.map +1 -1
  143. package/src/engine/graphics/sh3/lpv/PathTracerProbeRenderer.js +4 -5
  144. package/src/engine/graphics/sh3/lpv/build_probes_for_scene.d.ts +2 -1
  145. package/src/engine/graphics/sh3/lpv/build_probes_for_scene.d.ts.map +1 -1
  146. package/src/engine/graphics/sh3/lpv/build_probes_for_scene.js +6 -6
  147. package/src/engine/graphics/sh3/lpv/probe_volume_to_textures.d.ts +8 -0
  148. package/src/engine/graphics/sh3/lpv/probe_volume_to_textures.d.ts.map +1 -1
  149. package/src/engine/graphics/sh3/lpv/probe_volume_to_textures.js +3 -2
  150. package/src/engine/graphics/sh3/path_tracer/PathTracedScene.d.ts.map +1 -1
  151. package/src/engine/graphics/sh3/path_tracer/PathTracedScene.js +9 -4
  152. package/src/engine/graphics/sh3/path_tracer/PathTracer.d.ts +3 -3
  153. package/src/engine/graphics/sh3/path_tracer/PathTracer.d.ts.map +1 -1
  154. package/src/engine/graphics/sh3/path_tracer/PathTracer.js +2 -2
  155. package/src/engine/graphics/sh3/path_tracer/compute_triangle_group_aabb3.d.ts +2 -2
  156. package/src/engine/graphics/sh3/path_tracer/compute_triangle_group_aabb3.d.ts.map +1 -1
  157. package/src/engine/graphics/sh3/path_tracer/compute_triangle_group_aabb3.js +18 -8
  158. package/src/engine/graphics/sh3/path_tracer/prototypePathTracer.js +14 -6
  159. package/src/engine/graphics/sh3/path_tracer/sampling/generate_stratified_samples.d.ts +10 -0
  160. package/src/engine/graphics/sh3/path_tracer/sampling/generate_stratified_samples.d.ts.map +1 -0
  161. package/src/engine/graphics/sh3/path_tracer/sampling/generate_stratified_samples.js +20 -0
  162. package/src/engine/graphics/sh3/path_tracer/sampling/generate_stratified_samples_2d.d.ts +10 -0
  163. package/src/engine/graphics/sh3/path_tracer/sampling/generate_stratified_samples_2d.d.ts.map +1 -0
  164. package/src/engine/graphics/sh3/path_tracer/sampling/generate_stratified_samples_2d.js +31 -0
  165. package/src/engine/graphics/sh3/path_tracer/sampling/make_stratified_sample.d.ts +9 -0
  166. package/src/engine/graphics/sh3/path_tracer/sampling/make_stratified_sample.d.ts.map +1 -0
  167. package/src/engine/graphics/sh3/path_tracer/sampling/make_stratified_sample.js +21 -0
  168. package/src/engine/graphics/sh3/path_tracer/texture/sample_material.js +1 -1
  169. package/src/engine/graphics/sh3/path_tracer/texture/sample_texture.d.ts.map +1 -1
  170. package/src/engine/graphics/sh3/path_tracer/texture/sample_texture.js +2 -3
  171. package/src/engine/graphics/sh3/path_tracer/vec3_uint8_to_float.js +4 -4
  172. package/src/engine/graphics/sh3/prototypeSH3Probe.js +116 -19
  173. package/src/engine/graphics/texture/AttributeDataTexture.d.ts.map +1 -1
  174. package/src/engine/graphics/texture/AttributeDataTexture.js +8 -2
  175. package/src/engine/graphics/texture/computeThreeTextureFormat.js +2 -1
  176. package/src/engine/graphics/texture/computeThreeTextureFormatFromDataType.d.ts +7 -0
  177. package/src/engine/graphics/texture/computeThreeTextureFormatFromDataType.d.ts.map +1 -0
  178. package/src/engine/graphics/texture/computeThreeTextureFormatFromDataType.js +13 -0
  179. package/src/engine/graphics/texture/numericTypeFromBinaryDataType.d.ts +9 -0
  180. package/src/engine/graphics/texture/numericTypeFromBinaryDataType.d.ts.map +1 -0
  181. package/src/engine/graphics/texture/numericTypeFromBinaryDataType.js +31 -0
  182. package/src/engine/graphics/texture/sampler/Sampler2D.d.ts.map +1 -1
  183. package/src/engine/graphics/texture/sampler/Sampler2D.js +4 -4
  184. package/src/engine/graphics/texture/sampler/convertTexture2Sampler2D.d.ts.map +1 -1
  185. package/src/engine/graphics/texture/sampler/convertTexture2Sampler2D.js +47 -19
  186. package/src/engine/graphics/texture/sampler/debug/prototypeSamplerFiltering.js +5 -33
  187. package/src/engine/graphics/texture/sampler/sampler2d_copy_rectangle.d.ts +11 -0
  188. package/src/engine/graphics/texture/sampler/sampler2d_copy_rectangle.d.ts.map +1 -0
  189. package/src/engine/graphics/texture/sampler/sampler2d_copy_rectangle.js +41 -0
  190. package/src/engine/graphics/texture/virtual/VirtualTextureUsage.d.ts +0 -4
  191. package/src/engine/graphics/texture/virtual/VirtualTextureUsage.d.ts.map +1 -1
  192. package/src/engine/graphics/texture/virtual/VirtualTextureUsage.js +19 -30
  193. package/src/engine/network/convertPathToURL.d.ts +3 -1
  194. package/src/engine/network/convertPathToURL.d.ts.map +1 -1
  195. package/src/engine/network/convertPathToURL.js +68 -51
  196. package/src/engine/physics/fluid/SliceVisualiser.d.ts.map +1 -1
  197. package/src/engine/physics/fluid/SliceVisualiser.js +4 -4
  198. package/src/generation/filtering/numeric/CellFilterCache.d.ts.map +1 -1
  199. package/src/generation/filtering/numeric/CellFilterCache.js +1 -0
  200. package/src/core/binary/float2uint8.d.ts +0 -7
  201. package/src/core/binary/float2uint8.d.ts.map +0 -1
  202. package/src/core/binary/uint82float.d.ts +0 -7
  203. package/src/core/binary/uint82float.d.ts.map +0 -1
  204. package/src/core/binary/uint82float.spec.d.ts +0 -2
  205. package/src/core/binary/uint82float.spec.d.ts.map +0 -1
  206. package/src/core/binary/uint82float.spec.js +0 -7
  207. package/src/core/collection/array/randomizeArrayElementOrder.d.ts +0 -8
  208. package/src/core/collection/array/randomizeArrayElementOrder.d.ts.map +0 -1
  209. package/src/core/collection/array/randomizeArrayElementOrder.js +0 -24
  210. package/src/core/collection/array/randomizeArrayElementOrder.spec.d.ts +0 -2
  211. package/src/core/collection/array/randomizeArrayElementOrder.spec.d.ts.map +0 -1
  212. package/src/engine/graphics/filter/FlipArrayInPlace.d.ts +0 -8
  213. package/src/engine/graphics/filter/FlipArrayInPlace.d.ts.map +0 -1
  214. package/src/engine/graphics/sh3/path_tracer/texture/SoftwareTextureCache.d.ts +0 -3
  215. package/src/engine/graphics/sh3/path_tracer/texture/SoftwareTextureCache.d.ts.map +0 -1
  216. package/src/engine/graphics/sh3/path_tracer/texture/SoftwareTextureCache.js +0 -3
@@ -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,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,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";
@@ -152,9 +152,9 @@ export class Color {
152
152
  */
153
153
  setRGBUint8(r, g, b) {
154
154
  this.setRGB(
155
- uint82float(r),
156
- uint82float(g),
157
- uint82float(b),
155
+ uint8_to_float(r),
156
+ uint8_to_float(g),
157
+ uint8_to_float(b),
158
158
  )
159
159
  }
160
160
 
@@ -462,9 +462,9 @@ export class Color {
462
462
  */
463
463
  toHex() {
464
464
  return '#' + rgb2hex(
465
- float2uint8(this.r),
466
- float2uint8(this.g),
467
- float2uint8(this.b)
465
+ float_to_uint8(this.r),
466
+ float_to_uint8(this.g),
467
+ float_to_uint8(this.b)
468
468
  );
469
469
  }
470
470
 
@@ -473,7 +473,7 @@ export class Color {
473
473
  * @returns {string}
474
474
  */
475
475
  toCssRGBAString() {
476
- 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})`;
477
477
  }
478
478
 
479
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,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
@@ -1,3 +1,4 @@
1
+ export function convert_channel_linear_to_sRGB(c: any): number;
1
2
  /**
2
3
  *
3
4
  * @param {number[]|ArrayLike<number>} output
@@ -1 +1 @@
1
- {"version":3,"file":"linear_to_sRGB.d.ts","sourceRoot":"","sources":["../../../../../src/core/color/sRGB/linear_to_sRGB.js"],"names":[],"mappings":"AAQA;;;;;;GAMG;AACH,uCALW,MAAM,EAAE,GAAC,UAAU,MAAM,CAAC,iBAC1B,MAAM,SACN,MAAM,EAAE,GAAC,UAAU,MAAM,CAAC,gBAC1B,MAAM,QAahB"}
1
+ {"version":3,"file":"linear_to_sRGB.d.ts","sourceRoot":"","sources":["../../../../../src/core/color/sRGB/linear_to_sRGB.js"],"names":[],"mappings":"AAAA,+DAMC;AAED;;;;;;GAMG;AACH,uCALW,MAAM,EAAE,GAAC,UAAU,MAAM,CAAC,iBAC1B,MAAM,SACN,MAAM,EAAE,GAAC,UAAU,MAAM,CAAC,gBAC1B,MAAM,QAahB"}
@@ -1,4 +1,4 @@
1
- function convert(c) {
1
+ export function convert_channel_linear_to_sRGB(c) {
2
2
  if (c < 0.0031308) {
3
3
  return c * 12.92;
4
4
  } else {
@@ -21,7 +21,7 @@ export function linear_to_sRGB(
21
21
  const g = input[input_offset + 1];
22
22
  const b = input[input_offset + 2];
23
23
 
24
- output[output_offset] = convert(r);
25
- output[output_offset + 1] = convert(g);
26
- output[output_offset + 2] = convert(b);
24
+ output[output_offset] = convert_channel_linear_to_sRGB(r);
25
+ output[output_offset + 1] = convert_channel_linear_to_sRGB(g);
26
+ output[output_offset + 2] = convert_channel_linear_to_sRGB(b);
27
27
  }
@@ -0,0 +1,15 @@
1
+ /**
2
+ *
3
+ * @param {number[]} output
4
+ * @param {number} output_offset
5
+ * @param {number} ax
6
+ * @param {number} ay
7
+ * @param {number} bx
8
+ * @param {number} by
9
+ * @param {number} cx
10
+ * @param {number} cy
11
+ * @param {number} px
12
+ * @param {number} py
13
+ */
14
+ export function triangle2d_get_barycentric(output: number[], output_offset: number, ax: number, ay: number, bx: number, by: number, cx: number, cy: number, px: number, py: number): void;
15
+ //# sourceMappingURL=triangle2d_get_barycentric.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"triangle2d_get_barycentric.d.ts","sourceRoot":"","sources":["../../../../../src/core/geom/2d/triangle2d_get_barycentric.js"],"names":[],"mappings":"AAEA;;;;;;;;;;;;GAYG;AACH,mDAXW,MAAM,EAAE,iBACR,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,QAkChB"}
@@ -0,0 +1,48 @@
1
+ import { v2_dot } from "../vec2/v2_dot.js";
2
+
3
+ /**
4
+ *
5
+ * @param {number[]} output
6
+ * @param {number} output_offset
7
+ * @param {number} ax
8
+ * @param {number} ay
9
+ * @param {number} bx
10
+ * @param {number} by
11
+ * @param {number} cx
12
+ * @param {number} cy
13
+ * @param {number} px
14
+ * @param {number} py
15
+ */
16
+ export function triangle2d_get_barycentric(
17
+ output, output_offset,
18
+ ax, ay,
19
+ bx, by,
20
+ cx, cy,
21
+ px, py
22
+ ) {
23
+
24
+ const v0_x = bx - ax;
25
+ const v0_y = by - ay;
26
+
27
+ const v1_x = cx - ax;
28
+ const v1_y = cy - ay;
29
+
30
+ const v2_x = px - ax;
31
+ const v2_y = py - ay;
32
+
33
+ const d00 = v2_dot(v0_x, v0_y, v0_x, v0_y);
34
+ const d01 = v2_dot(v0_x, v0_y, v1_x, v1_y);
35
+ const d11 = v2_dot(v1_x, v1_y, v1_x, v1_y);
36
+ const d20 = v2_dot(v2_x, v2_y, v0_x, v0_y);
37
+ const d21 = v2_dot(v2_x, v2_y, v1_x, v1_y);
38
+
39
+ const denom = d00 * d11 - d01 * d01;
40
+
41
+ const v = (d11 * d20 - d01 * d21) / denom;
42
+ const w = (d00 * d21 - d01 * d20) / denom;
43
+ const u = 1.0 - v - w;
44
+
45
+ output[output_offset] = v;
46
+ output[output_offset + 1] = w;
47
+ output[output_offset + 2] = u;
48
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"AABB3.d.ts","sourceRoot":"","sources":["../../../../../../src/core/geom/3d/aabb/AABB3.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AABB3.d.ts","sourceRoot":"","sources":["../../../../../../src/core/geom/3d/aabb/AABB3.js"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { assert } from "../../../assert.js";
2
+ import Vector3 from "../../Vector3.js";
2
3
  import computeMortonCode from "../morton/Morton.js";
3
4
  import { aabb3_array_intersects_point } from "./aabb3_array_intersects_point.js";
4
5
  import { aabb3_build_corners } from "./aabb3_build_corners.js";
@@ -630,11 +631,13 @@ export class AABB3 {
630
631
  * Get center position of the box
631
632
  * @param {Vector3} target where to write result
632
633
  */
633
- getCenter(target) {
634
+ getCenter(target = new Vector3()) {
634
635
  const x = this.getCenterX();
635
636
  const y = this.getCenterY();
636
637
  const z = this.getCenterZ();
637
638
  target.set(x, y, z);
639
+
640
+ return target;
638
641
  }
639
642
 
640
643
 
@@ -1 +1 @@
1
- {"version":3,"file":"aabb3_from_v3_array.d.ts","sourceRoot":"","sources":["../../../../../../src/core/geom/3d/aabb/aabb3_from_v3_array.js"],"names":[],"mappings":"AAIA;;;;;GAKG;AACH,4CAJW,UAAU,MAAM,CAAC,GAAC,MAAM,EAAE,GAAC,YAAY,QAAM,SAC7C,MAAM,EAAE,GAAC,UAAU,MAAM,CAAC,GAAC,YAAY,gBACvC,MAAM,QAmChB"}
1
+ {"version":3,"file":"aabb3_from_v3_array.d.ts","sourceRoot":"","sources":["../../../../../../src/core/geom/3d/aabb/aabb3_from_v3_array.js"],"names":[],"mappings":"AAKA;;;;;GAKG;AACH,4CAJW,UAAU,MAAM,CAAC,GAAC,MAAM,EAAE,GAAC,YAAY,QAAM,SAC7C,MAAM,EAAE,GAAC,UAAU,MAAM,CAAC,GAAC,YAAY,gBACvC,MAAM,QA6BhB"}
@@ -1,6 +1,7 @@
1
1
  import { assert } from "../../../assert.js";
2
2
  import { max2 } from "../../../math/max2.js";
3
3
  import { min2 } from "../../../math/min2.js";
4
+ import { aabb3_array_set } from "./aabb3_array_set.js";
4
5
 
5
6
  /**
6
7
  *
@@ -34,11 +35,5 @@ export function aabb3_from_v3_array(result, input, input_length) {
34
35
  }
35
36
 
36
37
  // read out
37
- result[0] = x0;
38
- result[1] = y0;
39
- result[2] = z0;
40
-
41
- result[3] = x1;
42
- result[4] = y1;
43
- result[5] = z1;
38
+ aabb3_array_set(result, 0, x0, y0, z0, x1, y1, z1);
44
39
  }
@@ -35,7 +35,7 @@ export function aabb3_intersects_ray(
35
35
  const diff_x = origin_x - center_x;
36
36
 
37
37
 
38
- if (diff_x * direction_x >= 0.0 && abs(diff_x) > extents_x) {
38
+ if (diff_x * direction_x >= 0 && abs(diff_x) > extents_x) {
39
39
  return false;
40
40
  }
41
41
 
@@ -47,7 +47,7 @@ export function aabb3_intersects_ray(
47
47
  const diff_y = origin_y - center_y;
48
48
 
49
49
 
50
- if (diff_y * direction_y >= 0.0 && abs(diff_y) > extents_y) {
50
+ if (diff_y * direction_y >= 0 && abs(diff_y) > extents_y) {
51
51
  return false;
52
52
  }
53
53
 
@@ -59,7 +59,7 @@ export function aabb3_intersects_ray(
59
59
  const diff_z = origin_z - center_z;
60
60
 
61
61
 
62
- if (diff_z * direction_z >= 0.0 && abs(diff_z) > extents_z) {
62
+ if (diff_z * direction_z >= 0 && abs(diff_z) > extents_z) {
63
63
  return false;
64
64
  }
65
65
 
@@ -0,0 +1,11 @@
1
+ /**
2
+ *
3
+ * @param {number[]|Float32Array} output
4
+ * @param {number} output_offset
5
+ * @param {number[]|Float32Array} vertices
6
+ * @param {number} a_index
7
+ * @param {number} b_index
8
+ * @param {number} c_index
9
+ */
10
+ export function aabb3_compute_from_triangle(output: number[] | Float32Array, output_offset: number, vertices: number[] | Float32Array, a_index: number, b_index: number, c_index: number): void;
11
+ //# sourceMappingURL=aabb3_compute_from_triangle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aabb3_compute_from_triangle.d.ts","sourceRoot":"","sources":["../../../../../src/core/geom/3d/aabb3_compute_from_triangle.js"],"names":[],"mappings":"AAGA;;;;;;;;GAQG;AACH,oDAPW,MAAM,EAAE,GAAC,YAAY,iBACrB,MAAM,YACN,MAAM,EAAE,GAAC,YAAY,WACrB,MAAM,WACN,MAAM,WACN,MAAM,QAgChB"}
@@ -0,0 +1,43 @@
1
+ import { max3 } from "../../math/max3.js";
2
+ import { min3 } from "../../math/min3.js";
3
+
4
+ /**
5
+ *
6
+ * @param {number[]|Float32Array} output
7
+ * @param {number} output_offset
8
+ * @param {number[]|Float32Array} vertices
9
+ * @param {number} a_index
10
+ * @param {number} b_index
11
+ * @param {number} c_index
12
+ */
13
+ export function aabb3_compute_from_triangle(
14
+ output, output_offset,
15
+ vertices, a_index, b_index, c_index
16
+ ) {
17
+ const a = a_index * 3;
18
+ const b = b_index * 3;
19
+ const c = c_index * 3;
20
+
21
+ // read actual positions of each vertex
22
+ const aX = vertices[a];
23
+ const aY = vertices[a + 1];
24
+ const aZ = vertices[a + 2];
25
+
26
+ const bX = vertices[b];
27
+ const bY = vertices[b + 1];
28
+ const bZ = vertices[b + 2];
29
+
30
+ const cX = vertices[c];
31
+ const cY = vertices[c + 1];
32
+ const cZ = vertices[c + 2];
33
+
34
+ // compute bounds of the triangle
35
+ output[output_offset] = min3(aX, bX, cX);
36
+ output[output_offset + 1] = min3(aY, bY, cY);
37
+ output[output_offset + 2] = min3(aZ, bZ, cZ);
38
+
39
+ output[output_offset + 3] = max3(aX, bX, cX);
40
+ output[output_offset + 4] = max3(aY, bY, cY);
41
+ output[output_offset + 5] = max3(aZ, bZ, cZ);
42
+
43
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"UnitSphereShape3D.d.ts","sourceRoot":"","sources":["../../../../../../src/core/geom/3d/shape/UnitSphereShape3D.js"],"names":[],"mappings":"AAKA;;GAEG;AACH;IACI,qBAEC;IAED,2BAEC;IAED,wCAQC;IAED,4DAYC;IAED,mEAEC;IAED,6CAMC;IAED,oCAMC;IAED,kFAEC;IAED,eAEC;CACJ;;;;gCApE+B,sBAAsB"}
1
+ {"version":3,"file":"UnitSphereShape3D.d.ts","sourceRoot":"","sources":["../../../../../../src/core/geom/3d/shape/UnitSphereShape3D.js"],"names":[],"mappings":"AAKA;;GAEG;AACH;IACI,qBAEC;IAED,2BAEC;IAED,wCAQC;IAED,4DAYC;IAED,mEAEC;IAED,6CAMC;IAED,oCAMC;IAED,kFAEC;IAED,eAEC;CACJ;;;;gCAlE+B,sBAAsB"}
@@ -1,28 +1,28 @@
1
- import { AbstractShape3D } from "./AbstractShape3D.js";
2
1
  import { randomPointInSphere } from "../../random/randomPointInSphere.js";
3
2
  import { v3_length } from "../../vec3/v3_length.js";
3
+ import { AbstractShape3D } from "./AbstractShape3D.js";
4
4
  import { compute_signed_distance_gradient_by_sampling } from "./util/compute_signed_distance_gradient_by_sampling.js";
5
5
 
6
6
  /**
7
- * Sphere with diameter of 1 (radius = 0.5)
7
+ * Sphere with diameter of 2 (radius = 1)
8
8
  */
9
9
  export class UnitSphereShape3D extends AbstractShape3D {
10
10
  get volume() {
11
- return 0.523598776;
11
+ return (4 / 3) * Math.PI;
12
12
  }
13
13
 
14
14
  get surface_area() {
15
- return 3.14159265;
15
+ return Math.PI * 4;
16
16
  }
17
17
 
18
18
  compute_bounding_box(result) {
19
- result[0] = -0.5;
20
- result[1] = -0.5;
21
- result[2] = -0.5;
19
+ result[0] = -1;
20
+ result[1] = -1;
21
+ result[2] = -1;
22
22
 
23
- result[3] = 0.5;
24
- result[4] = 0.5;
25
- result[5] = 0.5;
23
+ result[3] = 1;
24
+ result[4] = 1;
25
+ result[5] = 1;
26
26
  }
27
27
 
28
28
  nearest_point_on_surface(result, reference) {
@@ -31,8 +31,8 @@ export class UnitSphereShape3D extends AbstractShape3D {
31
31
  const r_y = reference[1];
32
32
  const r_z = reference[2];
33
33
 
34
- // normalize vector to 0.5 radius
35
- const d = 0.5 / Math.hypot(r_x, r_y, r_z);
34
+ // normalize vector to 1 radius
35
+ const d = 1 / Math.hypot(r_x, r_y, r_z);
36
36
 
37
37
  result[0] = r_x * d;
38
38
  result[1] = r_y * d;
@@ -48,7 +48,7 @@ export class UnitSphereShape3D extends AbstractShape3D {
48
48
  point[0],
49
49
  point[1],
50
50
  point[2]
51
- ) - 0.5;
51
+ ) - 1;
52
52
  }
53
53
 
54
54
  contains_point(point) {
@@ -56,7 +56,7 @@ export class UnitSphereShape3D extends AbstractShape3D {
56
56
  const y = point[1];
57
57
  const z = point[2];
58
58
 
59
- return (x * x + y * y + z * z) < 0.25;
59
+ return (x * x + y * y + z * z) < 1;
60
60
  }
61
61
 
62
62
  sample_random_point_in_volume(result, result_offset, random) {
@@ -1 +1 @@
1
- {"version":3,"file":"SH3_COEFFICIENTS.d.ts","sourceRoot":"","sources":["../../../../../../../src/core/geom/3d/sphere/harmonics/SH3_COEFFICIENTS.js"],"names":[],"mappings":"AAAA;;;GAGG;AACH,+BAFU,YAAY,CAYnB"}
1
+ {"version":3,"file":"SH3_COEFFICIENTS.d.ts","sourceRoot":"","sources":["../../../../../../../src/core/geom/3d/sphere/harmonics/SH3_COEFFICIENTS.js"],"names":[],"mappings":"AAAA;;;GAGG;AACH,+BAFU,YAAY,CAcnB"}
@@ -4,9 +4,11 @@
4
4
  */
5
5
  export const SH3_COEFFICIENTS = new Float32Array([
6
6
  0.28209479177387814, // 0: 0 0
7
+
7
8
  -0.4886025119029199, // 1: 1 -1
8
9
  0.4886025119029199, // 2: 1 0
9
10
  -0.4886025119029199, // 3: 1 1
11
+
10
12
  1.0925484305920792, // 4: 2 -2
11
13
  -1.0925484305920792, // 5: 2 -1
12
14
  0.31539156525252005, // 6: 2 0
@@ -10,6 +10,7 @@ import { sh_index } from "./sh_index.js";
10
10
  @see https://github.com/Bestmaker602/olacziy/blob/212b64ea5f1856b390cdf7629801243f76a4466d/libs/ibl/src/CubemapSH.cpp
11
11
  */
12
12
 
13
+ const scratch_sh3 = new Float32Array(9);
13
14
 
14
15
  /**
15
16
  * SH from environment with high dynamic range (or high frequencies -- high dynamic range creates
@@ -233,14 +234,13 @@ function windowSH(
233
234
  }
234
235
 
235
236
  cutoff = numBands * 4 + 1;// start at a large band
236
- // We need to process each channel separately
237
- const SH = new Float32Array(9);
238
237
 
238
+ // We need to process each channel separately
239
239
  for (let channel = 0; channel < channel_count; channel++) {
240
240
 
241
241
  for (let i = 0; i < numBands * numBands; i++) {
242
242
  // copy this channel
243
- SH[i] = output[output_offset + i * channel_count + channel];
243
+ scratch_sh3[i] = input[input_offset + i * channel_count + channel];
244
244
  }
245
245
 
246
246
  // find a cut-off band that works
@@ -251,9 +251,9 @@ function windowSH(
251
251
 
252
252
  const m = 0.5 * (l + r);
253
253
 
254
- windowing(SH, m, numBands);
254
+ windowing(scratch_sh3, m, numBands);
255
255
 
256
- if (sh3_min(SH) < 0) {
256
+ if (sh3_min(scratch_sh3) < 0) {
257
257
  r = m;
258
258
  } else {
259
259
  l = m;
@@ -0,0 +1,9 @@
1
+ /**
2
+ * computes K(m,l) normalization constant
3
+ * @see "Deringing Spherical Harmonics" by Peter-Pike Sloan
4
+ * @param {number} m
5
+ * @param {number} l
6
+ * @returns {number}
7
+ */
8
+ export function sh_compute_K(m: number, l: number): number;
9
+ //# sourceMappingURL=sh_compute_K.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sh_compute_K.d.ts","sourceRoot":"","sources":["../../../../../../../src/core/geom/3d/sphere/harmonics/sh_compute_K.js"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,gCAJW,MAAM,KACN,MAAM,GACJ,MAAM,CASlB"}
@@ -0,0 +1,17 @@
1
+ import { factorial } from "../../../../math/factorial.js";
2
+
3
+ /**
4
+ * computes K(m,l) normalization constant
5
+ * @see "Deringing Spherical Harmonics" by Peter-Pike Sloan
6
+ * @param {number} m
7
+ * @param {number} l
8
+ * @returns {number}
9
+ */
10
+ export function sh_compute_K(m, l) {
11
+
12
+ const a = (2 * l + 1) * factorial(l - Math.abs(m))
13
+
14
+ const b = 4 * Math.PI * factorial(l + Math.abs(m))
15
+
16
+ return Math.sqrt(a / b);
17
+ }
@@ -209,11 +209,14 @@ export class TetrahedralMesh {
209
209
  removeTetrasConnectedToPoints(range_start: number, range_end: number): void;
210
210
  /**
211
211
  *
212
- * @param {number[]} points
213
- * @param {number} index
212
+ * @param {number} x
213
+ * @param {number} y
214
+ * @param {number} z
215
+ * @param {number[]} points Positions of vertices of tetrahedrons
216
+ * @param {number} [hint_tetrahedron]
214
217
  * @returns {number} index of tetra or -1 if no containing tetra found
215
218
  */
216
- findTetraContainingPoint(points: number[], index: number): number;
219
+ findTetraContainingPoint(x: number, y: number, z: number, points: number[], hint_tetrahedron?: number): number;
217
220
  /**
218
221
  * Relocate tetrahedron in memory, patches neighbourhood links as well
219
222
  * NOTE: The destination slot will be overwritten. This is a dangerous method that can break the topology, make sure you fully understand what you are doing when using it
@@ -1 +1 @@
1
- {"version":3,"file":"TetrahedralMesh.d.ts","sourceRoot":"","sources":["../../../../../../src/core/geom/3d/tetrahedra/TetrahedralMesh.js"],"names":[],"mappings":"AAgBA;;;;GAIG;AACH,qCAFU,MAAM,CAEkD;AAElE;;;GAGG;AACH,gCAFU,MAAM,CAE4B;AAE5C;;;GAGG;AACH,4BAFU,MAAM,CAEwB;AAoBxC;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH;IACI;;;OAGG;IACH,2BAFW,MAAM,EAqDhB;IAhDG;;;;OAIG;IACH,iBAAsE;IAEtE;;;;OAIG;IACH,sBAAmD;IAEnD;;;;OAIG;IACH,eAAyC;IAEzC;;;;OAIG;IACH,mBAA8B;IAE9B;;;;OAIG;IACH,mBAAmB;IAEnB;;;;OAIG;IACH,eAAgB;IAEhB;;;;OAIG;IACH,uBAAuB;IAG3B;;;OAGG;IACH,oBAEC;IAED;;;OAGG;IACH,2BAEC;IAED;;;;OAIG;IACH,2CAQC;IAED;;OAEG;IACH,cAWC;IAED;;;OAGG;IACH,sBAFW,MAAM,QA8BhB;IAED;;;OAGG;IACH,eAFY,MAAM,CAIjB;IAED;;;OAGG;IACH,QAFY,MAAM,CAIjB;IAED;;;OAGG;IACH,uBAFW,MAAM,QAchB;IAED;;;OAGG;IACH,yBAFW,MAAM,QAShB;IAED;;;;OAIG;IACH,YAHW,MAAM,GACL,OAAO,CAiBlB;IAED;;;;;OAKG;IACH,0BAJW,MAAM,mBACN,MAAM,GACJ,MAAM,CAYlB;IAED;;;;;OAKG;IACH,0BAJW,MAAM,mBACN,MAAM,aACN,MAAM,QAchB;IAGD;;;;;OAKG;IACH,0BAJW,MAAM,eACN,MAAM,GACJ,MAAM,CAYlB;IAED;;;;;OAKG;IACH,0BAJW,MAAM,eACN,MAAM,UACN,MAAM,QAiBhB;IAED;;;;;OAKG;IACH,uBAJW,MAAM,UACN,MAAM,GACL,OAAO,CAUlB;IAGD;;;;OAIG;IACH,YAFY,MAAM,CA4BjB;IAED;;;;;;;;OAQG;IACH,eAPW,MAAM,EAAE,GAAC,YAAY,KACrB,MAAM,KACN,MAAM,KACN,MAAM,KACN,MAAM,GACJ,MAAM,CAqBlB;IAED;;;;OAIG;IACH,wBAFW,MAAM,QAmBhB;IAED;;;;OAIG;IACH,oBAFW,MAAM,QAmBhB;IAED;;;;;OAKG;IACH,2CAHW,MAAM,aACN,MAAM,QAwBhB;IAED;;;;;OAKG;IACH,iCAJW,MAAM,EAAE,SACR,MAAM,GACJ,MAAM,CAsBlB;IAGD;;;;;OAKG;IACH,uBAHW,MAAM,qBACN,MAAM,QA6BhB;IAED;;;;OAIG;IACH,WAFa,MAAM,CA2ClB;IAED;;;OAGG;IACH,kBAFW,YAAY,QAUtB;IAED;;;OAGG;IACH,oBAFW,YAAY,QAiBtB;IAED;;;OAGG;IACH,oBAFY,MAAM,CAUjB;IAED;;;OAGG;IACH,wBAFW,MAAM,QAQhB;IAGL;;;OAGG;IACH,4BAFU,OAAO,CAE0B;CAN1C;6BArrB4B,iCAAiC"}
1
+ {"version":3,"file":"TetrahedralMesh.d.ts","sourceRoot":"","sources":["../../../../../../src/core/geom/3d/tetrahedra/TetrahedralMesh.js"],"names":[],"mappings":"AAgBA;;;;GAIG;AACH,qCAFU,MAAM,CAEkD;AAElE;;;GAGG;AACH,gCAFU,MAAM,CAE4B;AAE5C;;;GAGG;AACH,4BAFU,MAAM,CAEwB;AAoBxC;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH;IACI;;;OAGG;IACH,2BAFW,MAAM,EAqDhB;IAhDG;;;;OAIG;IACH,iBAAsE;IAEtE;;;;OAIG;IACH,sBAAmD;IAEnD;;;;OAIG;IACH,eAAyC;IAEzC;;;;OAIG;IACH,mBAA8B;IAE9B;;;;OAIG;IACH,mBAAmB;IAEnB;;;;OAIG;IACH,eAAgB;IAEhB;;;;OAIG;IACH,uBAAuB;IAG3B;;;OAGG;IACH,oBAEC;IAED;;;OAGG;IACH,2BAEC;IAED;;;;OAIG;IACH,2CAQC;IAED;;OAEG;IACH,cAWC;IAED;;;OAGG;IACH,sBAFW,MAAM,QA8BhB;IAED;;;OAGG;IACH,eAFY,MAAM,CAIjB;IAED;;;OAGG;IACH,QAFY,MAAM,CAIjB;IAED;;;OAGG;IACH,uBAFW,MAAM,QAchB;IAED;;;OAGG;IACH,yBAFW,MAAM,QAShB;IAED;;;;OAIG;IACH,YAHW,MAAM,GACL,OAAO,CAiBlB;IAED;;;;;OAKG;IACH,0BAJW,MAAM,mBACN,MAAM,GACJ,MAAM,CAYlB;IAED;;;;;OAKG;IACH,0BAJW,MAAM,mBACN,MAAM,aACN,MAAM,QAchB;IAGD;;;;;OAKG;IACH,0BAJW,MAAM,eACN,MAAM,GACJ,MAAM,CAYlB;IAED;;;;;OAKG;IACH,0BAJW,MAAM,eACN,MAAM,UACN,MAAM,QAiBhB;IAED;;;;;OAKG;IACH,uBAJW,MAAM,UACN,MAAM,GACL,OAAO,CAUlB;IAGD;;;;OAIG;IACH,YAFY,MAAM,CA4BjB;IAED;;;;;;;;OAQG;IACH,eAPW,MAAM,EAAE,GAAC,YAAY,KACrB,MAAM,KACN,MAAM,KACN,MAAM,KACN,MAAM,GACJ,MAAM,CAqBlB;IAED;;;;OAIG;IACH,wBAFW,MAAM,QAmBhB;IAED;;;;OAIG;IACH,oBAFW,MAAM,QAmBhB;IAED;;;;;OAKG;IACH,2CAHW,MAAM,aACN,MAAM,QAwBhB;IAED;;;;;;;;OAQG;IACH,4BAPW,MAAM,KACN,MAAM,KACN,MAAM,UACN,MAAM,EAAE,qBACR,MAAM,GACJ,MAAM,CAyDlB;IAGD;;;;;OAKG;IACH,uBAHW,MAAM,qBACN,MAAM,QA6BhB;IAED;;;;OAIG;IACH,WAFa,MAAM,CA2ClB;IAED;;;OAGG;IACH,kBAFW,YAAY,QAUtB;IAED;;;OAGG;IACH,oBAFW,YAAY,QAiBtB;IAED;;;OAGG;IACH,oBAFY,MAAM,CAUjB;IAED;;;OAGG;IACH,wBAFW,MAAM,QAQhB;IAGL;;;OAGG;IACH,4BAFU,OAAO,CAE0B;CAN1C;6BA1tB4B,iCAAiC"}