@typeonce/ritmo-math 0.8.0 → 0.10.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.
- package/CHANGELOG.md +183 -0
- package/README.md +14 -4
- package/dist/Collide2.d.ts +2 -1
- package/dist/Collide2.d.ts.map +1 -1
- package/dist/Collide2.js +10 -6
- package/dist/Collide2.js.map +1 -1
- package/dist/FlowField.d.ts.map +1 -1
- package/dist/FlowField.js +2 -1
- package/dist/FlowField.js.map +1 -1
- package/dist/InputAxis.js +1 -1
- package/dist/Ops.d.ts +209 -0
- package/dist/Ops.d.ts.map +1 -0
- package/dist/Ops.js +210 -0
- package/dist/Ops.js.map +1 -0
- package/dist/Random.d.ts +63 -10
- package/dist/Random.d.ts.map +1 -1
- package/dist/Random.js +57 -32
- package/dist/Random.js.map +1 -1
- package/dist/Scalar.d.ts +7 -2
- package/dist/Scalar.d.ts.map +1 -1
- package/dist/Scalar.js +2 -1
- package/dist/Scalar.js.map +1 -1
- package/dist/SpatialGrid.d.ts +7 -2
- package/dist/SpatialGrid.d.ts.map +1 -1
- package/dist/SpatialGrid.js +35 -4
- package/dist/SpatialGrid.js.map +1 -1
- package/dist/Vec2.d.ts.map +1 -1
- package/dist/Vec2.js +8 -7
- package/dist/Vec2.js.map +1 -1
- package/dist/Vector2.d.ts +12 -0
- package/dist/Vector2.d.ts.map +1 -1
- package/dist/Vector2.js +12 -0
- package/dist/Vector2.js.map +1 -1
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -1
- package/dist/internal/fdlibm.d.ts +43 -0
- package/dist/internal/fdlibm.d.ts.map +1 -0
- package/dist/internal/fdlibm.js +1291 -0
- package/dist/internal/fdlibm.js.map +1 -0
- package/dist/internal/vector2.d.ts.map +1 -1
- package/dist/internal/vector2.js +2 -1
- package/dist/internal/vector2.js.map +1 -1
- package/package.json +3 -2
- package/src/Collide2.ts +10 -6
- package/src/FlowField.ts +2 -1
- package/src/InputAxis.ts +1 -1
- package/src/Ops.ts +232 -0
- package/src/Random.ts +104 -16
- package/src/Scalar.ts +7 -2
- package/src/SpatialGrid.ts +40 -6
- package/src/Vec2.ts +9 -7
- package/src/Vector2.ts +12 -0
- package/src/index.ts +5 -0
- package/src/internal/fdlibm.ts +1256 -0
- package/src/internal/vector2.ts +2 -1
package/dist/Vec2.js
CHANGED
|
@@ -23,6 +23,7 @@
|
|
|
23
23
|
* @categoryDescription Operations
|
|
24
24
|
* Immutable arithmetic, measurement, and steering helpers.
|
|
25
25
|
*/
|
|
26
|
+
import * as Ops from "./Ops.js";
|
|
26
27
|
/**
|
|
27
28
|
* The zero vector (frozen, safe to share).
|
|
28
29
|
*
|
|
@@ -53,8 +54,8 @@ export const scale = (a, factor) => ({ x: a.x * factor, y: a.y * factor });
|
|
|
53
54
|
* @category Operations
|
|
54
55
|
*/
|
|
55
56
|
export const rotate = (a, angle) => {
|
|
56
|
-
const cos =
|
|
57
|
-
const sin =
|
|
57
|
+
const cos = Ops.cos(angle);
|
|
58
|
+
const sin = Ops.sin(angle);
|
|
58
59
|
return { x: a.x * cos - a.y * sin, y: a.x * sin + a.y * cos };
|
|
59
60
|
};
|
|
60
61
|
/**
|
|
@@ -68,7 +69,7 @@ export const dot = (a, b) => a.x * b.x + a.y * b.y;
|
|
|
68
69
|
*
|
|
69
70
|
* @category Operations
|
|
70
71
|
*/
|
|
71
|
-
export const length = (a) =>
|
|
72
|
+
export const length = (a) => Ops.hypot(a.x, a.y);
|
|
72
73
|
/**
|
|
73
74
|
* Squared length of `a`, for comparisons without a square root.
|
|
74
75
|
*
|
|
@@ -80,7 +81,7 @@ export const lengthSquared = (a) => a.x * a.x + a.y * a.y;
|
|
|
80
81
|
*
|
|
81
82
|
* @category Operations
|
|
82
83
|
*/
|
|
83
|
-
export const distance = (a, b) =>
|
|
84
|
+
export const distance = (a, b) => Ops.hypot(a.x - b.x, a.y - b.y);
|
|
84
85
|
/**
|
|
85
86
|
* Squared distance between two points, for comparisons without a square root.
|
|
86
87
|
*
|
|
@@ -99,7 +100,7 @@ export const distanceSquared = (a, b) => {
|
|
|
99
100
|
* @category Operations
|
|
100
101
|
*/
|
|
101
102
|
export const normalizeOr = (a, fallback) => {
|
|
102
|
-
const len =
|
|
103
|
+
const len = Ops.hypot(a.x, a.y);
|
|
103
104
|
return len < 1e-9 ? fallback : { x: a.x / len, y: a.y / len };
|
|
104
105
|
};
|
|
105
106
|
/**
|
|
@@ -116,7 +117,7 @@ export const lerp = (a, b, t) => ({ x: a.x + (b.x - a.x) * t, y: a.y + (b.y - a.
|
|
|
116
117
|
export const moveToward = (current, target, maxDelta) => {
|
|
117
118
|
const dx = target.x - current.x;
|
|
118
119
|
const dy = target.y - current.y;
|
|
119
|
-
const len =
|
|
120
|
+
const len = Ops.hypot(dx, dy);
|
|
120
121
|
if (len <= maxDelta || len < 1e-9)
|
|
121
122
|
return target;
|
|
122
123
|
return { x: current.x + (dx / len) * maxDelta, y: current.y + (dy / len) * maxDelta };
|
|
@@ -127,7 +128,7 @@ export const moveToward = (current, target, maxDelta) => {
|
|
|
127
128
|
* @category Operations
|
|
128
129
|
*/
|
|
129
130
|
export const clampLength = (a, max) => {
|
|
130
|
-
const len =
|
|
131
|
+
const len = Ops.hypot(a.x, a.y);
|
|
131
132
|
return len <= max ? a : { x: (a.x / len) * max, y: (a.y / len) * max };
|
|
132
133
|
};
|
|
133
134
|
//# sourceMappingURL=Vec2.js.map
|
package/dist/Vec2.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Vec2.js","sourceRoot":"","sources":["../src/Vec2.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;
|
|
1
|
+
{"version":3,"file":"Vec2.js","sourceRoot":"","sources":["../src/Vec2.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,KAAK,GAAG,MAAM,UAAU,CAAA;AAY/B;;;;GAIG;AACH,MAAM,CAAC,MAAM,IAAI,GAAS,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAA;AAEvD;;;;GAIG;AACH,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,CAAO,EAAE,CAAO,EAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;AAE/E;;;;GAIG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,CAAO,EAAE,CAAO,EAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;AAEpF;;;;GAIG;AACH,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,CAAO,EAAE,MAAc,EAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,MAAM,EAAE,CAAC,CAAA;AAE9F;;;;GAIG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,CAAO,EAAE,KAAa,EAAQ,EAAE;IACrD,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;IAC1B,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;IAC1B,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE,CAAA;AAC/D,CAAC,CAAA;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,CAAO,EAAE,CAAO,EAAU,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;AAEtE;;;;GAIG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,CAAO,EAAU,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;AAE9D;;;;GAIG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAO,EAAU,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;AAEvE;;;;GAIG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,CAAO,EAAE,CAAO,EAAU,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;AAErF;;;;GAIG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAO,EAAE,CAAO,EAAU,EAAE;IAC1D,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;IACpB,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;IACpB,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAA;AAC1B,CAAC,CAAA;AAED;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,CAAO,EAAE,QAAc,EAAQ,EAAE;IAC3D,MAAM,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;IAC/B,OAAO,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE,CAAA;AAC/D,CAAC,CAAA;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,CAAO,EAAE,CAAO,EAAE,CAAS,EAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;AAEnH;;;;GAIG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,OAAa,EAAE,MAAY,EAAE,QAAgB,EAAQ,EAAE;IAChF,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAA;IAC/B,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAA;IAC/B,MAAM,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAA;IAC7B,IAAI,GAAG,IAAI,QAAQ,IAAI,GAAG,GAAG,IAAI;QAAE,OAAO,MAAM,CAAA;IAChD,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,GAAG,QAAQ,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,GAAG,QAAQ,EAAE,CAAA;AACvF,CAAC,CAAA;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,CAAO,EAAE,GAAW,EAAQ,EAAE;IACxD,MAAM,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;IAC/B,OAAO,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,EAAE,CAAA;AACxE,CAAC,CAAA"}
|
package/dist/Vector2.d.ts
CHANGED
|
@@ -150,24 +150,36 @@ export declare const zero: () => Vector2;
|
|
|
150
150
|
/**
|
|
151
151
|
* Returns the sum of two branded vectors.
|
|
152
152
|
*
|
|
153
|
+
* Keeps the brands without re-validating: finite while the result stays
|
|
154
|
+
* within `±Number.MAX_VALUE` (see `Scalar.Finite`).
|
|
155
|
+
*
|
|
153
156
|
* @category Operations
|
|
154
157
|
*/
|
|
155
158
|
export declare const add: (left: Vector2, right: Vector2) => Vector2;
|
|
156
159
|
/**
|
|
157
160
|
* Returns the component-wise difference between two branded vectors.
|
|
158
161
|
*
|
|
162
|
+
* Keeps the brands without re-validating: finite while the result stays
|
|
163
|
+
* within `±Number.MAX_VALUE` (see `Scalar.Finite`).
|
|
164
|
+
*
|
|
159
165
|
* @category Operations
|
|
160
166
|
*/
|
|
161
167
|
export declare const subtract: (left: Vector2, right: Vector2) => Vector2;
|
|
162
168
|
/**
|
|
163
169
|
* Scales one vector by one validated finite scalar.
|
|
164
170
|
*
|
|
171
|
+
* Keeps the brands without re-validating: finite while the result stays
|
|
172
|
+
* within `±Number.MAX_VALUE` (see `Scalar.Finite`).
|
|
173
|
+
*
|
|
165
174
|
* @category Operations
|
|
166
175
|
*/
|
|
167
176
|
export declare const scale: (vector: Vector2, scalar: Scalar.Finite) => Vector2;
|
|
168
177
|
/**
|
|
169
178
|
* Returns the squared length of one vector.
|
|
170
179
|
*
|
|
180
|
+
* Keeps the brands without re-validating: finite while the result stays
|
|
181
|
+
* within `±Number.MAX_VALUE` (see `Scalar.Finite`).
|
|
182
|
+
*
|
|
171
183
|
* @category Operations
|
|
172
184
|
*/
|
|
173
185
|
export declare const lengthSquared: (vector: Vector2) => Scalar.NonNegative;
|
package/dist/Vector2.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Vector2.d.ts","sourceRoot":"","sources":["../src/Vector2.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,OAAO,KAAK,KAAK,KAAK,MAAM,uBAAuB,CAAA;AAEnD,OAAO,KAAK,KAAK,MAAM,MAAM,wBAAwB,CAAA;AACrD,OAAO,KAAK,KAAK,MAAM,MAAM,aAAa,CAAA;AAE1C;;;;GAIG;AACH,MAAM,MAAM,GAAG,GAAG;IAChB,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAA;CACnB,CAAA;AAED;;;;GAIG;AACH,MAAM,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;IAClC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,CAAA;IACzB,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,CAAA;CAC1B,EAAE,SAAS,CAAC,CAAA;AAEb;;;;GAIG;AACH,MAAM,MAAM,KAAK,GAAG;IAClB,QAAQ,CAAC,GAAG,EAAE,iBAAiB,CAAA;IAC/B,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,GAAG,IAAI,CAAA;IAC/B,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,GAAG,IAAI,CAAA;IAC/B,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAA;CACpB,CAAA;AAED;;;;GAIG;AACH,MAAM,MAAM,WAAW,GAAG;IACxB,QAAQ,CAAC,GAAG,EAAE,mBAAmB,CAAA;IACjC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;CACxB,CAAA;AAED;;;;GAIG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,CAAC,GAAG,EAAE,oBAAoB,CAAA;CACnC,CAAA;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,MAAM,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAmB,CAAA;AAClF;;;;;;GAMG;AACH,eAAO,MAAM,MAAM,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,GAAG,WAAW,CAAmB,CAAA;AACpG;;;;GAIG;AACH,eAAO,MAAM,MAAM,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,OAAO,GAAG,IAAsB,CAAA;AACnE;;;;GAIG;AACH,eAAO,MAAM,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,GAAG,IAAI,GAAG,GAAG,OAAqB,CAAA;AACjE;;;;GAIG;AACH,eAAO,MAAM,KAAK,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,GAAoB,CAAA;AAC7D;;;;GAIG;AACH,eAAO,MAAM,UAAU,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK;IAAE,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC;IAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,CAAA;CAAwB,CAAA;AAC5H;;;;GAIG;AACH,eAAO,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,MAAM,CAAC,MAAmB,CAAA;AAC/D;;;;GAIG;AACH,eAAO,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,MAAM,CAAC,MAAmB,CAAA;AAC/D;;;;GAIG;AACH,eAAO,MAAM,IAAI,EAAE,MAAM,OAAuB,CAAA;AAChD
|
|
1
|
+
{"version":3,"file":"Vector2.d.ts","sourceRoot":"","sources":["../src/Vector2.ts"],"names":[],"mappings":"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"}
|
package/dist/Vector2.js
CHANGED
|
@@ -63,24 +63,36 @@ export const zero = internal.zero;
|
|
|
63
63
|
/**
|
|
64
64
|
* Returns the sum of two branded vectors.
|
|
65
65
|
*
|
|
66
|
+
* Keeps the brands without re-validating: finite while the result stays
|
|
67
|
+
* within `±Number.MAX_VALUE` (see `Scalar.Finite`).
|
|
68
|
+
*
|
|
66
69
|
* @category Operations
|
|
67
70
|
*/
|
|
68
71
|
export const add = internal.add;
|
|
69
72
|
/**
|
|
70
73
|
* Returns the component-wise difference between two branded vectors.
|
|
71
74
|
*
|
|
75
|
+
* Keeps the brands without re-validating: finite while the result stays
|
|
76
|
+
* within `±Number.MAX_VALUE` (see `Scalar.Finite`).
|
|
77
|
+
*
|
|
72
78
|
* @category Operations
|
|
73
79
|
*/
|
|
74
80
|
export const subtract = internal.subtract;
|
|
75
81
|
/**
|
|
76
82
|
* Scales one vector by one validated finite scalar.
|
|
77
83
|
*
|
|
84
|
+
* Keeps the brands without re-validating: finite while the result stays
|
|
85
|
+
* within `±Number.MAX_VALUE` (see `Scalar.Finite`).
|
|
86
|
+
*
|
|
78
87
|
* @category Operations
|
|
79
88
|
*/
|
|
80
89
|
export const scale = internal.scale;
|
|
81
90
|
/**
|
|
82
91
|
* Returns the squared length of one vector.
|
|
83
92
|
*
|
|
93
|
+
* Keeps the brands without re-validating: finite while the result stays
|
|
94
|
+
* within `±Number.MAX_VALUE` (see `Scalar.Finite`).
|
|
95
|
+
*
|
|
84
96
|
* @category Operations
|
|
85
97
|
*/
|
|
86
98
|
export const lengthSquared = internal.lengthSquared;
|
package/dist/Vector2.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Vector2.js","sourceRoot":"","sources":["../src/Vector2.ts"],"names":[],"mappings":"AAqCA,OAAO,KAAK,QAAQ,MAAM,uBAAuB,CAAA;AAuDjD;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,MAAM,GAAgD,QAAQ,CAAC,MAAM,CAAA;AAClF;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,MAAM,GAAkE,QAAQ,CAAC,MAAM,CAAA;AACpG;;;;GAIG;AACH,MAAM,CAAC,MAAM,MAAM,GAAiC,QAAQ,CAAC,MAAM,CAAA;AACnE;;;;GAIG;AACH,MAAM,CAAC,MAAM,EAAE,GAAuC,QAAQ,CAAC,EAAE,CAAA;AACjE;;;;GAIG;AACH,MAAM,CAAC,MAAM,KAAK,GAA6B,QAAQ,CAAC,KAAK,CAAA;AAC7D;;;;GAIG;AACH,MAAM,CAAC,MAAM,UAAU,GAAkF,QAAQ,CAAC,UAAU,CAAA;AAC5H;;;;GAIG;AACH,MAAM,CAAC,MAAM,CAAC,GAAuC,QAAQ,CAAC,CAAC,CAAA;AAC/D;;;;GAIG;AACH,MAAM,CAAC,MAAM,CAAC,GAAuC,QAAQ,CAAC,CAAC,CAAA;AAC/D;;;;GAIG;AACH,MAAM,CAAC,MAAM,IAAI,GAAkB,QAAQ,CAAC,IAAI,CAAA;AAChD
|
|
1
|
+
{"version":3,"file":"Vector2.js","sourceRoot":"","sources":["../src/Vector2.ts"],"names":[],"mappings":"AAqCA,OAAO,KAAK,QAAQ,MAAM,uBAAuB,CAAA;AAuDjD;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,MAAM,GAAgD,QAAQ,CAAC,MAAM,CAAA;AAClF;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,MAAM,GAAkE,QAAQ,CAAC,MAAM,CAAA;AACpG;;;;GAIG;AACH,MAAM,CAAC,MAAM,MAAM,GAAiC,QAAQ,CAAC,MAAM,CAAA;AACnE;;;;GAIG;AACH,MAAM,CAAC,MAAM,EAAE,GAAuC,QAAQ,CAAC,EAAE,CAAA;AACjE;;;;GAIG;AACH,MAAM,CAAC,MAAM,KAAK,GAA6B,QAAQ,CAAC,KAAK,CAAA;AAC7D;;;;GAIG;AACH,MAAM,CAAC,MAAM,UAAU,GAAkF,QAAQ,CAAC,UAAU,CAAA;AAC5H;;;;GAIG;AACH,MAAM,CAAC,MAAM,CAAC,GAAuC,QAAQ,CAAC,CAAC,CAAA;AAC/D;;;;GAIG;AACH,MAAM,CAAC,MAAM,CAAC,GAAuC,QAAQ,CAAC,CAAC,CAAA;AAC/D;;;;GAIG;AACH,MAAM,CAAC,MAAM,IAAI,GAAkB,QAAQ,CAAC,IAAI,CAAA;AAChD;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,GAAG,GAA+C,QAAQ,CAAC,GAAG,CAAA;AAC3E;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,QAAQ,GAA+C,QAAQ,CAAC,QAAQ,CAAA;AACrF;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,KAAK,GAAwD,QAAQ,CAAC,KAAK,CAAA;AACxF;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,aAAa,GAA4C,QAAQ,CAAC,aAAa,CAAA;AAC5F;;;;GAIG;AACH,MAAM,CAAC,MAAM,MAAM,GAA4C,QAAQ,CAAC,MAAM,CAAA;AAC9E;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,SAAS,GAAgE,QAAQ,CAAC,SAAS,CAAA;AACxG;;;;;GAKG;AACH,MAAM,CAAC,MAAM,eAAe,GAAiC,QAAQ,CAAC,eAAe,CAAA"}
|
package/dist/index.d.ts
CHANGED
|
@@ -10,12 +10,17 @@
|
|
|
10
10
|
* `Box2` edges, `Collide2` swept circle collision, a `SpatialGrid` broad
|
|
11
11
|
* phase, a `FlowField` for finding the way around walls, and a deterministic
|
|
12
12
|
* `Random` whose state is one integer.
|
|
13
|
+
*
|
|
14
|
+
* `Ops` holds the math functions engines are allowed to approximate (`sin`,
|
|
15
|
+
* `cos`, `atan2`, `exp`, `pow`, `hypot`, ...) as ports that return the same
|
|
16
|
+
* bits everywhere: use them in simulation code instead of `Math`'s.
|
|
13
17
|
*/
|
|
14
18
|
export * as Aabb from "./Aabb.ts";
|
|
15
19
|
export * as Box2 from "./Box2.ts";
|
|
16
20
|
export * as Collide2 from "./Collide2.ts";
|
|
17
21
|
export * as FlowField from "./FlowField.ts";
|
|
18
22
|
export * as InputAxis from "./InputAxis.ts";
|
|
23
|
+
export * as Ops from "./Ops.ts";
|
|
19
24
|
export * as Random from "./Random.ts";
|
|
20
25
|
export * as Scalar from "./Scalar.ts";
|
|
21
26
|
export * as Size2 from "./Size2.ts";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AACjC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AACjC,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AACzC,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAC3C,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAC3C,OAAO,KAAK,GAAG,MAAM,UAAU,CAAA;AAC/B,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AACnC,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAA;AAC/C,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AACjC,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -10,12 +10,17 @@
|
|
|
10
10
|
* `Box2` edges, `Collide2` swept circle collision, a `SpatialGrid` broad
|
|
11
11
|
* phase, a `FlowField` for finding the way around walls, and a deterministic
|
|
12
12
|
* `Random` whose state is one integer.
|
|
13
|
+
*
|
|
14
|
+
* `Ops` holds the math functions engines are allowed to approximate (`sin`,
|
|
15
|
+
* `cos`, `atan2`, `exp`, `pow`, `hypot`, ...) as ports that return the same
|
|
16
|
+
* bits everywhere: use them in simulation code instead of `Math`'s.
|
|
13
17
|
*/
|
|
14
18
|
export * as Aabb from "./Aabb.js";
|
|
15
19
|
export * as Box2 from "./Box2.js";
|
|
16
20
|
export * as Collide2 from "./Collide2.js";
|
|
17
21
|
export * as FlowField from "./FlowField.js";
|
|
18
22
|
export * as InputAxis from "./InputAxis.js";
|
|
23
|
+
export * as Ops from "./Ops.js";
|
|
19
24
|
export * as Random from "./Random.js";
|
|
20
25
|
export * as Scalar from "./Scalar.js";
|
|
21
26
|
export * as Size2 from "./Size2.js";
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AACjC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AACjC,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AACzC,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAC3C,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAC3C,OAAO,KAAK,GAAG,MAAM,UAAU,CAAA;AAC/B,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AACnC,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAA;AAC/C,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AACjC,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pure-JavaScript ports of FreeBSD msun / musl libm (originally Sun fdlibm),
|
|
3
|
+
* built only from `+ - * /`, `Math.sqrt`, and bit access. ECMAScript rounds
|
|
4
|
+
* each of those exactly, so every engine and CPU returns the same bits.
|
|
5
|
+
*
|
|
6
|
+
* Copyright (C) 1993-2004 by Sun Microsystems, Inc. All rights reserved.
|
|
7
|
+
* Developed at SunSoft, a Sun Microsystems, Inc. business.
|
|
8
|
+
* Permission to use, copy, modify, and distribute this software is freely
|
|
9
|
+
* granted, provided that this notice is preserved.
|
|
10
|
+
*
|
|
11
|
+
* musl libm is MIT licensed, Copyright (c) 2005-2020 Rich Felker, et al.
|
|
12
|
+
*
|
|
13
|
+
* Changes from the C sources: results follow ECMAScript where it differs from
|
|
14
|
+
* C (`pow(1, NaN)` and `pow(±1, ±Infinity)` are NaN), arguments of sin,
|
|
15
|
+
* cos, and tan beyond 2^20·π/2 are reduced exactly with BigInt instead of
|
|
16
|
+
* `__rem_pio2_large`, and `exp(1)` returns `Math.E`.
|
|
17
|
+
*
|
|
18
|
+
* @internal
|
|
19
|
+
*/
|
|
20
|
+
export declare const sin: (x: number) => number;
|
|
21
|
+
export declare const cos: (x: number) => number;
|
|
22
|
+
export declare const tan: (x: number) => number;
|
|
23
|
+
export declare const asin: (x: number) => number;
|
|
24
|
+
export declare const acos: (x: number) => number;
|
|
25
|
+
export declare const atan: (xIn: number) => number;
|
|
26
|
+
export declare const atan2: (y: number, x: number) => number;
|
|
27
|
+
export declare const exp: (xIn: number) => number;
|
|
28
|
+
/** e^x − 1, accurate near 0. */
|
|
29
|
+
export declare const expm1: (xIn: number) => number;
|
|
30
|
+
export declare const tanh: (xIn: number) => number;
|
|
31
|
+
export declare const pow: (x: number, y: number) => number;
|
|
32
|
+
export declare const hypot: (xIn: number, yIn: number) => number;
|
|
33
|
+
export declare const log: (x: number) => number;
|
|
34
|
+
export declare const log2: (x: number) => number;
|
|
35
|
+
export declare const log10: (x: number) => number;
|
|
36
|
+
export declare const log1p: (x: number) => number;
|
|
37
|
+
export declare const sinh: (x: number) => number;
|
|
38
|
+
export declare const cosh: (xIn: number) => number;
|
|
39
|
+
export declare const asinh: (x: number) => number;
|
|
40
|
+
export declare const acosh: (x: number) => number;
|
|
41
|
+
export declare const atanh: (xIn: number) => number;
|
|
42
|
+
export declare const cbrt: (x: number) => number;
|
|
43
|
+
//# sourceMappingURL=fdlibm.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fdlibm.d.ts","sourceRoot":"","sources":["../../src/internal/fdlibm.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAoRH,eAAO,MAAM,GAAG,MAAO,MAAM,KAAG,MAkB/B,CAAA;AAED,eAAO,MAAM,GAAG,MAAO,MAAM,KAAG,MAkB/B,CAAA;AAED,eAAO,MAAM,GAAG,MAAO,MAAM,KAAG,MAS/B,CAAA;AAwBD,eAAO,MAAM,IAAI,MAAO,MAAM,KAAG,MA2BhC,CAAA;AAED,eAAO,MAAM,IAAI,MAAO,MAAM,KAAG,MA2BhC,CAAA;AA4BD,eAAO,MAAM,IAAI,QAAS,MAAM,KAAG,MA6ClC,CAAA;AAKD,eAAO,MAAM,KAAK,MAAO,MAAM,KAAK,MAAM,KAAG,MA8D5C,CAAA;AAcD,eAAO,MAAM,GAAG,QAAS,MAAM,KAAG,MAoCjC,CAAA;AASD,gCAAgC;AAChC,eAAO,MAAM,KAAK,QAAS,MAAM,KAAG,MA6DnC,CAAA;AAED,eAAO,MAAM,IAAI,QAAS,MAAM,KAAG,MAwBlC,CAAA;AA2BD,eAAO,MAAM,GAAG,MAAO,MAAM,KAAK,MAAM,KAAG,MAiL1C,CAAA;AASD,eAAO,MAAM,KAAK,QAAS,MAAM,OAAO,MAAM,KAAG,MA4ChD,CAAA;AAuDD,eAAO,MAAM,GAAG,MAAO,MAAM,KAAG,MAO/B,CAAA;AAKD,eAAO,MAAM,IAAI,MAAO,MAAM,KAAG,MAchC,CAAA;AAOD,eAAO,MAAM,KAAK,MAAO,MAAM,KAAG,MAejC,CAAA;AAED,eAAO,MAAM,KAAK,MAAO,MAAM,KAAG,MAuCjC,CAAA;AAWD,eAAO,MAAM,IAAI,MAAO,MAAM,KAAG,MAchC,CAAA;AAED,eAAO,MAAM,IAAI,QAAS,MAAM,KAAG,MAelC,CAAA;AAID,eAAO,MAAM,KAAK,MAAO,MAAM,KAAG,MAmBjC,CAAA;AAED,eAAO,MAAM,KAAK,MAAO,MAAM,KAAG,MAiBjC,CAAA;AAED,eAAO,MAAM,KAAK,QAAS,MAAM,KAAG,MAiBnC,CAAA;AAaD,eAAO,MAAM,IAAI,MAAO,MAAM,KAAG,MA4BhC,CAAA"}
|