@itwin/core-geometry 4.0.0-dev.50 → 4.0.0-dev.52
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/lib/cjs/geometry3d/Matrix3d.d.ts +9 -5
- package/lib/cjs/geometry3d/Matrix3d.d.ts.map +1 -1
- package/lib/cjs/geometry3d/Matrix3d.js +9 -6
- package/lib/cjs/geometry3d/Matrix3d.js.map +1 -1
- package/lib/cjs/geometry3d/Transform.d.ts +112 -75
- package/lib/cjs/geometry3d/Transform.d.ts.map +1 -1
- package/lib/cjs/geometry3d/Transform.js +159 -119
- package/lib/cjs/geometry3d/Transform.js.map +1 -1
- package/lib/esm/geometry3d/Matrix3d.d.ts +9 -5
- package/lib/esm/geometry3d/Matrix3d.d.ts.map +1 -1
- package/lib/esm/geometry3d/Matrix3d.js +9 -6
- package/lib/esm/geometry3d/Matrix3d.js.map +1 -1
- package/lib/esm/geometry3d/Transform.d.ts +112 -75
- package/lib/esm/geometry3d/Transform.d.ts.map +1 -1
- package/lib/esm/geometry3d/Transform.js +159 -119
- package/lib/esm/geometry3d/Transform.js.map +1 -1
- package/package.json +3 -3
|
@@ -14,15 +14,18 @@ import { TransformProps, XAndY, XYAndZ } from "./XYZProps";
|
|
|
14
14
|
* * The math for a Transform `T` consisting of a Matrix3d `M` and a Point3d `o` on a Vector3d `p` is: `Tp = M*p + o`.
|
|
15
15
|
* In other words, `T` is a combination of two operations on `p`: the action of matrix multiplication, followed by a
|
|
16
16
|
* translation. `Origin` is a traditional term for `o`, because `T` can be interpreted as a change of basis from the
|
|
17
|
-
* global axes centered at the global origin, to a new set of axes centered at `o`.
|
|
18
|
-
* * Beware that for common transformations (e.g. scale about point, rotate around an axis
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
17
|
+
* global axes centered at the global origin, to a new set of axes specified by matrix M columns centered at `o`.
|
|
18
|
+
* * Beware that for common transformations (e.g. scale about point, rotate around an axis) the `fixed point` that
|
|
19
|
+
* is used when describing the transform is NOT the `origin` stored in the transform. Setup methods (e.g
|
|
20
|
+
* createFixedPointAndMatrix, createScaleAboutPoint) take care of determining the appropriate origin coordinates.
|
|
21
|
+
* * If `T` is a translation, no point is fixed by `T`.
|
|
22
|
+
* * If `T` is the identity, all points are fixed by `T`.
|
|
23
|
+
* * If `T` is a scale about a point, one point is fixed by `T`.
|
|
24
|
+
* * If `T` is a rotation about an axis, a line is fixed by `T`.
|
|
25
|
+
* * If `T` is a projection to the plane, a plane is fixed by `T`.
|
|
22
26
|
* @public
|
|
23
27
|
*/
|
|
24
28
|
export declare class Transform implements BeJSONFunctions {
|
|
25
|
-
private static _scratchPoint;
|
|
26
29
|
private _origin;
|
|
27
30
|
private _matrix;
|
|
28
31
|
private constructor();
|
|
@@ -148,13 +151,25 @@ export declare class Transform implements BeJSONFunctions {
|
|
|
148
151
|
* where `f` is the fixedPoint and M is the scale matrix (i.e., `Tp = M*(p-f) + f`).
|
|
149
152
|
*/
|
|
150
153
|
static createScaleAboutPoint(fixedPoint: Point3d, scale: number, result?: Transform): Transform;
|
|
151
|
-
/**
|
|
154
|
+
/**
|
|
155
|
+
* Transform the input 2d point (using `Tp = M*p + o`).
|
|
156
|
+
* Return as a new point or in the pre-allocated result (if result is given).
|
|
157
|
+
*/
|
|
152
158
|
multiplyPoint2d(point: XAndY, result?: Point2d): Point2d;
|
|
153
|
-
/**
|
|
159
|
+
/**
|
|
160
|
+
* Transform the input 3d point (using `Tp = M*p + o`).
|
|
161
|
+
* Return as a new point or in the pre-allocated result (if result is given).
|
|
162
|
+
*/
|
|
154
163
|
multiplyPoint3d(point: XYAndZ, result?: Point3d): Point3d;
|
|
155
|
-
/**
|
|
164
|
+
/**
|
|
165
|
+
* Transform the input 3d point in place (using `Tp = M*p + o`).
|
|
166
|
+
* Return as a new point or in the pre-allocated result (if result is given).
|
|
167
|
+
*/
|
|
156
168
|
multiplyXYAndZInPlace(point: XYAndZ): void;
|
|
157
|
-
/**
|
|
169
|
+
/**
|
|
170
|
+
* Transform the input 3d point (using `Tp = M*p + o`).
|
|
171
|
+
* Return as a new point or in the pre-allocated result (if result is given).
|
|
172
|
+
*/
|
|
158
173
|
multiplyXYZ(x: number, y: number, z?: number, result?: Point3d): Point3d;
|
|
159
174
|
/**
|
|
160
175
|
* Multiply a specific row (component) of the transform matrix times xyz and add it to the origin element
|
|
@@ -183,14 +198,14 @@ export declare class Transform implements BeJSONFunctions {
|
|
|
183
198
|
*/
|
|
184
199
|
multiplyXYZToFloat64Array(x: number, y: number, z: number, result?: Float64Array): Float64Array;
|
|
185
200
|
/**
|
|
186
|
-
* Treat the 3x3 matrix and origin as upper 3x4 part of a 4x4 matrix, with 0001 as the final row. Now multiply
|
|
201
|
+
* Treat the 3x3 `matrix` and `origin` as upper 3x4 part of a 4x4 matrix, with 0001 as the final row. Now multiply
|
|
187
202
|
* the transposed of this 4x4 matrix by Point4d given as xyzw. Return as a new point4d (`M*p` as first 3 elements
|
|
188
203
|
* and `o*p + w` as last element where `p = (x,y,z)`) or in the pre-allocated result (if result is given).
|
|
189
204
|
*/
|
|
190
205
|
multiplyTransposeXYZW(x: number, y: number, z: number, w: number, result?: Point4d): Point4d;
|
|
191
|
-
/** For each point in the array, replace point by the transformed point (
|
|
206
|
+
/** For each point in the array, replace point by the transformed point (using `Tp = M*p + o`) */
|
|
192
207
|
multiplyPoint3dArrayInPlace(points: Point3d[]): void;
|
|
193
|
-
/** For each point in the 2d array, replace point by the transformed point (
|
|
208
|
+
/** For each point in the 2d array, replace point by the transformed point (using `Tp = M*p + o`) */
|
|
194
209
|
multiplyPoint3dArrayArrayInPlace(chains: Point3d[][]): void;
|
|
195
210
|
/**
|
|
196
211
|
* If for a point `p` we have `Tp = M*p + o = point` (where `point` is the transformed point), then
|
|
@@ -217,115 +232,137 @@ export declare class Transform implements BeJSONFunctions {
|
|
|
217
232
|
*/
|
|
218
233
|
multiplyInverseXYZ(x: number, y: number, z: number, result?: Point3d): Point3d | undefined;
|
|
219
234
|
/**
|
|
220
|
-
* *
|
|
221
|
-
*
|
|
222
|
-
*
|
|
235
|
+
* * Compute (if needed) the inverse of the `matrix` part of the Transform, thereby ensuring inverse
|
|
236
|
+
* operations can complete.
|
|
237
|
+
* @param useCached If true, accept prior cached inverse if available.
|
|
238
|
+
* @returns `true` if matrix inverse completes, `false` otherwise.
|
|
223
239
|
*/
|
|
224
|
-
|
|
240
|
+
computeCachedInverse(useCached?: boolean): boolean;
|
|
225
241
|
/**
|
|
226
|
-
*
|
|
227
|
-
* *
|
|
242
|
+
* Match the length of destination array with the length of source array
|
|
243
|
+
* * If destination has more elements than source, remove the extra elements.
|
|
244
|
+
* * If destination has fewer elements than source, use `constructionFunction` to create new elements.
|
|
245
|
+
* *
|
|
246
|
+
* @param source the source array
|
|
247
|
+
* @param dest the destination array
|
|
248
|
+
* @param constructionFunction function to call to create new elements.
|
|
228
249
|
*/
|
|
229
|
-
|
|
250
|
+
static matchArrayLengths(source: any[], dest: any[], constructionFunction: () => any): number;
|
|
230
251
|
/**
|
|
231
|
-
*
|
|
232
|
-
* *
|
|
233
|
-
*
|
|
252
|
+
* If for each point `p` we have `Tp = M*p + o = point` (where `point` is the transformed point), then
|
|
253
|
+
* `p = MInverse * (point - o)`. This function returns the array of original points `p[]` if `points`
|
|
254
|
+
* is the array of transformed point (`Tp = point` for each `p` and `point`).
|
|
255
|
+
* * If `results` is given, resize it to match the input `points` array and update it with original points `p[]`.
|
|
256
|
+
* * If `results` is not given, return a new array.
|
|
257
|
+
* * Returns `undefined` if the `matrix` part if this Transform is singular.
|
|
234
258
|
*/
|
|
235
|
-
|
|
259
|
+
multiplyInversePoint3dArray(points: Point3d[], results?: Point3d[]): Point3d[] | undefined;
|
|
236
260
|
/**
|
|
237
|
-
* *
|
|
238
|
-
* *
|
|
239
|
-
*
|
|
240
|
-
*
|
|
241
|
-
*
|
|
261
|
+
* If for each point `p` we have `Tp = M*p + o = point` (where `point` is the transformed point), then
|
|
262
|
+
* `p = MInverse * (point - o)`. This function calculates the array of original points `p[]` if `points`
|
|
263
|
+
* is the array of transformed point (`Tp = point` for each `p` and `point`) and replaces `points`
|
|
264
|
+
* with the array of original points.
|
|
265
|
+
* * Returns `true` if the `matrix` part if this Transform is invertible and `false if singular.
|
|
242
266
|
*/
|
|
243
|
-
|
|
267
|
+
multiplyInversePoint3dArrayInPlace(points: Point3d[]): boolean;
|
|
244
268
|
/**
|
|
245
|
-
*
|
|
246
|
-
* * If result is given, resize to match
|
|
247
|
-
* * If result is not given, return a new array.
|
|
269
|
+
* Transform the input 2d point array (using `Tp = M*p + o`).
|
|
270
|
+
* * If `result` is given, resize it to match the input `points` array and update it with transformed points.
|
|
271
|
+
* * If `result` is not given, return a new array.
|
|
248
272
|
*/
|
|
249
|
-
multiplyPoint2dArray(
|
|
273
|
+
multiplyPoint2dArray(points: Point2d[], result?: Point2d[]): Point2d[];
|
|
250
274
|
/**
|
|
251
|
-
*
|
|
252
|
-
* * If result is given, resize to match
|
|
253
|
-
* * If result is not given, return a new array.
|
|
275
|
+
* Transform the input 3d point array (using `Tp = M*p + o`).
|
|
276
|
+
* * If `result` is given, resize it to match the input `points` array and update it with transformed points.
|
|
277
|
+
* * If `result` is not given, return a new array.
|
|
254
278
|
*/
|
|
255
|
-
multiplyPoint3dArray(
|
|
279
|
+
multiplyPoint3dArray(points: Point3d[], result?: Point3d[]): Point3d[];
|
|
256
280
|
/**
|
|
257
|
-
* Multiply the vector by the
|
|
258
|
-
* * The
|
|
259
|
-
* *
|
|
281
|
+
* Multiply the vector by the `matrix` part of the Transform.
|
|
282
|
+
* * The `origin` part of Transform is not used.
|
|
283
|
+
* * If `result` is given, update it with the multiplication. Otherwise, create a new Vector3d.
|
|
260
284
|
*/
|
|
261
285
|
multiplyVector(vector: Vector3d, result?: Vector3d): Vector3d;
|
|
262
286
|
/**
|
|
263
|
-
* Multiply the vector
|
|
264
|
-
* * The
|
|
287
|
+
* Multiply the vector by the `matrix` part of the Transform in place.
|
|
288
|
+
* * The `origin` part of Transform is not used.
|
|
265
289
|
*/
|
|
266
290
|
multiplyVectorInPlace(vector: Vector3d): void;
|
|
267
291
|
/**
|
|
268
|
-
* Multiply the vector (x,y,z) by the
|
|
269
|
-
* * The
|
|
270
|
-
* *
|
|
292
|
+
* Multiply the vector (x,y,z) by the `matrix` part of the Transform.
|
|
293
|
+
* * The `origin` part of Transform is not used.
|
|
294
|
+
* * If `result` is given, update it with the multiplication. Otherwise, create a new Vector3d.
|
|
271
295
|
*/
|
|
272
296
|
multiplyVectorXYZ(x: number, y: number, z: number, result?: Vector3d): Vector3d;
|
|
273
|
-
/**
|
|
297
|
+
/**
|
|
298
|
+
* Calculate `transformA * transformB` and store it into the calling instance (`this`).
|
|
299
|
+
* * **Note:** If `transformA = [A a]` and `transformB = [B b]` then `transformA * transformB` is defined as
|
|
300
|
+
* `[A*B Ab+a]`. See `multiplyTransformTransform` doc for math details.
|
|
301
|
+
* @param transformA first operand
|
|
302
|
+
* @param transformB second operand
|
|
303
|
+
*/
|
|
304
|
+
setMultiplyTransformTransform(transformA: Transform, transformB: Transform): void;
|
|
305
|
+
/**
|
|
306
|
+
* Multiply `this` Transform times `other` Transform.
|
|
307
|
+
* **Note:** If `this = [A a]` and `other = [B b]` then `this * other` is defined as [A*B Ab+a].
|
|
308
|
+
* That's because we create a 4x4 matrix for each Transform with the 3x3 `matrix` and `origin`
|
|
309
|
+
* as upper 3x4 part of a 4x4 matrix and 0001 as the final row. Then we multiply those two 4x4 matrixes:
|
|
274
310
|
* ```
|
|
275
311
|
* equation
|
|
276
312
|
* \begin{matrix}
|
|
277
|
-
* \text{`this`
|
|
278
|
-
* \text{`other`
|
|
313
|
+
* \text{`this` Transform with `matrix` part }\bold{A}\text{ and `origin` part }\bold{a} & \blockTransform{A}{a}\\
|
|
314
|
+
* \text{`other` Transform with `matrix` part }\bold{B}\text{ and `origin` part }\bold{b} & \blockTransform{B}{b} \\
|
|
279
315
|
* \text{product}& \blockTransform{A}{a}\blockTransform{B}{b}=\blockTransform{AB}{Ab + a}
|
|
280
316
|
* \end{matrix}
|
|
281
317
|
* ```
|
|
282
|
-
* @param other
|
|
318
|
+
* @param other the 'other` Transform to be multiplied to `this` Transform.
|
|
283
319
|
* @param result optional preallocated result to reuse.
|
|
284
320
|
*/
|
|
285
321
|
multiplyTransformTransform(other: Transform, result?: Transform): Transform;
|
|
286
322
|
/**
|
|
287
|
-
* Multiply
|
|
288
|
-
*
|
|
289
|
-
*
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
/**
|
|
293
|
-
* Multiply this Transform times other Matrix3d, with other considered to be a Transform with 0 translation.
|
|
323
|
+
* Multiply `this` Transform times `other` Matrix3d (considered to be a Transform with 0 `origin`).
|
|
324
|
+
* **Note:** If `this = [A a]`, then we promote `other` matrix to be a Transform [B 0].
|
|
325
|
+
* Then `this * other` is defined as [A*B a]. That's because we create a 4x4 matrix for each Transform
|
|
326
|
+
* with the 3x3 `matrix` and `origin` as upper 3x4 part of a 4x4 matrix and 0001 as the final row. Then we
|
|
327
|
+
* multiply those two 4x4 matrixes:
|
|
294
328
|
* ```
|
|
295
329
|
* equation
|
|
296
330
|
* \begin{matrix}
|
|
297
|
-
* \text{`this`
|
|
298
|
-
* \text{`other` matrix }\bold{B}\text{ promoted to block
|
|
331
|
+
* \text{`this` Transform with `matrix` part }\bold{A}\text{ and `origin` part }\bold{a} & \blockTransform{A}{a}\\
|
|
332
|
+
* \text{`other` matrix }\bold{B}\text{ promoted to block Transform} & \blockTransform{B}{0} \\
|
|
299
333
|
* \text{product}& \blockTransform{A}{a}\blockTransform{B}{0}=\blockTransform{AB}{a}
|
|
300
334
|
* \end{matrix}
|
|
301
335
|
* ```
|
|
302
|
-
* @param other
|
|
336
|
+
* @param other the `other` Matrix3d to be multiplied to `this` Transform.
|
|
303
337
|
* @param result optional preallocated result to reuse.
|
|
304
338
|
*/
|
|
305
339
|
multiplyTransformMatrix3d(other: Matrix3d, result?: Transform): Transform;
|
|
306
340
|
/**
|
|
307
|
-
* Return the
|
|
341
|
+
* Return the Range of the transformed corners.
|
|
308
342
|
* * The 8 corners are transformed individually.
|
|
309
|
-
* * Note
|
|
310
|
-
*
|
|
343
|
+
* * **Note:** Suppose you have a geometry, a range box around that geometry, and your Transform is a rotation.
|
|
344
|
+
* If you rotate the range box and recompute a new range box around the rotated range box, then the new range
|
|
345
|
+
* box will have a larger volume than the original range box. However, if you rotate the geometry itself and
|
|
346
|
+
* then recompute the range box, it will be a tighter range box around the rotated geometry. `multiplyRange`
|
|
347
|
+
* function creates the larger range box because it only has access to the range box and the geometry itself.
|
|
311
348
|
*/
|
|
312
349
|
multiplyRange(range: Range3d, result?: Range3d): Range3d;
|
|
313
350
|
/**
|
|
314
|
-
*
|
|
315
|
-
*
|
|
316
|
-
*
|
|
351
|
+
* Return a Transform which is the inverse of `this` Transform.
|
|
352
|
+
* * If `transform = [M o]` then `transformInverse = [MInverse MInverse*-o]`
|
|
353
|
+
* * Return `undefined` if this Transform's matrix is singular.
|
|
317
354
|
*/
|
|
318
355
|
inverse(result?: Transform): Transform | undefined;
|
|
319
356
|
/**
|
|
320
|
-
* Initialize
|
|
321
|
-
*
|
|
322
|
-
*
|
|
323
|
-
*
|
|
324
|
-
*
|
|
325
|
-
*
|
|
326
|
-
* @param
|
|
327
|
-
*
|
|
328
|
-
*
|
|
357
|
+
* Initialize 2 Transforms: First Transform maps a box (axis aligned) specified by `min` and `max` to
|
|
358
|
+
* the unit box specified by 000 and 111 and inverse of it. Second Transform is the reverse of first.
|
|
359
|
+
* @param min the min corner of the box
|
|
360
|
+
* @param max the max corner of the box
|
|
361
|
+
* @param npcToGlobal maps global (the unit box specified by 000 and 111) to NPC (a box specified by `min`
|
|
362
|
+
* and `max`). Object created by caller, re-initialized here.
|
|
363
|
+
* @param globalToNpc maps NPC (a box specified by `min` and `max`) to global (the unit box specified by
|
|
364
|
+
* 000 and 111). Object created by caller, re-initialized here.
|
|
365
|
+
* * NPC stands for `Normalized Projection Coordinate`
|
|
329
366
|
*/
|
|
330
367
|
static initFromRange(min: Point3d, max: Point3d, npcToGlobal?: Transform, globalToNpc?: Transform): void;
|
|
331
368
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Transform.d.ts","sourceRoot":"","sources":["../../../src/geometry3d/Transform.ts"],"names":[],"mappings":"AAKA;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,eAAe,EAAY,MAAM,aAAa,CAAC;AACnE,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAE3D
|
|
1
|
+
{"version":3,"file":"Transform.d.ts","sourceRoot":"","sources":["../../../src/geometry3d/Transform.ts"],"names":[],"mappings":"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"}
|