@aura3d/math 4.0.2 → 4.0.4
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.
- package/dist/Box3.d.ts +50 -0
- package/dist/Box3.d.ts.map +1 -1
- package/dist/Box3.js +177 -6
- package/dist/Box3.js.map +1 -1
- package/dist/Capsule.d.ts +25 -0
- package/dist/Capsule.d.ts.map +1 -0
- package/dist/Capsule.js +54 -0
- package/dist/Capsule.js.map +1 -0
- package/dist/Color.d.ts +27 -0
- package/dist/Color.d.ts.map +1 -1
- package/dist/Color.js +87 -0
- package/dist/Color.js.map +1 -1
- package/dist/ConvexHull.d.ts +100 -0
- package/dist/ConvexHull.d.ts.map +1 -0
- package/dist/ConvexHull.js +578 -0
- package/dist/ConvexHull.js.map +1 -0
- package/dist/Curves.d.ts +59 -18
- package/dist/Curves.d.ts.map +1 -1
- package/dist/Curves.js +15 -73
- package/dist/Curves.js.map +1 -1
- package/dist/Cylindrical.d.ts +19 -0
- package/dist/Cylindrical.d.ts.map +1 -0
- package/dist/Cylindrical.js +40 -0
- package/dist/Cylindrical.js.map +1 -0
- package/dist/Euler.d.ts +24 -0
- package/dist/Euler.d.ts.map +1 -1
- package/dist/Euler.js +126 -2
- package/dist/Euler.js.map +1 -1
- package/dist/Frustum.d.ts +18 -0
- package/dist/Frustum.d.ts.map +1 -1
- package/dist/Frustum.js +62 -12
- package/dist/Frustum.js.map +1 -1
- package/dist/Line3.d.ts +38 -0
- package/dist/Line3.d.ts.map +1 -0
- package/dist/Line3.js +122 -0
- package/dist/Line3.js.map +1 -0
- package/dist/MathUtils.d.ts +37 -0
- package/dist/MathUtils.d.ts.map +1 -0
- package/dist/MathUtils.js +105 -0
- package/dist/MathUtils.js.map +1 -0
- package/dist/Matrix3.d.ts +23 -2
- package/dist/Matrix3.d.ts.map +1 -1
- package/dist/Matrix3.js +90 -0
- package/dist/Matrix3.js.map +1 -1
- package/dist/Matrix4.d.ts +3 -0
- package/dist/Matrix4.d.ts.map +1 -1
- package/dist/Matrix4.js +17 -0
- package/dist/Matrix4.js.map +1 -1
- package/dist/OBB.d.ts +44 -0
- package/dist/OBB.d.ts.map +1 -0
- package/dist/OBB.js +214 -0
- package/dist/OBB.js.map +1 -0
- package/dist/Octree.d.ts +72 -0
- package/dist/Octree.d.ts.map +1 -0
- package/dist/Octree.js +385 -0
- package/dist/Octree.js.map +1 -0
- package/dist/Plane.d.ts +42 -0
- package/dist/Plane.d.ts.map +1 -1
- package/dist/Plane.js +79 -3
- package/dist/Plane.js.map +1 -1
- package/dist/Quaternion.d.ts +6 -1
- package/dist/Quaternion.d.ts.map +1 -1
- package/dist/Quaternion.js +28 -3
- package/dist/Quaternion.js.map +1 -1
- package/dist/Ray.d.ts +42 -2
- package/dist/Ray.d.ts.map +1 -1
- package/dist/Ray.js +202 -9
- package/dist/Ray.js.map +1 -1
- package/dist/ShapeUtils.d.ts +28 -0
- package/dist/ShapeUtils.d.ts.map +1 -0
- package/dist/ShapeUtils.js +551 -0
- package/dist/ShapeUtils.js.map +1 -0
- package/dist/Sphere.d.ts +32 -0
- package/dist/Sphere.d.ts.map +1 -1
- package/dist/Sphere.js +122 -4
- package/dist/Sphere.js.map +1 -1
- package/dist/Spherical.d.ts +21 -0
- package/dist/Spherical.d.ts.map +1 -0
- package/dist/Spherical.js +50 -0
- package/dist/Spherical.js.map +1 -0
- package/dist/SphericalHarmonics3.d.ts +35 -0
- package/dist/SphericalHarmonics3.d.ts.map +1 -0
- package/dist/SphericalHarmonics3.js +115 -0
- package/dist/SphericalHarmonics3.js.map +1 -0
- package/dist/Triangle.d.ts +45 -0
- package/dist/Triangle.d.ts.map +1 -0
- package/dist/Triangle.js +160 -0
- package/dist/Triangle.js.map +1 -0
- package/dist/Vector2.d.ts +7 -0
- package/dist/Vector2.d.ts.map +1 -1
- package/dist/Vector2.js +17 -0
- package/dist/Vector2.js.map +1 -1
- package/dist/Vector3.d.ts +16 -0
- package/dist/Vector3.d.ts.map +1 -1
- package/dist/Vector3.js +35 -0
- package/dist/Vector3.js.map +1 -1
- package/dist/curves/ArcCurve.d.ts +7 -0
- package/dist/curves/ArcCurve.d.ts.map +1 -0
- package/dist/curves/ArcCurve.js +9 -0
- package/dist/curves/ArcCurve.js.map +1 -0
- package/dist/curves/CatmullRomCurve3.d.ts +39 -0
- package/dist/curves/CatmullRomCurve3.d.ts.map +1 -0
- package/dist/curves/CatmullRomCurve3.js +176 -0
- package/dist/curves/CatmullRomCurve3.js.map +1 -0
- package/dist/curves/ClampedCatmullRomCurve3.d.ts +26 -0
- package/dist/curves/ClampedCatmullRomCurve3.d.ts.map +1 -0
- package/dist/curves/ClampedCatmullRomCurve3.js +48 -0
- package/dist/curves/ClampedCatmullRomCurve3.js.map +1 -0
- package/dist/curves/CubicBezierCurve.d.ts +14 -0
- package/dist/curves/CubicBezierCurve.d.ts.map +1 -0
- package/dist/curves/CubicBezierCurve.js +25 -0
- package/dist/curves/CubicBezierCurve.js.map +1 -0
- package/dist/curves/CubicBezierCurve3.d.ts +14 -0
- package/dist/curves/CubicBezierCurve3.d.ts.map +1 -0
- package/dist/curves/CubicBezierCurve3.js +25 -0
- package/dist/curves/CubicBezierCurve3.js.map +1 -0
- package/dist/curves/CurveBase.d.ts +49 -0
- package/dist/curves/CurveBase.d.ts.map +1 -0
- package/dist/curves/CurveBase.js +199 -0
- package/dist/curves/CurveBase.js.map +1 -0
- package/dist/curves/CurvePath.d.ts +34 -0
- package/dist/curves/CurvePath.d.ts.map +1 -0
- package/dist/curves/CurvePath.js +135 -0
- package/dist/curves/CurvePath.js.map +1 -0
- package/dist/curves/EllipseCurve.d.ts +18 -0
- package/dist/curves/EllipseCurve.d.ts.map +1 -0
- package/dist/curves/EllipseCurve.js +67 -0
- package/dist/curves/EllipseCurve.js.map +1 -0
- package/dist/curves/Interpolations.d.ts +9 -0
- package/dist/curves/Interpolations.d.ts.map +1 -0
- package/dist/curves/Interpolations.js +21 -0
- package/dist/curves/Interpolations.js.map +1 -0
- package/dist/curves/LineCurve.d.ts +16 -0
- package/dist/curves/LineCurve.d.ts.map +1 -0
- package/dist/curves/LineCurve.js +32 -0
- package/dist/curves/LineCurve.js.map +1 -0
- package/dist/curves/LineCurve3.d.ts +16 -0
- package/dist/curves/LineCurve3.d.ts.map +1 -0
- package/dist/curves/LineCurve3.js +32 -0
- package/dist/curves/LineCurve3.js.map +1 -0
- package/dist/curves/Path.d.ts +23 -0
- package/dist/curves/Path.d.ts.map +1 -0
- package/dist/curves/Path.js +94 -0
- package/dist/curves/Path.js.map +1 -0
- package/dist/curves/QuadraticBezierCurve.d.ts +13 -0
- package/dist/curves/QuadraticBezierCurve.d.ts.map +1 -0
- package/dist/curves/QuadraticBezierCurve.js +23 -0
- package/dist/curves/QuadraticBezierCurve.js.map +1 -0
- package/dist/curves/QuadraticBezierCurve3.d.ts +13 -0
- package/dist/curves/QuadraticBezierCurve3.d.ts.map +1 -0
- package/dist/curves/QuadraticBezierCurve3.js +23 -0
- package/dist/curves/QuadraticBezierCurve3.js.map +1 -0
- package/dist/curves/Shape.d.ts +15 -0
- package/dist/curves/Shape.d.ts.map +1 -0
- package/dist/curves/Shape.js +26 -0
- package/dist/curves/Shape.js.map +1 -0
- package/dist/curves/SplineCurve.d.ts +11 -0
- package/dist/curves/SplineCurve.d.ts.map +1 -0
- package/dist/curves/SplineCurve.js +27 -0
- package/dist/curves/SplineCurve.js.map +1 -0
- package/dist/index.d.ts +12 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +16 -0
- package/dist/index.js.map +1 -1
- 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";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -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"}
|