@woosh/meep-engine 2.110.9 → 2.110.11

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 (112) hide show
  1. package/build/meep.cjs +23 -1
  2. package/build/meep.min.js +1 -1
  3. package/build/meep.module.js +23 -1
  4. package/editor/ecs/component/editors/Sampler2DEditor.js +9 -9
  5. package/editor/ecs/component/editors/three/BufferGeometryEditor.js +4 -4
  6. package/editor/ecs/component/editors/three/MaterialEditor.js +3 -3
  7. package/editor/ecs/component/editors/three/MeshEditor.js +4 -4
  8. package/editor/ecs/component/editors/three/TextureEditor.js +1 -1
  9. package/editor/tools/paint/TerrainPaintTool.js +7 -7
  10. package/editor/tools/paint/TerrainTexturePaintTool.js +5 -5
  11. package/editor/view/ecs/components/GridObstacleController.js +6 -6
  12. package/editor/view/ecs/components/TerrainController.js +2 -2
  13. package/package.json +1 -1
  14. package/samples/terrain/editor.js +2 -2
  15. package/src/core/UUID.js +1 -1
  16. package/src/core/color/kelvin/prototype_kelvin_to_rgb.js +3 -3
  17. package/src/core/geom/2d/aabb/AABB2.d.ts.map +1 -1
  18. package/src/core/geom/2d/aabb/AABB2.js +27 -1
  19. package/src/core/geom/3d/normal/octahedron/prototype.js +1 -1
  20. package/src/core/geom/3d/tetrahedra/compute_tetrahedron_volume.d.ts +9 -0
  21. package/src/core/geom/3d/tetrahedra/compute_tetrahedron_volume.d.ts.map +1 -0
  22. package/src/core/geom/3d/tetrahedra/compute_tetrahedron_volume.js +18 -0
  23. package/src/core/geom/3d/tetrahedra/delaunay/compute_delaunay_tetrahedral_mesh.spec.js +17 -3
  24. package/src/core/geom/3d/tetrahedra/delaunay/tetrahedral_mesh_build_from_grid.spec.js +25 -2
  25. package/src/core/geom/3d/tetrahedra/is_tetrahedron_degenerate.d.ts +9 -0
  26. package/src/core/geom/3d/tetrahedra/is_tetrahedron_degenerate.d.ts.map +1 -0
  27. package/src/core/geom/3d/tetrahedra/is_tetrahedron_degenerate.js +21 -0
  28. package/src/core/geom/3d/tetrahedra/tetrahedron_compute_signed_volume.d.ts +2 -1
  29. package/src/core/geom/3d/tetrahedra/tetrahedron_compute_signed_volume.d.ts.map +1 -1
  30. package/src/core/geom/3d/tetrahedra/tetrahedron_compute_signed_volume.js +2 -1
  31. package/src/core/geom/3d/tetrahedra/triangle/prototype.js +1 -1
  32. package/src/core/geom/3d/tetrahedra/validate_tetrahedral_mesh.d.ts +2 -10
  33. package/src/core/geom/3d/tetrahedra/validate_tetrahedral_mesh.d.ts.map +1 -1
  34. package/src/core/geom/3d/tetrahedra/validate_tetrahedral_mesh.js +24 -31
  35. package/src/core/geom/mat3/m3_cm_invert.d.ts +7 -0
  36. package/src/core/geom/mat3/m3_cm_invert.d.ts.map +1 -0
  37. package/src/core/geom/mat3/m3_cm_invert.js +45 -0
  38. package/src/core/geom/vec2/v2_matrix3_cm_multiply.d.ts +10 -0
  39. package/src/core/geom/vec2/v2_matrix3_cm_multiply.d.ts.map +1 -0
  40. package/src/core/geom/vec2/v2_matrix3_cm_multiply.js +20 -0
  41. package/src/core/geom/vec2/v2_matrix3_rm_multiply.d.ts +10 -0
  42. package/src/core/geom/vec2/v2_matrix3_rm_multiply.d.ts.map +1 -0
  43. package/src/core/geom/vec2/v2_matrix3_rm_multiply.js +21 -0
  44. package/src/core/math/spline/spline_hermite3.js +2 -1
  45. package/src/core/math/spline/spline_hermite3_to_bezier.d.ts +12 -0
  46. package/src/core/math/spline/spline_hermite3_to_bezier.d.ts.map +1 -0
  47. package/src/core/math/spline/spline_hermite3_to_bezier.js +24 -0
  48. package/src/core/process/task/Task.d.ts.map +1 -1
  49. package/src/core/process/task/Task.js +2 -0
  50. package/src/core/process/task/util/actionTask.d.ts +2 -2
  51. package/src/core/process/task/util/actionTask.d.ts.map +1 -1
  52. package/src/core/process/task/util/actionTask.js +5 -2
  53. package/src/core/process/task/util/ignoreFailureTask.d.ts +8 -0
  54. package/src/core/process/task/util/ignoreFailureTask.d.ts.map +1 -0
  55. package/src/core/process/task/util/{wrapTaskIgnoreFailure.js → ignoreFailureTask.js} +9 -4
  56. package/src/core/process/task/util/task_tree_compute_leaf_tasks.d.ts +1 -1
  57. package/src/core/process/task/util/task_tree_compute_leaf_tasks.js +1 -1
  58. package/src/engine/animation/clip/AnimationTrack.js +1 -1
  59. package/src/engine/animation/curve/AnimationCurve.d.ts +11 -0
  60. package/src/engine/animation/curve/AnimationCurve.d.ts.map +1 -1
  61. package/src/engine/animation/curve/AnimationCurve.js +51 -4
  62. package/src/engine/animation/curve/draw/build_curve_editor.d.ts.map +1 -1
  63. package/src/engine/animation/curve/draw/build_curve_editor.js +15 -9
  64. package/src/engine/animation/curve/view/AnimationCurveView.d.ts +47 -0
  65. package/src/engine/animation/curve/view/AnimationCurveView.d.ts.map +1 -0
  66. package/src/engine/animation/curve/view/AnimationCurveView.js +343 -0
  67. package/src/engine/animation/curve/view/prototype.d.ts +2 -0
  68. package/src/engine/animation/curve/view/prototype.d.ts.map +1 -0
  69. package/src/engine/animation/curve/view/prototype.js +86 -0
  70. package/src/engine/asset/loaders/image/png/prototypePNG.js +1 -1
  71. package/src/engine/ecs/dynamic_actions/rules/DynamicRuleDescription.js +1 -1
  72. package/src/engine/ecs/guid/UUID.d.ts +10 -3
  73. package/src/engine/ecs/guid/UUID.d.ts.map +1 -1
  74. package/src/engine/ecs/guid/UUID.js +17 -5
  75. package/src/engine/ecs/guid/UUID.spec.js +7 -0
  76. package/src/engine/ecs/guid/UUIDSerializationAdapter.spec.d.ts +2 -0
  77. package/src/engine/ecs/guid/UUIDSerializationAdapter.spec.d.ts.map +1 -0
  78. package/src/engine/graphics/particles/particular/engine/utils/volume/prototypeParticleVolume.js +2 -2
  79. package/src/engine/graphics/sh3/path_tracer/prototypePathTracer.js +1 -1
  80. package/src/engine/graphics/sh3/sky/hosek/prototype_hosek.js +3 -3
  81. package/src/engine/graphics/texture/sampler/debug/debug_draw_sampler.js +1 -1
  82. package/src/engine/graphics/texture/sampler/downloadSamplerAsPNG.js +2 -2
  83. package/src/engine/graphics/texture/sampler/sampler2d_to_data_url.d.ts +8 -0
  84. package/src/engine/graphics/texture/sampler/sampler2d_to_data_url.d.ts.map +1 -0
  85. package/src/engine/graphics/texture/sampler/sampler2d_to_data_url.js +22 -0
  86. package/src/engine/graphics/texture/sampler/sampler2d_to_data_url.spec.d.ts +2 -0
  87. package/src/engine/graphics/texture/sampler/sampler2d_to_data_url.spec.d.ts.map +1 -0
  88. package/src/engine/graphics/texture/sampler/{convertSampler2D2DataURL.spec.js → sampler2d_to_data_url.spec.js} +2 -2
  89. package/src/engine/graphics/texture/sampler/{Sampler2D2Canvas.d.ts → sampler2d_to_html_canvas.d.ts} +3 -3
  90. package/src/engine/graphics/texture/sampler/sampler2d_to_html_canvas.d.ts.map +1 -0
  91. package/src/engine/graphics/texture/sampler/{Sampler2D2Canvas.js → sampler2d_to_html_canvas.js} +7 -7
  92. package/src/engine/graphics/texture/sampler/util/drawSamplerHTML.d.ts.map +1 -1
  93. package/src/engine/graphics/texture/sampler/util/drawSamplerHTML.js +3 -3
  94. package/src/engine/graphics/texture/sprite/prototypeSpriteCutoutGeometry.js +1 -1
  95. package/src/engine/scene/transitionToScene.js +3 -3
  96. package/src/generation/filtering/numeric/util/visualise_filters_as_grid.js +3 -3
  97. package/src/misc/makeMatcapSelectionOption.js +2 -2
  98. package/src/view/elements/DropDownSelectionView.js +1 -1
  99. package/src/view/elements/tiles2d/Tile.d.ts +1 -1
  100. package/src/view/elements/tiles2d/Tile.d.ts.map +1 -1
  101. package/src/view/elements/tiles2d/Tile.js +2 -1
  102. package/src/core/process/task/util/wrapTaskIgnoreFailure.d.ts +0 -8
  103. package/src/core/process/task/util/wrapTaskIgnoreFailure.d.ts.map +0 -1
  104. package/src/engine/ecs/guid/GUIDSerializationAdapter.spec.d.ts +0 -2
  105. package/src/engine/ecs/guid/GUIDSerializationAdapter.spec.d.ts.map +0 -1
  106. package/src/engine/graphics/texture/sampler/Sampler2D2Canvas.d.ts.map +0 -1
  107. package/src/engine/graphics/texture/sampler/convertSampler2D2DataURL.d.ts +0 -7
  108. package/src/engine/graphics/texture/sampler/convertSampler2D2DataURL.d.ts.map +0 -1
  109. package/src/engine/graphics/texture/sampler/convertSampler2D2DataURL.js +0 -23
  110. package/src/engine/graphics/texture/sampler/convertSampler2D2DataURL.spec.d.ts +0 -2
  111. package/src/engine/graphics/texture/sampler/convertSampler2D2DataURL.spec.d.ts.map +0 -1
  112. /package/src/engine/ecs/guid/{GUIDSerializationAdapter.spec.js → UUIDSerializationAdapter.spec.js} +0 -0
@@ -80383,12 +80383,34 @@ class AABB2 {
80383
80383
  this.y1 = y1;
80384
80384
  }
80385
80385
 
80386
+ /**
80387
+ *
80388
+ * @param {number} size
80389
+ */
80390
+ growWidth(size){
80391
+
80392
+ this.x0 -= size;
80393
+ this.x1 += size;
80394
+ }
80395
+
80396
+ /**
80397
+ *
80398
+ * @param {number} size
80399
+ */
80400
+ growHeight(size){
80401
+
80402
+ this.y0 -= size;
80403
+ this.y1 += size;
80404
+ }
80405
+
80386
80406
  /**
80387
80407
  * Expands box in every direction by a given amount
80388
80408
  * @param {number} size
80389
80409
  */
80390
80410
  grow(size) {
80391
- this.set(this.x0 - size, this.y0 - size, this.x1 + size, this.y1 + size);
80411
+
80412
+ this.growWidth(size);
80413
+ this.growHeight(size);
80392
80414
  }
80393
80415
 
80394
80416
  /**
@@ -1,22 +1,22 @@
1
- import { TypeEditor } from "../TypeEditor.js";
2
- import { CanvasView } from "../../../../src/view/elements/CanvasView.js";
3
- import sampler2D2Canvas from "../../../../src/engine/graphics/texture/sampler/Sampler2D2Canvas.js";
4
- import { sampler2d_scale } from "../../../../src/engine/graphics/texture/sampler/resize/sampler2d_scale.js";
5
- import { Sampler2D } from "../../../../src/engine/graphics/texture/sampler/Sampler2D.js";
6
- import {
7
- typedArrayConstructorByInstance
8
- } from "../../../../src/engine/graphics/texture/sampler/typedArrayConstructorByInstance.js";
9
1
  import { FrameRunner } from "../../../../src/engine/graphics/FrameRunner.js";
10
2
  import canvas2Sampler2D from "../../../../src/engine/graphics/texture/Canvas2Sampler2D.js";
11
3
  import {
12
4
  copy_Sampler2D_channel_data
13
5
  } from "../../../../src/engine/graphics/texture/sampler/copy_Sampler2D_channel_data.js";
14
- import { MouseEvents } from "../../../../src/engine/input/devices/events/MouseEvents.js";
15
6
  import { downloadSampler2DAsPNG } from "../../../../src/engine/graphics/texture/sampler/downloadSamplerAsPNG.js";
7
+ import { sampler2d_scale } from "../../../../src/engine/graphics/texture/sampler/resize/sampler2d_scale.js";
8
+ import { Sampler2D } from "../../../../src/engine/graphics/texture/sampler/Sampler2D.js";
16
9
  import {
17
10
  sampler2d_compute_texel_value_conversion_scale_to_uint8
18
11
  } from "../../../../src/engine/graphics/texture/sampler/sampler2d_compute_texel_value_conversion_scale_to_uint8.js";
12
+ import sampler2D2Canvas from "../../../../src/engine/graphics/texture/sampler/sampler2d_to_html_canvas.js";
13
+ import {
14
+ typedArrayConstructorByInstance
15
+ } from "../../../../src/engine/graphics/texture/sampler/typedArrayConstructorByInstance.js";
16
+ import { MouseEvents } from "../../../../src/engine/input/devices/events/MouseEvents.js";
17
+ import { CanvasView } from "../../../../src/view/elements/CanvasView.js";
19
18
  import EmptyView from "../../../../src/view/elements/EmptyView.js";
19
+ import { TypeEditor } from "../TypeEditor.js";
20
20
 
21
21
  const UPDATE_DELAY = 200;
22
22
 
@@ -1,10 +1,10 @@
1
- import { TypeEditor } from "../../TypeEditor.js";
2
- import { Sampler2D } from "../../../../../src/engine/graphics/texture/sampler/Sampler2D.js";
3
- import { renderObjectToSampler2D } from "../../../../../src/engine/graphics/util/renderObjectToSampler2D.js";
4
1
  import { Mesh, MeshPhongMaterial } from "three";
5
2
  import AABB2 from "../../../../../src/core/geom/2d/aabb/AABB2.js";
3
+ import { Sampler2D } from "../../../../../src/engine/graphics/texture/sampler/Sampler2D.js";
4
+ import sampler2D2Canvas from "../../../../../src/engine/graphics/texture/sampler/sampler2d_to_html_canvas.js";
5
+ import { renderObjectToSampler2D } from "../../../../../src/engine/graphics/util/renderObjectToSampler2D.js";
6
6
  import { CanvasView } from "../../../../../src/view/elements/CanvasView.js";
7
- import sampler2D2Canvas from "../../../../../src/engine/graphics/texture/sampler/Sampler2D2Canvas.js";
7
+ import { TypeEditor } from "../../TypeEditor.js";
8
8
 
9
9
  export class BufferGeometryEditor extends TypeEditor {
10
10
  build(parent, field, registry) {
@@ -1,9 +1,9 @@
1
- import { TypeEditor } from "../../TypeEditor.js";
1
+ import { Mesh, SphereBufferGeometry } from "three";
2
2
  import { Sampler2D } from "../../../../../src/engine/graphics/texture/sampler/Sampler2D.js";
3
+ import sampler2D2Canvas from "../../../../../src/engine/graphics/texture/sampler/sampler2d_to_html_canvas.js";
3
4
  import { renderObjectToSampler2D } from "../../../../../src/engine/graphics/util/renderObjectToSampler2D.js";
4
- import { Mesh, SphereBufferGeometry } from "three";
5
5
  import { CanvasView } from "../../../../../src/view/elements/CanvasView.js";
6
- import sampler2D2Canvas from "../../../../../src/engine/graphics/texture/sampler/Sampler2D2Canvas.js";
6
+ import { TypeEditor } from "../../TypeEditor.js";
7
7
 
8
8
  export class MaterialEditor extends TypeEditor {
9
9
  build(parent, field, registry) {
@@ -1,10 +1,10 @@
1
- import { TypeEditor } from "../../TypeEditor.js";
1
+ import AABB2 from "../../../../../src/core/geom/2d/aabb/AABB2.js";
2
2
  import { Sampler2D } from "../../../../../src/engine/graphics/texture/sampler/Sampler2D.js";
3
+ import sampler2D2Canvas from "../../../../../src/engine/graphics/texture/sampler/sampler2d_to_html_canvas.js";
3
4
  import { renderObjectToSampler2D } from "../../../../../src/engine/graphics/util/renderObjectToSampler2D.js";
4
- import AABB2 from "../../../../../src/core/geom/2d/aabb/AABB2.js";
5
- import { CanvasView } from "../../../../../src/view/elements/CanvasView.js";
6
- import sampler2D2Canvas from "../../../../../src/engine/graphics/texture/sampler/Sampler2D2Canvas.js";
7
5
  import { threeUpdateTransform } from "../../../../../src/engine/graphics/util/threeUpdateTransform.js";
6
+ import { CanvasView } from "../../../../../src/view/elements/CanvasView.js";
7
+ import { TypeEditor } from "../../TypeEditor.js";
8
8
 
9
9
  export class MeshEditor extends TypeEditor {
10
10
  build(parent, field, registry) {
@@ -4,7 +4,7 @@ import {
4
4
  } from "../../../../../src/engine/graphics/texture/sampler/convertTexture2Sampler2D.js";
5
5
  import { downloadSampler2DAsPNG } from "../../../../../src/engine/graphics/texture/sampler/downloadSamplerAsPNG.js";
6
6
  import { Sampler2D } from "../../../../../src/engine/graphics/texture/sampler/Sampler2D.js";
7
- import sampler2D2Canvas from "../../../../../src/engine/graphics/texture/sampler/Sampler2D2Canvas.js";
7
+ import sampler2D2Canvas from "../../../../../src/engine/graphics/texture/sampler/sampler2d_to_html_canvas.js";
8
8
  import { MouseEvents } from "../../../../../src/engine/input/devices/events/MouseEvents.js";
9
9
  import { CanvasView } from "../../../../../src/view/elements/CanvasView.js";
10
10
  import EmptyView from "../../../../../src/view/elements/EmptyView.js";
@@ -1,14 +1,14 @@
1
- import { max2 } from "../../../src/core/math/max2.js";
2
- import Tool from "../engine/Tool.js";
3
1
  import { Color } from "../../../src/core/color/Color.js";
4
- import { Sampler2D } from "../../../src/engine/graphics/texture/sampler/Sampler2D.js";
2
+ import Vector1 from "../../../src/core/geom/Vector1.js";
5
3
  import Vector2 from "../../../src/core/geom/Vector2.js";
6
- import convertSampler2D2Canvas from "../../../src/engine/graphics/texture/sampler/Sampler2D2Canvas.js";
4
+ import { max2 } from "../../../src/core/math/max2.js";
7
5
  import ObservedString from "../../../src/core/model/ObservedString.js";
8
6
  import { GameAssetType } from "../../../src/engine/asset/GameAssetType.js";
9
- import Vector1 from "../../../src/core/geom/Vector1.js";
10
- import { obtainTerrain } from "../../../src/engine/ecs/terrain/util/obtainTerrain.js";
11
7
  import { pick } from "../../../src/engine/ecs/grid/pick.js";
8
+ import { obtainTerrain } from "../../../src/engine/ecs/terrain/util/obtainTerrain.js";
9
+ import { Sampler2D } from "../../../src/engine/graphics/texture/sampler/Sampler2D.js";
10
+ import sampler2d_to_html_canvas from "../../../src/engine/graphics/texture/sampler/sampler2d_to_html_canvas.js";
11
+ import Tool from "../engine/Tool.js";
12
12
 
13
13
  export class TerrainPaintTool extends Tool {
14
14
  constructor() {
@@ -103,7 +103,7 @@ export class TerrainPaintTool extends Tool {
103
103
 
104
104
  const brushImage = this.__brushImage;
105
105
 
106
- convertSampler2D2Canvas(temp, 1, 0, brushImage);
106
+ sampler2d_to_html_canvas(temp, 1, 0, brushImage);
107
107
 
108
108
  }
109
109
 
@@ -1,9 +1,9 @@
1
- import { TerrainPaintTool } from "./TerrainPaintTool.js";
2
- import { convertSampler2D2DataURL } from "../../../src/engine/graphics/texture/sampler/convertSampler2D2DataURL.js";
3
1
  import { obtainTerrain } from "../../../src/engine/ecs/terrain/util/obtainTerrain.js";
4
- import { ModifyPatchTextureArray2DAction } from "../../actions/concrete/ModifyPatchTextureArray2DAction.js";
5
- import { ArrayCopyAction } from "../../actions/concrete/ArrayCopyAction.js";
2
+ import { sampler2d_to_data_url } from "../../../src/engine/graphics/texture/sampler/sampler2d_to_data_url.js";
6
3
  import { ActionUpdateTexture } from "../../actions/concrete/ActionUpdateTexture.js";
4
+ import { ArrayCopyAction } from "../../actions/concrete/ArrayCopyAction.js";
5
+ import { ModifyPatchTextureArray2DAction } from "../../actions/concrete/ModifyPatchTextureArray2DAction.js";
6
+ import { TerrainPaintTool } from "./TerrainPaintTool.js";
7
7
 
8
8
  export class TerrainTexturePaintTool extends TerrainPaintTool {
9
9
  constructor() {
@@ -76,7 +76,7 @@ export class TerrainTexturePaintTool extends TerrainPaintTool {
76
76
 
77
77
  if (url === null) {
78
78
  // no URL, try to sample texture directly
79
- url = convertSampler2D2DataURL(layer.diffuse);
79
+ url = sampler2d_to_data_url(layer.diffuse);
80
80
  }
81
81
 
82
82
  this.icon.set(url);
@@ -1,11 +1,11 @@
1
+ import Vector2 from "../../../../src/core/geom/Vector2.js";
1
2
  import ObservedValue from "../../../../src/core/model/ObservedValue.js";
2
- import View from "../../../../src/view/View.js";
3
+ import { sampler2d_scale } from "../../../../src/engine/graphics/texture/sampler/resize/sampler2d_scale.js";
4
+ import { Sampler2D } from "../../../../src/engine/graphics/texture/sampler/Sampler2D.js";
5
+ import sampler2d_to_html_canvas from "../../../../src/engine/graphics/texture/sampler/sampler2d_to_html_canvas.js";
3
6
  import { CanvasView } from "../../../../src/view/elements/CanvasView.js";
7
+ import View from "../../../../src/view/View.js";
4
8
  import DatGuiController from "./DatGuiController.js";
5
- import convertSampler2D2Canvas from "../../../../src/engine/graphics/texture/sampler/Sampler2D2Canvas.js";
6
- import { Sampler2D } from "../../../../src/engine/graphics/texture/sampler/Sampler2D.js";
7
- import { sampler2d_scale } from "../../../../src/engine/graphics/texture/sampler/resize/sampler2d_scale.js";
8
- import Vector2 from "../../../../src/core/geom/Vector2.js";
9
9
 
10
10
  /**
11
11
  *
@@ -19,7 +19,7 @@ export function buildGridObstaclePreview(grid, canvas) {
19
19
 
20
20
  sampler2d_scale(source, target);
21
21
 
22
- convertSampler2D2Canvas(target, 255, 0, canvas);
22
+ sampler2d_to_html_canvas(target, 255, 0, canvas);
23
23
  }
24
24
 
25
25
  export class GridObstacleController extends View {
@@ -5,7 +5,7 @@ import { TerrainLayer } from "../../../../src/engine/ecs/terrain/ecs/layers/Terr
5
5
  import CheckersTextureURI from "../../../../src/engine/graphics/texture/CheckersTextureURI.js";
6
6
  import { sampler2d_scale } from "../../../../src/engine/graphics/texture/sampler/resize/sampler2d_scale.js";
7
7
  import { Sampler2D } from "../../../../src/engine/graphics/texture/sampler/Sampler2D.js";
8
- import convertSampler2D2Canvas from "../../../../src/engine/graphics/texture/sampler/Sampler2D2Canvas.js";
8
+ import sampler2d_to_html_canvas from "../../../../src/engine/graphics/texture/sampler/sampler2d_to_html_canvas.js";
9
9
  import LabelView from "../../../../src/view/common/LabelView.js";
10
10
  import { NativeListController } from "../../../../src/view/controller/controls/NativeListController.js";
11
11
  import Vector2Control from "../../../../src/view/controller/controls/Vector2Control.js";
@@ -94,7 +94,7 @@ class LayersController extends View {
94
94
 
95
95
  sampler2d_scale(layer.diffuse, t);
96
96
 
97
- convertSampler2D2Canvas(t, 1, 0, vCanvas.el);
97
+ sampler2d_to_html_canvas(t, 1, 0, vCanvas.el);
98
98
  }
99
99
 
100
100
  update();
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.110.9",
8
+ "version": "2.110.11",
9
9
  "main": "build/meep.module.js",
10
10
  "module": "build/meep.module.js",
11
11
  "exports": {
@@ -19,7 +19,7 @@ import CheckersTextureURI from "../../src/engine/graphics/texture/CheckersTextur
19
19
  import { copy_Sampler2D_channel_data } from "../../src/engine/graphics/texture/sampler/copy_Sampler2D_channel_data.js";
20
20
  import { sampler2d_scale } from "../../src/engine/graphics/texture/sampler/resize/sampler2d_scale.js";
21
21
  import { Sampler2D } from "../../src/engine/graphics/texture/sampler/Sampler2D.js";
22
- import convertSampler2D2Canvas from "../../src/engine/graphics/texture/sampler/Sampler2D2Canvas.js";
22
+ import sampler2d_to_html_canvas from "../../src/engine/graphics/texture/sampler/sampler2d_to_html_canvas.js";
23
23
  import { NativeListController } from "../../src/view/controller/controls/NativeListController.js";
24
24
  import { CanvasView } from "../../src/view/elements/CanvasView.js";
25
25
  import EmptyView from "../../src/view/elements/EmptyView.js";
@@ -157,7 +157,7 @@ function makeTextureSlotView({ slot }) {
157
157
 
158
158
 
159
159
  function update() {
160
- convertSampler2D2Canvas(slot.sampler, 1, 0, preview.el);
160
+ sampler2d_to_html_canvas(slot.sampler, 1, 0, preview.el);
161
161
  }
162
162
 
163
163
  preview.on.linked.add(update);
package/src/core/UUID.js CHANGED
@@ -7,7 +7,7 @@ import { UUID } from "../engine/ecs/guid/UUID.js";
7
7
  * @returns {string}
8
8
  */
9
9
  function uuid() {
10
- return UUID.v4().toString();
10
+ return UUID.string();
11
11
  }
12
12
 
13
13
  /**
@@ -1,9 +1,9 @@
1
+ import { Sampler2D } from "../../../engine/graphics/texture/sampler/Sampler2D.js";
2
+ import sampler2D2Canvas from "../../../engine/graphics/texture/sampler/sampler2d_to_html_canvas.js";
1
3
  import { CanvasView } from "../../../view/elements/CanvasView.js";
2
- import { kelvin_to_rgb } from "./kelvin_to_rgb.js";
3
4
  import { lerp } from "../../math/lerp.js";
4
- import { Sampler2D } from "../../../engine/graphics/texture/sampler/Sampler2D.js";
5
- import sampler2D2Canvas from "../../../engine/graphics/texture/sampler/Sampler2D2Canvas.js";
6
5
  import { sRGB_to_linear } from "../sRGB/sRGB_to_linear.js";
6
+ import { kelvin_to_rgb } from "./kelvin_to_rgb.js";
7
7
 
8
8
  const view = new CanvasView();
9
9
 
@@ -1 +1 @@
1
- {"version":3,"file":"AABB2.d.ts","sourceRoot":"","sources":["../../../../../../src/core/geom/2d/aabb/AABB2.js"],"names":[],"mappings":";AAYA;;;GAGG;AACH;IACI;;;;;;OAMG;IACH,gEA+BC;IApBG;;;OAGG;IACH,WAAY;IACZ;;;OAGG;IACH,WAAY;IACZ;;;OAGG;IACH,WAAY;IACZ;;;OAGG;IACH,WAAY;IAGhB;;;OAGG;IACH,WAFW,MAAM,QAIhB;IAED;;;OAGG;IACH,aAFW,MAAM,QAIhB;IAED;;;OAGG;IACH,gBAFW,MAAM,EAAE,QA8BlB;IAED;;;OAGG;IACH,sBAFW,MAAM,QAShB;IAED;;;;;OAKG;IACH,sBAJW,KAAK,UACL,KAAK,GACH,OAAO,CAcnB;IAED;;;;OAIG;IACH,qBAHW,KAAK,GACH,OAAO,CAcnB;IAED;;;;;;;OAOG;IACH,0EAMC;IAED;;;;OAIG;IACH,qBAHW,MAAM,KACN,MAAM,QAKhB;IAED;;;OAGG;IACH,QAFa,MAAM,CAIlB;IAED;;;OAGG;IACH,QAFa,MAAM,CAIlB;IAED;;;;;;OAMG;IACH,0BALW,OAAO,MACP,OAAO,UACP,OAAO,GACL,OAAO,CA0BnB;IAED;;;;OAIG;IACH,kCAHW,OAAO,UACP,OAAO,QAmBjB;IAED;;;;OAIG;IACH,wBAHW,KAAK,GACH,MAAM,CAIlB;IAED;;;;;;;OAOG;IACH,sBANW,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,GACJ,MAAM,CA4BlB;IAED;;;OAGG;IACH,eAFa,MAAM,CASlB;IAED;;;OAGG;IACH,sBAFY,MAAM,CAYjB;IAED;;;;;OAKG;IACH,iBAJW,MAAM,KACN,MAAM,GACJ,OAAO,CAInB;IAED;;;OAGG;IACH,mBAFW,KAAK,QAIf;IAED;;;OAGG;IACH,mBAFW,OAAO,WAMjB;IAED;;;OAGG;IACH,sBAEC;IAED;;;OAGG;IACH,sBAGC;IAED;;;OAGG;IACH,YAFa,MAAM,CAIlB;IAED;;;OAGG;IACH,oBAEC;IAED;;;OAGG;IACH,aAFa,MAAM,CAIlB;IAED;;;OAGG;IACH,qBAEC;IAED;;;;;;;OAOG;IACH,0DAiBC;IAED;;;;OAIG;IACH,eAHW,MAAM,KACN,MAAM,QAOhB;IAED;;;;OAIG;IACH,aAHW,MAAM,UACN,MAAM,QAIhB;IAED;;;OAGG;IACH,SAFa,KAAK,CAIjB;IAED;;;;OAIG;IACH,YAHW,KAAK,GACH,KAAK,CAIjB;IAED;;;;OAIG;IACH,cAHW,KAAK,GACH,OAAO,CAOnB;IAED;;;;;;OAMG;IACH,UALW,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,QAQhB;IAED;;;;;;OAMG;IACH,uBALW,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,QAsBhB;IAED;;OAEG;IACH,oCAEC;IAED,mBAEC;IAED;;;;;MAOC;IAED,0BAEC;CACJ;;;qBAqCS,KAAK;qBAML,KAAK;;oBAhlBK,kBAAkB;AAwiBtC;;;;;;;GAOG;AACH,gDANW,KAAK,MACL,KAAK,MACL,OAAO,MACP,OAAO,GACL,OAAO,CAsBnB"}
1
+ {"version":3,"file":"AABB2.d.ts","sourceRoot":"","sources":["../../../../../../src/core/geom/2d/aabb/AABB2.js"],"names":[],"mappings":";AAYA;;;GAGG;AACH;IACI;;;;;;OAMG;IACH,gEA+BC;IApBG;;;OAGG;IACH,WAAY;IACZ;;;OAGG;IACH,WAAY;IACZ;;;OAGG;IACH,WAAY;IACZ;;;OAGG;IACH,WAAY;IAGhB;;;OAGG;IACH,gBAFW,MAAM,QAQhB;IAED;;;OAGG;IACH,iBAFW,MAAM,QAQhB;IAED;;;OAGG;IACH,WAFW,MAAM,QAMhB;IAED;;;OAGG;IACH,aAFW,MAAM,QAIhB;IAED;;;OAGG;IACH,gBAFW,MAAM,EAAE,QA8BlB;IAED;;;OAGG;IACH,sBAFW,MAAM,QAShB;IAED;;;;;OAKG;IACH,sBAJW,KAAK,UACL,KAAK,GACH,OAAO,CAcnB;IAED;;;;OAIG;IACH,qBAHW,KAAK,GACH,OAAO,CAcnB;IAED;;;;;;;OAOG;IACH,0EAMC;IAED;;;;OAIG;IACH,qBAHW,MAAM,KACN,MAAM,QAKhB;IAED;;;OAGG;IACH,QAFa,MAAM,CAIlB;IAED;;;OAGG;IACH,QAFa,MAAM,CAIlB;IAED;;;;;;OAMG;IACH,0BALW,OAAO,MACP,OAAO,UACP,OAAO,GACL,OAAO,CA0BnB;IAED;;;;OAIG;IACH,kCAHW,OAAO,UACP,OAAO,QAmBjB;IAED;;;;OAIG;IACH,wBAHW,KAAK,GACH,MAAM,CAIlB;IAED;;;;;;;OAOG;IACH,sBANW,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,GACJ,MAAM,CA4BlB;IAED;;;OAGG;IACH,eAFa,MAAM,CASlB;IAED;;;OAGG;IACH,sBAFY,MAAM,CAYjB;IAED;;;;;OAKG;IACH,iBAJW,MAAM,KACN,MAAM,GACJ,OAAO,CAInB;IAED;;;OAGG;IACH,mBAFW,KAAK,QAIf;IAED;;;OAGG;IACH,mBAFW,OAAO,WAMjB;IAED;;;OAGG;IACH,sBAEC;IAED;;;OAGG;IACH,sBAGC;IAED;;;OAGG;IACH,YAFa,MAAM,CAIlB;IAED;;;OAGG;IACH,oBAEC;IAED;;;OAGG;IACH,aAFa,MAAM,CAIlB;IAED;;;OAGG;IACH,qBAEC;IAED;;;;;;;OAOG;IACH,0DAiBC;IAED;;;;OAIG;IACH,eAHW,MAAM,KACN,MAAM,QAOhB;IAED;;;;OAIG;IACH,aAHW,MAAM,UACN,MAAM,QAIhB;IAED;;;OAGG;IACH,SAFa,KAAK,CAIjB;IAED;;;;OAIG;IACH,YAHW,KAAK,GACH,KAAK,CAIjB;IAED;;;;OAIG;IACH,cAHW,KAAK,GACH,OAAO,CAOnB;IAED;;;;;;OAMG;IACH,UALW,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,QAQhB;IAED;;;;;;OAMG;IACH,uBALW,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,QAsBhB;IAED;;OAEG;IACH,oCAEC;IAED,mBAEC;IAED;;;;;MAOC;IAED,0BAEC;CACJ;;;qBAqCS,KAAK;qBAML,KAAK;;oBA1mBK,kBAAkB;AAkkBtC;;;;;;;GAOG;AACH,gDANW,KAAK,MACL,KAAK,MACL,OAAO,MACP,OAAO,GACL,OAAO,CAsBnB"}
@@ -55,12 +55,38 @@ class AABB2 {
55
55
  this.y1 = y1;
56
56
  }
57
57
 
58
+ /**
59
+ *
60
+ * @param {number} size
61
+ */
62
+ growWidth(size){
63
+ assert.isNumber(size,'size');
64
+ assert.notNaN(size,'size');
65
+
66
+ this.x0 -= size;
67
+ this.x1 += size;
68
+ }
69
+
70
+ /**
71
+ *
72
+ * @param {number} size
73
+ */
74
+ growHeight(size){
75
+ assert.isNumber(size,'size');
76
+ assert.notNaN(size,'size');
77
+
78
+ this.y0 -= size;
79
+ this.y1 += size;
80
+ }
81
+
58
82
  /**
59
83
  * Expands box in every direction by a given amount
60
84
  * @param {number} size
61
85
  */
62
86
  grow(size) {
63
- this.set(this.x0 - size, this.y0 - size, this.x1 + size, this.y1 + size);
87
+
88
+ this.growWidth(size);
89
+ this.growHeight(size);
64
90
  }
65
91
 
66
92
  /**
@@ -13,7 +13,7 @@ import { OrbitControls } from "three/examples/jsm/controls/OrbitControls.js";
13
13
  import { makeSolidArrowGeometry } from "../../../../../../editor/process/symbolic/makeSolidArrowGeometry.js";
14
14
  import { AssetManager } from "../../../../../engine/asset/AssetManager.js";
15
15
  import { ImageRGBADataLoader } from "../../../../../engine/asset/loaders/image/ImageRGBADataLoader.js";
16
- import sampler2D2Canvas from "../../../../../engine/graphics/texture/sampler/Sampler2D2Canvas.js";
16
+ import sampler2D2Canvas from "../../../../../engine/graphics/texture/sampler/sampler2d_to_html_canvas.js";
17
17
  import { MouseEvents } from "../../../../../engine/input/devices/events/MouseEvents.js";
18
18
  import { CSS_ABSOLUTE_POSITIONING } from "../../../../../view/CSS_ABSOLUTE_POSITIONING.js";
19
19
  import { CanvasView } from "../../../../../view/elements/CanvasView.js";
@@ -0,0 +1,9 @@
1
+ /**
2
+ *
3
+ * @param {TetrahedralMesh} mesh
4
+ * @param {ArrayLike<number>|number[]} points
5
+ * @param {number} tet_index
6
+ * @return {number}
7
+ */
8
+ export function compute_tetrahedron_volume(mesh: TetrahedralMesh, points: ArrayLike<number> | number[], tet_index: number): number;
9
+ //# sourceMappingURL=compute_tetrahedron_volume.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compute_tetrahedron_volume.d.ts","sourceRoot":"","sources":["../../../../../../src/core/geom/3d/tetrahedra/compute_tetrahedron_volume.js"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,0EAJW,UAAU,MAAM,CAAC,GAAC,MAAM,EAAE,aAC1B,MAAM,GACL,MAAM,CAUjB"}
@@ -0,0 +1,18 @@
1
+ import { tetrahedron_compute_signed_volume } from "./tetrahedron_compute_signed_volume.js";
2
+
3
+ /**
4
+ *
5
+ * @param {TetrahedralMesh} mesh
6
+ * @param {ArrayLike<number>|number[]} points
7
+ * @param {number} tet_index
8
+ * @return {number}
9
+ */
10
+ export function compute_tetrahedron_volume(mesh, points, tet_index) {
11
+
12
+ const a = mesh.getVertexIndex(tet_index, 0);
13
+ const b = mesh.getVertexIndex(tet_index, 1);
14
+ const c = mesh.getVertexIndex(tet_index, 2);
15
+ const d = mesh.getVertexIndex(tet_index, 3);
16
+
17
+ return tetrahedron_compute_signed_volume(points, a, b, c, d);
18
+ }
@@ -2,8 +2,9 @@
2
2
  * @jest-environment jsdom
3
3
  */
4
4
 
5
- import { compute_delaunay_tetrahedral_mesh } from "./compute_delaunay_tetrahedral_mesh.js";
6
5
  import { TetrahedralMesh } from "../TetrahedralMesh.js";
6
+ import { validate_tetrahedral_mesh } from "../validate_tetrahedral_mesh.js";
7
+ import { compute_delaunay_tetrahedral_mesh } from "./compute_delaunay_tetrahedral_mesh.js";
7
8
 
8
9
  test('single point', () => {
9
10
  const mesh = new TetrahedralMesh();
@@ -13,10 +14,23 @@ test('single point', () => {
13
14
 
14
15
  test('exactly 4 points', () => {
15
16
  const mesh = new TetrahedralMesh();
16
- compute_delaunay_tetrahedral_mesh(mesh, [
17
+ const points = [
17
18
  -1, 0, 0,
18
19
  1, 0, 0,
19
20
  0.5, 1, 0,
20
21
  0.5, 0, 1
21
- ], 4);
22
+ ];
23
+ compute_delaunay_tetrahedral_mesh(mesh, points, 4);
24
+
25
+
26
+ // do full validation
27
+ const problems = [];
28
+
29
+ const is_valid = validate_tetrahedral_mesh(mesh, points, (problem) => problems.push(problem));
30
+
31
+ if (!is_valid) {
32
+ console.error(problems.join('\n'));
33
+ }
34
+
35
+ expect(is_valid).toBe(true);
22
36
  });
@@ -1,11 +1,17 @@
1
1
  import { AABB3 } from "../../aabb/AABB3.js";
2
+ import { compute_tetrahedron_volume } from "../compute_tetrahedron_volume.js";
2
3
  import { TetrahedralMesh } from "../TetrahedralMesh.js";
4
+ import { validate_tetrahedral_mesh } from "../validate_tetrahedral_mesh.js";
3
5
  import { tetrahedral_mesh_build_from_grid } from "./tetrahedral_mesh_build_from_grid.js";
4
6
 
5
7
  test("Single cube", () => {
6
8
 
7
9
  const mesh = new TetrahedralMesh();
8
10
 
11
+ /**
12
+ *
13
+ * @type {number[]}
14
+ */
9
15
  const points = [];
10
16
 
11
17
  tetrahedral_mesh_build_from_grid(
@@ -25,14 +31,31 @@ test("Single cube", () => {
25
31
  const tetrahedrons = mesh.getLive();
26
32
 
27
33
  for (let i = 0; i < tetrahedrons.length; i++) {
28
- const tet = tetrahedrons[i];
34
+ const tet_index = tetrahedrons[i];
29
35
 
30
36
  for (let vertex_index = 0; vertex_index < 4; vertex_index++) {
31
37
 
32
- const vert = mesh.getVertexIndex(tet, vertex_index);
38
+ const vert = mesh.getVertexIndex(tet_index, vertex_index);
33
39
 
34
40
  expect(vert).toBeGreaterThanOrEqual(0);
35
41
  expect(vert).toBeLessThan(8);
36
42
  }
43
+
44
+ // tetrahedrons should have positive volume
45
+ const volume = compute_tetrahedron_volume(mesh, points, tet_index);
46
+
47
+ expect(volume).toBeGreaterThan(0);
48
+ }
49
+
50
+ // do full validation
51
+ const problems = [];
52
+
53
+ const is_valid = validate_tetrahedral_mesh(mesh, points, (problem) => problems.push(problem));
54
+
55
+ if (!is_valid) {
56
+ console.error(problems.join('\n'));
37
57
  }
58
+
59
+ expect(is_valid).toBe(true);
60
+
38
61
  });
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Vertices must be unique inside a single tetrahedron, that is - no repetitions are allowed
3
+ * If vertices are repeated - volume will be 0 and tetrahedron will be degenerate
4
+ * @param {TetrahedralMesh} mesh
5
+ * @param {number} tet
6
+ * @returns {boolean}
7
+ */
8
+ export function is_tetrahedron_degenerate(mesh: TetrahedralMesh, tet: number): boolean;
9
+ //# sourceMappingURL=is_tetrahedron_degenerate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"is_tetrahedron_degenerate.d.ts","sourceRoot":"","sources":["../../../../../../src/core/geom/3d/tetrahedra/is_tetrahedron_degenerate.js"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,sEAHW,MAAM,GACJ,OAAO,CAenB"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Vertices must be unique inside a single tetrahedron, that is - no repetitions are allowed
3
+ * If vertices are repeated - volume will be 0 and tetrahedron will be degenerate
4
+ * @param {TetrahedralMesh} mesh
5
+ * @param {number} tet
6
+ * @returns {boolean}
7
+ */
8
+ export function is_tetrahedron_degenerate(mesh, tet) {
9
+
10
+ for (let i0 = 0; i0 < 4; i0++) {
11
+ const v0 = mesh.getVertexIndex(tet, i0);
12
+ for (let i1 = i0 + 1; i1 < 4; i1++) {
13
+ if (v0 === mesh.getVertexIndex(tet, i1)) {
14
+ // identical vertices
15
+ return true;
16
+ }
17
+ }
18
+ }
19
+
20
+ return false;
21
+ }
@@ -1,6 +1,7 @@
1
1
  /**
2
+ * Uses counter-clock-wise winding rule
3
+ * Very similar to "orient3d" method
2
4
  * @see https://en.wikipedia.org/wiki/Tetrahedron
3
- *
4
5
  * @param {ArrayLike<number>|number[]|Float32Array} points
5
6
  * @param {number} a
6
7
  * @param {number} b
@@ -1 +1 @@
1
- {"version":3,"file":"tetrahedron_compute_signed_volume.d.ts","sourceRoot":"","sources":["../../../../../../src/core/geom/3d/tetrahedra/tetrahedron_compute_signed_volume.js"],"names":[],"mappings":"AAkCA;;;;;;;;;GASG;AACH,0DAPW,UAAU,MAAM,CAAC,GAAC,MAAM,EAAE,GAAC,YAAY,KACvC,MAAM,KACN,MAAM,KACN,MAAM,KACN,MAAM,GACJ,MAAM,CA0ClB"}
1
+ {"version":3,"file":"tetrahedron_compute_signed_volume.d.ts","sourceRoot":"","sources":["../../../../../../src/core/geom/3d/tetrahedra/tetrahedron_compute_signed_volume.js"],"names":[],"mappings":"AAkCA;;;;;;;;;;GAUG;AACH,0DAPW,UAAU,MAAM,CAAC,GAAC,MAAM,EAAE,GAAC,YAAY,KACvC,MAAM,KACN,MAAM,KACN,MAAM,KACN,MAAM,GACJ,MAAM,CA0ClB"}
@@ -33,8 +33,9 @@ function triangle_compute_signed_volume(
33
33
 
34
34
 
35
35
  /**
36
+ * Uses counter-clock-wise winding rule
37
+ * Very similar to "orient3d" method
36
38
  * @see https://en.wikipedia.org/wiki/Tetrahedron
37
- *
38
39
  * @param {ArrayLike<number>|number[]|Float32Array} points
39
40
  * @param {number} a
40
41
  * @param {number} b
@@ -2,7 +2,7 @@ import { BoxBufferGeometry, MeshStandardMaterial } from "three";
2
2
  import { Transform } from "../../../../../engine/ecs/transform/Transform.js";
3
3
  import { PathTracedScene } from "../../../../../engine/graphics/sh3/path_tracer/PathTracedScene.js";
4
4
  import { Sampler2D } from "../../../../../engine/graphics/texture/sampler/Sampler2D.js";
5
- import sampler2D2Canvas from "../../../../../engine/graphics/texture/sampler/Sampler2D2Canvas.js";
5
+ import sampler2D2Canvas from "../../../../../engine/graphics/texture/sampler/sampler2d_to_html_canvas.js";
6
6
  import { CanvasView } from "../../../../../view/elements/CanvasView.js";
7
7
  import { Color } from "../../../../color/Color.js";
8
8
  import { halton_sequence } from "../../../../math/statistics/halton_sequence.js";
@@ -1,11 +1,3 @@
1
- /**
2
- *
3
- * @param {TetrahedralMesh} mesh
4
- * @param {ArrayLike<number>|number[]} points
5
- * @param {number} tet
6
- * @return {number}
7
- */
8
- export function get_tetrahedron_volume(mesh: TetrahedralMesh, points: ArrayLike<number> | number[], tet: number): number;
9
1
  /**
10
2
  *
11
3
  * @param {TetrahedralMesh} mesh
@@ -25,10 +17,10 @@ export function validate_tetrahedron_neighbourhood(mesh: TetrahedralMesh, tet: n
25
17
  /**
26
18
  *
27
19
  * @param {TetrahedralMesh} mesh
28
- * @param {ArrayLike<number>} points
20
+ * @param {ArrayLike<number>|number[]|Float32Array} points
29
21
  * @param {function(problem:string):*} [consumer]
30
22
  * @returns {boolean}
31
23
  */
32
- export function validate_tetrahedral_mesh(mesh: TetrahedralMesh, points: ArrayLike<number>, consumer?: typeof noop): boolean;
24
+ export function validate_tetrahedral_mesh(mesh: TetrahedralMesh, points: ArrayLike<number> | number[] | Float32Array, consumer?: typeof noop): boolean;
33
25
  import { noop } from "../../../function/noop.js";
34
26
  //# sourceMappingURL=validate_tetrahedral_mesh.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"validate_tetrahedral_mesh.d.ts","sourceRoot":"","sources":["../../../../../../src/core/geom/3d/tetrahedra/validate_tetrahedral_mesh.js"],"names":[],"mappings":"AAIA;;;;;;GAMG;AACH,sEAJW,UAAU,MAAM,CAAC,GAAC,MAAM,EAAE,OAC1B,MAAM,GACL,MAAM,CAUjB;AAED;;;;;;;GAOG;AACH,+DALW,MAAM,gBACN,MAAM,mBACG,MAAM,WACd,OAAO,CA6DlB;AAGD;;;;;GAKG;AACH,+EAHW,MAAM,mCAehB;AAuBD;;;;;;GAMG;AACH,yEAJW,UAAU,MAAM,CAAC,2BAEf,OAAO,CA4BnB;qBArKoB,2BAA2B"}
1
+ {"version":3,"file":"validate_tetrahedral_mesh.d.ts","sourceRoot":"","sources":["../../../../../../src/core/geom/3d/tetrahedra/validate_tetrahedral_mesh.js"],"names":[],"mappings":"AAKA;;;;;;;GAOG;AACH,+DALW,MAAM,gBACN,MAAM,mBACG,MAAM,WACd,OAAO,CA6DlB;AAGD;;;;;GAKG;AACH,+EAHW,MAAM,mCAehB;AA0BD;;;;;;GAMG;AACH,yEAJW,UAAU,MAAM,CAAC,GAAC,MAAM,EAAE,GAAC,YAAY,2BAErC,OAAO,CAkCnB;qBA9JoB,2BAA2B"}