@sachitv/safe-math-ts 0.1.0 → 0.2.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/LICENSE +21 -0
- package/README.md +318 -0
- package/esm/_dnt.test_shims.d.ts.map +1 -0
- package/esm/examples/attitude_interpolation_and_cache.test.d.ts.map +1 -0
- package/esm/examples/camera_projection.test.d.ts.map +1 -0
- package/esm/examples/cookbook_constant_accel_loop.test.d.ts.map +1 -0
- package/esm/examples/distinct_frame_guard.test.d.ts.map +1 -0
- package/esm/examples/end_to_end_projection_chain.test.d.ts.map +1 -0
- package/esm/examples/mat4_pose_decomposition.test.d.ts.map +1 -0
- package/esm/examples/normal_matrix_failure_recovery.test.d.ts.map +1 -0
- package/esm/examples/normal_matrix_perpendicularity.test.d.ts.map +1 -0
- package/esm/examples/physics_units_kinematics.test.d.ts.map +1 -0
- package/esm/examples/projection_edge_behavior.test.d.ts.map +1 -0
- package/esm/examples/quat_from_rotation_matrix.test.d.ts.map +1 -0
- package/esm/examples/quaternion_nlerp_vs_slerp.test.d.ts.map +1 -0
- package/esm/examples/rendering_normals_reflection.test.d.ts.map +1 -0
- package/esm/examples/robotics_pose_chain.test.d.ts.map +1 -0
- package/esm/examples/safe_api_failure_modes.test.d.ts.map +1 -0
- package/esm/examples/safe_vs_unsafe_apis.test.d.ts.map +1 -0
- package/esm/examples/sensor_extrinsics_chain.test.d.ts.map +1 -0
- package/esm/examples/transform_order_matters.test.d.ts.map +1 -0
- package/esm/examples/transform_point_vs_direction.test.d.ts.map +1 -0
- package/esm/examples/transform_round_trip.test.d.ts.map +1 -0
- package/esm/src/geometry3d/matrix4.d.ts +6 -2
- package/esm/src/geometry3d/matrix4.d.ts.map +1 -1
- package/esm/src/geometry3d/matrix4.js +21 -3
- package/esm/src/geometry3d/mod.d.ts +1 -1
- package/esm/src/geometry3d/mod.d.ts.map +1 -1
- package/esm/src/geometry3d/mod.js +1 -1
- package/esm/src/geometry3d/quaternion.d.ts +43 -2
- package/esm/src/geometry3d/quaternion.d.ts.map +1 -1
- package/esm/src/geometry3d/quaternion.js +121 -1
- package/esm/src/geometry3d/types.d.ts +35 -11
- package/esm/src/geometry3d/types.d.ts.map +1 -1
- package/esm/src/units.d.ts +43 -27
- package/esm/src/units.d.ts.map +1 -1
- package/esm/tests/assert.d.ts.map +1 -0
- package/esm/tests/matrix4.test.d.ts.map +1 -0
- package/esm/tests/quaternion.test.d.ts.map +1 -0
- package/esm/tests/type_safety.test.d.ts.map +1 -0
- package/esm/tests/units.test.d.ts.map +1 -0
- package/esm/tests/vector3.test.d.ts.map +1 -0
- package/esm/vitest-deno-shim.mjs +3 -0
- package/package.json +15 -6
- package/test_runner.cjs +215 -0
- package/vitest.browser.config.ts +24 -0
- package/vitest.cloudflare.config.ts +21 -0
- package/wrangler.toml +2 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Sachit Vithaldas
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,318 @@
|
|
|
1
|
+
# safe-math-ts
|
|
2
|
+
|
|
3
|
+
[](https://jsr.io/@sachitv/safe-math-ts)
|
|
4
|
+
[](https://www.npmjs.com/package/@sachitv/safe-math-ts)
|
|
5
|
+
[](https://github.com/sachitv/safe-math-ts/actions/workflows/ci.yml?query=branch%3Amain+event%3Apush)
|
|
6
|
+
[](https://github.com/sachitv/safe-math-ts/actions/workflows/compat.yml?query=branch%3Amain+event%3Apush)
|
|
7
|
+
[](https://github.com/sachitv/safe-math-ts/actions/workflows/compat.yml?query=branch%3Amain+event%3Apush)
|
|
8
|
+
[](https://github.com/sachitv/safe-math-ts/actions/workflows/compat.yml?query=branch%3Amain+event%3Apush)
|
|
9
|
+
[](https://github.com/sachitv/safe-math-ts/actions/workflows/compat.yml?query=branch%3Amain+event%3Apush)
|
|
10
|
+
[](https://github.com/sachitv/safe-math-ts/actions/workflows/compat.yml?query=branch%3Amain+event%3Apush)
|
|
11
|
+
[](LICENSE)
|
|
12
|
+
|
|
13
|
+
A zero-dependency Deno/TypeScript 3D math library with strict compile-time
|
|
14
|
+
safety for:
|
|
15
|
+
|
|
16
|
+
- Units
|
|
17
|
+
- Frames of reference
|
|
18
|
+
- Transform composition
|
|
19
|
+
|
|
20
|
+
The library is functional and exports **types + functions only** (no classes).
|
|
21
|
+
|
|
22
|
+
## Strictness model
|
|
23
|
+
|
|
24
|
+
This library intentionally requires explicit tags when creating values:
|
|
25
|
+
|
|
26
|
+
- You must create units with `unit('m')`, `unit('s')`, etc.
|
|
27
|
+
- You must create frames with `frame('world')`, `frame('body')`, etc.
|
|
28
|
+
- You must pass those tags into constructors like `quantity`, `point3`,
|
|
29
|
+
`delta3`, `dir3`, `quat`, and `mat4`.
|
|
30
|
+
|
|
31
|
+
This prevents accidental creation of unframed or unitless math objects.
|
|
32
|
+
|
|
33
|
+
## Install / import
|
|
34
|
+
|
|
35
|
+
**Deno (JSR)**
|
|
36
|
+
|
|
37
|
+
```sh
|
|
38
|
+
deno add jsr:@sachitv/safe-math-ts
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
```ts
|
|
42
|
+
import { delta3, frame, point3, unit } from '@sachitv/safe-math-ts';
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
**Node.js / Bun / Cloudflare Workers (npm)**
|
|
46
|
+
|
|
47
|
+
```sh
|
|
48
|
+
npm install @sachitv/safe-math-ts
|
|
49
|
+
# or
|
|
50
|
+
bun add @sachitv/safe-math-ts
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
```ts
|
|
54
|
+
import { delta3, frame, point3, unit } from '@sachitv/safe-math-ts';
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
**Direct import (Deno, no install step)**
|
|
58
|
+
|
|
59
|
+
```ts
|
|
60
|
+
import {
|
|
61
|
+
delta3,
|
|
62
|
+
dimensionlessUnit,
|
|
63
|
+
dir3,
|
|
64
|
+
frame,
|
|
65
|
+
mat4FromRigidTransform,
|
|
66
|
+
point3,
|
|
67
|
+
quantity,
|
|
68
|
+
quat,
|
|
69
|
+
transformPoint3,
|
|
70
|
+
unit,
|
|
71
|
+
} from './mod.ts';
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
## Quick start
|
|
75
|
+
|
|
76
|
+
```ts
|
|
77
|
+
import {
|
|
78
|
+
delta3,
|
|
79
|
+
dimensionlessUnit,
|
|
80
|
+
dir3,
|
|
81
|
+
frame,
|
|
82
|
+
mat4FromRigidTransform,
|
|
83
|
+
point3,
|
|
84
|
+
quantity,
|
|
85
|
+
quat,
|
|
86
|
+
transformPoint3,
|
|
87
|
+
unit,
|
|
88
|
+
} from './mod.ts';
|
|
89
|
+
|
|
90
|
+
const V = frame('V'); // Source frame
|
|
91
|
+
const L = frame('L'); // Destination frame
|
|
92
|
+
const m = unit('m');
|
|
93
|
+
const none = dimensionlessUnit;
|
|
94
|
+
|
|
95
|
+
const point_V = point3(
|
|
96
|
+
V,
|
|
97
|
+
quantity(m, 1),
|
|
98
|
+
quantity(m, 2),
|
|
99
|
+
quantity(m, 3),
|
|
100
|
+
);
|
|
101
|
+
|
|
102
|
+
const delta_offset_L = delta3(
|
|
103
|
+
L,
|
|
104
|
+
quantity(m, 10),
|
|
105
|
+
quantity(m, 0),
|
|
106
|
+
quantity(m, 0),
|
|
107
|
+
);
|
|
108
|
+
|
|
109
|
+
const dir_axisz_V = dir3(
|
|
110
|
+
V,
|
|
111
|
+
quantity(none, 0),
|
|
112
|
+
quantity(none, 0),
|
|
113
|
+
quantity(none, 1),
|
|
114
|
+
);
|
|
115
|
+
|
|
116
|
+
const quat_turn_LV = quat(
|
|
117
|
+
L,
|
|
118
|
+
V,
|
|
119
|
+
dir_axisz_V[0] * Math.sin(Math.PI / 4),
|
|
120
|
+
dir_axisz_V[1] * Math.sin(Math.PI / 4),
|
|
121
|
+
dir_axisz_V[2] * Math.sin(Math.PI / 4),
|
|
122
|
+
Math.cos(Math.PI / 4),
|
|
123
|
+
);
|
|
124
|
+
|
|
125
|
+
const pose_LV = mat4FromRigidTransform(
|
|
126
|
+
L,
|
|
127
|
+
V,
|
|
128
|
+
quat_turn_LV,
|
|
129
|
+
delta_offset_L,
|
|
130
|
+
);
|
|
131
|
+
|
|
132
|
+
const point_L = transformPoint3(pose_LV, point_V);
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
## Common usage patterns
|
|
136
|
+
|
|
137
|
+
- Use `point3` for absolute locations in a frame.
|
|
138
|
+
- Use `delta3` for translations/displacements.
|
|
139
|
+
- Use `dir3` for unitless axes and orientation vectors.
|
|
140
|
+
- Compute relative motion with `subPoint3(point_a, point_b)`.
|
|
141
|
+
- Apply rigid transforms to points with `transformPoint3`.
|
|
142
|
+
- Apply linear transforms/rotations to displacements with `transformDirection3`
|
|
143
|
+
or `rotateVec3ByQuat`.
|
|
144
|
+
|
|
145
|
+
## Safe and unsafe APIs
|
|
146
|
+
|
|
147
|
+
- Safe APIs are the default functions (for example `normalizeVec3`, `clamp`,
|
|
148
|
+
`mat4Perspective`, `projectPoint3`).
|
|
149
|
+
- Unsafe APIs end with `Unsafe` (for example `normalizeVec3Unsafe`,
|
|
150
|
+
`clampUnsafe`, `mat4PerspectiveUnsafe`, `projectPoint3Unsafe`).
|
|
151
|
+
- Safe APIs validate inputs and throw on invalid/degenerate cases.
|
|
152
|
+
- Unsafe APIs skip validation and can produce `NaN`/`Infinity` on invalid
|
|
153
|
+
inputs.
|
|
154
|
+
- `matrix.quat()` is a safe helper: it validates that the upper-left 3x3 block
|
|
155
|
+
is a finite orthonormal rotation basis and throws for non-rotation matrices
|
|
156
|
+
(for example non-uniform scale/shear).
|
|
157
|
+
- Recommended pattern:
|
|
158
|
+
1. Validate at system boundaries with safe APIs.
|
|
159
|
+
2. Use unsafe APIs only in hot paths where inputs are already guaranteed.
|
|
160
|
+
|
|
161
|
+
## Naming best practices
|
|
162
|
+
|
|
163
|
+
- Transform and rotation generics always use `<To, From>` order.
|
|
164
|
+
- Transform matrices use `pose_<frame rules>`.
|
|
165
|
+
- Quaternions use `quat_<name>_<frame rules>`.
|
|
166
|
+
- Position vectors use `point_<name>_<frame>` (or `point_<frame>` when no name
|
|
167
|
+
is needed).
|
|
168
|
+
- Direction vectors use `dir_<name>_<frame>` (or `dir_<frame>` when no name is
|
|
169
|
+
needed).
|
|
170
|
+
- Displacement vectors use `delta_<name>_<frame>` (or `delta_<frame>`).
|
|
171
|
+
- Single-letter frame symbols use compact `ToFrom` suffixes: `pose_LV`,
|
|
172
|
+
`quat_turn_LV`, `point_L`, `dir_V`, `delta_V`.
|
|
173
|
+
- Multi-letter frame symbols use one token per frame: `pose_local_vehicle`,
|
|
174
|
+
`quat_turn_local_vehicle`, `point_local`, `dir_vehicle`, `delta_vehicle`.
|
|
175
|
+
- Frame tokens themselves are single words. If a frame name would include
|
|
176
|
+
spaces, smash it into one word (for example `earthcenter`, `vehiclerear`),
|
|
177
|
+
then use names like `pose_earthcenter_vehiclerear` and
|
|
178
|
+
`quat_turn_earthcenter_vehiclerear`.
|
|
179
|
+
- Frame tag variable names themselves can be whatever you prefer (`L`,
|
|
180
|
+
`frame_local`, `localFrame`), but choose frame tokens that keep derived
|
|
181
|
+
variable names readable.
|
|
182
|
+
- This naming convention is for frame-bearing quantities only; it does not apply
|
|
183
|
+
to units (for example, `meter`, `second`, `none` are fine).
|
|
184
|
+
- Prefer short uppercase frame symbols (`L`, `V`, `B`, `W`) in handwritten math
|
|
185
|
+
and derived variable names.
|
|
186
|
+
|
|
187
|
+
Examples:
|
|
188
|
+
|
|
189
|
+
- `pose_LV: Mat4<'L', 'V', 'm'>` maps points in `V` to `L`, so:
|
|
190
|
+
`point_L = transformPoint3(pose_LV, point_V)`.
|
|
191
|
+
- `quat_turn_LV: Quaternion<'L', 'V'>` rotates vectors from `V` into `L`.
|
|
192
|
+
- `delta_local: Delta3<'m', 'local'>` represents a translation/displacement in
|
|
193
|
+
`local`.
|
|
194
|
+
- `pose_local_vehicle: Mat4<'local', 'vehicle', 'm'>` maps points in `vehicle`
|
|
195
|
+
to `local`.
|
|
196
|
+
- `composeMat4(pose_LB, pose_BV)` returns `pose_LV` (chain `L <- B <- V`).
|
|
197
|
+
|
|
198
|
+
## API overview
|
|
199
|
+
|
|
200
|
+
This section documents the important public API and constraints without listing
|
|
201
|
+
every overload.
|
|
202
|
+
|
|
203
|
+
### Core types
|
|
204
|
+
|
|
205
|
+
Units:
|
|
206
|
+
|
|
207
|
+
- `UnitExpr`
|
|
208
|
+
- `Dimensionless`
|
|
209
|
+
- `UnitFromString<Expr>`
|
|
210
|
+
- `UnitTag<Unit>`
|
|
211
|
+
- `Quantity<Unit>`
|
|
212
|
+
- `MulUnit<A, B>`, `DivUnit<A, B>`, `SqrtUnit<U>`
|
|
213
|
+
|
|
214
|
+
Frames and geometry:
|
|
215
|
+
|
|
216
|
+
- `FrameTag<Frame>`
|
|
217
|
+
- `Point3<Unit, Frame>`
|
|
218
|
+
- `Delta3<Unit, Frame>`
|
|
219
|
+
- `Dir3<Frame>`
|
|
220
|
+
- `Quaternion<ToFrame, FromFrame>`
|
|
221
|
+
- `Mat4<ToFrame, FromFrame, TranslationUnit>`
|
|
222
|
+
- `LinearMat4<ToFrame, FromFrame>`
|
|
223
|
+
- `ProjectionMat4<ToFrame, FromFrame, DepthUnit>`
|
|
224
|
+
|
|
225
|
+
### Constructors and tokens
|
|
226
|
+
|
|
227
|
+
```ts
|
|
228
|
+
unit<Expr extends string>(name: string extends Expr ? never : Expr): UnitTag<UnitFromString<Expr>>
|
|
229
|
+
const dimensionlessUnit: UnitTag<Dimensionless>
|
|
230
|
+
frame<Frame extends string>(name: Frame): FrameTag<Frame>
|
|
231
|
+
|
|
232
|
+
quantity<Unit extends UnitExpr>(unitTag: UnitTag<Unit>, value: number): Quantity<Unit>
|
|
233
|
+
dimensionless(value: number): Quantity<Dimensionless>
|
|
234
|
+
valueOf<Unit extends UnitExpr>(value: Quantity<Unit>): number
|
|
235
|
+
```
|
|
236
|
+
|
|
237
|
+
Non-obvious constraints:
|
|
238
|
+
|
|
239
|
+
- `unit(...)` accepts literal/narrow string types only.
|
|
240
|
+
- `sqrt(...)` is compile-time guarded and only allowed for square-rootable
|
|
241
|
+
units.
|
|
242
|
+
|
|
243
|
+
```ts
|
|
244
|
+
sqrt<Unit extends UnitExpr>(
|
|
245
|
+
value: [SqrtUnit<Unit>] extends [never] ? never : Quantity<Unit>,
|
|
246
|
+
): Quantity<SqrtUnit<Unit>>
|
|
247
|
+
```
|
|
248
|
+
|
|
249
|
+
### Scalar unit math
|
|
250
|
+
|
|
251
|
+
- Arithmetic: `add`, `sub`, `neg`, `abs`, `scale`, `mul`, `div`, `sqrt`
|
|
252
|
+
- Bounds: `min`, `max`, `clamp`, `clampUnsafe`
|
|
253
|
+
- Comparisons: `eq`, `approxEq`, `lt`, `lte`, `gt`, `gte`
|
|
254
|
+
- Aggregation: `sum`, `average`
|
|
255
|
+
|
|
256
|
+
### 3D vector and point operations
|
|
257
|
+
|
|
258
|
+
Construction:
|
|
259
|
+
|
|
260
|
+
- `delta3`, `point3`, `dir3`, `zeroVec3`
|
|
261
|
+
|
|
262
|
+
Affine/frame-safe operations:
|
|
263
|
+
|
|
264
|
+
- `addVec3`, `subVec3`, `negVec3`, `scaleVec3`
|
|
265
|
+
- `addPoint3`, `subPoint3Delta3`, `subPoint3`
|
|
266
|
+
|
|
267
|
+
Geometry:
|
|
268
|
+
|
|
269
|
+
- `dotVec3`, `crossVec3`
|
|
270
|
+
- `lengthSquaredVec3`, `lengthVec3`
|
|
271
|
+
- `distanceVec3`, `distancePoint3`
|
|
272
|
+
- `normalizeVec3`, `normalizeVec3Unsafe`
|
|
273
|
+
- `lerpVec3`
|
|
274
|
+
- `projectVec3`, `projectVec3Unsafe`
|
|
275
|
+
- `reflectVec3`, `reflectVec3Unsafe`
|
|
276
|
+
- `angleBetweenVec3`, `angleBetweenVec3Unsafe`
|
|
277
|
+
- `scaleDir3`
|
|
278
|
+
|
|
279
|
+
### Quaternion operations
|
|
280
|
+
|
|
281
|
+
- Construction and identity: `quat`, `quatIdentity`
|
|
282
|
+
- Components: `quatX`, `quatY`, `quatZ`, `quatW`
|
|
283
|
+
- Algebra: `quatConjugate`, `quatNorm`, `quatNormSquared`, `composeQuats`
|
|
284
|
+
- Normalization/inversion: `quatNormalize`, `quatNormalizeUnsafe`,
|
|
285
|
+
`quatInverse`, `quatInverseUnsafe`
|
|
286
|
+
- Rotations: `rotateVec3ByQuat`, `rotateVec3ByQuatUnsafe`
|
|
287
|
+
- Matrix conversion: `quatFromRotationMatrix`, `quatFromRotationMatrixUnsafe`
|
|
288
|
+
- Builders/interpolation: `quatFromAxisAngle`, `quatFromAxisAngleUnsafe`,
|
|
289
|
+
`quatFromEuler`, `quatFromEulerUnsafe`, `quatNlerp`, `quatNlerpUnsafe`,
|
|
290
|
+
`quatSlerp`, `quatSlerpUnsafe`
|
|
291
|
+
|
|
292
|
+
### Matrix operations
|
|
293
|
+
|
|
294
|
+
Construction:
|
|
295
|
+
|
|
296
|
+
- `mat4`, `mat4Unsafe`, `mat4Identity`
|
|
297
|
+
- `mat4FromTranslation`, `mat4FromScale`
|
|
298
|
+
- `mat4FromQuaternion`, `mat4FromQuaternionUnsafe`
|
|
299
|
+
- `mat4FromRigidTransform`
|
|
300
|
+
- `mat4FromTRS`, `mat4FromTRSUnsafe`
|
|
301
|
+
- `createTrsMat4Cache`
|
|
302
|
+
- `mat4Perspective`, `mat4PerspectiveUnsafe`
|
|
303
|
+
- `mat4Ortho`, `mat4OrthoUnsafe`
|
|
304
|
+
- `mat4LookAt`, `mat4LookAtUnsafe`
|
|
305
|
+
|
|
306
|
+
Composition and transforms:
|
|
307
|
+
|
|
308
|
+
- Matrix instance helpers: `matrix.translation()`, `matrix.quat()`
|
|
309
|
+
- `matrix.translation()` reads translation from indices `12/13/14`.
|
|
310
|
+
- `matrix.quat()` extracts rotation and throws if the matrix linear part is
|
|
311
|
+
not a valid rotation basis.
|
|
312
|
+
- `transposeMat4`
|
|
313
|
+
- `composeMat4`
|
|
314
|
+
- `invertRigidMat4`, `invertRigidMat4Unsafe`
|
|
315
|
+
- `normalMatrixFromMat4`, `normalMatrixFromMat4Unsafe`
|
|
316
|
+
- `transformPoint3`
|
|
317
|
+
- `transformDirection3`
|
|
318
|
+
- `projectPoint3`, `projectPoint3Unsafe`
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_dnt.test_shims.d.ts","sourceRoot":"","sources":["../src/_dnt.test_shims.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAKvC,eAAO,MAAM,aAAa;;CAA2C,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"attitude_interpolation_and_cache.test.d.ts","sourceRoot":"","sources":["../../src/examples/attitude_interpolation_and_cache.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"camera_projection.test.d.ts","sourceRoot":"","sources":["../../src/examples/camera_projection.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cookbook_constant_accel_loop.test.d.ts","sourceRoot":"","sources":["../../src/examples/cookbook_constant_accel_loop.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"distinct_frame_guard.test.d.ts","sourceRoot":"","sources":["../../src/examples/distinct_frame_guard.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"end_to_end_projection_chain.test.d.ts","sourceRoot":"","sources":["../../src/examples/end_to_end_projection_chain.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mat4_pose_decomposition.test.d.ts","sourceRoot":"","sources":["../../src/examples/mat4_pose_decomposition.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"normal_matrix_failure_recovery.test.d.ts","sourceRoot":"","sources":["../../src/examples/normal_matrix_failure_recovery.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"normal_matrix_perpendicularity.test.d.ts","sourceRoot":"","sources":["../../src/examples/normal_matrix_perpendicularity.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"physics_units_kinematics.test.d.ts","sourceRoot":"","sources":["../../src/examples/physics_units_kinematics.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"projection_edge_behavior.test.d.ts","sourceRoot":"","sources":["../../src/examples/projection_edge_behavior.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"quat_from_rotation_matrix.test.d.ts","sourceRoot":"","sources":["../../src/examples/quat_from_rotation_matrix.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"quaternion_nlerp_vs_slerp.test.d.ts","sourceRoot":"","sources":["../../src/examples/quaternion_nlerp_vs_slerp.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rendering_normals_reflection.test.d.ts","sourceRoot":"","sources":["../../src/examples/rendering_normals_reflection.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"robotics_pose_chain.test.d.ts","sourceRoot":"","sources":["../../src/examples/robotics_pose_chain.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"safe_api_failure_modes.test.d.ts","sourceRoot":"","sources":["../../src/examples/safe_api_failure_modes.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"safe_vs_unsafe_apis.test.d.ts","sourceRoot":"","sources":["../../src/examples/safe_vs_unsafe_apis.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sensor_extrinsics_chain.test.d.ts","sourceRoot":"","sources":["../../src/examples/sensor_extrinsics_chain.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transform_order_matters.test.d.ts","sourceRoot":"","sources":["../../src/examples/transform_order_matters.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transform_point_vs_direction.test.d.ts","sourceRoot":"","sources":["../../src/examples/transform_point_vs_direction.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transform_round_trip.test.d.ts","sourceRoot":"","sources":["../../src/examples/transform_round_trip.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import { type Dimensionless, type NoInfer, type Quantity, type UnitExpr, type UnitTag } from '../units.js';
|
|
2
2
|
import type { Delta3, Dir3, FrameTag, LinearMat4, Mat4, Point3, ProjectionMat4, Quaternion } from './types.js';
|
|
3
|
+
type DistinctFramePair<ToFrame extends string, FromFrame extends string> = [
|
|
4
|
+
ToFrame
|
|
5
|
+
] extends [FromFrame] ? ([FromFrame] extends [ToFrame] ? never : unknown) : unknown;
|
|
3
6
|
/**
|
|
4
7
|
* Creates a typed 4x4 matrix from 16 column-major values.
|
|
5
8
|
*
|
|
@@ -14,7 +17,7 @@ import type { Delta3, Dir3, FrameTag, LinearMat4, Mat4, Point3, ProjectionMat4,
|
|
|
14
17
|
* @param values Matrix coefficients in column-major order.
|
|
15
18
|
* @returns Typed affine matrix.
|
|
16
19
|
*/
|
|
17
|
-
export declare const mat4Unsafe: <ToFrame extends string, FromFrame extends string, TranslationUnit extends UnitExpr>(toFrameTag: FrameTag<ToFrame>, fromFrameTag: FrameTag<FromFrame>, translationUnitTag: UnitTag<TranslationUnit>, values: readonly number[]) => Mat4<ToFrame, FromFrame, TranslationUnit>;
|
|
20
|
+
export declare const mat4Unsafe: <ToFrame extends string, FromFrame extends string, TranslationUnit extends UnitExpr>(toFrameTag: FrameTag<ToFrame>, fromFrameTag: FrameTag<FromFrame> & DistinctFramePair<ToFrame, FromFrame>, translationUnitTag: UnitTag<TranslationUnit>, values: readonly number[]) => Mat4<ToFrame, FromFrame, TranslationUnit>;
|
|
18
21
|
/**
|
|
19
22
|
* Creates a typed 4x4 matrix from 16 column-major values.
|
|
20
23
|
*
|
|
@@ -30,7 +33,7 @@ export declare const mat4Unsafe: <ToFrame extends string, FromFrame extends stri
|
|
|
30
33
|
* @returns Typed affine matrix.
|
|
31
34
|
* @throws {Error} When `values` does not contain exactly 16 entries.
|
|
32
35
|
*/
|
|
33
|
-
export declare const mat4: <ToFrame extends string, FromFrame extends string, TranslationUnit extends UnitExpr>(toFrameTag: FrameTag<ToFrame>, fromFrameTag: FrameTag<FromFrame>, translationUnitTag: UnitTag<TranslationUnit>, values: readonly number[]) => Mat4<ToFrame, FromFrame, TranslationUnit>;
|
|
36
|
+
export declare const mat4: <ToFrame extends string, FromFrame extends string, TranslationUnit extends UnitExpr>(toFrameTag: FrameTag<ToFrame>, fromFrameTag: FrameTag<FromFrame> & DistinctFramePair<ToFrame, FromFrame>, translationUnitTag: UnitTag<TranslationUnit>, values: readonly number[]) => Mat4<ToFrame, FromFrame, TranslationUnit>;
|
|
34
37
|
/**
|
|
35
38
|
* Creates an identity linear transform for a frame.
|
|
36
39
|
*
|
|
@@ -397,4 +400,5 @@ export declare function transformDirection3<Unit extends UnitExpr, MatrixTransla
|
|
|
397
400
|
* @returns Transformed unitless direction.
|
|
398
401
|
*/
|
|
399
402
|
export declare function transformDirection3<MatrixTranslationUnit extends UnitExpr, ToFrame extends string, FromFrame extends string>(matrix: Mat4<ToFrame, FromFrame, MatrixTranslationUnit>, direction: Dir3<NoInfer<FromFrame>>): Dir3<ToFrame>;
|
|
403
|
+
export {};
|
|
400
404
|
//# sourceMappingURL=matrix4.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"matrix4.d.ts","sourceRoot":"","sources":["../../../src/src/geometry3d/matrix4.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"matrix4.d.ts","sourceRoot":"","sources":["../../../src/src/geometry3d/matrix4.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { dimensionlessUnit, } from '../units.js';
|
|
2
|
-
import { quatNormalize, quatNormalizeUnsafe } from './quaternion.js';
|
|
2
|
+
import { quatFromRotationMatrix, quatNormalize, quatNormalizeUnsafe, } from './quaternion.js';
|
|
3
3
|
/**
|
|
4
4
|
* Casts a raw number into a branded quantity.
|
|
5
5
|
*
|
|
@@ -13,7 +13,18 @@ const asQuantity = (value) => value;
|
|
|
13
13
|
* @param values Matrix coefficients in column-major order.
|
|
14
14
|
* @returns Branded affine matrix.
|
|
15
15
|
*/
|
|
16
|
-
const asMat4 = (values) =>
|
|
16
|
+
const asMat4 = (values) => {
|
|
17
|
+
const matrix = values;
|
|
18
|
+
Object.defineProperties(matrix, {
|
|
19
|
+
translation: {
|
|
20
|
+
value: () => asDelta3(asQuantity(matrix[12]), asQuantity(matrix[13]), asQuantity(matrix[14])),
|
|
21
|
+
},
|
|
22
|
+
quat: {
|
|
23
|
+
value: () => quatFromRotationMatrix(undefined, undefined, matrix),
|
|
24
|
+
},
|
|
25
|
+
});
|
|
26
|
+
return matrix;
|
|
27
|
+
};
|
|
17
28
|
/**
|
|
18
29
|
* Narrows a dimensionless affine matrix to a linear matrix type.
|
|
19
30
|
*
|
|
@@ -46,6 +57,11 @@ const asDelta3 = (x, y, z) => [x, y, z];
|
|
|
46
57
|
* @returns Branded point.
|
|
47
58
|
*/
|
|
48
59
|
const asPoint3 = (x, y, z) => [x, y, z];
|
|
60
|
+
const assertDistinctFrames = (toFrame, fromFrame) => {
|
|
61
|
+
if (toFrame === fromFrame) {
|
|
62
|
+
throw new Error('toFrameTag and fromFrameTag must be different');
|
|
63
|
+
}
|
|
64
|
+
};
|
|
49
65
|
/**
|
|
50
66
|
* Creates a typed 4x4 matrix from 16 column-major values.
|
|
51
67
|
*
|
|
@@ -82,6 +98,7 @@ export const mat4Unsafe = (toFrameTag, fromFrameTag, translationUnitTag, values)
|
|
|
82
98
|
* @throws {Error} When `values` does not contain exactly 16 entries.
|
|
83
99
|
*/
|
|
84
100
|
export const mat4 = (toFrameTag, fromFrameTag, translationUnitTag, values) => {
|
|
101
|
+
assertDistinctFrames(toFrameTag, fromFrameTag);
|
|
85
102
|
void toFrameTag;
|
|
86
103
|
void fromFrameTag;
|
|
87
104
|
void translationUnitTag;
|
|
@@ -99,7 +116,8 @@ export const mat4 = (toFrameTag, fromFrameTag, translationUnitTag, values) => {
|
|
|
99
116
|
*/
|
|
100
117
|
export const mat4Identity = (frameTag, dimensionlessUnitTag) => {
|
|
101
118
|
void frameTag;
|
|
102
|
-
|
|
119
|
+
void dimensionlessUnitTag;
|
|
120
|
+
return asLinearMat4(asMat4([
|
|
103
121
|
1,
|
|
104
122
|
0,
|
|
105
123
|
0,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export { frame } from './types.js';
|
|
2
2
|
export type { Delta3, Dir3, FrameTag, LinearMat4, Mat4, Point3, ProjectionMat4, Quaternion, } from './types.js';
|
|
3
3
|
export { addPoint3, addVec3, angleBetweenVec3, angleBetweenVec3Unsafe, crossVec3, delta3, dir3, distancePoint3, distanceVec3, dotVec3, lengthSquaredVec3, lengthVec3, lerpVec3, negVec3, normalizeVec3, normalizeVec3Unsafe, point3, projectVec3, projectVec3Unsafe, reflectVec3, reflectVec3Unsafe, scaleDir3, scaleVec3, subPoint3, subPoint3Delta3, subVec3, zeroVec3, } from './vector3.js';
|
|
4
|
-
export { composeQuats, type EulerOrder, quat, quatConjugate, quatFromAxisAngle, quatFromAxisAngleUnsafe, quatFromEuler, quatFromEulerUnsafe, quatIdentity, quatInverse, quatInverseUnsafe, quatNlerp, quatNlerpUnsafe, quatNorm, quatNormalize, quatNormalizeUnsafe, quatNormSquared, quatSlerp, quatSlerpUnsafe, rotateVec3ByQuat, rotateVec3ByQuatUnsafe, } from './quaternion.js';
|
|
4
|
+
export { composeQuats, type EulerOrder, quat, quatConjugate, quatFromAxisAngle, quatFromAxisAngleUnsafe, quatFromEuler, quatFromEulerUnsafe, quatFromRotationMatrix, quatFromRotationMatrixUnsafe, quatIdentity, quatInverse, quatInverseUnsafe, quatNlerp, quatNlerpUnsafe, quatNorm, quatNormalize, quatNormalizeUnsafe, quatNormSquared, quatSlerp, quatSlerpUnsafe, quatW, quatX, quatY, quatZ, rotateVec3ByQuat, rotateVec3ByQuatUnsafe, } from './quaternion.js';
|
|
5
5
|
export { composeMat4, createTrsMat4Cache, invertRigidMat4, invertRigidMat4Unsafe, mat4, mat4FromQuaternion, mat4FromQuaternionUnsafe, mat4FromRigidTransform, mat4FromScale, mat4FromTranslation, mat4FromTRS, mat4FromTRSUnsafe, mat4Identity, mat4LookAt, mat4LookAtUnsafe, mat4Ortho, mat4OrthoUnsafe, mat4Perspective, mat4PerspectiveUnsafe, mat4Unsafe, normalMatrixFromMat4, normalMatrixFromMat4Unsafe, projectPoint3, projectPoint3Unsafe, transformDirection3, transformPoint3, transposeMat4, } from './matrix4.js';
|
|
6
6
|
//# sourceMappingURL=mod.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../../../src/src/geometry3d/mod.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,YAAY,EACV,MAAM,EACN,IAAI,EACJ,QAAQ,EACR,UAAU,EACV,IAAI,EACJ,MAAM,EACN,cAAc,EACd,UAAU,GACX,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,SAAS,EACT,OAAO,EACP,gBAAgB,EAChB,sBAAsB,EACtB,SAAS,EACT,MAAM,EACN,IAAI,EACJ,cAAc,EACd,YAAY,EACZ,OAAO,EACP,iBAAiB,EACjB,UAAU,EACV,QAAQ,EACR,OAAO,EACP,aAAa,EACb,mBAAmB,EACnB,MAAM,EACN,WAAW,EACX,iBAAiB,EACjB,WAAW,EACX,iBAAiB,EACjB,SAAS,EACT,SAAS,EACT,SAAS,EACT,eAAe,EACf,OAAO,EACP,QAAQ,GACT,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,YAAY,EACZ,KAAK,UAAU,EACf,IAAI,EACJ,aAAa,EACb,iBAAiB,EACjB,uBAAuB,EACvB,aAAa,EACb,mBAAmB,EACnB,YAAY,EACZ,WAAW,EACX,iBAAiB,EACjB,SAAS,EACT,eAAe,EACf,QAAQ,EACR,aAAa,EACb,mBAAmB,EACnB,eAAe,EACf,SAAS,EACT,eAAe,EACf,gBAAgB,EAChB,sBAAsB,GACvB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,WAAW,EACX,kBAAkB,EAClB,eAAe,EACf,qBAAqB,EACrB,IAAI,EACJ,kBAAkB,EAClB,wBAAwB,EACxB,sBAAsB,EACtB,aAAa,EACb,mBAAmB,EACnB,WAAW,EACX,iBAAiB,EACjB,YAAY,EACZ,UAAU,EACV,gBAAgB,EAChB,SAAS,EACT,eAAe,EACf,eAAe,EACf,qBAAqB,EACrB,UAAU,EACV,oBAAoB,EACpB,0BAA0B,EAC1B,aAAa,EACb,mBAAmB,EACnB,mBAAmB,EACnB,eAAe,EACf,aAAa,GACd,MAAM,cAAc,CAAC"}
|
|
1
|
+
{"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../../../src/src/geometry3d/mod.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,YAAY,EACV,MAAM,EACN,IAAI,EACJ,QAAQ,EACR,UAAU,EACV,IAAI,EACJ,MAAM,EACN,cAAc,EACd,UAAU,GACX,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,SAAS,EACT,OAAO,EACP,gBAAgB,EAChB,sBAAsB,EACtB,SAAS,EACT,MAAM,EACN,IAAI,EACJ,cAAc,EACd,YAAY,EACZ,OAAO,EACP,iBAAiB,EACjB,UAAU,EACV,QAAQ,EACR,OAAO,EACP,aAAa,EACb,mBAAmB,EACnB,MAAM,EACN,WAAW,EACX,iBAAiB,EACjB,WAAW,EACX,iBAAiB,EACjB,SAAS,EACT,SAAS,EACT,SAAS,EACT,eAAe,EACf,OAAO,EACP,QAAQ,GACT,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,YAAY,EACZ,KAAK,UAAU,EACf,IAAI,EACJ,aAAa,EACb,iBAAiB,EACjB,uBAAuB,EACvB,aAAa,EACb,mBAAmB,EACnB,sBAAsB,EACtB,4BAA4B,EAC5B,YAAY,EACZ,WAAW,EACX,iBAAiB,EACjB,SAAS,EACT,eAAe,EACf,QAAQ,EACR,aAAa,EACb,mBAAmB,EACnB,eAAe,EACf,SAAS,EACT,eAAe,EACf,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,gBAAgB,EAChB,sBAAsB,GACvB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,WAAW,EACX,kBAAkB,EAClB,eAAe,EACf,qBAAqB,EACrB,IAAI,EACJ,kBAAkB,EAClB,wBAAwB,EACxB,sBAAsB,EACtB,aAAa,EACb,mBAAmB,EACnB,WAAW,EACX,iBAAiB,EACjB,YAAY,EACZ,UAAU,EACV,gBAAgB,EAChB,SAAS,EACT,eAAe,EACf,eAAe,EACf,qBAAqB,EACrB,UAAU,EACV,oBAAoB,EACpB,0BAA0B,EAC1B,aAAa,EACb,mBAAmB,EACnB,mBAAmB,EACnB,eAAe,EACf,aAAa,GACd,MAAM,cAAc,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export { frame } from './types.js';
|
|
2
2
|
export { addPoint3, addVec3, angleBetweenVec3, angleBetweenVec3Unsafe, crossVec3, delta3, dir3, distancePoint3, distanceVec3, dotVec3, lengthSquaredVec3, lengthVec3, lerpVec3, negVec3, normalizeVec3, normalizeVec3Unsafe, point3, projectVec3, projectVec3Unsafe, reflectVec3, reflectVec3Unsafe, scaleDir3, scaleVec3, subPoint3, subPoint3Delta3, subVec3, zeroVec3, } from './vector3.js';
|
|
3
|
-
export { composeQuats, quat, quatConjugate, quatFromAxisAngle, quatFromAxisAngleUnsafe, quatFromEuler, quatFromEulerUnsafe, quatIdentity, quatInverse, quatInverseUnsafe, quatNlerp, quatNlerpUnsafe, quatNorm, quatNormalize, quatNormalizeUnsafe, quatNormSquared, quatSlerp, quatSlerpUnsafe, rotateVec3ByQuat, rotateVec3ByQuatUnsafe, } from './quaternion.js';
|
|
3
|
+
export { composeQuats, quat, quatConjugate, quatFromAxisAngle, quatFromAxisAngleUnsafe, quatFromEuler, quatFromEulerUnsafe, quatFromRotationMatrix, quatFromRotationMatrixUnsafe, quatIdentity, quatInverse, quatInverseUnsafe, quatNlerp, quatNlerpUnsafe, quatNorm, quatNormalize, quatNormalizeUnsafe, quatNormSquared, quatSlerp, quatSlerpUnsafe, quatW, quatX, quatY, quatZ, rotateVec3ByQuat, rotateVec3ByQuatUnsafe, } from './quaternion.js';
|
|
4
4
|
export { composeMat4, createTrsMat4Cache, invertRigidMat4, invertRigidMat4Unsafe, mat4, mat4FromQuaternion, mat4FromQuaternionUnsafe, mat4FromRigidTransform, mat4FromScale, mat4FromTranslation, mat4FromTRS, mat4FromTRSUnsafe, mat4Identity, mat4LookAt, mat4LookAtUnsafe, mat4Ortho, mat4OrthoUnsafe, mat4Perspective, mat4PerspectiveUnsafe, mat4Unsafe, normalMatrixFromMat4, normalMatrixFromMat4Unsafe, projectPoint3, projectPoint3Unsafe, transformDirection3, transformPoint3, transposeMat4, } from './matrix4.js';
|