@itwin/core-geometry 4.0.0-dev.7 → 4.0.0-dev.8

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.
Files changed (53) hide show
  1. package/lib/cjs/Geometry.d.ts +3 -3
  2. package/lib/cjs/Geometry.d.ts.map +1 -1
  3. package/lib/cjs/Geometry.js +27 -11
  4. package/lib/cjs/Geometry.js.map +1 -1
  5. package/lib/cjs/curve/CurveCurve.d.ts +11 -8
  6. package/lib/cjs/curve/CurveCurve.d.ts.map +1 -1
  7. package/lib/cjs/curve/CurveCurve.js +16 -12
  8. package/lib/cjs/curve/CurveCurve.js.map +1 -1
  9. package/lib/cjs/curve/CurveCurveIntersectXY.d.ts +5 -1
  10. package/lib/cjs/curve/CurveCurveIntersectXY.d.ts.map +1 -1
  11. package/lib/cjs/curve/CurveCurveIntersectXY.js +11 -10
  12. package/lib/cjs/curve/CurveCurveIntersectXY.js.map +1 -1
  13. package/lib/cjs/geometry3d/CoincidentGeometryOps.d.ts +1 -0
  14. package/lib/cjs/geometry3d/CoincidentGeometryOps.d.ts.map +1 -1
  15. package/lib/cjs/geometry3d/CoincidentGeometryOps.js +3 -0
  16. package/lib/cjs/geometry3d/CoincidentGeometryOps.js.map +1 -1
  17. package/lib/cjs/geometry3d/Matrix3d.d.ts +171 -118
  18. package/lib/cjs/geometry3d/Matrix3d.d.ts.map +1 -1
  19. package/lib/cjs/geometry3d/Matrix3d.js +448 -417
  20. package/lib/cjs/geometry3d/Matrix3d.js.map +1 -1
  21. package/lib/cjs/geometry3d/Point3dVector3d.d.ts +1 -1
  22. package/lib/cjs/geometry3d/Point3dVector3d.js +1 -1
  23. package/lib/cjs/geometry3d/Point3dVector3d.js.map +1 -1
  24. package/lib/cjs/geometry3d/Segment1d.d.ts +1 -1
  25. package/lib/cjs/geometry3d/Segment1d.js +1 -1
  26. package/lib/cjs/geometry3d/Segment1d.js.map +1 -1
  27. package/lib/esm/Geometry.d.ts +3 -3
  28. package/lib/esm/Geometry.d.ts.map +1 -1
  29. package/lib/esm/Geometry.js +27 -11
  30. package/lib/esm/Geometry.js.map +1 -1
  31. package/lib/esm/curve/CurveCurve.d.ts +11 -8
  32. package/lib/esm/curve/CurveCurve.d.ts.map +1 -1
  33. package/lib/esm/curve/CurveCurve.js +16 -12
  34. package/lib/esm/curve/CurveCurve.js.map +1 -1
  35. package/lib/esm/curve/CurveCurveIntersectXY.d.ts +5 -1
  36. package/lib/esm/curve/CurveCurveIntersectXY.d.ts.map +1 -1
  37. package/lib/esm/curve/CurveCurveIntersectXY.js +11 -10
  38. package/lib/esm/curve/CurveCurveIntersectXY.js.map +1 -1
  39. package/lib/esm/geometry3d/CoincidentGeometryOps.d.ts +1 -0
  40. package/lib/esm/geometry3d/CoincidentGeometryOps.d.ts.map +1 -1
  41. package/lib/esm/geometry3d/CoincidentGeometryOps.js +3 -0
  42. package/lib/esm/geometry3d/CoincidentGeometryOps.js.map +1 -1
  43. package/lib/esm/geometry3d/Matrix3d.d.ts +171 -118
  44. package/lib/esm/geometry3d/Matrix3d.d.ts.map +1 -1
  45. package/lib/esm/geometry3d/Matrix3d.js +448 -417
  46. package/lib/esm/geometry3d/Matrix3d.js.map +1 -1
  47. package/lib/esm/geometry3d/Point3dVector3d.d.ts +1 -1
  48. package/lib/esm/geometry3d/Point3dVector3d.js +1 -1
  49. package/lib/esm/geometry3d/Point3dVector3d.js.map +1 -1
  50. package/lib/esm/geometry3d/Segment1d.d.ts +1 -1
  51. package/lib/esm/geometry3d/Segment1d.js +1 -1
  52. package/lib/esm/geometry3d/Segment1d.js.map +1 -1
  53. package/package.json +4 -4
@@ -336,13 +336,14 @@ export declare class Matrix3d implements BeJSONFunctions {
336
336
  */
337
337
  static createRigidFromColumns(vectorA: Vector3d, vectorB: Vector3d, axisOrder: AxisOrder, result?: Matrix3d): Matrix3d | undefined;
338
338
  /**
339
- * Construct a rigid matrix using vectorA and its 2 perpendicular.
339
+ * Construct a rigid matrix (orthogonal matrix with +1 determinant) using vectorA and its 2 perpendicular.
340
+ * * If axisOrder is not passed then `AxisOrder = AxisOrder.ZXY` is used as default.
340
341
  * * This function internally uses createPerpendicularVectorFavorXYPlane and createRigidFromColumns.
341
342
  */
342
343
  static createRigidHeadsUp(vectorA: Vector3d, axisOrder?: AxisOrder, result?: Matrix3d): Matrix3d;
343
- /** Return the matrix for rotation of `angle` around `axis` */
344
+ /** Return the matrix for rotation of `angle` around desired `axis` */
344
345
  static createRotationAroundVector(axis: Vector3d, angle: Angle, result?: Matrix3d): Matrix3d | undefined;
345
- /** Returns a rotation of specified angle around an axis
346
+ /** Returns a rotation of specified angle around one of the main axis (X,Y,Z).
346
347
  * @param axisIndex index of axis (AxisIndex.X, AxisIndex.Y, AxisIndex.Z) kept fixed by the rotation.
347
348
  * @param angle angle of rotation
348
349
  * @param result optional result matrix.
@@ -350,22 +351,31 @@ export declare class Matrix3d implements BeJSONFunctions {
350
351
  */
351
352
  static createRotationAroundAxisIndex(axisIndex: AxisIndex, angle: Angle, result?: Matrix3d): Matrix3d;
352
353
  /**
353
- * Replace current columns Ui and Uj with (c*Ui - s*Uj) and (c*Uj + s*Ui).
354
- * * There is no checking for i,j being 0,1,2.
355
- * * This is used in compute intensive inner loops
356
- * @param i first row index. **must be 0,1,2** (unchecked)
357
- * @param j second row index. **must be 0,1,2** (unchecked)
358
- * @param c fist coefficient
359
- * @param s second coefficient
360
- */
354
+ * Replace current rows Ui and Uj with (c*Ui + s*Uj) and (c*Uj - s*Ui).
355
+ * * There is no checking for i,j being 0,1,2.
356
+ * @param i first row index. **must be 0,1,2** (unchecked)
357
+ * @param j second row index. **must be 0,1,2** (unchecked)
358
+ * @param c fist coefficient
359
+ * @param s second coefficient
360
+ */
361
+ private applyGivensRowOp;
362
+ /**
363
+ * Replace current columns Ui and Uj with (c*Ui + s*Uj) and (c*Uj - s*Ui).
364
+ * * There is no checking for i,j being 0,1,2.
365
+ * * This is used in compute intensive inner loops
366
+ * @param i first row index. **must be 0,1,2** (unchecked)
367
+ * @param j second row index. **must be 0,1,2** (unchecked)
368
+ * @param c fist coefficient
369
+ * @param s second coefficient
370
+ */
361
371
  applyGivensColumnOp(i: number, j: number, c: number, s: number): void;
362
372
  /**
363
- * Create a matrix from column vectors.
364
- * ```
365
- * equation
366
- * \begin{bmatrix}U_x & V_x & W_x \\ U_y & V_y & W_y \\ U_z & V_z & W_z \end{bmatrix}
367
- * ```
368
- */
373
+ * Create a matrix from column vectors.
374
+ * ```
375
+ * equation
376
+ * \begin{bmatrix}U_x & V_x & W_x \\ U_y & V_y & W_y \\ U_z & V_z & W_z \end{bmatrix}
377
+ * ```
378
+ */
369
379
  static createColumns(vectorU: Vector3d, vectorV: Vector3d, vectorW: Vector3d, result?: Matrix3d): Matrix3d;
370
380
  /** Create a matrix with each column's _x,y_ parts given `XAndY` and separate numeric z values.
371
381
  * ```
@@ -378,8 +388,9 @@ export declare class Matrix3d implements BeJSONFunctions {
378
388
  * * ColumnX points in the rightVector direction
379
389
  * * ColumnY points in the upVector direction
380
390
  * * ColumnZ is a unit cross product of ColumnX and ColumnY.
381
- * * Optionally rotate the standard cube by 45 degrees ccw around Y to bring its left or right vertical edge to center.
382
- * * Optionally rotate the standard cube by 35.264 degrees ccw around X (isometric rotation).
391
+ * * Optionally rotate by 45 degrees around `upVector` to bring its left or right vertical edge to center.
392
+ * * Optionally rotate by arctan(1/sqrt(2)) ~ 35.264 degrees around `rightVector` to bring the top or bottom
393
+ * horizontal edge of the view to the center (for isometric views).
383
394
  * * This is expected to be used with various principal unit vectors that are perpendicular to each other.
384
395
  * * STANDARD TOP VIEW: createViewedAxes(Vector3d.unitX(), Vector3d.unitY(), 0, 0)
385
396
  * * STANDARD FRONT VIEW: createViewedAxes(Vector3d.unitX(), Vector3d.unitZ(), 0, 0)
@@ -387,16 +398,20 @@ export declare class Matrix3d implements BeJSONFunctions {
387
398
  * * STANDARD RIGHT VIEW: createViewedAxes(Vector3d.unitY(), Vector3d.unitZ(), 0, 0)
388
399
  * * STANDARD LEFT VIEW: createViewedAxes(Vector3d.unitY(-1), Vector3d.unitZ(), 0, 0)
389
400
  * * STANDARD BOTTOM VIEW: createViewedAxes(Vector3d.unitX(), Vector3d.unitY(-1), 0, 0)
401
+ * * STANDARD ISO VIEW: createViewedAxes(Vector3d.unitX(), Vector3d.unitZ(), -1, 1)
402
+ * * STANDARD RIGHT ISO VIEW: createViewedAxes(Vector3d.unitX(), Vector3d.unitZ(), 1, 1)
403
+ * * Front, right, back, left, top, and bottom standard views are views from faces of the cube
404
+ * and iso and right iso standard views are views from corners of the cube.
390
405
  * * Note: createViewedAxes is column-based so always returns local to world
391
406
  *
392
407
  * @param rightVector ColumnX of the returned matrix. Expected to be perpendicular to upVector.
393
408
  * @param upVector ColumnY of the returned matrix. Expected to be perpendicular to rightVector.
394
- * @param leftNoneRight Specifies the ccw rotation around Y axis. Normally one of "-1", "0", and "1", where
395
- * "-1" indicates rotation by 45 degrees to bring the left vertical edge to center, "0" means no rotation,
409
+ * @param leftNoneRight Specifies the ccw rotation around `upVector` axis. Normally one of "-1", "0", and "1",
410
+ * where "-1" indicates rotation by 45 degrees to bring the left vertical edge to center, "0" means no rotation,
396
411
  * and "1" indicates rotation by 45 degrees to bring the right vertical edge to center. Other numbers are
397
412
  * used as multiplier for this 45 degree rotation.
398
- * @param topNoneBottom Specifies the ccw rotation around X axis. Normally one of "-1", "0", and "1", where
399
- * "-1" indicates isometric rotation (35.264 degrees) to bring the bottom upward, "0" means no rotation,
413
+ * @param topNoneBottom Specifies the ccw rotation around `rightVector` axis. Normally one of "-1", "0", and "1",
414
+ * where "-1" indicates isometric rotation (35.264 degrees) to bring the bottom upward, "0" means no rotation,
400
415
  * and "1" indicates isometric rotation (35.264 degrees) to bring the top downward. Other numbers are
401
416
  * used as multiplier for the 35.264 degree rotation.
402
417
  * @returns matrix = [rightVector, upVector, rightVector cross upVector] with the applied rotations specified
@@ -408,9 +423,11 @@ export declare class Matrix3d implements BeJSONFunctions {
408
423
  * * Default is TOP view (`local X = world X`, `local Y = world Y`, `local Z = world Z`).
409
424
  * * To change view from the TOP to one of the other 7 standard views, we need to multiply "world data" to
410
425
  * the corresponding matrix1 provided by `createStandardWorldToView(index, false)` and then
411
- * `matrix1.multiply(world data)` will returns "local data".
426
+ * `matrix1.multiply(world data)` will return "local data".
412
427
  * * To change view back to the TOP, we need to multiply "local data" to the corresponding matrix2 provided
413
428
  * by `createStandardWorldToView(index, true)` and then `matrix2.multiply(local data)` will returns "world data".
429
+ * * Note: No matter how you rotate the world axis, local X is always pointing right, local Y is always pointing up,
430
+ * and local Z is always pointing toward you.
414
431
  *
415
432
  * @param index standard view index `StandardViewIndex.Top, Bottom, Left, Right, Front, Back, Iso, RightIso`
416
433
  * @param invert if false (default), the return matrix is world to local (view) and if true, the the return
@@ -418,8 +435,27 @@ export declare class Matrix3d implements BeJSONFunctions {
418
435
  * @param result optional result.
419
436
  */
420
437
  static createStandardWorldToView(index: StandardViewIndex, invert?: boolean, result?: Matrix3d): Matrix3d;
438
+ /**
439
+ * Apply (in place) a jacobi update that zeros out this.at(i,j).
440
+ * @param i row index of zeroed member
441
+ * @param j column index of zeroed member
442
+ * @param k other row/column index (different from i and j)
443
+ * @param leftEigenVectors a matrix that its columns will be filled by eigenvectors of this Matrix3d
444
+ * (allocated by caller, computed and filled by this function)
445
+ */
446
+ private applyFastSymmetricJacobiUpdate;
447
+ /**
448
+ * Factor this (symmetrized) as a product U * lambda * UT where U is orthogonal, lambda is diagonal.
449
+ * The upper triangle is mirrored to lower triangle to enforce symmetry.
450
+ * @param leftEigenvectors a matrix that its columns will be filled by eigenvectors of this Matrix3d
451
+ * (allocated by caller, computed and filled by this function)
452
+ * @param lambda a vector that its entries will be filled by eigenvalues of this Matrix3d
453
+ * (allocated by caller, computed and filled by this function)
454
+ */
455
+ fastSymmetricEigenvalues(leftEigenvectors: Matrix3d, lambda: Vector3d): boolean;
421
456
  /**
422
457
  * Compute the (unit vector) axis and angle of rotation.
458
+ * * math details can be found at docs/learning/geometry/Angle.md
423
459
  * @returns Returns axis and angle of rotation with result.ok === true when the conversion succeeded.
424
460
  */
425
461
  getAxisAndAngleOfRotation(): {
@@ -427,25 +463,48 @@ export declare class Matrix3d implements BeJSONFunctions {
427
463
  angle: Angle;
428
464
  ok: boolean;
429
465
  };
466
+ /** Rotate so columns i and j become perpendicular */
467
+ private applyJacobiColumnRotation;
430
468
  /**
431
- * Returns a matrix that rotates from vectorA to vectorB.
469
+ * Factor this as a product C * U where C has mutually perpendicular columns and
470
+ * U is orthogonal.
471
+ * @param matrixC (allocate by caller, computed here)
472
+ * @param matrixU (allocate by caller, computed here)
432
473
  */
433
- static createRotationVectorToVector(vectorA: Vector3d, vectorB: Vector3d, result?: Matrix3d): Matrix3d | undefined;
474
+ factorPerpendicularColumns(matrixC: Matrix3d, matrixU: Matrix3d): boolean;
475
+ /**
476
+ * Factor this matrix M as a product M = V * D * U where V and U are orthogonal, and D is diagonal (scale matrix).
477
+ * @param matrixV left orthogonal factor (allocate by caller, computed here)
478
+ * @param scale diagonal entries of D (allocate by caller, computed here)
479
+ * @param matrixU right orthogonal factor (allocate by caller, computed here)
480
+ */
481
+ factorOrthogonalScaleOrthogonal(matrixV: Matrix3d, scale: Point3d, matrixU: Matrix3d): boolean;
482
+ /** Apply a jacobi step to lambda which evolves towards diagonal. */
483
+ private applySymmetricJacobi;
484
+ /**
485
+ * Factor this (symmetrized) as a product U * lambda * UT where U is orthogonal, lambda is diagonal.
486
+ * The upper triangle is mirrored to lower triangle to enforce symmetry.
487
+ * @param matrixC (allocate by caller, computed here)
488
+ * @param factor (allocate by caller, computed here)
489
+ */
490
+ symmetricEigenvalues(leftEigenvectors: Matrix3d, lambda: Vector3d): boolean;
434
491
  /**
435
492
  * Return a matrix that rotates a fraction of the angular sweep from vectorA to vectorB.
436
493
  * @param vectorA initial vector position
437
- * @param fraction fractional rotation. 1.0 is "all the way"
494
+ * @param fraction fractional rotation (1 means rotate all the way)
438
495
  * @param vectorB final vector position
439
496
  * @param result optional result matrix.
440
497
  */
441
498
  static createPartialRotationVectorToVector(vectorA: Vector3d, fraction: number, vectorB: Vector3d, result?: Matrix3d): Matrix3d | undefined;
499
+ /** Returns a matrix that rotates from vectorA to vectorB. */
500
+ static createRotationVectorToVector(vectorA: Vector3d, vectorB: Vector3d, result?: Matrix3d): Matrix3d | undefined;
442
501
  /** Create a 90 degree rotation around a principal axis */
443
502
  static create90DegreeRotationAroundAxis(axisIndex: number): Matrix3d;
444
503
  /** Return (a copy of) the X column */
445
504
  columnX(result?: Vector3d): Vector3d;
446
- /** Return (a copy of)the Y column */
505
+ /** Return (a copy of) the Y column */
447
506
  columnY(result?: Vector3d): Vector3d;
448
- /** Return (a copy of)the Z column */
507
+ /** Return (a copy of) the Z column */
449
508
  columnZ(result?: Vector3d): Vector3d;
450
509
  /** Return the X column magnitude squared */
451
510
  columnXMagnitudeSquared(): number;
@@ -461,18 +520,17 @@ export declare class Matrix3d implements BeJSONFunctions {
461
520
  columnZMagnitude(): number;
462
521
  /** Return magnitude of columnX cross columnY. */
463
522
  columnXYCrossProductMagnitude(): number;
464
- /** Return the X row magnitude d */
523
+ /** Return the X row magnitude */
465
524
  rowXMagnitude(): number;
466
525
  /** Return the Y row magnitude */
467
526
  rowYMagnitude(): number;
468
527
  /** Return the Z row magnitude */
469
528
  rowZMagnitude(): number;
470
529
  /** Return the dot product of column X with column Y */
471
- /** Return the dot product of column X with column Y */
472
530
  columnXDotColumnY(): number;
473
531
  /**
474
532
  * Dot product of an indexed column with a vector given as x,y,z
475
- * @param columnIndex index of column. Must be 0,1,2
533
+ * @param columnIndex index of column. Must be 0,1,2.
476
534
  * @param x x component of vector
477
535
  * @param y y component of vector
478
536
  * @param z z component of vector
@@ -502,59 +560,9 @@ export declare class Matrix3d implements BeJSONFunctions {
502
560
  dotRowYXYZ(x: number, y: number, z: number): number;
503
561
  /** Return the dot product of the x,y,z with the Z row. */
504
562
  dotRowZXYZ(x: number, y: number, z: number): number;
505
- /** Return the (vector) cross product of the Z column with the vector parameter. */
563
+ /** Return the cross product of the Z column with the vector parameter. */
506
564
  columnZCrossVector(vector: XYZ, result?: Vector3d): Vector3d;
507
- private applyGivensRowOp;
508
- /**
509
- * create a rigid coordinate frame column z parallel to (_x_,_y_,_z_) and column x in the xy plane.
510
- * * column z points from origin to x,y,z
511
- * * column x is perpendicular and in the xy plane
512
- * * column y is perpendicular to both. It is the "up" vector on the view plane.
513
- * * Multiplying a world vector times the transpose of this matrix transforms into the view xy
514
- * * Multiplying the matrix times the an in-view vector transforms the vector to world.
515
- * @param x eye x coordinate
516
- * @param y eye y coordinate
517
- * @param z eye z coordinate
518
- * @param result
519
- */
520
- static createRigidViewAxesZTowardsEye(x: number, y: number, z: number, result?: Matrix3d): Matrix3d;
521
- /** Rotate so columns i and j become perpendicular */
522
- private applyJacobiColumnRotation;
523
- /**
524
- * Factor this as a product C * U where C has mutually perpendicular columns and
525
- * U is orthogonal.
526
- * @param matrixC (allocate by caller, computed here)
527
- * @param matrixU (allocate by caller, computed here)
528
- */
529
- factorPerpendicularColumns(matrixC: Matrix3d, matrixU: Matrix3d): boolean;
530
- /**
531
- * Factor this matrix M as a product M = V * D * U where V and U are orthogonal, and D is diagonal (scale matrix).
532
- * @param matrixV left orthogonal factor (allocate by caller, computed here)
533
- * @param scale diagonal entries of D (allocate by caller, computed here)
534
- * @param matrixU right orthogonal factor (allocate by caller, computed here)
535
- */
536
- factorOrthogonalScaleOrthogonal(matrixV: Matrix3d, scale: Point3d, matrixU: Matrix3d): boolean;
537
- /** Apply a jacobi step to lambda which evolves towards diagonal. */
538
- private applySymmetricJacobi;
539
- /**
540
- * Factor this (symmetrized) as a product U * lambda * UT where U is orthogonal, lambda is diagonal.
541
- * The upper triangle is mirrored to lower triangle to enforce symmetry.
542
- * @param matrixC (allocate by caller, computed here)
543
- * @param factor (allocate by caller, computed here)
544
- */
545
- symmetricEigenvalues(leftEigenvectors: Matrix3d, lambda: Vector3d): boolean;
546
- /** Apply (in place a jacobi update that zeros out this.at(i,j).
547
- *
548
- */
549
- private applyFastSymmetricJacobiUpdate;
550
- /**
551
- * Factor this (symmetrized) as a product U * lambda * UT where U is orthogonal, lambda is diagonal.
552
- * The upper triangle is mirrored to lower triangle to enforce symmetry.
553
- * @param matrixC (allocate by caller, computed here)
554
- * @param factor (allocate by caller, computed here)
555
- */
556
- fastSymmetricEigenvalues(leftEigenvectors: Matrix3d, lambda: Vector3d): boolean;
557
- /** Install data from xyz parts of Point4d (w part of Point4d ignored) */
565
+ /** Set data from xyz parts of Point4d (w part of Point4d ignored) */
558
566
  setColumnsPoint4dXYZ(vectorU: Point4d, vectorV: Point4d, vectorW: Point4d): void;
559
567
  /**
560
568
  * Set entries in one column of the matrix.
@@ -562,40 +570,57 @@ export declare class Matrix3d implements BeJSONFunctions {
562
570
  * @param value x,yz, values for column. If undefined, zeros are installed.
563
571
  */
564
572
  setColumn(columnIndex: number, value: Vector3d | undefined): void;
565
- /** Set all columns of the matrix. Any undefined vector is zeros. */
566
- setColumns(vectorX: Vector3d | undefined, vectorY: Vector3d | undefined, vectorZ?: Vector3d | undefined): void;
567
573
  /**
568
- * set entries in one row of the matrix.
569
- * @param rowIndex row index. this is interpreted cyclically.
570
- * @param value x,yz, values for row. If undefined, zeros are installed.
574
+ * Set all columns of the matrix. Any undefined vector is zeros.
575
+ * @param vectorX values for column 0
576
+ * @param vectorY values for column 1
577
+ * @param vectorZ optional values for column 2 (it's optional in case column 2 is 000, which is a
578
+ * projection onto the xy-plane)
579
+ */
580
+ setColumns(vectorX: Vector3d | undefined, vectorY: Vector3d | undefined, vectorZ?: Vector3d): void;
581
+ /**
582
+ * Set entries in one row of the matrix.
583
+ * @param rowIndex row index. This is interpreted cyclically (using Geometry.cyclic3dAxis).
584
+ * @param value x,y,z values for row.
571
585
  */
572
586
  setRow(rowIndex: number, value: Vector3d): void;
573
- /** Return a (copy of) a column of the matrix.
574
- * @param i column index. This is corrected to 012 by Geometry.cyclic3dAxis.
587
+ /**
588
+ * Return (a copy of) a column of the matrix.
589
+ * @param i column index. This is interpreted cyclically (using Geometry.cyclic3dAxis).
590
+ * @param result optional preallocated result.
575
591
  */
576
592
  getColumn(columnIndex: number, result?: Vector3d): Vector3d;
577
- /** Return a (copy of) a row of the matrix.
578
- * @param i row index. This is corrected to 012 by Geometry.cyclic3dAxis.
593
+ /**
594
+ * Return a (copy of) a row of the matrix.
595
+ * @param i row index. This is interpreted cyclically (using Geometry.cyclic3dAxis).
596
+ * @param result optional preallocated result.
579
597
  */
580
598
  getRow(columnIndex: number, result?: Vector3d): Vector3d;
581
- /** Create a matrix from row vectors.
599
+ /**
600
+ * Create a matrix from row vectors.
582
601
  * ```
583
602
  * equation
584
603
  * \begin{bmatrix}U_x & U_y & U_z \\ V_x & V_y & V_z \\ W_x & W_y & W_z \end{bmatrix}
585
604
  * ```
586
605
  */
587
606
  static createRows(vectorU: Vector3d, vectorV: Vector3d, vectorW: Vector3d, result?: Matrix3d): Matrix3d;
588
- /** Create a matrix that scales along a specified direction.
589
- * * The scale factor can be negative.
590
- * * A scale of -1.0 (negative one) is a mirror across the plane perpendicular to the vector.
607
+ /**
608
+ * Create a matrix that scales along a specified `direction`. This means if you multiply the returned matrix
609
+ * by a `vector`, you get `directional scale` of that `vector`. Suppose `plane` is the plane perpendicular
610
+ * to the `direction`. When scale = 0, `directional scale` is projection of the `vector` to the `plane`.
611
+ * When scale = 1, `directional scale` is the `vector` itself. When scale = -1, `directional scale` is
612
+ * mirror of the `vector` across the `plane`. In general, When scale != 0, the result is computed by first
613
+ * projecting the `vector` to the `plane`, then translating that projection along the `direction` (if scale > 0)
614
+ * or in opposite direction (if scale < 0).
591
615
  * ```
592
616
  * equation
593
- * \text{The matrix is } I - (s-1) U U^T
594
- * \\ \text{with }U\text{ being the unit vector in the direction of the input vector.}
617
+ * \text{The matrix is } I + (s-1) D D^T
618
+ * \\ \text{with }D\text{ being the normalized direction vector and }s\text{ being the scale.}
595
619
  * ```
596
620
  */
597
621
  static createDirectionalScale(direction: Vector3d, scale: number, result?: Matrix3d): Matrix3d;
598
- /** Multiply the matrix * vector, treating the vector is a column vector on the right.
622
+ /**
623
+ * Multiply `matrix * vector`, treating the vector is a column vector on the right.
599
624
  * ```
600
625
  * equation
601
626
  * \matrixXY{A}\columnSubXYZ{U}
@@ -603,54 +628,67 @@ export declare class Matrix3d implements BeJSONFunctions {
603
628
  * @return the vector result
604
629
  */
605
630
  multiplyVector(vectorU: XYAndZ, result?: Vector3d): Vector3d;
606
- /** Multiply matrix * vector for each array member, i.e. the vector is a column vector on the right.
607
- * @return the vector result
631
+ /**
632
+ * Multiply `matrix * vector` in place for vector in the array, i.e. treating the vector is a column
633
+ * vector on the right.
634
+ * * Each `vector` is updated to be `matrix * vector`
608
635
  */
609
636
  multiplyVectorArrayInPlace(data: XYZ[]): void;
610
- /** compute `origin - matrix * vector` */
637
+ /** Compute `origin - matrix * vector` */
611
638
  static xyzMinusMatrixTimesXYZ(origin: XYAndZ, matrix: Matrix3d, vector: XYAndZ, result?: Point3d): Point3d;
612
- /** compute `origin + matrix * vector` using only the xy parts of the inputs. */
639
+ /** Compute `origin + matrix * vector` using only the xy parts of the inputs. */
613
640
  static xyPlusMatrixTimesXY(origin: XAndY, matrix: Matrix3d, vector: XAndY, result?: Point2d): Point2d;
614
- /** compute `origin + matrix * vector` using all xyz parts of the inputs. */
641
+ /** Compute `origin + matrix * vector` using all xyz parts of the inputs. */
615
642
  static xyzPlusMatrixTimesXYZ(origin: XYZ, matrix: Matrix3d, vector: XYAndZ, result?: Point3d): Point3d;
616
- /** compute `origin + matrix * vector` using all xyz parts of the inputs. */
643
+ /** Updates vector to be `origin + matrix * vector` using all xyz parts of the inputs. */
617
644
  static xyzPlusMatrixTimesXYZInPlace(origin: XYZ, matrix: Matrix3d, vector: WritableXYAndZ): void;
618
- /** compute `origin + matrix * vector` where the final vector is given as direct x,y,z coordinates */
645
+ /** Compute `origin + matrix * vector` where the final vector is given as direct x,y,z coordinates */
619
646
  static xyzPlusMatrixTimesCoordinates(origin: XYZ, matrix: Matrix3d, x: number, y: number, z: number, result?: Point3d): Point3d;
620
647
  /**
621
648
  * Treat the 3x3 matrix and origin as upper 3x4 part of a 4x4 matrix, with 0001 as the final row.
622
- * Multiply times point with coordinates `[x,y,z,w]`
649
+ * Multiply the 4x4 matrix by `[x,y,z,w]`
650
+ * ```
651
+ * equation
652
+ * \begin{bmatrix}M_0 & M_1 & M_2 & Ox \\ M_3 & M_4 & M_5 & Oy \\ M_6 & M_7 & M_8 & Oz \\ 0 & 0 & 0 & 1\end{bmatrix} * \begin{bmatrix}x \\ y \\ z \\ w\end{bmatrix}
653
+ * ```
623
654
  * @param origin translation part (xyz in column 3)
624
655
  * @param matrix matrix part (leading 3x3)
625
656
  * @param x x part of multiplied point
626
657
  * @param y y part of multiplied point
627
658
  * @param z z part of multiplied point
628
659
  * @param w w part of multiplied point
629
- * @param result optional result.
660
+ * @param result optional preallocated result.
630
661
  */
631
662
  static xyzPlusMatrixTimesWeightedCoordinates(origin: XYZ, matrix: Matrix3d, x: number, y: number, z: number, w: number, result?: Point4d): Point4d;
632
663
  /**
633
664
  * Treat the 3x3 matrix and origin as upper 3x4 part of a 4x4 matrix, with 0001 as the final row.
634
- * Multiply times point with coordinates `[x,y,z,w]`
665
+ * Multiply the 4x4 matrix by `[x,y,z,w]`
666
+ * ```
667
+ * equation
668
+ * \begin{bmatrix}M_0 & M_1 & M_2 & Ox \\ M_3 & M_4 & M_5 & Oy \\ M_6 & M_7 & M_8 & Oz \\ 0 & 0 & 0 & 1\end{bmatrix} * \begin{bmatrix}x \\ y \\ z \\ w\end{bmatrix}
669
+ * ```
635
670
  * @param origin translation part (xyz in column 3)
636
671
  * @param matrix matrix part (leading 3x3)
637
672
  * @param x x part of multiplied point
638
673
  * @param y y part of multiplied point
639
674
  * @param z z part of multiplied point
640
675
  * @param w w part of multiplied point
641
- * @param result optional result.
676
+ * @param result optional preallocated result.
642
677
  */
643
678
  static xyzPlusMatrixTimesWeightedCoordinatesToFloat64Array(origin: XYZ, matrix: Matrix3d, x: number, y: number, z: number, w: number, result?: Float64Array): Float64Array;
644
679
  /**
645
- * Treat the 3x3 matrix and origin as upper 3x4 part of a 4x4 matrix, with 0001 as the final row.
646
- * Multiply times point with coordinates `[x,y,z,w]`
680
+ * Treat the 3x3 matrix and origin as a 3x4 matrix.
681
+ * * Multiply the 3x4 matrix by `[x,y,z,1]`
682
+ * ```
683
+ * equation
684
+ * \begin{bmatrix}M_0 & M_1 & M_2 & Ox \\ M_3 & M_4 & M_5 & Oy \\ M_6 & M_7 & M_8 & Oz\end{bmatrix} * \begin{bmatrix}x \\ y \\ z \\ 1\end{bmatrix}
685
+ * ```
647
686
  * @param origin translation part (xyz in column 3)
648
687
  * @param matrix matrix part (leading 3x3)
649
688
  * @param x x part of multiplied point
650
689
  * @param y y part of multiplied point
651
690
  * @param z z part of multiplied point
652
- * @param w w part of multiplied point
653
- * @param result optional result.
691
+ * @param result optional preallocated result.
654
692
  */
655
693
  static xyzPlusMatrixTimesCoordinatesToFloat64Array(origin: XYZ, matrix: Matrix3d, x: number, y: number, z: number, result?: Float64Array): Float64Array;
656
694
  /**
@@ -846,7 +884,7 @@ export declare class Matrix3d implements BeJSONFunctions {
846
884
  * @param scaleX scale factor for column x
847
885
  * @param scaleY scale factor for column y
848
886
  * @param scaleZ scale factor for column z
849
- * @param result optional result.
887
+ * @param result optional preallocated result.
850
888
  */
851
889
  scaleColumns(scaleX: number, scaleY: number, scaleZ: number, result?: Matrix3d): Matrix3d;
852
890
  /** Scale the columns of this Matrix3d.
@@ -859,7 +897,7 @@ export declare class Matrix3d implements BeJSONFunctions {
859
897
  * @param scaleX scale factor for row x
860
898
  * @param scaleY scale factor for row y
861
899
  * @param scaleZ scale factor for row z
862
- * @param result optional result.
900
+ * @param result optional preallocated result.
863
901
  */
864
902
  scaleRows(scaleX: number, scaleY: number, scaleZ: number, result?: Matrix3d): Matrix3d;
865
903
  /**
@@ -886,10 +924,25 @@ export declare class Matrix3d implements BeJSONFunctions {
886
924
  addScaledOuterProductInPlace(vectorU: Vector3d, vectorV: Vector3d, scale: number): void;
887
925
  /** create a Matrix3d whose values are uniformly scaled from this.
888
926
  * @param scale scale factor to apply.
889
- * @param result optional result.
927
+ * @param result optional preallocated result.
890
928
  * @returns Return the new or repopulated matrix
891
929
  */
892
930
  scale(scale: number, result?: Matrix3d): Matrix3d;
931
+ /**
932
+ * Create a rigid matrix (columns and rows are unit length and pairwise perpendicular) for
933
+ * the given eye coordinate.
934
+ * * column z is parallel to x,y,z
935
+ * * column x is perpendicular to column z and is in the xy plane
936
+ * * column y is perpendicular to both. It is the "up" vector on the view plane.
937
+ * * Multiplying the returned matrix times a local (view) vector gives the world vector.
938
+ * * Multiplying transpose of the returned matrix times a world vector gives the local
939
+ * (view) vector.
940
+ * @param x eye x coordinate
941
+ * @param y eye y coordinate
942
+ * @param z eye z coordinate
943
+ * @param result optional preallocated result
944
+ */
945
+ static createRigidViewAxesZTowardsEye(x: number, y: number, z: number, result?: Matrix3d): Matrix3d;
893
946
  /** Return the determinant of this matrix. */
894
947
  determinant(): number;
895
948
  /** Return an estimate of how independent the columns are. Near zero is bad. Near 1 is good
@@ -1 +1 @@
1
- {"version":3,"file":"Matrix3d.d.ts","sourceRoot":"","sources":["../../../src/geometry3d/Matrix3d.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Matrix3d.d.ts","sourceRoot":"","sources":["../../../src/geometry3d/Matrix3d.ts"],"names":[],"mappings":"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"}