@aura3d/math 4.0.3 → 4.0.5

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 (165) hide show
  1. package/dist/Box3.d.ts +50 -0
  2. package/dist/Box3.d.ts.map +1 -1
  3. package/dist/Box3.js +177 -6
  4. package/dist/Box3.js.map +1 -1
  5. package/dist/Capsule.d.ts +25 -0
  6. package/dist/Capsule.d.ts.map +1 -0
  7. package/dist/Capsule.js +54 -0
  8. package/dist/Capsule.js.map +1 -0
  9. package/dist/Color.d.ts +27 -0
  10. package/dist/Color.d.ts.map +1 -1
  11. package/dist/Color.js +87 -0
  12. package/dist/Color.js.map +1 -1
  13. package/dist/ConvexHull.d.ts +100 -0
  14. package/dist/ConvexHull.d.ts.map +1 -0
  15. package/dist/ConvexHull.js +578 -0
  16. package/dist/ConvexHull.js.map +1 -0
  17. package/dist/Curves.d.ts +59 -18
  18. package/dist/Curves.d.ts.map +1 -1
  19. package/dist/Curves.js +15 -73
  20. package/dist/Curves.js.map +1 -1
  21. package/dist/Cylindrical.d.ts +19 -0
  22. package/dist/Cylindrical.d.ts.map +1 -0
  23. package/dist/Cylindrical.js +40 -0
  24. package/dist/Cylindrical.js.map +1 -0
  25. package/dist/Euler.d.ts +24 -0
  26. package/dist/Euler.d.ts.map +1 -1
  27. package/dist/Euler.js +126 -2
  28. package/dist/Euler.js.map +1 -1
  29. package/dist/Frustum.d.ts +18 -0
  30. package/dist/Frustum.d.ts.map +1 -1
  31. package/dist/Frustum.js +62 -12
  32. package/dist/Frustum.js.map +1 -1
  33. package/dist/Line3.d.ts +38 -0
  34. package/dist/Line3.d.ts.map +1 -0
  35. package/dist/Line3.js +122 -0
  36. package/dist/Line3.js.map +1 -0
  37. package/dist/MathUtils.d.ts +37 -0
  38. package/dist/MathUtils.d.ts.map +1 -0
  39. package/dist/MathUtils.js +105 -0
  40. package/dist/MathUtils.js.map +1 -0
  41. package/dist/Matrix3.d.ts +23 -2
  42. package/dist/Matrix3.d.ts.map +1 -1
  43. package/dist/Matrix3.js +90 -0
  44. package/dist/Matrix3.js.map +1 -1
  45. package/dist/Matrix4.d.ts +3 -0
  46. package/dist/Matrix4.d.ts.map +1 -1
  47. package/dist/Matrix4.js +17 -0
  48. package/dist/Matrix4.js.map +1 -1
  49. package/dist/OBB.d.ts +44 -0
  50. package/dist/OBB.d.ts.map +1 -0
  51. package/dist/OBB.js +214 -0
  52. package/dist/OBB.js.map +1 -0
  53. package/dist/Octree.d.ts +72 -0
  54. package/dist/Octree.d.ts.map +1 -0
  55. package/dist/Octree.js +385 -0
  56. package/dist/Octree.js.map +1 -0
  57. package/dist/Plane.d.ts +42 -0
  58. package/dist/Plane.d.ts.map +1 -1
  59. package/dist/Plane.js +79 -3
  60. package/dist/Plane.js.map +1 -1
  61. package/dist/Quaternion.d.ts +6 -1
  62. package/dist/Quaternion.d.ts.map +1 -1
  63. package/dist/Quaternion.js +28 -3
  64. package/dist/Quaternion.js.map +1 -1
  65. package/dist/Ray.d.ts +42 -2
  66. package/dist/Ray.d.ts.map +1 -1
  67. package/dist/Ray.js +202 -9
  68. package/dist/Ray.js.map +1 -1
  69. package/dist/ShapeUtils.d.ts +28 -0
  70. package/dist/ShapeUtils.d.ts.map +1 -0
  71. package/dist/ShapeUtils.js +551 -0
  72. package/dist/ShapeUtils.js.map +1 -0
  73. package/dist/Sphere.d.ts +32 -0
  74. package/dist/Sphere.d.ts.map +1 -1
  75. package/dist/Sphere.js +122 -4
  76. package/dist/Sphere.js.map +1 -1
  77. package/dist/Spherical.d.ts +21 -0
  78. package/dist/Spherical.d.ts.map +1 -0
  79. package/dist/Spherical.js +50 -0
  80. package/dist/Spherical.js.map +1 -0
  81. package/dist/SphericalHarmonics3.d.ts +35 -0
  82. package/dist/SphericalHarmonics3.d.ts.map +1 -0
  83. package/dist/SphericalHarmonics3.js +115 -0
  84. package/dist/SphericalHarmonics3.js.map +1 -0
  85. package/dist/Triangle.d.ts +45 -0
  86. package/dist/Triangle.d.ts.map +1 -0
  87. package/dist/Triangle.js +160 -0
  88. package/dist/Triangle.js.map +1 -0
  89. package/dist/Vector2.d.ts +7 -0
  90. package/dist/Vector2.d.ts.map +1 -1
  91. package/dist/Vector2.js +17 -0
  92. package/dist/Vector2.js.map +1 -1
  93. package/dist/Vector3.d.ts +16 -0
  94. package/dist/Vector3.d.ts.map +1 -1
  95. package/dist/Vector3.js +35 -0
  96. package/dist/Vector3.js.map +1 -1
  97. package/dist/curves/ArcCurve.d.ts +7 -0
  98. package/dist/curves/ArcCurve.d.ts.map +1 -0
  99. package/dist/curves/ArcCurve.js +9 -0
  100. package/dist/curves/ArcCurve.js.map +1 -0
  101. package/dist/curves/CatmullRomCurve3.d.ts +39 -0
  102. package/dist/curves/CatmullRomCurve3.d.ts.map +1 -0
  103. package/dist/curves/CatmullRomCurve3.js +176 -0
  104. package/dist/curves/CatmullRomCurve3.js.map +1 -0
  105. package/dist/curves/ClampedCatmullRomCurve3.d.ts +26 -0
  106. package/dist/curves/ClampedCatmullRomCurve3.d.ts.map +1 -0
  107. package/dist/curves/ClampedCatmullRomCurve3.js +48 -0
  108. package/dist/curves/ClampedCatmullRomCurve3.js.map +1 -0
  109. package/dist/curves/CubicBezierCurve.d.ts +14 -0
  110. package/dist/curves/CubicBezierCurve.d.ts.map +1 -0
  111. package/dist/curves/CubicBezierCurve.js +25 -0
  112. package/dist/curves/CubicBezierCurve.js.map +1 -0
  113. package/dist/curves/CubicBezierCurve3.d.ts +14 -0
  114. package/dist/curves/CubicBezierCurve3.d.ts.map +1 -0
  115. package/dist/curves/CubicBezierCurve3.js +25 -0
  116. package/dist/curves/CubicBezierCurve3.js.map +1 -0
  117. package/dist/curves/CurveBase.d.ts +49 -0
  118. package/dist/curves/CurveBase.d.ts.map +1 -0
  119. package/dist/curves/CurveBase.js +199 -0
  120. package/dist/curves/CurveBase.js.map +1 -0
  121. package/dist/curves/CurvePath.d.ts +34 -0
  122. package/dist/curves/CurvePath.d.ts.map +1 -0
  123. package/dist/curves/CurvePath.js +135 -0
  124. package/dist/curves/CurvePath.js.map +1 -0
  125. package/dist/curves/EllipseCurve.d.ts +18 -0
  126. package/dist/curves/EllipseCurve.d.ts.map +1 -0
  127. package/dist/curves/EllipseCurve.js +67 -0
  128. package/dist/curves/EllipseCurve.js.map +1 -0
  129. package/dist/curves/Interpolations.d.ts +9 -0
  130. package/dist/curves/Interpolations.d.ts.map +1 -0
  131. package/dist/curves/Interpolations.js +21 -0
  132. package/dist/curves/Interpolations.js.map +1 -0
  133. package/dist/curves/LineCurve.d.ts +16 -0
  134. package/dist/curves/LineCurve.d.ts.map +1 -0
  135. package/dist/curves/LineCurve.js +32 -0
  136. package/dist/curves/LineCurve.js.map +1 -0
  137. package/dist/curves/LineCurve3.d.ts +16 -0
  138. package/dist/curves/LineCurve3.d.ts.map +1 -0
  139. package/dist/curves/LineCurve3.js +32 -0
  140. package/dist/curves/LineCurve3.js.map +1 -0
  141. package/dist/curves/Path.d.ts +23 -0
  142. package/dist/curves/Path.d.ts.map +1 -0
  143. package/dist/curves/Path.js +94 -0
  144. package/dist/curves/Path.js.map +1 -0
  145. package/dist/curves/QuadraticBezierCurve.d.ts +13 -0
  146. package/dist/curves/QuadraticBezierCurve.d.ts.map +1 -0
  147. package/dist/curves/QuadraticBezierCurve.js +23 -0
  148. package/dist/curves/QuadraticBezierCurve.js.map +1 -0
  149. package/dist/curves/QuadraticBezierCurve3.d.ts +13 -0
  150. package/dist/curves/QuadraticBezierCurve3.d.ts.map +1 -0
  151. package/dist/curves/QuadraticBezierCurve3.js +23 -0
  152. package/dist/curves/QuadraticBezierCurve3.js.map +1 -0
  153. package/dist/curves/Shape.d.ts +15 -0
  154. package/dist/curves/Shape.d.ts.map +1 -0
  155. package/dist/curves/Shape.js +26 -0
  156. package/dist/curves/Shape.js.map +1 -0
  157. package/dist/curves/SplineCurve.d.ts +11 -0
  158. package/dist/curves/SplineCurve.d.ts.map +1 -0
  159. package/dist/curves/SplineCurve.js +27 -0
  160. package/dist/curves/SplineCurve.js.map +1 -0
  161. package/dist/index.d.ts +12 -0
  162. package/dist/index.d.ts.map +1 -1
  163. package/dist/index.js +16 -0
  164. package/dist/index.js.map +1 -1
  165. package/package.json +1 -1
@@ -0,0 +1,16 @@
1
+ import { Vector3 } from "../Vector3.js";
2
+ import { CurveBase } from "./CurveBase.js";
3
+ /** 3D line segment — three.js `LineCurve3` parity. */
4
+ export declare class LineCurve3 extends CurveBase<Vector3> {
5
+ readonly v1: Vector3;
6
+ readonly v2: Vector3;
7
+ readonly isLineCurve3: true;
8
+ constructor(v1?: Vector3, v2?: Vector3);
9
+ getPoint(t: number): Vector3;
10
+ /** Linear curve: `u` is already arc-length uniform. */
11
+ getPointAt(u: number): Vector3;
12
+ getTangent(_t: number): Vector3;
13
+ getTangentAt(u: number): Vector3;
14
+ clone(): this;
15
+ }
16
+ //# sourceMappingURL=LineCurve3.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LineCurve3.d.ts","sourceRoot":"","sources":["../../../../../packages/math/src/curves/LineCurve3.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,sDAAsD;AACtD,qBAAa,UAAW,SAAQ,SAAS,CAAC,OAAO,CAAC;IAI9C,QAAQ,CAAC,EAAE,EAAE,OAAO;IACpB,QAAQ,CAAC,EAAE,EAAE,OAAO;IAJtB,QAAQ,CAAC,YAAY,EAAG,IAAI,CAAU;gBAG3B,EAAE,GAAE,OAA8B,EAClC,EAAE,GAAE,OAA8B;IAK7C,QAAQ,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO;IAK5B,uDAAuD;IACvD,UAAU,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO;IAI9B,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAI/B,YAAY,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO;IAIhC,KAAK,IAAI,IAAI;CAGd"}
@@ -0,0 +1,32 @@
1
+ import { Vector3 } from "../Vector3.js";
2
+ import { CurveBase } from "./CurveBase.js";
3
+ /** 3D line segment — three.js `LineCurve3` parity. */
4
+ export class LineCurve3 extends CurveBase {
5
+ v1;
6
+ v2;
7
+ isLineCurve3 = true;
8
+ constructor(v1 = new Vector3(0, 0, 0), v2 = new Vector3(0, 0, 0)) {
9
+ super();
10
+ this.v1 = v1;
11
+ this.v2 = v2;
12
+ }
13
+ getPoint(t) {
14
+ if (t === 1)
15
+ return this.v2;
16
+ return this.v2.subtract(this.v1).multiplyScalar(t).add(this.v1);
17
+ }
18
+ /** Linear curve: `u` is already arc-length uniform. */
19
+ getPointAt(u) {
20
+ return this.getPoint(u);
21
+ }
22
+ getTangent(_t) {
23
+ return this.v2.subtract(this.v1).normalize();
24
+ }
25
+ getTangentAt(u) {
26
+ return this.getTangent(u);
27
+ }
28
+ clone() {
29
+ return new LineCurve3(this.v1, this.v2);
30
+ }
31
+ }
32
+ //# sourceMappingURL=LineCurve3.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LineCurve3.js","sourceRoot":"","sources":["../../../../../packages/math/src/curves/LineCurve3.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,sDAAsD;AACtD,MAAM,OAAO,UAAW,SAAQ,SAAkB;IAIrC;IACA;IAJF,YAAY,GAAG,IAAa,CAAC;IAEtC,YACW,KAAc,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAClC,KAAc,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QAE3C,KAAK,EAAE,CAAC;QAHC,OAAE,GAAF,EAAE,CAAgC;QAClC,OAAE,GAAF,EAAE,CAAgC;IAG7C,CAAC;IAED,QAAQ,CAAC,CAAS;QAChB,IAAI,CAAC,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC,EAAE,CAAC;QAC5B,OAAO,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAClE,CAAC;IAED,uDAAuD;IACvD,UAAU,CAAC,CAAS;QAClB,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC1B,CAAC;IAED,UAAU,CAAC,EAAU;QACnB,OAAO,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC;IAC/C,CAAC;IAED,YAAY,CAAC,CAAS;QACpB,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAC5B,CAAC;IAED,KAAK;QACH,OAAO,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAS,CAAC;IAClD,CAAC;CACF"}
@@ -0,0 +1,23 @@
1
+ import { Vector2 } from "../Vector2.js";
2
+ import { CurvePath } from "./CurvePath.js";
3
+ /**
4
+ * Chainable 2D curve builder — three.js `Path` parity: `moveTo`, `lineTo`,
5
+ * `quadraticCurveTo`, `bezierCurveTo`, `splineThru`, `arc`/`absarc`,
6
+ * `ellipse`/`absellipse`.
7
+ */
8
+ export declare class Path extends CurvePath<Vector2> {
9
+ currentPoint: Vector2;
10
+ constructor(points?: readonly Vector2[]);
11
+ setFromPoints(points: readonly Vector2[]): this;
12
+ moveTo(x: number, y: number): this;
13
+ lineTo(x: number, y: number): this;
14
+ quadraticCurveTo(aCPx: number, aCPy: number, aX: number, aY: number): this;
15
+ bezierCurveTo(aCP1x: number, aCP1y: number, aCP2x: number, aCP2y: number, aX: number, aY: number): this;
16
+ splineThru(pts: readonly Vector2[]): this;
17
+ arc(aX: number, aY: number, aRadius: number, aStartAngle: number, aEndAngle: number, aClockwise?: boolean): this;
18
+ absarc(aX: number, aY: number, aRadius: number, aStartAngle: number, aEndAngle: number, aClockwise?: boolean): this;
19
+ ellipse(aX: number, aY: number, xRadius: number, yRadius: number, aStartAngle: number, aEndAngle: number, aClockwise?: boolean, aRotation?: number): this;
20
+ absellipse(aX: number, aY: number, xRadius: number, yRadius: number, aStartAngle: number, aEndAngle: number, aClockwise?: boolean, aRotation?: number): this;
21
+ clone(): this;
22
+ }
23
+ //# sourceMappingURL=Path.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Path.d.ts","sourceRoot":"","sources":["../../../../../packages/math/src/curves/Path.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAO3C;;;;GAIG;AACH,qBAAa,IAAK,SAAQ,SAAS,CAAC,OAAO,CAAC;IAC1C,YAAY,UAAqB;gBAErB,MAAM,CAAC,EAAE,SAAS,OAAO,EAAE;IAKvC,aAAa,CAAC,MAAM,EAAE,SAAS,OAAO,EAAE,GAAG,IAAI;IAQ/C,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI;IAKlC,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI;IAOlC,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI;IAW1E,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI;IAYvG,UAAU,CAAC,GAAG,EAAE,SAAS,OAAO,EAAE,GAAG,IAAI;IAQzC,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,UAAQ,GAAG,IAAI;IAO9G,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,UAAQ,GAAG,IAAI;IAKjH,OAAO,CACL,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EACxD,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,UAAQ,EAAE,SAAS,SAAI,GACxE,IAAI;IAOP,UAAU,CACR,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EACxD,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,UAAQ,EAAE,SAAS,SAAI,GACxE,IAAI;IAcP,KAAK,IAAI,IAAI;CAOd"}
@@ -0,0 +1,94 @@
1
+ import { Vector2 } from "../Vector2.js";
2
+ import { CurvePath } from "./CurvePath.js";
3
+ import { EllipseCurve } from "./EllipseCurve.js";
4
+ import { LineCurve } from "./LineCurve.js";
5
+ import { QuadraticBezierCurve } from "./QuadraticBezierCurve.js";
6
+ import { CubicBezierCurve } from "./CubicBezierCurve.js";
7
+ import { SplineCurve } from "./SplineCurve.js";
8
+ /**
9
+ * Chainable 2D curve builder — three.js `Path` parity: `moveTo`, `lineTo`,
10
+ * `quadraticCurveTo`, `bezierCurveTo`, `splineThru`, `arc`/`absarc`,
11
+ * `ellipse`/`absellipse`.
12
+ */
13
+ export class Path extends CurvePath {
14
+ currentPoint = new Vector2(0, 0);
15
+ constructor(points) {
16
+ super();
17
+ if (points)
18
+ this.setFromPoints(points);
19
+ }
20
+ setFromPoints(points) {
21
+ this.moveTo(points[0].x, points[0].y);
22
+ for (let i = 1, l = points.length; i < l; i += 1) {
23
+ this.lineTo(points[i].x, points[i].y);
24
+ }
25
+ return this;
26
+ }
27
+ moveTo(x, y) {
28
+ this.currentPoint = new Vector2(x, y);
29
+ return this;
30
+ }
31
+ lineTo(x, y) {
32
+ const curve = new LineCurve(this.currentPoint, new Vector2(x, y));
33
+ this.curves.push(curve);
34
+ this.currentPoint = new Vector2(x, y);
35
+ return this;
36
+ }
37
+ quadraticCurveTo(aCPx, aCPy, aX, aY) {
38
+ const curve = new QuadraticBezierCurve(this.currentPoint, new Vector2(aCPx, aCPy), new Vector2(aX, aY));
39
+ this.curves.push(curve);
40
+ this.currentPoint = new Vector2(aX, aY);
41
+ return this;
42
+ }
43
+ bezierCurveTo(aCP1x, aCP1y, aCP2x, aCP2y, aX, aY) {
44
+ const curve = new CubicBezierCurve(this.currentPoint, new Vector2(aCP1x, aCP1y), new Vector2(aCP2x, aCP2y), new Vector2(aX, aY));
45
+ this.curves.push(curve);
46
+ this.currentPoint = new Vector2(aX, aY);
47
+ return this;
48
+ }
49
+ splineThru(pts) {
50
+ const npts = [this.currentPoint, ...pts];
51
+ const curve = new SplineCurve(npts);
52
+ this.curves.push(curve);
53
+ this.currentPoint = pts[pts.length - 1];
54
+ return this;
55
+ }
56
+ arc(aX, aY, aRadius, aStartAngle, aEndAngle, aClockwise = false) {
57
+ const x0 = this.currentPoint.x;
58
+ const y0 = this.currentPoint.y;
59
+ this.absarc(aX + x0, aY + y0, aRadius, aStartAngle, aEndAngle, aClockwise);
60
+ return this;
61
+ }
62
+ absarc(aX, aY, aRadius, aStartAngle, aEndAngle, aClockwise = false) {
63
+ this.absellipse(aX, aY, aRadius, aRadius, aStartAngle, aEndAngle, aClockwise);
64
+ return this;
65
+ }
66
+ ellipse(aX, aY, xRadius, yRadius, aStartAngle, aEndAngle, aClockwise = false, aRotation = 0) {
67
+ const x0 = this.currentPoint.x;
68
+ const y0 = this.currentPoint.y;
69
+ this.absellipse(aX + x0, aY + y0, xRadius, yRadius, aStartAngle, aEndAngle, aClockwise, aRotation);
70
+ return this;
71
+ }
72
+ absellipse(aX, aY, xRadius, yRadius, aStartAngle, aEndAngle, aClockwise = false, aRotation = 0) {
73
+ const curve = new EllipseCurve(aX, aY, xRadius, yRadius, aStartAngle, aEndAngle, aClockwise, aRotation);
74
+ if (this.curves.length > 0) {
75
+ // if a previous curve is present, attempt to join
76
+ const firstPoint = curve.getPoint(0);
77
+ if (!firstPoint.equals(this.currentPoint)) {
78
+ this.lineTo(firstPoint.x, firstPoint.y);
79
+ }
80
+ }
81
+ this.curves.push(curve);
82
+ this.currentPoint = curve.getPoint(1);
83
+ return this;
84
+ }
85
+ clone() {
86
+ const copy = new Path();
87
+ for (const curve of this.curves)
88
+ copy.add(curve.clone());
89
+ copy.autoClose = this.autoClose;
90
+ copy.currentPoint = this.currentPoint;
91
+ return copy;
92
+ }
93
+ }
94
+ //# sourceMappingURL=Path.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Path.js","sourceRoot":"","sources":["../../../../../packages/math/src/curves/Path.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import { Vector2 } from "../Vector2.js";
2
+ import { CurveBase } from "./CurveBase.js";
3
+ /** 2D quadratic Bézier — three.js `QuadraticBezierCurve` parity. */
4
+ export declare class QuadraticBezierCurve extends CurveBase<Vector2> {
5
+ readonly v0: Vector2;
6
+ readonly v1: Vector2;
7
+ readonly v2: Vector2;
8
+ readonly isQuadraticBezierCurve: true;
9
+ constructor(v0: Vector2, v1: Vector2, v2: Vector2);
10
+ getPoint(t: number): Vector2;
11
+ clone(): this;
12
+ }
13
+ //# sourceMappingURL=QuadraticBezierCurve.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QuadraticBezierCurve.d.ts","sourceRoot":"","sources":["../../../../../packages/math/src/curves/QuadraticBezierCurve.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAG3C,oEAAoE;AACpE,qBAAa,oBAAqB,SAAQ,SAAS,CAAC,OAAO,CAAC;IAIxD,QAAQ,CAAC,EAAE,EAAE,OAAO;IACpB,QAAQ,CAAC,EAAE,EAAE,OAAO;IACpB,QAAQ,CAAC,EAAE,EAAE,OAAO;IALtB,QAAQ,CAAC,sBAAsB,EAAG,IAAI,CAAU;gBAGrC,EAAE,EAAE,OAAO,EACX,EAAE,EAAE,OAAO,EACX,EAAE,EAAE,OAAO;IAKtB,QAAQ,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO;IAO5B,KAAK,IAAI,IAAI;CAGd"}
@@ -0,0 +1,23 @@
1
+ import { Vector2 } from "../Vector2.js";
2
+ import { CurveBase } from "./CurveBase.js";
3
+ import { QuadraticBezier } from "./Interpolations.js";
4
+ /** 2D quadratic Bézier — three.js `QuadraticBezierCurve` parity. */
5
+ export class QuadraticBezierCurve extends CurveBase {
6
+ v0;
7
+ v1;
8
+ v2;
9
+ isQuadraticBezierCurve = true;
10
+ constructor(v0, v1, v2) {
11
+ super();
12
+ this.v0 = v0;
13
+ this.v1 = v1;
14
+ this.v2 = v2;
15
+ }
16
+ getPoint(t) {
17
+ return new Vector2(QuadraticBezier(t, this.v0.x, this.v1.x, this.v2.x), QuadraticBezier(t, this.v0.y, this.v1.y, this.v2.y));
18
+ }
19
+ clone() {
20
+ return new QuadraticBezierCurve(this.v0, this.v1, this.v2);
21
+ }
22
+ }
23
+ //# sourceMappingURL=QuadraticBezierCurve.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QuadraticBezierCurve.js","sourceRoot":"","sources":["../../../../../packages/math/src/curves/QuadraticBezierCurve.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD,oEAAoE;AACpE,MAAM,OAAO,oBAAqB,SAAQ,SAAkB;IAI/C;IACA;IACA;IALF,sBAAsB,GAAG,IAAa,CAAC;IAEhD,YACW,EAAW,EACX,EAAW,EACX,EAAW;QAEpB,KAAK,EAAE,CAAC;QAJC,OAAE,GAAF,EAAE,CAAS;QACX,OAAE,GAAF,EAAE,CAAS;QACX,OAAE,GAAF,EAAE,CAAS;IAGtB,CAAC;IAED,QAAQ,CAAC,CAAS;QAChB,OAAO,IAAI,OAAO,CAChB,eAAe,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EACnD,eAAe,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CACpD,CAAC;IACJ,CAAC;IAED,KAAK;QACH,OAAO,IAAI,oBAAoB,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAS,CAAC;IACrE,CAAC;CACF"}
@@ -0,0 +1,13 @@
1
+ import { Vector3 } from "../Vector3.js";
2
+ import { CurveBase } from "./CurveBase.js";
3
+ /** 3D quadratic Bézier — three.js `QuadraticBezierCurve3` parity. */
4
+ export declare class QuadraticBezierCurve3 extends CurveBase<Vector3> {
5
+ readonly v0: Vector3;
6
+ readonly v1: Vector3;
7
+ readonly v2: Vector3;
8
+ readonly isQuadraticBezierCurve3: true;
9
+ constructor(v0: Vector3, v1: Vector3, v2: Vector3);
10
+ getPoint(t: number): Vector3;
11
+ clone(): this;
12
+ }
13
+ //# sourceMappingURL=QuadraticBezierCurve3.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QuadraticBezierCurve3.d.ts","sourceRoot":"","sources":["../../../../../packages/math/src/curves/QuadraticBezierCurve3.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAG3C,qEAAqE;AACrE,qBAAa,qBAAsB,SAAQ,SAAS,CAAC,OAAO,CAAC;IAIzD,QAAQ,CAAC,EAAE,EAAE,OAAO;IACpB,QAAQ,CAAC,EAAE,EAAE,OAAO;IACpB,QAAQ,CAAC,EAAE,EAAE,OAAO;IALtB,QAAQ,CAAC,uBAAuB,EAAG,IAAI,CAAU;gBAGtC,EAAE,EAAE,OAAO,EACX,EAAE,EAAE,OAAO,EACX,EAAE,EAAE,OAAO;IAKtB,QAAQ,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO;IAQ5B,KAAK,IAAI,IAAI;CAGd"}
@@ -0,0 +1,23 @@
1
+ import { Vector3 } from "../Vector3.js";
2
+ import { CurveBase } from "./CurveBase.js";
3
+ import { QuadraticBezier } from "./Interpolations.js";
4
+ /** 3D quadratic Bézier — three.js `QuadraticBezierCurve3` parity. */
5
+ export class QuadraticBezierCurve3 extends CurveBase {
6
+ v0;
7
+ v1;
8
+ v2;
9
+ isQuadraticBezierCurve3 = true;
10
+ constructor(v0, v1, v2) {
11
+ super();
12
+ this.v0 = v0;
13
+ this.v1 = v1;
14
+ this.v2 = v2;
15
+ }
16
+ getPoint(t) {
17
+ return new Vector3(QuadraticBezier(t, this.v0.x, this.v1.x, this.v2.x), QuadraticBezier(t, this.v0.y, this.v1.y, this.v2.y), QuadraticBezier(t, this.v0.z, this.v1.z, this.v2.z));
18
+ }
19
+ clone() {
20
+ return new QuadraticBezierCurve3(this.v0, this.v1, this.v2);
21
+ }
22
+ }
23
+ //# sourceMappingURL=QuadraticBezierCurve3.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QuadraticBezierCurve3.js","sourceRoot":"","sources":["../../../../../packages/math/src/curves/QuadraticBezierCurve3.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD,qEAAqE;AACrE,MAAM,OAAO,qBAAsB,SAAQ,SAAkB;IAIhD;IACA;IACA;IALF,uBAAuB,GAAG,IAAa,CAAC;IAEjD,YACW,EAAW,EACX,EAAW,EACX,EAAW;QAEpB,KAAK,EAAE,CAAC;QAJC,OAAE,GAAF,EAAE,CAAS;QACX,OAAE,GAAF,EAAE,CAAS;QACX,OAAE,GAAF,EAAE,CAAS;IAGtB,CAAC;IAED,QAAQ,CAAC,CAAS;QAChB,OAAO,IAAI,OAAO,CAChB,eAAe,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EACnD,eAAe,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EACnD,eAAe,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CACpD,CAAC;IACJ,CAAC;IAED,KAAK;QACH,OAAO,IAAI,qBAAqB,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAS,CAAC;IACtE,CAAC;CACF"}
@@ -0,0 +1,15 @@
1
+ import { Vector2 } from "../Vector2.js";
2
+ import { Path } from "./Path.js";
3
+ /** 2D shape boundary + holes — three.js `Shape` parity. */
4
+ export declare class Shape extends Path {
5
+ readonly uuid: string;
6
+ readonly holes: Path[];
7
+ constructor(points?: readonly Vector2[]);
8
+ getPointsHoles(divisions: number): Vector2[][];
9
+ /** `{shape, holes}` outline points (three.js `Shape.extractPoints`). */
10
+ extractPoints(divisions: number): {
11
+ shape: Vector2[];
12
+ holes: Vector2[][];
13
+ };
14
+ }
15
+ //# sourceMappingURL=Shape.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Shape.d.ts","sourceRoot":"","sources":["../../../../../packages/math/src/curves/Shape.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,2DAA2D;AAC3D,qBAAa,KAAM,SAAQ,IAAI;IAC7B,QAAQ,CAAC,IAAI,SAAkB;IAE/B,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,CAAM;gBAEhB,MAAM,CAAC,EAAE,SAAS,OAAO,EAAE;IAIvC,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,EAAE,EAAE;IAQ9C,wEAAwE;IACxE,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG;QAAE,KAAK,EAAE,OAAO,EAAE,CAAC;QAAC,KAAK,EAAE,OAAO,EAAE,EAAE,CAAA;KAAE;CAM3E"}
@@ -0,0 +1,26 @@
1
+ import { Vector2 } from "../Vector2.js";
2
+ import { generateUUID } from "../MathUtils.js";
3
+ import { Path } from "./Path.js";
4
+ /** 2D shape boundary + holes — three.js `Shape` parity. */
5
+ export class Shape extends Path {
6
+ uuid = generateUUID();
7
+ holes = [];
8
+ constructor(points) {
9
+ super(points);
10
+ }
11
+ getPointsHoles(divisions) {
12
+ const holesPts = [];
13
+ for (const hole of this.holes) {
14
+ holesPts.push(hole.getPoints(divisions));
15
+ }
16
+ return holesPts;
17
+ }
18
+ /** `{shape, holes}` outline points (three.js `Shape.extractPoints`). */
19
+ extractPoints(divisions) {
20
+ return {
21
+ shape: this.getPoints(divisions),
22
+ holes: this.getPointsHoles(divisions)
23
+ };
24
+ }
25
+ }
26
+ //# sourceMappingURL=Shape.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Shape.js","sourceRoot":"","sources":["../../../../../packages/math/src/curves/Shape.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,2DAA2D;AAC3D,MAAM,OAAO,KAAM,SAAQ,IAAI;IACpB,IAAI,GAAG,YAAY,EAAE,CAAC;IAEtB,KAAK,GAAW,EAAE,CAAC;IAE5B,YAAY,MAA2B;QACrC,KAAK,CAAC,MAAM,CAAC,CAAC;IAChB,CAAC;IAED,cAAc,CAAC,SAAiB;QAC9B,MAAM,QAAQ,GAAgB,EAAE,CAAC;QACjC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAC9B,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC;QAC3C,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,wEAAwE;IACxE,aAAa,CAAC,SAAiB;QAC7B,OAAO;YACL,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC;YAChC,KAAK,EAAE,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC;SACtC,CAAC;IACJ,CAAC;CACF"}
@@ -0,0 +1,11 @@
1
+ import { Vector2 } from "../Vector2.js";
2
+ import { CurveBase } from "./CurveBase.js";
3
+ /** 2D uniform Catmull-Rom spline — three.js `SplineCurve` parity. */
4
+ export declare class SplineCurve extends CurveBase<Vector2> {
5
+ readonly points: readonly Vector2[];
6
+ readonly isSplineCurve: true;
7
+ constructor(points?: readonly Vector2[]);
8
+ getPoint(t: number): Vector2;
9
+ clone(): this;
10
+ }
11
+ //# sourceMappingURL=SplineCurve.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SplineCurve.d.ts","sourceRoot":"","sources":["../../../../../packages/math/src/curves/SplineCurve.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAG3C,qEAAqE;AACrE,qBAAa,WAAY,SAAQ,SAAS,CAAC,OAAO,CAAC;IAGrC,QAAQ,CAAC,MAAM,EAAE,SAAS,OAAO,EAAE;IAF/C,QAAQ,CAAC,aAAa,EAAG,IAAI,CAAU;gBAElB,MAAM,GAAE,SAAS,OAAO,EAAO;IAIpD,QAAQ,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO;IAiB5B,KAAK,IAAI,IAAI;CAGd"}
@@ -0,0 +1,27 @@
1
+ import { Vector2 } from "../Vector2.js";
2
+ import { CurveBase } from "./CurveBase.js";
3
+ import { CatmullRom } from "./Interpolations.js";
4
+ /** 2D uniform Catmull-Rom spline — three.js `SplineCurve` parity. */
5
+ export class SplineCurve extends CurveBase {
6
+ points;
7
+ isSplineCurve = true;
8
+ constructor(points = []) {
9
+ super();
10
+ this.points = points;
11
+ }
12
+ getPoint(t) {
13
+ const points = this.points;
14
+ const p = (points.length - 1) * t;
15
+ const intPoint = Math.floor(p);
16
+ const weight = p - intPoint;
17
+ const p0 = points[intPoint === 0 ? intPoint : intPoint - 1];
18
+ const p1 = points[intPoint];
19
+ const p2 = points[intPoint > points.length - 2 ? points.length - 1 : intPoint + 1];
20
+ const p3 = points[intPoint > points.length - 3 ? points.length - 1 : intPoint + 2];
21
+ return new Vector2(CatmullRom(weight, p0.x, p1.x, p2.x, p3.x), CatmullRom(weight, p0.y, p1.y, p2.y, p3.y));
22
+ }
23
+ clone() {
24
+ return new SplineCurve([...this.points]);
25
+ }
26
+ }
27
+ //# sourceMappingURL=SplineCurve.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SplineCurve.js","sourceRoot":"","sources":["../../../../../packages/math/src/curves/SplineCurve.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjD,qEAAqE;AACrE,MAAM,OAAO,WAAY,SAAQ,SAAkB;IAG5B;IAFZ,aAAa,GAAG,IAAa,CAAC;IAEvC,YAAqB,SAA6B,EAAE;QAClD,KAAK,EAAE,CAAC;QADW,WAAM,GAAN,MAAM,CAAyB;IAEpD,CAAC;IAED,QAAQ,CAAC,CAAS;QAChB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;QAClC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC/B,MAAM,MAAM,GAAG,CAAC,GAAG,QAAQ,CAAC;QAE5B,MAAM,EAAE,GAAG,MAAM,CAAC,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAE,CAAC;QAC7D,MAAM,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAE,CAAC;QAC7B,MAAM,EAAE,GAAG,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAE,CAAC;QACpF,MAAM,EAAE,GAAG,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAE,CAAC;QAEpF,OAAO,IAAI,OAAO,CAChB,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAC1C,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAC3C,CAAC;IACJ,CAAC;IAED,KAAK;QACH,OAAO,IAAI,WAAW,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAS,CAAC;IACnD,CAAC;CACF"}
package/dist/index.d.ts CHANGED
@@ -6,11 +6,23 @@ export * from "./Matrix4.js";
6
6
  export * from "./Quaternion.js";
7
7
  export * from "./Euler.js";
8
8
  export * from "./Color.js";
9
+ export * as MathUtils from "./MathUtils.js";
10
+ export { generateUUID, euclideanModulo, mapLinear, damp, pingpong, smootherstep, randInt, randFloat, randFloatSpread, seededRandom, degToRad, radToDeg, isPowerOfTwo, ceilPowerOfTwo, floorPowerOfTwo } from "./MathUtils.js";
11
+ export * from "./Line3.js";
12
+ export * from "./Triangle.js";
13
+ export * from "./Spherical.js";
14
+ export * from "./Cylindrical.js";
9
15
  export * from "./Ray.js";
10
16
  export * from "./Plane.js";
11
17
  export * from "./Box3.js";
12
18
  export * from "./Sphere.js";
13
19
  export * from "./Frustum.js";
20
+ export * from "./ShapeUtils.js";
21
+ export * from "./SphericalHarmonics3.js";
22
+ export * from "./OBB.js";
23
+ export * from "./Capsule.js";
24
+ export * from "./ConvexHull.js";
25
+ export * from "./Octree.js";
14
26
  export * from "./Transform.js";
15
27
  export * from "./Interpolation.js";
16
28
  export * from "./Easing.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../packages/math/src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../packages/math/src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAK3B,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EACL,YAAY,EACZ,eAAe,EACf,SAAS,EACT,IAAI,EACJ,QAAQ,EACR,YAAY,EACZ,OAAO,EACP,SAAS,EACT,eAAe,EACf,YAAY,EACZ,QAAQ,EACR,QAAQ,EACR,YAAY,EACZ,cAAc,EACd,eAAe,EAChB,MAAM,gBAAgB,CAAC;AACxB,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,0BAA0B,CAAC;AACzC,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC"}
package/dist/index.js CHANGED
@@ -6,11 +6,27 @@ export * from "./Matrix4.js";
6
6
  export * from "./Quaternion.js";
7
7
  export * from "./Euler.js";
8
8
  export * from "./Color.js";
9
+ // three.js exposes `MathUtils` as a namespace; several member names collide
10
+ // with Interpolation.ts (`clamp`, `lerp`, `inverseLerp`, `smoothstep` — with
11
+ // different argument order/semantics), so keep the namespace surface and
12
+ // re-export only the non-conflicting helpers at top level.
13
+ export * as MathUtils from "./MathUtils.js";
14
+ export { generateUUID, euclideanModulo, mapLinear, damp, pingpong, smootherstep, randInt, randFloat, randFloatSpread, seededRandom, degToRad, radToDeg, isPowerOfTwo, ceilPowerOfTwo, floorPowerOfTwo } from "./MathUtils.js";
15
+ export * from "./Line3.js";
16
+ export * from "./Triangle.js";
17
+ export * from "./Spherical.js";
18
+ export * from "./Cylindrical.js";
9
19
  export * from "./Ray.js";
10
20
  export * from "./Plane.js";
11
21
  export * from "./Box3.js";
12
22
  export * from "./Sphere.js";
13
23
  export * from "./Frustum.js";
24
+ export * from "./ShapeUtils.js";
25
+ export * from "./SphericalHarmonics3.js";
26
+ export * from "./OBB.js";
27
+ export * from "./Capsule.js";
28
+ export * from "./ConvexHull.js";
29
+ export * from "./Octree.js";
14
30
  export * from "./Transform.js";
15
31
  export * from "./Interpolation.js";
16
32
  export * from "./Easing.js";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/math/src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/math/src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,4EAA4E;AAC5E,6EAA6E;AAC7E,yEAAyE;AACzE,2DAA2D;AAC3D,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EACL,YAAY,EACZ,eAAe,EACf,SAAS,EACT,IAAI,EACJ,QAAQ,EACR,YAAY,EACZ,OAAO,EACP,SAAS,EACT,eAAe,EACf,YAAY,EACZ,QAAQ,EACR,QAAQ,EACR,YAAY,EACZ,cAAc,EACd,eAAe,EAChB,MAAM,gBAAgB,CAAC;AACxB,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,0BAA0B,CAAC;AACzC,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aura3d/math",
3
- "version": "4.0.3",
3
+ "version": "4.0.5",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",