@woosh/meep-engine 2.85.19 → 2.86.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/build/meep.cjs +81 -81
  2. package/build/meep.min.js +1 -1
  3. package/build/meep.module.js +81 -81
  4. package/editor/tools/v2/BlenderCameraOrientationGizmo.js +9 -8
  5. package/package.json +1 -1
  6. package/src/core/__module.d.ts +6 -0
  7. package/src/core/__module.js +6 -0
  8. package/src/core/geom/2d/circle/circleIntersectsCircle.js +1 -1
  9. package/src/core/geom/2d/circle/circleIntersectsPoint.js +1 -1
  10. package/src/core/geom/3d/eulerAnglesFromMatrix.js +1 -1
  11. package/src/core/geom/3d/normal/lamber_azimuth/transform.js +1 -1
  12. package/src/core/geom/3d/normal/spherical/sphere_map_transform.js +1 -1
  13. package/src/core/geom/Vector2.d.ts.map +1 -1
  14. package/src/core/geom/Vector2.js +4 -89
  15. package/src/core/geom/vec2/v2_angle_between.d.ts +10 -0
  16. package/src/core/geom/vec2/v2_angle_between.d.ts.map +1 -0
  17. package/src/core/geom/vec2/v2_angle_between.js +20 -0
  18. package/src/core/geom/vec2/v2_bearing_angle_towards.d.ts +10 -0
  19. package/src/core/geom/vec2/v2_bearing_angle_towards.d.ts.map +1 -0
  20. package/src/core/geom/vec2/v2_bearing_angle_towards.js +16 -0
  21. package/src/core/geom/vec2/v2_distance.d.ts +10 -0
  22. package/src/core/geom/vec2/v2_distance.d.ts.map +1 -0
  23. package/src/core/geom/vec2/v2_distance.js +21 -0
  24. package/src/core/geom/vec2/v2_distance_sqr.js +0 -0
  25. package/src/core/geom/vec2/v2_dot.d.ts +10 -0
  26. package/src/core/geom/vec2/v2_dot.d.ts.map +1 -0
  27. package/src/core/geom/vec2/v2_dot.js +18 -0
  28. package/src/core/geom/vec2/v2_length_sqr.d.ts +8 -0
  29. package/src/core/geom/vec2/v2_length_sqr.d.ts.map +1 -0
  30. package/src/core/geom/vec2/v2_length_sqr.js +9 -0
  31. package/src/core/geom/vec2/v2_magnitude.d.ts +8 -0
  32. package/src/core/geom/vec2/v2_magnitude.d.ts.map +1 -0
  33. package/src/core/geom/vec2/v2_magnitude.js +11 -0
  34. package/src/core/graph/layout/CircleLayout.d.ts.map +1 -1
  35. package/src/core/graph/layout/CircleLayout.js +2 -1
  36. package/src/engine/graphics/ecs/decal/v2/prototypeDecalSystem.js +28 -27
  37. package/src/engine/graphics/ecs/path/tube/build/fix_shape_normal_order.js +1 -1
  38. package/src/engine/graphics/ecs/path/tube/build/make_cap.js +5 -5
  39. package/src/engine/graphics/render/forward_plus/prototype/prototypeLightManager.js +1 -1
  40. package/src/generation/markers/actions/terrain/MarkerNodeActionPaintTerrain.d.ts.map +1 -1
  41. package/src/generation/markers/actions/terrain/MarkerNodeActionPaintTerrain.js +10 -10
  42. package/src/generation/theme/ThemeEngine.d.ts.map +1 -1
  43. package/src/generation/theme/ThemeEngine.js +8 -3
@@ -47286,6 +47286,52 @@ function max2(a, b) {
47286
47286
  return a < b ? b : a;
47287
47287
  }
47288
47288
 
47289
+ /**
47290
+ *
47291
+ * @param {number} x
47292
+ * @param {number} y
47293
+ * @returns {number}
47294
+ */
47295
+ function v2_length_sqr(x, y) {
47296
+ return x * x + y * y;
47297
+ }
47298
+
47299
+ /**
47300
+ *
47301
+ * @param {number} x
47302
+ * @param {number} y
47303
+ * @returns {number}
47304
+ */
47305
+ function v2_magnitude(x, y) {
47306
+ return Math.sqrt(v2_length_sqr(x, y));
47307
+ }
47308
+
47309
+ /**
47310
+ *
47311
+ * @param {number} x0
47312
+ * @param {number} y0
47313
+ * @param {number} x1
47314
+ * @param {number} y1
47315
+ * @returns {number}
47316
+ */
47317
+ function v2_distance(x0, y0, x1, y1) {
47318
+
47319
+ return v2_magnitude(x1 - x0, y1 - y0);
47320
+ }
47321
+
47322
+ /**
47323
+ *
47324
+ * @param {number} x0
47325
+ * @param {number} y0
47326
+ * @param {number} x1
47327
+ * @param {number} y1
47328
+ * @returns {number}
47329
+ */
47330
+ function v2_dot(x0, y0, x1, y1) {
47331
+
47332
+ return (x0 * x1 + y0 * y1);
47333
+ }
47334
+
47289
47335
  /**
47290
47336
  * @author Alex Goldring
47291
47337
  * @copyright Alex Goldring 14/02/14.
@@ -47948,86 +47994,6 @@ Vector2.one = Object.freeze(new Vector2(1, 1));
47948
47994
  */
47949
47995
  Vector2.prototype.isVector2 = true;
47950
47996
 
47951
- /**
47952
- *
47953
- * @param {number} x0
47954
- * @param {number} y0
47955
- * @param {number} x1
47956
- * @param {number} y1
47957
- * @returns {number}
47958
- */
47959
- function v2_angleBetween(x0, y0, x1, y1) {
47960
- const d = v2_dot(x0, y0, x1, y1);
47961
- const l = v2_magnitude(x0, y0) * v2_magnitude(x1, y1);
47962
-
47963
- const theta = clamp$1(d / l, -1, 1);
47964
-
47965
- return Math.acos(theta);
47966
- }
47967
-
47968
- /**
47969
- * https://math.stackexchange.com/questions/1596513/find-the-bearing-angle-between-two-points-in-a-2d-space
47970
- * @param {number} x0
47971
- * @param {number} y0
47972
- * @param {number} x1
47973
- * @param {number} y1
47974
- * @returns {number}
47975
- */
47976
- function v2_bearing_angle_towards(x0, y0, x1, y1) {
47977
- const TWOPI = 6.2831853071795865;
47978
- // if (a1 = b1 and a2 = b2) throw an error
47979
- let theta = Math.atan2(x1 - x0, y0 - y1);
47980
- if (theta < 0.0)
47981
- theta += TWOPI;
47982
- return theta;
47983
- }
47984
-
47985
- /**
47986
- *
47987
- * @param {number} x0
47988
- * @param {number} y0
47989
- * @param {number} x1
47990
- * @param {number} y1
47991
- * @returns {number}
47992
- */
47993
- function v2_dot(x0, y0, x1, y1) {
47994
-
47995
- return (x0 * x1 + y0 * y1);
47996
- }
47997
-
47998
- /**
47999
- *
48000
- * @param {number} x
48001
- * @param {number} y
48002
- * @returns {number}
48003
- */
48004
- function v2_length_sqr(x, y) {
48005
- return x * x + y * y;
48006
- }
48007
-
48008
- /**
48009
- *
48010
- * @param {number} x
48011
- * @param {number} y
48012
- * @returns {number}
48013
- */
48014
- function v2_magnitude(x, y) {
48015
- return Math.sqrt(v2_length_sqr(x, y));
48016
- }
48017
-
48018
- /**
48019
- *
48020
- * @param {number} x0
48021
- * @param {number} y0
48022
- * @param {number} x1
48023
- * @param {number} y1
48024
- * @returns {number}
48025
- */
48026
- function v2_distance(x0, y0, x1, y1) {
48027
-
48028
- return v2_magnitude(x1 - x0, y1 - y0);
48029
- }
48030
-
48031
47997
  Vector2._distance = v2_distance;
48032
47998
 
48033
47999
  /**
@@ -116682,4 +116648,38 @@ function quat3_createFromAxisAngle(axis, angle, result) {
116682
116648
  result.set(axis.x * s, axis.y * s, axis.z * s, Math.cos(halfAngle));
116683
116649
  }
116684
116650
 
116685
- export { AmbientOcclusionPostProcessEffect, Behavior, BehaviorStatus, Blackboard, Cache, EngineConfiguration, EngineHarness, ForwardPlusRenderingPlugin, HashMap, Light, ParallelBehavior, ParallelBehaviorPolicy, SGMesh, SGMeshSystem, SelectorBehavior, SequenceBehavior, ShadedGeometry, ShadedGeometrySystem, Signal, SignalBinding, Transform, dispatchViaProxy, findSignalHandlerIndexByHandle, findSignalHandlerIndexByHandleAndContext, find_path_on_grid_astar, quat3_createFromAxisAngle, v2_angleBetween, v2_bearing_angle_towards, v2_distance, v2_dot, v2_length_sqr, v2_magnitude, v4_applyMatrix4, v4_distance_sqr, v4_dot, v4_length_sqr };
116651
+ /**
116652
+ * https://math.stackexchange.com/questions/1596513/find-the-bearing-angle-between-two-points-in-a-2d-space
116653
+ * @param {number} x0
116654
+ * @param {number} y0
116655
+ * @param {number} x1
116656
+ * @param {number} y1
116657
+ * @returns {number}
116658
+ */
116659
+ function v2_bearing_angle_towards(x0, y0, x1, y1) {
116660
+ const TWOPI = 6.2831853071795865;
116661
+ // if (a1 = b1 and a2 = b2) throw an error
116662
+ let theta = Math.atan2(x1 - x0, y0 - y1);
116663
+ if (theta < 0.0)
116664
+ theta += TWOPI;
116665
+ return theta;
116666
+ }
116667
+
116668
+ /**
116669
+ *
116670
+ * @param {number} x0
116671
+ * @param {number} y0
116672
+ * @param {number} x1
116673
+ * @param {number} y1
116674
+ * @returns {number}
116675
+ */
116676
+ function v2_angle_between(x0, y0, x1, y1) {
116677
+ const d = v2_dot(x0, y0, x1, y1);
116678
+ const l = v2_magnitude(x0, y0) * v2_magnitude(x1, y1);
116679
+
116680
+ const theta = clamp$1(d / l, -1, 1);
116681
+
116682
+ return Math.acos(theta);
116683
+ }
116684
+
116685
+ export { AmbientOcclusionPostProcessEffect, Behavior, BehaviorStatus, Blackboard, Cache, EngineConfiguration, EngineHarness, ForwardPlusRenderingPlugin, HashMap, Light, ParallelBehavior, ParallelBehaviorPolicy, SGMesh, SGMeshSystem, SelectorBehavior, SequenceBehavior, ShadedGeometry, ShadedGeometrySystem, Signal, SignalBinding, Transform, dispatchViaProxy, findSignalHandlerIndexByHandle, findSignalHandlerIndexByHandleAndContext, find_path_on_grid_astar, quat3_createFromAxisAngle, v2_angle_between, v2_bearing_angle_towards, v2_distance, v2_dot, v2_length_sqr, v2_magnitude, v4_applyMatrix4, v4_distance_sqr, v4_dot, v4_length_sqr };
@@ -1,16 +1,17 @@
1
- import { CanvasView } from "../../../src/view/elements/CanvasView.js";
2
- import Vector3 from "../../../src/core/geom/Vector3.js";
3
- import { compose_matrix4_array } from "../../../src/core/geom/3d/compose_matrix4_array.js";
4
1
  import { mat4 } from "gl-matrix";
5
- import { readPositionFromMouseEvent } from "../../../src/engine/input/devices/PointerDevice.js";
6
- import Vector2, { v2_distance } from "../../../src/core/geom/Vector2.js";
7
2
  import { Color } from "../../../src/core/color/Color.js";
8
- import { inverseLerp } from "../../../src/core/math/inverseLerp.js";
9
- import { clamp01 } from "../../../src/core/math/clamp01.js";
10
- import { lerp } from "../../../src/core/math/lerp.js";
11
3
  import Signal from "../../../src/core/events/signal/Signal.js";
4
+ import { compose_matrix4_array } from "../../../src/core/geom/3d/compose_matrix4_array.js";
12
5
  import Quaternion from "../../../src/core/geom/Quaternion.js";
6
+ import { v2_distance } from "../../../src/core/geom/vec2/v2_distance.js";
7
+ import Vector2 from "../../../src/core/geom/Vector2.js";
8
+ import Vector3 from "../../../src/core/geom/Vector3.js";
9
+ import { clamp01 } from "../../../src/core/math/clamp01.js";
10
+ import { inverseLerp } from "../../../src/core/math/inverseLerp.js";
11
+ import { lerp } from "../../../src/core/math/lerp.js";
13
12
  import { invertQuaternionOrientation } from "../../../src/engine/graphics/ecs/camera/InvertQuaternionOrientation.js";
13
+ import { readPositionFromMouseEvent } from "../../../src/engine/input/devices/PointerDevice.js";
14
+ import { CanvasView } from "../../../src/view/elements/CanvasView.js";
14
15
 
15
16
  const scratch_color = new Color();
16
17
  const scratch_quat = new Quaternion();
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.85.19",
8
+ "version": "2.86.0",
9
9
  "main": "build/meep.module.js",
10
10
  "module": "build/meep.module.js",
11
11
  "exports": {
@@ -8,4 +8,10 @@ export * from "./events/signal/Signal.js";
8
8
  export * from "./events/signal/SignalBinding.js";
9
9
  export * from "./geom/Quaternion.js";
10
10
  export { quat3_createFromAxisAngle } from "./geom/3d/quaternion/quat3_createFromAxisAngle.js";
11
+ export { v2_distance } from "./geom/vec2/v2_distance.js";
12
+ export { v2_magnitude } from "./geom/vec2/v2_magnitude.js";
13
+ export { v2_length_sqr } from "./geom/vec2/v2_length_sqr.js";
14
+ export { v2_dot } from "./geom/vec2/v2_dot.js";
15
+ export { v2_bearing_angle_towards } from "./geom/vec2/v2_bearing_angle_towards.js";
16
+ export { v2_angle_between } from "./geom/vec2/v2_angle_between.js";
11
17
  //# sourceMappingURL=__module.d.ts.map
@@ -10,3 +10,9 @@ export * from "./events/signal/Signal.js";
10
10
  export * from "./events/signal/SignalBinding.js";
11
11
  export * from "./geom/Quaternion.js";
12
12
  export { quat3_createFromAxisAngle } from "./geom/3d/quaternion/quat3_createFromAxisAngle.js";
13
+ export { v2_distance } from "./geom/vec2/v2_distance.js";
14
+ export { v2_magnitude } from "./geom/vec2/v2_magnitude.js";
15
+ export { v2_length_sqr } from "./geom/vec2/v2_length_sqr.js";
16
+ export { v2_dot } from "./geom/vec2/v2_dot.js";
17
+ export { v2_bearing_angle_towards } from "./geom/vec2/v2_bearing_angle_towards.js";
18
+ export { v2_angle_between } from "./geom/vec2/v2_angle_between.js";
@@ -1,4 +1,4 @@
1
- import { v2_distance } from "../../Vector2.js";
1
+ import { v2_distance } from "../../vec2/v2_distance.js";
2
2
 
3
3
  /**
4
4
  *
@@ -1,4 +1,4 @@
1
- import { v2_distance } from "../../Vector2.js";
1
+ import { v2_distance } from "../../vec2/v2_distance.js";
2
2
 
3
3
  /**
4
4
  *
@@ -1,6 +1,6 @@
1
1
  //
2
2
 
3
- import { v2_magnitude } from "../Vector2.js";
3
+ import { v2_magnitude } from "../vec2/v2_magnitude.js";
4
4
 
5
5
  function atan2(a, b) {
6
6
  return Math.atan2(a, b);
@@ -1,4 +1,4 @@
1
- import { v2_dot } from "../../../Vector2.js";
1
+ import { v2_dot } from "../../../vec2/v2_dot.js";
2
2
 
3
3
  /*
4
4
  @source https://aras-p.info/texts/CompactNormalStorage.html
@@ -1,4 +1,4 @@
1
- import { v2_magnitude } from "../../../Vector2.js";
1
+ import { v2_magnitude } from "../../../vec2/v2_magnitude.js";
2
2
  import { v3_dot } from "../../../vec3/v3_dot.js";
3
3
 
4
4
  /*
@@ -1 +1 @@
1
- {"version":3,"file":"Vector2.d.ts","sourceRoot":"","sources":["../../../../src/core/geom/Vector2.js"],"names":[],"mappings":"AA2qBA;;;;;;;GAOG;AACH,oCANW,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,GACJ,MAAM,CASlB;AAED;;;;;;;GAOG;AACH,6CANW,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,GACJ,MAAM,CASlB;AAED;;;;;;;GAOG;AACH,2BANW,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,GACJ,MAAM,CASlB;AAED;;;;;GAKG;AACH,iCAJW,MAAM,KACN,MAAM,GACJ,MAAM,CAIlB;AAED;;;;;GAKG;AACH,gCAJW,MAAM,KACN,MAAM,GACJ,MAAM,CAIlB;AAED;;;;;;;GAOG;AACH,gCANW,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,GACJ,MAAM,CAUlB;;AAnvBD;IACI;;;;;;;OAOG;IACH,gBANW,MAAM,cA0BhB;IAbG;;;OAGG;IACH,GAFU,MAAM,CAEN;IAEV;;;OAGG;IACH,GAFU,MAAM,CAEN;IAEV,0DAA6B;IAGjC;;;;OAIG;IACH,qBAHW,MAAM,EAAE,WACR,MAAM,QAOhB;IAED;;;;OAIG;IACH,oBAHW,MAAM,EAAE,WACR,MAAM,QAKhB;IAED,iBAMC;IAED;;;;;OAKG;IACH,OAJW,MAAM,KACN,MAAM,GACJ,OAAO,CAqBnB;IAED;;;;OAIG;IACH,aAHW,MAAM,KACN,MAAM,QAOhB;IAED;;;;OAIG;IACH,QAHW,MAAM,GACJ,OAAO,CAInB;IAED;;;;OAIG;IACH,QAHW,MAAM,GACJ,OAAO,CAInB;IAED;;;;;OAKG;IACH,QAJW,MAAM,KACN,MAAM,GACJ,OAAO,CAInB;IAED;;;;OAIG;IACH,WAHW,OAAO,GACL,OAAO,CAInB;IAED;;;;OAIG;IACH,cAHW,OAAO,KACP,OAAO,QAIjB;IAED;;;OAGG;IACH,SAFa,OAAO,CAInB;IAED;;;OAGG;IACH,QAFa,OAAO,CAInB;IAED;;OAEG;IACH,cAIC;IAED;;;OAGG;IACH,OAFa,OAAO,CAInB;IAED;;;;;OAKG;IACH,QAJW,MAAM,KACN,MAAM,GACJ,OAAO,CAInB;IAED;;;;OAIG;IACH,WAHW,OAAO,GACL,OAAO,CAInB;IAED;;;;OAIG;IACH,cAHW,OAAO,GACL,OAAO,CAInB;IAED;;;;OAIG;IACH,gBAHW,OAAO,GACL,OAAO,CAInB;IAED;;;;;OAKG;IACH,aAJW,MAAM,KACN,MAAM,GACJ,OAAO,CAInB;IAED;;;;OAIG;IACH,WAHW,OAAO,GACL,OAAO,CAMnB;IAED;;;;OAIG;IACH,WAHW,OAAO,GACL,MAAM,CAIlB;IAED;;;;OAIG;IACH,YAHW,OAAO,GACL,OAAO,CAInB;IAED;;;OAGG;IACH,SAFa,OAAO,CAInB;IAED;;;OAGG;IACH,UAFa,OAAO,CAInB;IAED;;;;;OAKG;IACH,QAJW,MAAM,KACN,MAAM,GACJ,OAAO,CAInB;IAED;;;;OAIG;IACH,WAHW,OAAO,GACL,OAAO,CAInB;IAED;;;OAGG;IACH,gCAEC;IAED;;;OAGG;IACH,eAFW,MAAM,QAIhB;IAED;;;OAGG;IACH,kBAFW,MAAM,QAIhB;IAED;;;;OAIG;IACH,6BAFa,OAAO,CAOnB;IAED;;;MAEC;IAED,0BAOC;IAED;;;OAGG;IACH,2CAGC;IAED;;;OAGG;IACH,6CAKC;IAED;;;OAGG;IACH,kDAGC;IAED;;;OAGG;IACH,oDAKC;IAED;;;OAGG;IACH,UAFa,OAAO,CAInB;IAED;;;;;;OAMG;IACH,uEAIC;IAED;;;;OAIG;IACH,8CAIC;IAED;;;;OAIG;IACH,iDAIC;IAED;;;;OAIG;IACH,qBAHW,OAAO,GACL,MAAM,CAIlB;IAED;;;;;OAKG;IACH,eAJW,OAAO,KACP,OAAO,YACP,MAAM,QAOhB;IAED;;;OAGG;IACH,sBAFW,MAAM,EAAE,QAUlB;IAED;;;;OAIG;IACH,kBAHW,OAAO,GACL,MAAM,CAIlB;IAED;;;;;OAKG;IACH,kBAJW,MAAM,KACN,MAAM,GACJ,MAAM,CAMlB;IAED;;;;;OAKG;IACH,eAJW,MAAM,KACN,MAAM,GACJ,MAAM,CAIlB;IAED;;;;OAIG;IACH,2BAHW,OAAO,GACL,MAAM,CAOlB;IAED;;OAEG;IACH,UAFa,MAAM,CAIlB;IAED;;OAEG;IACH,kBAWC;IAGD;;;OAGG;IACH,QAFa,MAAM,CAOlB;IAED;;;OAGG;IACH,cAFW,MAAM,QAahB;IAED;;;;;OAKG;IACH,6CAFa,OAAO,CAQnB;IAED,mBAEC;IAED;;;;OAIG;IACH,cAHW,OAAO,GACL,OAAO,CAInB;IAED;;;;;OAKG;IACH,qBAJW,OAAO,cACP,MAAM,GACL,OAAO,CAIlB;IAED;;;;;;OAMG;IACH,kBALW,MAAM,KACN,MAAM,cACN,MAAM,GACL,OAAO,CAKlB;IAUD,mBAEC;IAVD,gBAEC;IAUD,mBAEC;IAVD,gBAEC;IAsDL;;;OAGG;IACH,oBAFU,OAAO,CAEU;IA/CvB,sDAKC;CACJ;;mBAIS,OAAO;qBAMP,OAAO;qBAMP,OAAO;sBAMP,OAAO;qBAMP,OAAO;oBAKP,OAAO;;;mBA3pBE,4BAA4B"}
1
+ {"version":3,"file":"Vector2.d.ts","sourceRoot":"","sources":["../../../../src/core/geom/Vector2.js"],"names":[],"mappings":"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"}
@@ -12,6 +12,10 @@ import { lerp } from "../math/lerp.js";
12
12
  import { max2 } from "../math/max2.js";
13
13
  import { min2 } from "../math/min2.js";
14
14
  import { computeHashFloat } from "../primitives/numbers/computeHashFloat.js";
15
+ import { v2_distance } from "./vec2/v2_distance.js";
16
+ import { v2_dot } from "./vec2/v2_dot.js";
17
+ import { v2_length_sqr } from "./vec2/v2_length_sqr.js";
18
+ import { v2_magnitude } from "./vec2/v2_magnitude.js";
15
19
 
16
20
  class Vector2 {
17
21
  /**
@@ -681,95 +685,6 @@ Vector2.one = Object.freeze(new Vector2(1, 1));
681
685
  */
682
686
  Vector2.prototype.isVector2 = true;
683
687
 
684
- /**
685
- *
686
- * @param {number} x0
687
- * @param {number} y0
688
- * @param {number} x1
689
- * @param {number} y1
690
- * @returns {number}
691
- */
692
- export function v2_angleBetween(x0, y0, x1, y1) {
693
- const d = v2_dot(x0, y0, x1, y1);
694
- const l = v2_magnitude(x0, y0) * v2_magnitude(x1, y1);
695
-
696
- const theta = clamp(d / l, -1, 1);
697
-
698
- return Math.acos(theta);
699
- }
700
-
701
- /**
702
- * https://math.stackexchange.com/questions/1596513/find-the-bearing-angle-between-two-points-in-a-2d-space
703
- * @param {number} x0
704
- * @param {number} y0
705
- * @param {number} x1
706
- * @param {number} y1
707
- * @returns {number}
708
- */
709
- export function v2_bearing_angle_towards(x0, y0, x1, y1) {
710
- const TWOPI = 6.2831853071795865;
711
- // if (a1 = b1 and a2 = b2) throw an error
712
- let theta = Math.atan2(x1 - x0, y0 - y1);
713
- if (theta < 0.0)
714
- theta += TWOPI;
715
- return theta;
716
- }
717
-
718
- /**
719
- *
720
- * @param {number} x0
721
- * @param {number} y0
722
- * @param {number} x1
723
- * @param {number} y1
724
- * @returns {number}
725
- */
726
- export function v2_dot(x0, y0, x1, y1) {
727
- assert.isNumber(x0, 'x0');
728
- assert.isNumber(y0, 'y0');
729
- assert.isNumber(x1, 'x1');
730
- assert.isNumber(y1, 'y1');
731
-
732
- return (x0 * x1 + y0 * y1);
733
- }
734
-
735
- /**
736
- *
737
- * @param {number} x
738
- * @param {number} y
739
- * @returns {number}
740
- */
741
- export function v2_length_sqr(x, y) {
742
- return x * x + y * y;
743
- }
744
-
745
- /**
746
- *
747
- * @param {number} x
748
- * @param {number} y
749
- * @returns {number}
750
- */
751
- export function v2_magnitude(x, y) {
752
- return Math.sqrt(v2_length_sqr(x, y));
753
- }
754
-
755
- /**
756
- *
757
- * @param {number} x0
758
- * @param {number} y0
759
- * @param {number} x1
760
- * @param {number} y1
761
- * @returns {number}
762
- */
763
- export function v2_distance(x0, y0, x1, y1) {
764
-
765
- assert.isNumber(x0, 'x0');
766
- assert.isNumber(y0, 'x0');
767
- assert.isNumber(x1, 'x0');
768
- assert.isNumber(y1, 'x0');
769
-
770
- return v2_magnitude(x1 - x0, y1 - y0);
771
- }
772
-
773
688
  Vector2._distance = v2_distance;
774
689
 
775
690
  export default Vector2;
@@ -0,0 +1,10 @@
1
+ /**
2
+ *
3
+ * @param {number} x0
4
+ * @param {number} y0
5
+ * @param {number} x1
6
+ * @param {number} y1
7
+ * @returns {number}
8
+ */
9
+ export function v2_angle_between(x0: number, y0: number, x1: number, y1: number): number;
10
+ //# sourceMappingURL=v2_angle_between.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"v2_angle_between.d.ts","sourceRoot":"","sources":["../../../../../src/core/geom/vec2/v2_angle_between.js"],"names":[],"mappings":"AAIA;;;;;;;GAOG;AACH,qCANW,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,GACJ,MAAM,CASlB"}
@@ -0,0 +1,20 @@
1
+ import { clamp } from "../../math/clamp.js";
2
+ import { v2_dot } from "./v2_dot.js";
3
+ import { v2_magnitude } from "./v2_magnitude.js";
4
+
5
+ /**
6
+ *
7
+ * @param {number} x0
8
+ * @param {number} y0
9
+ * @param {number} x1
10
+ * @param {number} y1
11
+ * @returns {number}
12
+ */
13
+ export function v2_angle_between(x0, y0, x1, y1) {
14
+ const d = v2_dot(x0, y0, x1, y1);
15
+ const l = v2_magnitude(x0, y0) * v2_magnitude(x1, y1);
16
+
17
+ const theta = clamp(d / l, -1, 1);
18
+
19
+ return Math.acos(theta);
20
+ }
@@ -0,0 +1,10 @@
1
+ /**
2
+ * https://math.stackexchange.com/questions/1596513/find-the-bearing-angle-between-two-points-in-a-2d-space
3
+ * @param {number} x0
4
+ * @param {number} y0
5
+ * @param {number} x1
6
+ * @param {number} y1
7
+ * @returns {number}
8
+ */
9
+ export function v2_bearing_angle_towards(x0: number, y0: number, x1: number, y1: number): number;
10
+ //# sourceMappingURL=v2_bearing_angle_towards.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"v2_bearing_angle_towards.d.ts","sourceRoot":"","sources":["../../../../../src/core/geom/vec2/v2_bearing_angle_towards.js"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,6CANW,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,GACJ,MAAM,CASlB"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * https://math.stackexchange.com/questions/1596513/find-the-bearing-angle-between-two-points-in-a-2d-space
3
+ * @param {number} x0
4
+ * @param {number} y0
5
+ * @param {number} x1
6
+ * @param {number} y1
7
+ * @returns {number}
8
+ */
9
+ export function v2_bearing_angle_towards(x0, y0, x1, y1) {
10
+ const TWOPI = 6.2831853071795865;
11
+ // if (a1 = b1 and a2 = b2) throw an error
12
+ let theta = Math.atan2(x1 - x0, y0 - y1);
13
+ if (theta < 0.0)
14
+ theta += TWOPI;
15
+ return theta;
16
+ }
@@ -0,0 +1,10 @@
1
+ /**
2
+ *
3
+ * @param {number} x0
4
+ * @param {number} y0
5
+ * @param {number} x1
6
+ * @param {number} y1
7
+ * @returns {number}
8
+ */
9
+ export function v2_distance(x0: number, y0: number, x1: number, y1: number): number;
10
+ //# sourceMappingURL=v2_distance.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"v2_distance.d.ts","sourceRoot":"","sources":["../../../../../src/core/geom/vec2/v2_distance.js"],"names":[],"mappings":"AAIA;;;;;;;GAOG;AACH,gCANW,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,GACJ,MAAM,CAUlB"}
@@ -0,0 +1,21 @@
1
+ import { assert } from "../../assert.js";
2
+
3
+ import { v2_magnitude } from "./v2_magnitude.js";
4
+
5
+ /**
6
+ *
7
+ * @param {number} x0
8
+ * @param {number} y0
9
+ * @param {number} x1
10
+ * @param {number} y1
11
+ * @returns {number}
12
+ */
13
+ export function v2_distance(x0, y0, x1, y1) {
14
+
15
+ assert.isNumber(x0, 'x0');
16
+ assert.isNumber(y0, 'x0');
17
+ assert.isNumber(x1, 'x0');
18
+ assert.isNumber(y1, 'x0');
19
+
20
+ return v2_magnitude(x1 - x0, y1 - y0);
21
+ }
File without changes
@@ -0,0 +1,10 @@
1
+ /**
2
+ *
3
+ * @param {number} x0
4
+ * @param {number} y0
5
+ * @param {number} x1
6
+ * @param {number} y1
7
+ * @returns {number}
8
+ */
9
+ export function v2_dot(x0: number, y0: number, x1: number, y1: number): number;
10
+ //# sourceMappingURL=v2_dot.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"v2_dot.d.ts","sourceRoot":"","sources":["../../../../../src/core/geom/vec2/v2_dot.js"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AACH,2BANW,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,GACJ,MAAM,CASlB"}
@@ -0,0 +1,18 @@
1
+ import { assert } from "../../assert.js";
2
+
3
+ /**
4
+ *
5
+ * @param {number} x0
6
+ * @param {number} y0
7
+ * @param {number} x1
8
+ * @param {number} y1
9
+ * @returns {number}
10
+ */
11
+ export function v2_dot(x0, y0, x1, y1) {
12
+ assert.isNumber(x0, 'x0');
13
+ assert.isNumber(y0, 'y0');
14
+ assert.isNumber(x1, 'x1');
15
+ assert.isNumber(y1, 'y1');
16
+
17
+ return (x0 * x1 + y0 * y1);
18
+ }
@@ -0,0 +1,8 @@
1
+ /**
2
+ *
3
+ * @param {number} x
4
+ * @param {number} y
5
+ * @returns {number}
6
+ */
7
+ export function v2_length_sqr(x: number, y: number): number;
8
+ //# sourceMappingURL=v2_length_sqr.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"v2_length_sqr.d.ts","sourceRoot":"","sources":["../../../../../src/core/geom/vec2/v2_length_sqr.js"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,iCAJW,MAAM,KACN,MAAM,GACJ,MAAM,CAIlB"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ *
3
+ * @param {number} x
4
+ * @param {number} y
5
+ * @returns {number}
6
+ */
7
+ export function v2_length_sqr(x, y) {
8
+ return x * x + y * y;
9
+ }
@@ -0,0 +1,8 @@
1
+ /**
2
+ *
3
+ * @param {number} x
4
+ * @param {number} y
5
+ * @returns {number}
6
+ */
7
+ export function v2_magnitude(x: number, y: number): number;
8
+ //# sourceMappingURL=v2_magnitude.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"v2_magnitude.d.ts","sourceRoot":"","sources":["../../../../../src/core/geom/vec2/v2_magnitude.js"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,gCAJW,MAAM,KACN,MAAM,GACJ,MAAM,CAIlB"}
@@ -0,0 +1,11 @@
1
+ import { v2_length_sqr } from "./v2_length_sqr.js";
2
+
3
+ /**
4
+ *
5
+ * @param {number} x
6
+ * @param {number} y
7
+ * @returns {number}
8
+ */
9
+ export function v2_magnitude(x, y) {
10
+ return Math.sqrt(v2_length_sqr(x, y));
11
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"CircleLayout.d.ts","sourceRoot":"","sources":["../../../../../src/core/graph/layout/CircleLayout.js"],"names":[],"mappings":"AAgJA;;;;;GAKG;AACH,yCAJW,MAAM,EAAE,yBAER,OAAO,QAyEjB;AAsBD;;;;GAIG;AACH,kDAHW,MAAM,EAAE,UACR,OAAO,QAcjB;AAwTD,sGAsBC;AA4MD;;;;GAIG;AACH,8CAHW,MAAM,WACN,MAAM,EAAE,QAgBlB;AAED;;;;;GAKG;AACH,4CAJW,MAAM,EAAE,UACR,OAAO,YACP,MAAM,QAkBhB;AAED;;;;;GAKG;AACH,qDAJW,MAAM,WACN,MAAM,EAAE,GACP,MAAM,CA2EjB;mBAx5BkB,gCAAgC;oBAId,uBAAuB"}
1
+ {"version":3,"file":"CircleLayout.d.ts","sourceRoot":"","sources":["../../../../../src/core/graph/layout/CircleLayout.js"],"names":[],"mappings":"AAiJA;;;;;GAKG;AACH,yCAJW,MAAM,EAAE,yBAER,OAAO,QAyEjB;AAsBD;;;;GAIG;AACH,kDAHW,MAAM,EAAE,UACR,OAAO,QAcjB;AAwTD,sGAsBC;AA4MD;;;;GAIG;AACH,8CAHW,MAAM,WACN,MAAM,EAAE,QAgBlB;AAED;;;;;GAKG;AACH,4CAJW,MAAM,EAAE,UACR,OAAO,YACP,MAAM,QAkBhB;AAED;;;;;GAKG;AACH,qDAJW,MAAM,WACN,MAAM,EAAE,GACP,MAAM,CA2EjB;mBAz5BkB,gCAAgC;oBAK/B,uBAAuB"}
@@ -4,7 +4,8 @@ import Circle from "../../geom/2d/circle/Circle.js";
4
4
  import {
5
5
  line_segment_line_segment_intersection_exists_2d
6
6
  } from "../../geom/2d/line/line_segment_line_segment_intersection_exists_2d.js";
7
- import Vector2, { v2_distance } from "../../geom/Vector2.js";
7
+ import { v2_distance } from "../../geom/vec2/v2_distance.js";
8
+ import Vector2 from "../../geom/Vector2.js";
8
9
  import { max2 } from "../../math/max2.js";
9
10
  import { min2 } from "../../math/min2.js";
10
11
  import { applyCentralGravityAABB2 } from "./box/applyCentralGravityAABB2.js";