@phalanx-engine/math 0.1.0 → 0.1.2
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/README.md +38 -1
- package/dist/FixedMath.d.ts +85 -0
- package/dist/FixedMath.d.ts.map +1 -1
- package/dist/FixedMath.js +359 -11
- package/dist/FixedMath.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -15,7 +15,7 @@ pnpm add @phalanx-engine/math
|
|
|
15
15
|
## Usage
|
|
16
16
|
|
|
17
17
|
```typescript
|
|
18
|
-
import { FP, FPVector2, FPVector3 } from '@phalanx-engine/math';
|
|
18
|
+
import { FP, FPVector2, FPVector3, FPQuaternion } from '@phalanx-engine/math';
|
|
19
19
|
|
|
20
20
|
// Create fixed-point numbers
|
|
21
21
|
const speed = FP.FromFloat(5.5);
|
|
@@ -33,8 +33,14 @@ const position = FPVector3.FromFloat(10, 0, 20);
|
|
|
33
33
|
const target = FPVector3.FromFloat(15, 0, 25);
|
|
34
34
|
const dist = FPVector3.Distance(position, target);
|
|
35
35
|
|
|
36
|
+
// Quaternion rotations (deterministic, XYZ Euler order)
|
|
37
|
+
const yaw = FPQuaternion.FromAxisAngle(FPVector3.Up, FP.PiOver2); // 90° around +Y
|
|
38
|
+
const facing = FPQuaternion.RotateVector(yaw, FPVector3.Forward); // rotate a direction
|
|
39
|
+
const blended = FPQuaternion.Slerp(FPQuaternion.Identity(), yaw, FP.FromFloat(0.5));
|
|
40
|
+
|
|
36
41
|
// Convert back to numbers for rendering
|
|
37
42
|
console.log(FP.ToFloat(dist));
|
|
43
|
+
console.log(FPQuaternion.ToFloat(blended)); // { x, y, z, w }
|
|
38
44
|
```
|
|
39
45
|
|
|
40
46
|
## API
|
|
@@ -67,6 +73,7 @@ Unified namespace for fixed-point operations (Unity/Quantum style):
|
|
|
67
73
|
|
|
68
74
|
#### Trigonometry
|
|
69
75
|
- `FP.Sin`, `FP.Cos`, `FP.Atan2` - Deterministic approximations
|
|
76
|
+
- `FP.Acos` - Arccosine via the `atan2` identity; input clamped to `[-1, 1]`, returns radians in `[0, PI]`
|
|
70
77
|
|
|
71
78
|
### FPVector2
|
|
72
79
|
|
|
@@ -108,6 +115,36 @@ Unified namespace for fixed-point operations (Unity/Quantum style):
|
|
|
108
115
|
- `FPVector3.Lerp` - Interpolation
|
|
109
116
|
- `FPVector3.ToFloat` - Convert for rendering
|
|
110
117
|
|
|
118
|
+
### FPQuaternion
|
|
119
|
+
|
|
120
|
+
Deterministic fixed-point quaternion for entity rotations. Stored in `(x, y, z, w)` order where `w` is the scalar component. All conversions use the XYZ Euler order (matching Unity's `Transform`), with intermediate math kept in `FixedPoint` for lockstep determinism. The `FPQuaternion` type/interface is also exported as `FPQuaternionInterface`.
|
|
121
|
+
|
|
122
|
+
#### Creation
|
|
123
|
+
- `FPQuaternion.Identity()` - Identity rotation `{ 0, 0, 0, 1 }`
|
|
124
|
+
- `FPQuaternion.Create(x, y, z, w)` - Create from FixedPoint components
|
|
125
|
+
- `FPQuaternion.FromFloat(x, y, z, w)` - Create from numbers
|
|
126
|
+
|
|
127
|
+
#### Rotation constructors
|
|
128
|
+
- `FPQuaternion.FromAxisAngle(axis: FPVector3, angle: FixedPoint)` - Rotation of `angle` radians around `axis`. The `axis` is assumed to be unit length (the caller's responsibility).
|
|
129
|
+
- `FPQuaternion.LookRotation(forwardDir: FPVector3, upDir?: FPVector3)` - Rotation aligning +Z with `forwardDir`, using `upDir` (default `FPVector3.Up`) as the reference up. Falls back to `Identity()` for degenerate inputs (zero-length forward, or up parallel to forward).
|
|
130
|
+
- `FPQuaternion.FromEulerXYZ(euler: FPVector3)` - Build from Euler angles (radians) applied in XYZ order
|
|
131
|
+
- `FPQuaternion.ToEulerXYZ(q: FPQuaternion)` - Extract Euler angles (radians, XYZ order); pitch sine is clamped to `[-1, 1]` to avoid NaN at the gimbal poles
|
|
132
|
+
|
|
133
|
+
#### Base operations
|
|
134
|
+
- `FPQuaternion.Mul(a, b)` - Hamilton product `a * b` (applies rotation `b` first, then `a`)
|
|
135
|
+
- `FPQuaternion.Dot(a, b)` - Dot product
|
|
136
|
+
- `FPQuaternion.Magnitude`, `FPQuaternion.SqrMagnitude` - Length (Unity naming)
|
|
137
|
+
- `FPQuaternion.Normalize(q)` - Normalize; returns `Identity()` if magnitude is zero
|
|
138
|
+
- `FPQuaternion.Conjugate(q)` - Conjugate `{ -x, -y, -z, w }`
|
|
139
|
+
- `FPQuaternion.Inverse(q)` - Inverse `Conjugate(q) / sqrMagnitude`; returns `Identity()` if magnitude is zero
|
|
140
|
+
|
|
141
|
+
#### Interpolation
|
|
142
|
+
- `FPQuaternion.Slerp(a, b, t: FixedPoint)` - Spherical linear interpolation along the shortest arc; falls back to normalized LERP for near-parallel inputs
|
|
143
|
+
- `FPQuaternion.RotateVector(q, v: FPVector3)` - Rotate a vector by a quaternion (`q * [v, 0] * Conjugate(q)`)
|
|
144
|
+
|
|
145
|
+
#### Conversion
|
|
146
|
+
- `FPQuaternion.ToFloat(q)` - Convert to `{ x, y, z, w }` floats for display/serialization
|
|
147
|
+
|
|
111
148
|
## Why Fixed-Point?
|
|
112
149
|
|
|
113
150
|
JavaScript's `Number` type uses IEEE 754 floating-point, which can produce slightly different results on different platforms/hardware. In lockstep multiplayer, even tiny differences compound over time, causing desync.
|
package/dist/FixedMath.d.ts
CHANGED
|
@@ -137,6 +137,12 @@ export declare const FP: {
|
|
|
137
137
|
* Returns angle in radians
|
|
138
138
|
*/
|
|
139
139
|
Atan2: (y: FixedPoint, x: FixedPoint) => FixedPoint;
|
|
140
|
+
/**
|
|
141
|
+
* Arccosine via the atan2 identity: acos(x) = atan2(sqrt(1 - x*x), x).
|
|
142
|
+
* Input is clamped to [-1, 1] to avoid NaN from rounding error.
|
|
143
|
+
* Returns angle in radians within [0, PI].
|
|
144
|
+
*/
|
|
145
|
+
Acos: (x: FixedPoint) => FixedPoint;
|
|
140
146
|
};
|
|
141
147
|
/**
|
|
142
148
|
* Fixed-point 2D vector interface
|
|
@@ -243,4 +249,83 @@ export declare const FPVector3: {
|
|
|
243
249
|
z: number;
|
|
244
250
|
};
|
|
245
251
|
};
|
|
252
|
+
/**
|
|
253
|
+
* Fixed-point quaternion interface.
|
|
254
|
+
* Stored in (x, y, z, w) order where w is the scalar component.
|
|
255
|
+
*/
|
|
256
|
+
export interface FPQuaternion {
|
|
257
|
+
x: FixedPoint;
|
|
258
|
+
y: FixedPoint;
|
|
259
|
+
z: FixedPoint;
|
|
260
|
+
w: FixedPoint;
|
|
261
|
+
}
|
|
262
|
+
/**
|
|
263
|
+
* FPQuaternion - Deterministic fixed-point quaternion utilities (Unity/Quantum style).
|
|
264
|
+
*
|
|
265
|
+
* All rotations are represented as unit quaternions. Conversions use the XYZ
|
|
266
|
+
* Euler order (matching Unity's Transform), with all intermediate math kept in
|
|
267
|
+
* FixedPoint for lockstep determinism.
|
|
268
|
+
*/
|
|
269
|
+
export declare const FPQuaternion: {
|
|
270
|
+
/** Identity rotation (no rotation): { 0, 0, 0, 1 } */
|
|
271
|
+
Identity: () => FPQuaternion;
|
|
272
|
+
/** Create a quaternion from FixedPoint components */
|
|
273
|
+
Create: (x: FixedPoint, y: FixedPoint, z: FixedPoint, w: FixedPoint) => FPQuaternion;
|
|
274
|
+
/** Create a quaternion from float components */
|
|
275
|
+
FromFloat: (x: number, y: number, z: number, w: number) => FPQuaternion;
|
|
276
|
+
/**
|
|
277
|
+
* Build a yaw-only rotation (rotation about the Y axis).
|
|
278
|
+
* Cardinal angles use exact quaternion components; other angles use half-angle
|
|
279
|
+
* Sin/Cos (with exact trig at PI/2 half-angle for 180° yaw).
|
|
280
|
+
*/
|
|
281
|
+
FromYaw: (yaw: FixedPoint) => FPQuaternion;
|
|
282
|
+
/**
|
|
283
|
+
* Build a rotation of `angle` radians around `axis`.
|
|
284
|
+
* `axis` is assumed to be unit length (caller's responsibility).
|
|
285
|
+
*/
|
|
286
|
+
FromAxisAngle: (axis: FPVector3, angle: FixedPoint) => FPQuaternion;
|
|
287
|
+
/**
|
|
288
|
+
* Build a rotation that aligns the +Z axis with `forwardDir`, using `upDir`
|
|
289
|
+
* (default FPVector3.Up) as the reference up direction.
|
|
290
|
+
*/
|
|
291
|
+
LookRotation: (forwardDir: FPVector3, upDir?: FPVector3) => FPQuaternion;
|
|
292
|
+
/**
|
|
293
|
+
* Build a quaternion from Euler angles (radians) applied in XYZ order.
|
|
294
|
+
*/
|
|
295
|
+
FromEulerXYZ: (euler: FPVector3) => FPQuaternion;
|
|
296
|
+
/**
|
|
297
|
+
* Extract Euler angles (radians, XYZ order) from a quaternion.
|
|
298
|
+
* The pitch sine is clamped to [-1, 1] to avoid NaN at the gimbal poles.
|
|
299
|
+
*/
|
|
300
|
+
ToEulerXYZ: (q: FPQuaternion) => FPVector3;
|
|
301
|
+
/** Hamilton product a * b (applies rotation b first, then a). */
|
|
302
|
+
Mul: (a: FPQuaternion, b: FPQuaternion) => FPQuaternion;
|
|
303
|
+
/** Dot product of two quaternions. */
|
|
304
|
+
Dot: (a: FPQuaternion, b: FPQuaternion) => FixedPoint;
|
|
305
|
+
/** Magnitude (length) of a quaternion. */
|
|
306
|
+
Magnitude: (q: FPQuaternion) => FixedPoint;
|
|
307
|
+
/** Squared magnitude of a quaternion (faster than Magnitude). */
|
|
308
|
+
SqrMagnitude: (q: FPQuaternion) => FixedPoint;
|
|
309
|
+
/** Normalize a quaternion. Returns Identity() if magnitude is zero. */
|
|
310
|
+
Normalize: (q: FPQuaternion) => FPQuaternion;
|
|
311
|
+
/** Conjugate of a quaternion: { -x, -y, -z, w }. */
|
|
312
|
+
Conjugate: (q: FPQuaternion) => FPQuaternion;
|
|
313
|
+
/** Inverse of a quaternion: Conjugate(q) / sqrMagnitude. */
|
|
314
|
+
Inverse: (q: FPQuaternion) => FPQuaternion;
|
|
315
|
+
/**
|
|
316
|
+
* Spherical linear interpolation between two rotations.
|
|
317
|
+
* Takes the shortest arc and falls back to normalized LERP for near-parallel
|
|
318
|
+
* inputs to avoid division by a near-zero sine.
|
|
319
|
+
*/
|
|
320
|
+
Slerp: (a: FPQuaternion, b: FPQuaternion, t: FixedPoint) => FPQuaternion;
|
|
321
|
+
/** Rotate a vector by a quaternion: q * [v, 0] * Conjugate(q). */
|
|
322
|
+
RotateVector: (q: FPQuaternion, v: FPVector3) => FPVector3;
|
|
323
|
+
/** Convert to a plain object with float values (for display/serialization). */
|
|
324
|
+
ToFloat: (q: FPQuaternion) => {
|
|
325
|
+
x: number;
|
|
326
|
+
y: number;
|
|
327
|
+
z: number;
|
|
328
|
+
w: number;
|
|
329
|
+
};
|
|
330
|
+
};
|
|
246
331
|
//# sourceMappingURL=FixedMath.d.ts.map
|
package/dist/FixedMath.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FixedMath.d.ts","sourceRoot":"","sources":["../src/FixedMath.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,EAAE,UAAU,EAA4B,MAAM,qBAAqB,CAAC;AAG3E,OAAO,EAAE,UAAU,EAAE,CAAC;AAKtB;;;GAGG;AACH,eAAO,MAAM,EAAE;IAGb;;;;;;;;;OASG;uBACgB,MAAM,cAAa,MAAM,KAAuB,UAAU;IAO7E;;;;OAIG;wBAEM,MAAM,cACF,MAAM,KAChB,UAAU;IAIb;;;;OAIG;qBAEM,MAAM,GAAG,MAAM,cACX,MAAM,KAChB,UAAU;IAIb;;OAEG;kBACW,UAAU,KAAG,MAAM;IAIjC;;;;;;OAMG;gBACS,UAAU,KAAG,MAAM;IAI/B;;;;;;OAMG;mBACY,MAAM,cAAa,MAAM,KAAuB,UAAU;IAMzE,oBAAoB;;IAGpB,mBAAmB;;IAGnB,kBAAkB;;IAGlB,qCAAqC;;IAGrC,qCAAqC;;IAKrC,kCAAkC;aACzB,UAAU,KAAK,UAAU,KAAG,UAAU;IAE/C,uCAAuC;aAC9B,UAAU,KAAK,UAAU,KAAG,UAAU;IAE/C,uCAAuC;aAC9B,UAAU,KAAK,UAAU,KAAG,UAAU;IAE/C,qCAAqC;aAC5B,UAAU,KAAK,UAAU,KAAG,UAAU;IAE/C,kCAAkC;aACzB,UAAU,KAAG,UAAU;IAIhC,0CAA0C;cAChC,UAAU,KAAG,UAAU;IAEjC,6CAA6C;aACpC,UAAU,KAAG,UAAU;IAEhC,oCAAoC;eACzB,UAAU,KAAG,UAAU;IAElC,sCAAsC;cAC5B,UAAU,KAAG,UAAU;IAEjC,iCAAiC;eACtB,UAAU,KAAG,UAAU;IAElC,yCAAyC;aAChC,UAAU,KAAK,UAAU,KAAG,UAAU;IAE/C,yCAAyC;aAChC,UAAU,KAAK,UAAU,KAAG,UAAU;IAI/C,iDAAiD;YACzC,UAAU,KAAK,UAAU,KAAG,OAAO;IAE3C,yCAAyC;YACjC,UAAU,KAAK,UAAU,KAAG,OAAO;IAE3C,qDAAqD;aAC5C,UAAU,KAAK,UAAU,KAAG,OAAO;IAE5C,4CAA4C;YACpC,UAAU,KAAK,UAAU,KAAG,OAAO;IAE3C,wDAAwD;aAC/C,UAAU,KAAK,UAAU,KAAG,OAAO;IAI5C;;;;;OAKG;cACO,UAAU,KAAK,UAAU,KAAK,UAAU,KAAG,UAAU;IAI/D,wCAAwC;mBAE/B,UAAU,OACZ,UAAU,OACV,UAAU,KACd,UAAU;IAMb;;;OAGG;aACM,UAAU,KAAG,UAAU;
|
|
1
|
+
{"version":3,"file":"FixedMath.d.ts","sourceRoot":"","sources":["../src/FixedMath.ts"],"names":[],"mappings":"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"}
|
package/dist/FixedMath.js
CHANGED
|
@@ -156,16 +156,15 @@ export const FP = {
|
|
|
156
156
|
* Note: Input should be in radians
|
|
157
157
|
*/
|
|
158
158
|
Sin: (x) => {
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
normalized = normalized.add(twoPi);
|
|
159
|
+
const normalized = normalizeAngleRad(x);
|
|
160
|
+
if (FP.Eq(normalized, FP._0))
|
|
161
|
+
return FP._0;
|
|
162
|
+
if (FP.Eq(normalized, FP.PiOver2))
|
|
163
|
+
return FP._1;
|
|
164
|
+
if (FP.Eq(normalized, FP.Neg(FP.PiOver2)))
|
|
165
|
+
return FP.Neg(FP._1);
|
|
166
|
+
if (FP.Eq(normalized, FP.Pi) || FP.Eq(normalized, FP.Neg(FP.Pi))) {
|
|
167
|
+
return FP._0;
|
|
169
168
|
}
|
|
170
169
|
// Taylor series: sin(x) ≈ x - x³/3! + x⁵/5! - x⁷/7!
|
|
171
170
|
const x2 = normalized.mul(normalized);
|
|
@@ -182,8 +181,17 @@ export const FP = {
|
|
|
182
181
|
* Note: Input should be in radians
|
|
183
182
|
*/
|
|
184
183
|
Cos: (x) => {
|
|
184
|
+
const normalized = normalizeAngleRad(x);
|
|
185
|
+
if (FP.Eq(normalized, FP._0))
|
|
186
|
+
return FP._1;
|
|
187
|
+
if (FP.Eq(normalized, FP.PiOver2) || FP.Eq(normalized, FP.Neg(FP.PiOver2))) {
|
|
188
|
+
return FP._0;
|
|
189
|
+
}
|
|
190
|
+
if (FP.Eq(normalized, FP.Pi) || FP.Eq(normalized, FP.Neg(FP.Pi))) {
|
|
191
|
+
return FP.Neg(FP._1);
|
|
192
|
+
}
|
|
185
193
|
// cos(x) = sin(x + PI/2)
|
|
186
|
-
return FP.Sin(
|
|
194
|
+
return FP.Sin(normalized.add(FP.PiOver2));
|
|
187
195
|
},
|
|
188
196
|
/**
|
|
189
197
|
* Approximate atan2 (deterministic)
|
|
@@ -227,7 +235,47 @@ export const FP = {
|
|
|
227
235
|
}
|
|
228
236
|
return angle;
|
|
229
237
|
},
|
|
238
|
+
/**
|
|
239
|
+
* Arccosine via the atan2 identity: acos(x) = atan2(sqrt(1 - x*x), x).
|
|
240
|
+
* Input is clamped to [-1, 1] to avoid NaN from rounding error.
|
|
241
|
+
* Returns angle in radians within [0, PI].
|
|
242
|
+
*/
|
|
243
|
+
Acos: (x) => {
|
|
244
|
+
const clamped = FP.Clamp(x, FP.FromFloat(-1), FP._1);
|
|
245
|
+
const sinVal = FP.Sqrt(FP.Sub(FP._1, FP.Mul(clamped, clamped)));
|
|
246
|
+
return FP.Atan2(sinVal, clamped);
|
|
247
|
+
},
|
|
230
248
|
};
|
|
249
|
+
/** Normalize radians to [-PI, PI] for deterministic trig. */
|
|
250
|
+
function normalizeAngleRad(x) {
|
|
251
|
+
const twoPi = FP.Pi2;
|
|
252
|
+
const pi = FP.Pi;
|
|
253
|
+
let normalized = x;
|
|
254
|
+
while (normalized.gt(pi)) {
|
|
255
|
+
normalized = normalized.sub(twoPi);
|
|
256
|
+
}
|
|
257
|
+
while (normalized.lt(pi.neg())) {
|
|
258
|
+
normalized = normalized.add(twoPi);
|
|
259
|
+
}
|
|
260
|
+
return normalized;
|
|
261
|
+
}
|
|
262
|
+
/** Snap yaw values that are within epsilon of a cardinal angle. */
|
|
263
|
+
function snapYawToCardinal(yaw) {
|
|
264
|
+
const eps = FP.FromFloat(0.002);
|
|
265
|
+
const cardinals = [
|
|
266
|
+
FP._0,
|
|
267
|
+
FP.PiOver2,
|
|
268
|
+
FP.Neg(FP.PiOver2),
|
|
269
|
+
FP.Pi,
|
|
270
|
+
FP.Neg(FP.Pi),
|
|
271
|
+
];
|
|
272
|
+
for (const cardinal of cardinals) {
|
|
273
|
+
if (FP.Lte(yaw.sub(cardinal).abs(), eps)) {
|
|
274
|
+
return cardinal;
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
return yaw;
|
|
278
|
+
}
|
|
231
279
|
/**
|
|
232
280
|
* FPVector2 - Fixed-point 2D vector utilities (Unity/Quantum style)
|
|
233
281
|
*/
|
|
@@ -417,4 +465,304 @@ export const FPVector3 = {
|
|
|
417
465
|
z: v.z.toDecimal(),
|
|
418
466
|
}),
|
|
419
467
|
};
|
|
468
|
+
/**
|
|
469
|
+
* FPQuaternion - Deterministic fixed-point quaternion utilities (Unity/Quantum style).
|
|
470
|
+
*
|
|
471
|
+
* All rotations are represented as unit quaternions. Conversions use the XYZ
|
|
472
|
+
* Euler order (matching Unity's Transform), with all intermediate math kept in
|
|
473
|
+
* FixedPoint for lockstep determinism.
|
|
474
|
+
*/
|
|
475
|
+
export const FPQuaternion = {
|
|
476
|
+
// ============ Creation ============
|
|
477
|
+
/** Identity rotation (no rotation): { 0, 0, 0, 1 } */
|
|
478
|
+
Identity: () => ({ x: FP._0, y: FP._0, z: FP._0, w: FP._1 }),
|
|
479
|
+
/** Create a quaternion from FixedPoint components */
|
|
480
|
+
Create: (x, y, z, w) => ({ x, y, z, w }),
|
|
481
|
+
/** Create a quaternion from float components */
|
|
482
|
+
FromFloat: (x, y, z, w) => ({
|
|
483
|
+
x: FP.FromFloat(x),
|
|
484
|
+
y: FP.FromFloat(y),
|
|
485
|
+
z: FP.FromFloat(z),
|
|
486
|
+
w: FP.FromFloat(w),
|
|
487
|
+
}),
|
|
488
|
+
// ============ Rotation constructors ============
|
|
489
|
+
/**
|
|
490
|
+
* Build a yaw-only rotation (rotation about the Y axis).
|
|
491
|
+
* Cardinal angles use exact quaternion components; other angles use half-angle
|
|
492
|
+
* Sin/Cos (with exact trig at PI/2 half-angle for 180° yaw).
|
|
493
|
+
*/
|
|
494
|
+
FromYaw: (yaw) => {
|
|
495
|
+
const snapped = snapYawToCardinal(normalizeAngleRad(yaw));
|
|
496
|
+
if (FP.Eq(snapped, FP._0)) {
|
|
497
|
+
return FPQuaternion.Identity();
|
|
498
|
+
}
|
|
499
|
+
if (FP.Eq(snapped, FP.PiOver2)) {
|
|
500
|
+
return FPQuaternion.LookRotation(FPVector3.Right);
|
|
501
|
+
}
|
|
502
|
+
if (FP.Eq(snapped, FP.Neg(FP.PiOver2))) {
|
|
503
|
+
return FPQuaternion.LookRotation(FPVector3.Create(FP.Neg(FP._1), FP._0, FP._0));
|
|
504
|
+
}
|
|
505
|
+
if (FP.Eq(snapped, FP.Pi) || FP.Eq(snapped, FP.Neg(FP.Pi))) {
|
|
506
|
+
return { x: FP._0, y: FP._1, z: FP._0, w: FP._0 };
|
|
507
|
+
}
|
|
508
|
+
const half = FP.Mul(snapped, FP.FromFloat(0.5));
|
|
509
|
+
return {
|
|
510
|
+
x: FP._0,
|
|
511
|
+
y: FP.Sin(half),
|
|
512
|
+
z: FP._0,
|
|
513
|
+
w: FP.Cos(half),
|
|
514
|
+
};
|
|
515
|
+
},
|
|
516
|
+
/**
|
|
517
|
+
* Build a rotation of `angle` radians around `axis`.
|
|
518
|
+
* `axis` is assumed to be unit length (caller's responsibility).
|
|
519
|
+
*/
|
|
520
|
+
FromAxisAngle: (axis, angle) => {
|
|
521
|
+
if (FP.Eq(axis.x, FP._0) &&
|
|
522
|
+
FP.Eq(axis.z, FP._0) &&
|
|
523
|
+
!FP.Eq(axis.y, FP._0)) {
|
|
524
|
+
const yaw = FP.Gt(axis.y, FP._0) ? angle : FP.Neg(angle);
|
|
525
|
+
return FPQuaternion.FromYaw(yaw);
|
|
526
|
+
}
|
|
527
|
+
const half = FP.Mul(angle, FP.FromFloat(0.5));
|
|
528
|
+
const s = FP.Sin(half);
|
|
529
|
+
const c = FP.Cos(half);
|
|
530
|
+
return {
|
|
531
|
+
x: FP.Mul(axis.x, s),
|
|
532
|
+
y: FP.Mul(axis.y, s),
|
|
533
|
+
z: FP.Mul(axis.z, s),
|
|
534
|
+
w: c,
|
|
535
|
+
};
|
|
536
|
+
},
|
|
537
|
+
/**
|
|
538
|
+
* Build a rotation that aligns the +Z axis with `forwardDir`, using `upDir`
|
|
539
|
+
* (default FPVector3.Up) as the reference up direction.
|
|
540
|
+
*/
|
|
541
|
+
LookRotation: (forwardDir, upDir = FPVector3.Up) => {
|
|
542
|
+
const forward = FPVector3.Normalize(forwardDir);
|
|
543
|
+
// Degenerate forward (zero-length): Normalize yields the zero vector, so no
|
|
544
|
+
// orthonormal basis exists. Fall back to a well-defined unit quaternion.
|
|
545
|
+
if (FP.Eq(FPVector3.SqrMagnitude(forward), FP._0)) {
|
|
546
|
+
return FPQuaternion.Identity();
|
|
547
|
+
}
|
|
548
|
+
let rightRaw = FPVector3.Cross(upDir, forward);
|
|
549
|
+
// up parallel to forward => cross product is ~zero. Retry with an alternate
|
|
550
|
+
// reference up axis guaranteed not to be parallel to a unit forward.
|
|
551
|
+
if (FP.Eq(FPVector3.SqrMagnitude(rightRaw), FP._0)) {
|
|
552
|
+
rightRaw = FPVector3.Cross(FPVector3.Forward, forward);
|
|
553
|
+
if (FP.Eq(FPVector3.SqrMagnitude(rightRaw), FP._0)) {
|
|
554
|
+
rightRaw = FPVector3.Cross(FPVector3.Right, forward);
|
|
555
|
+
}
|
|
556
|
+
if (FP.Eq(FPVector3.SqrMagnitude(rightRaw), FP._0)) {
|
|
557
|
+
return FPQuaternion.Identity();
|
|
558
|
+
}
|
|
559
|
+
}
|
|
560
|
+
const right = FPVector3.Normalize(rightRaw);
|
|
561
|
+
const up = FPVector3.Cross(forward, right);
|
|
562
|
+
// Rotation matrix columns: right (m*0), up (m*1), forward (m*2)
|
|
563
|
+
const m00 = right.x;
|
|
564
|
+
const m10 = right.y;
|
|
565
|
+
const m20 = right.z;
|
|
566
|
+
const m01 = up.x;
|
|
567
|
+
const m11 = up.y;
|
|
568
|
+
const m21 = up.z;
|
|
569
|
+
const m02 = forward.x;
|
|
570
|
+
const m12 = forward.y;
|
|
571
|
+
const m22 = forward.z;
|
|
572
|
+
const quarter = FP.FromFloat(0.25);
|
|
573
|
+
const trace = FP.Add(FP.Add(m00, m11), m22);
|
|
574
|
+
if (FP.Gt(trace, FP._0)) {
|
|
575
|
+
const s = FP.Mul(FP.Sqrt(FP.Add(trace, FP._1)), FP.FromInt(2));
|
|
576
|
+
return {
|
|
577
|
+
w: FP.Mul(quarter, s),
|
|
578
|
+
x: FP.Div(FP.Sub(m21, m12), s),
|
|
579
|
+
y: FP.Div(FP.Sub(m02, m20), s),
|
|
580
|
+
z: FP.Div(FP.Sub(m10, m01), s),
|
|
581
|
+
};
|
|
582
|
+
}
|
|
583
|
+
if (FP.Gt(m00, m11) && FP.Gt(m00, m22)) {
|
|
584
|
+
const s = FP.Mul(FP.Sqrt(FP.Add(FP.Sub(FP.Sub(FP._1, m11), m22), m00)), FP.FromInt(2));
|
|
585
|
+
return {
|
|
586
|
+
w: FP.Div(FP.Sub(m21, m12), s),
|
|
587
|
+
x: FP.Mul(quarter, s),
|
|
588
|
+
y: FP.Div(FP.Add(m01, m10), s),
|
|
589
|
+
z: FP.Div(FP.Add(m02, m20), s),
|
|
590
|
+
};
|
|
591
|
+
}
|
|
592
|
+
if (FP.Gt(m11, m22)) {
|
|
593
|
+
const s = FP.Mul(FP.Sqrt(FP.Add(FP.Sub(FP.Sub(FP._1, m00), m22), m11)), FP.FromInt(2));
|
|
594
|
+
return {
|
|
595
|
+
w: FP.Div(FP.Sub(m02, m20), s),
|
|
596
|
+
x: FP.Div(FP.Add(m01, m10), s),
|
|
597
|
+
y: FP.Mul(quarter, s),
|
|
598
|
+
z: FP.Div(FP.Add(m12, m21), s),
|
|
599
|
+
};
|
|
600
|
+
}
|
|
601
|
+
const s = FP.Mul(FP.Sqrt(FP.Add(FP.Sub(FP.Sub(FP._1, m00), m11), m22)), FP.FromInt(2));
|
|
602
|
+
return {
|
|
603
|
+
w: FP.Div(FP.Sub(m10, m01), s),
|
|
604
|
+
x: FP.Div(FP.Add(m02, m20), s),
|
|
605
|
+
y: FP.Div(FP.Add(m12, m21), s),
|
|
606
|
+
z: FP.Mul(quarter, s),
|
|
607
|
+
};
|
|
608
|
+
},
|
|
609
|
+
/**
|
|
610
|
+
* Build a quaternion from Euler angles (radians) applied in XYZ order.
|
|
611
|
+
*/
|
|
612
|
+
FromEulerXYZ: (euler) => {
|
|
613
|
+
if (FP.Eq(euler.x, FP._0) && FP.Eq(euler.z, FP._0)) {
|
|
614
|
+
return FPQuaternion.FromYaw(euler.y);
|
|
615
|
+
}
|
|
616
|
+
const half = FP.FromFloat(0.5);
|
|
617
|
+
const c1 = FP.Cos(FP.Mul(euler.x, half));
|
|
618
|
+
const s1 = FP.Sin(FP.Mul(euler.x, half));
|
|
619
|
+
const c2 = FP.Cos(FP.Mul(euler.y, half));
|
|
620
|
+
const s2 = FP.Sin(FP.Mul(euler.y, half));
|
|
621
|
+
const c3 = FP.Cos(FP.Mul(euler.z, half));
|
|
622
|
+
const s3 = FP.Sin(FP.Mul(euler.z, half));
|
|
623
|
+
return {
|
|
624
|
+
x: FP.Add(FP.Mul(FP.Mul(s1, c2), c3), FP.Mul(FP.Mul(c1, s2), s3)),
|
|
625
|
+
y: FP.Sub(FP.Mul(FP.Mul(c1, s2), c3), FP.Mul(FP.Mul(s1, c2), s3)),
|
|
626
|
+
z: FP.Add(FP.Mul(FP.Mul(c1, c2), s3), FP.Mul(FP.Mul(s1, s2), c3)),
|
|
627
|
+
w: FP.Sub(FP.Mul(FP.Mul(c1, c2), c3), FP.Mul(FP.Mul(s1, s2), s3)),
|
|
628
|
+
};
|
|
629
|
+
},
|
|
630
|
+
/**
|
|
631
|
+
* Extract Euler angles (radians, XYZ order) from a quaternion.
|
|
632
|
+
* The pitch sine is clamped to [-1, 1] to avoid NaN at the gimbal poles.
|
|
633
|
+
*/
|
|
634
|
+
ToEulerXYZ: (q) => {
|
|
635
|
+
const two = FP.FromInt(2);
|
|
636
|
+
// The matrix-extraction formulas below assume a unit quaternion.
|
|
637
|
+
const { x, y, z, w } = FPQuaternion.Normalize(q);
|
|
638
|
+
const m13 = FP.Mul(two, FP.Add(FP.Mul(x, z), FP.Mul(w, y)));
|
|
639
|
+
const sinY = FP.Clamp(m13, FP.FromFloat(-1), FP._1);
|
|
640
|
+
const cosY = FP.Sqrt(FP.Sub(FP._1, FP.Mul(sinY, sinY)));
|
|
641
|
+
const yAngle = FP.Atan2(sinY, cosY);
|
|
642
|
+
// Gimbal-lock epsilon: when cos(pitch) is this small the X/Z extraction
|
|
643
|
+
// denominators collapse to ~0, so fall back to the stable lock branch.
|
|
644
|
+
const threshold = FP.FromFloat(0.01);
|
|
645
|
+
let xAngle;
|
|
646
|
+
let zAngle;
|
|
647
|
+
if (FP.Gt(cosY, threshold)) {
|
|
648
|
+
const m23 = FP.Mul(two, FP.Sub(FP.Mul(y, z), FP.Mul(w, x)));
|
|
649
|
+
const m33 = FP.Sub(FP._1, FP.Mul(two, FP.Add(FP.Mul(x, x), FP.Mul(y, y))));
|
|
650
|
+
const m12 = FP.Mul(two, FP.Sub(FP.Mul(x, y), FP.Mul(w, z)));
|
|
651
|
+
const m11 = FP.Sub(FP._1, FP.Mul(two, FP.Add(FP.Mul(y, y), FP.Mul(z, z))));
|
|
652
|
+
xAngle = FP.Atan2(FP.Neg(m23), m33);
|
|
653
|
+
zAngle = FP.Atan2(FP.Neg(m12), m11);
|
|
654
|
+
}
|
|
655
|
+
else {
|
|
656
|
+
// Gimbal lock: fix roll at zero and derive pitch from the remaining terms.
|
|
657
|
+
const m32 = FP.Mul(two, FP.Add(FP.Mul(y, z), FP.Mul(w, x)));
|
|
658
|
+
const m22 = FP.Sub(FP._1, FP.Mul(two, FP.Add(FP.Mul(x, x), FP.Mul(z, z))));
|
|
659
|
+
xAngle = FP.Atan2(m32, m22);
|
|
660
|
+
zAngle = FP._0;
|
|
661
|
+
}
|
|
662
|
+
return { x: xAngle, y: yAngle, z: zAngle };
|
|
663
|
+
},
|
|
664
|
+
// ============ Operations ============
|
|
665
|
+
/** Hamilton product a * b (applies rotation b first, then a). */
|
|
666
|
+
Mul: (a, b) => ({
|
|
667
|
+
x: FP.Add(FP.Add(FP.Mul(a.w, b.x), FP.Mul(a.x, b.w)), FP.Sub(FP.Mul(a.y, b.z), FP.Mul(a.z, b.y))),
|
|
668
|
+
y: FP.Add(FP.Sub(FP.Mul(a.w, b.y), FP.Mul(a.x, b.z)), FP.Add(FP.Mul(a.y, b.w), FP.Mul(a.z, b.x))),
|
|
669
|
+
z: FP.Add(FP.Add(FP.Mul(a.w, b.z), FP.Mul(a.x, b.y)), FP.Sub(FP.Mul(a.z, b.w), FP.Mul(a.y, b.x))),
|
|
670
|
+
w: FP.Sub(FP.Sub(FP.Mul(a.w, b.w), FP.Mul(a.x, b.x)), FP.Add(FP.Mul(a.y, b.y), FP.Mul(a.z, b.z))),
|
|
671
|
+
}),
|
|
672
|
+
/** Dot product of two quaternions. */
|
|
673
|
+
Dot: (a, b) => FP.Add(FP.Add(FP.Mul(a.x, b.x), FP.Mul(a.y, b.y)), FP.Add(FP.Mul(a.z, b.z), FP.Mul(a.w, b.w))),
|
|
674
|
+
/** Magnitude (length) of a quaternion. */
|
|
675
|
+
Magnitude: (q) => FP.Sqrt(FPQuaternion.SqrMagnitude(q)),
|
|
676
|
+
/** Squared magnitude of a quaternion (faster than Magnitude). */
|
|
677
|
+
SqrMagnitude: (q) => FP.Add(FP.Add(FP.Mul(q.x, q.x), FP.Mul(q.y, q.y)), FP.Add(FP.Mul(q.z, q.z), FP.Mul(q.w, q.w))),
|
|
678
|
+
/** Normalize a quaternion. Returns Identity() if magnitude is zero. */
|
|
679
|
+
Normalize: (q) => {
|
|
680
|
+
const mag = FPQuaternion.Magnitude(q);
|
|
681
|
+
if (mag.isZero()) {
|
|
682
|
+
return FPQuaternion.Identity();
|
|
683
|
+
}
|
|
684
|
+
return {
|
|
685
|
+
x: FP.Div(q.x, mag),
|
|
686
|
+
y: FP.Div(q.y, mag),
|
|
687
|
+
z: FP.Div(q.z, mag),
|
|
688
|
+
w: FP.Div(q.w, mag),
|
|
689
|
+
};
|
|
690
|
+
},
|
|
691
|
+
/** Conjugate of a quaternion: { -x, -y, -z, w }. */
|
|
692
|
+
Conjugate: (q) => ({
|
|
693
|
+
x: FP.Neg(q.x),
|
|
694
|
+
y: FP.Neg(q.y),
|
|
695
|
+
z: FP.Neg(q.z),
|
|
696
|
+
w: q.w,
|
|
697
|
+
}),
|
|
698
|
+
/** Inverse of a quaternion: Conjugate(q) / sqrMagnitude. */
|
|
699
|
+
Inverse: (q) => {
|
|
700
|
+
const sqrMag = FPQuaternion.SqrMagnitude(q);
|
|
701
|
+
if (sqrMag.isZero()) {
|
|
702
|
+
return FPQuaternion.Identity();
|
|
703
|
+
}
|
|
704
|
+
const conj = FPQuaternion.Conjugate(q);
|
|
705
|
+
return {
|
|
706
|
+
x: FP.Div(conj.x, sqrMag),
|
|
707
|
+
y: FP.Div(conj.y, sqrMag),
|
|
708
|
+
z: FP.Div(conj.z, sqrMag),
|
|
709
|
+
w: FP.Div(conj.w, sqrMag),
|
|
710
|
+
};
|
|
711
|
+
},
|
|
712
|
+
// ============ Interpolation ============
|
|
713
|
+
/**
|
|
714
|
+
* Spherical linear interpolation between two rotations.
|
|
715
|
+
* Takes the shortest arc and falls back to normalized LERP for near-parallel
|
|
716
|
+
* inputs to avoid division by a near-zero sine.
|
|
717
|
+
*/
|
|
718
|
+
Slerp: (a, b, t) => {
|
|
719
|
+
let dot = FPQuaternion.Dot(a, b);
|
|
720
|
+
let bx = b.x;
|
|
721
|
+
let by = b.y;
|
|
722
|
+
let bz = b.z;
|
|
723
|
+
let bw = b.w;
|
|
724
|
+
// Take the shortest path by flipping b when the dot product is negative.
|
|
725
|
+
if (FP.Lt(dot, FP._0)) {
|
|
726
|
+
bx = FP.Neg(bx);
|
|
727
|
+
by = FP.Neg(by);
|
|
728
|
+
bz = FP.Neg(bz);
|
|
729
|
+
bw = FP.Neg(bw);
|
|
730
|
+
dot = FP.Neg(dot);
|
|
731
|
+
}
|
|
732
|
+
// Near-parallel: normalized LERP avoids precision loss near sin(0).
|
|
733
|
+
if (FP.Gte(dot, FP.FromFloat(0.9995))) {
|
|
734
|
+
return FPQuaternion.Normalize({
|
|
735
|
+
x: FP.Add(a.x, FP.Mul(t, FP.Sub(bx, a.x))),
|
|
736
|
+
y: FP.Add(a.y, FP.Mul(t, FP.Sub(by, a.y))),
|
|
737
|
+
z: FP.Add(a.z, FP.Mul(t, FP.Sub(bz, a.z))),
|
|
738
|
+
w: FP.Add(a.w, FP.Mul(t, FP.Sub(bw, a.w))),
|
|
739
|
+
});
|
|
740
|
+
}
|
|
741
|
+
const theta0 = FP.Acos(dot);
|
|
742
|
+
const theta = FP.Mul(theta0, t);
|
|
743
|
+
const sinTheta0 = FP.Sin(theta0);
|
|
744
|
+
const s0 = FP.Div(FP.Sin(FP.Sub(theta0, theta)), sinTheta0);
|
|
745
|
+
const s1 = FP.Div(FP.Sin(theta), sinTheta0);
|
|
746
|
+
return {
|
|
747
|
+
x: FP.Add(FP.Mul(s0, a.x), FP.Mul(s1, bx)),
|
|
748
|
+
y: FP.Add(FP.Mul(s0, a.y), FP.Mul(s1, by)),
|
|
749
|
+
z: FP.Add(FP.Mul(s0, a.z), FP.Mul(s1, bz)),
|
|
750
|
+
w: FP.Add(FP.Mul(s0, a.w), FP.Mul(s1, bw)),
|
|
751
|
+
};
|
|
752
|
+
},
|
|
753
|
+
/** Rotate a vector by a quaternion: q * [v, 0] * Conjugate(q). */
|
|
754
|
+
RotateVector: (q, v) => {
|
|
755
|
+
const vQuat = { x: v.x, y: v.y, z: v.z, w: FP._0 };
|
|
756
|
+
const result = FPQuaternion.Mul(FPQuaternion.Mul(q, vQuat), FPQuaternion.Conjugate(q));
|
|
757
|
+
return { x: result.x, y: result.y, z: result.z };
|
|
758
|
+
},
|
|
759
|
+
// ============ Conversion ============
|
|
760
|
+
/** Convert to a plain object with float values (for display/serialization). */
|
|
761
|
+
ToFloat: (q) => ({
|
|
762
|
+
x: q.x.toDecimal(),
|
|
763
|
+
y: q.y.toDecimal(),
|
|
764
|
+
z: q.z.toDecimal(),
|
|
765
|
+
w: q.w.toDecimal(),
|
|
766
|
+
}),
|
|
767
|
+
};
|
|
420
768
|
//# sourceMappingURL=FixedMath.js.map
|
package/dist/FixedMath.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FixedMath.js","sourceRoot":"","sources":["../src/FixedMath.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"FixedMath.js","sourceRoot":"","sources":["../src/FixedMath.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -6,6 +6,6 @@
|
|
|
6
6
|
*
|
|
7
7
|
* @packageDocumentation
|
|
8
8
|
*/
|
|
9
|
-
export { FixedPoint, FP, FPVector2, FPVector3, } from './FixedMath.js';
|
|
10
|
-
export type { FPVector2 as FPVector2Interface, FPVector3 as FPVector3Interface, } from './FixedMath.js';
|
|
9
|
+
export { FixedPoint, FP, FPVector2, FPVector3, FPQuaternion, } from './FixedMath.js';
|
|
10
|
+
export type { FPVector2 as FPVector2Interface, FPVector3 as FPVector3Interface, FPQuaternion as FPQuaternionInterface, } from './FixedMath.js';
|
|
11
11
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAEL,UAAU,EAEV,EAAE,EACF,SAAS,EACT,SAAS,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAEL,UAAU,EAEV,EAAE,EACF,SAAS,EACT,SAAS,EACT,YAAY,GACb,MAAM,gBAAgB,CAAC;AAExB,YAAY,EAEV,SAAS,IAAI,kBAAkB,EAE/B,SAAS,IAAI,kBAAkB,EAE/B,YAAY,IAAI,qBAAqB,GACtC,MAAM,gBAAgB,CAAC"}
|
package/dist/index.js
CHANGED
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO;AACL,aAAa;AACb,UAAU;AACV,oCAAoC;AACpC,EAAE,EACF,SAAS,EACT,SAAS,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO;AACL,aAAa;AACb,UAAU;AACV,oCAAoC;AACpC,EAAE,EACF,SAAS,EACT,SAAS,EACT,YAAY,GACb,MAAM,gBAAgB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@phalanx-engine/math",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.2",
|
|
4
4
|
"description": "Deterministic fixed-point math library for Phalanx Engine - ensures identical calculations across all platforms",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"types": "./dist/index.d.ts",
|