@itwin/core-geometry 4.0.0-dev.39 → 4.0.0-dev.40
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/Geometry.d.ts +7 -6
- package/lib/cjs/Geometry.d.ts.map +1 -1
- package/lib/cjs/Geometry.js +7 -6
- package/lib/cjs/Geometry.js.map +1 -1
- package/lib/cjs/geometry3d/Matrix3d.d.ts +86 -38
- package/lib/cjs/geometry3d/Matrix3d.d.ts.map +1 -1
- package/lib/cjs/geometry3d/Matrix3d.js +183 -130
- package/lib/cjs/geometry3d/Matrix3d.js.map +1 -1
- package/lib/cjs/geometry3d/OrderedRotationAngles.d.ts +1 -0
- package/lib/cjs/geometry3d/OrderedRotationAngles.d.ts.map +1 -1
- package/lib/cjs/geometry3d/OrderedRotationAngles.js +1 -0
- package/lib/cjs/geometry3d/OrderedRotationAngles.js.map +1 -1
- package/lib/cjs/geometry3d/Point3dVector3d.d.ts.map +1 -1
- package/lib/cjs/geometry3d/Point3dVector3d.js.map +1 -1
- package/lib/esm/Geometry.d.ts +7 -6
- package/lib/esm/Geometry.d.ts.map +1 -1
- package/lib/esm/Geometry.js +7 -6
- package/lib/esm/Geometry.js.map +1 -1
- package/lib/esm/geometry3d/Matrix3d.d.ts +86 -38
- package/lib/esm/geometry3d/Matrix3d.d.ts.map +1 -1
- package/lib/esm/geometry3d/Matrix3d.js +183 -130
- package/lib/esm/geometry3d/Matrix3d.js.map +1 -1
- package/lib/esm/geometry3d/OrderedRotationAngles.d.ts +1 -0
- package/lib/esm/geometry3d/OrderedRotationAngles.d.ts.map +1 -1
- package/lib/esm/geometry3d/OrderedRotationAngles.js +1 -0
- package/lib/esm/geometry3d/OrderedRotationAngles.js.map +1 -1
- package/lib/esm/geometry3d/Point3dVector3d.d.ts.map +1 -1
- package/lib/esm/geometry3d/Point3dVector3d.js.map +1 -1
- package/package.json +3 -3
|
@@ -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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"}
|
|
@@ -12,7 +12,7 @@ import { Point2d } from "./Point2dVector2d";
|
|
|
12
12
|
import { Point3d, Vector3d } from "./Point3dVector3d";
|
|
13
13
|
import { Transform } from "./Transform";
|
|
14
14
|
/* eslint-disable @itwin/prefer-get */
|
|
15
|
-
// cSpell:words XXYZ YXYZ ZXYZ SaeedTorabi arctan newcommand
|
|
15
|
+
// cSpell:words XXYZ YXYZ ZXYZ SaeedTorabi arctan newcommand diagonalization
|
|
16
16
|
/**
|
|
17
17
|
* PackedMatrix3dOps contains static methods for matrix operations where the matrix is a Float64Array.
|
|
18
18
|
* * The Float64Array contains the matrix entries in row-major order
|
|
@@ -665,7 +665,14 @@ export class Matrix3d {
|
|
|
665
665
|
}
|
|
666
666
|
return Matrix3d.createIdentity(result);
|
|
667
667
|
}
|
|
668
|
-
/**
|
|
668
|
+
/**
|
|
669
|
+
* Return the matrix for rotation of `angle` around desired `axis`
|
|
670
|
+
* * Visualization can be found at https://www.itwinjs.org/sandbox/SaeedTorabi/CubeRotationAroundAnAxis
|
|
671
|
+
* @param axis the axis of rotation
|
|
672
|
+
* @param angle the angle of rotation
|
|
673
|
+
* @param result caller-allocated matrix (optional)
|
|
674
|
+
* @returns the `rotation matrix` or `undefined` (if axis magnitude is near zero).
|
|
675
|
+
*/
|
|
669
676
|
static createRotationAroundVector(axis, angle, result) {
|
|
670
677
|
// Rodriguez formula (matrix form), https://mathworld.wolfram.com/RodriguesRotationFormula.html
|
|
671
678
|
const c = angle.cos();
|
|
@@ -881,63 +888,143 @@ export class Matrix3d {
|
|
|
881
888
|
return result;
|
|
882
889
|
}
|
|
883
890
|
/**
|
|
884
|
-
* Apply (in place) a jacobi
|
|
891
|
+
* Apply (in place) a jacobi eigenvalue algorithm.
|
|
885
892
|
* @param i row index of zeroed member
|
|
886
893
|
* @param j column index of zeroed member
|
|
887
|
-
* @param
|
|
888
|
-
*
|
|
889
|
-
*
|
|
894
|
+
* @param leftEigenvectors a matrix that its columns will be filled by the left eigenvectors of `this` Matrix3d
|
|
895
|
+
* (allocated by caller, computed and filled by this function). Note that columns of leftEigenVectors will be
|
|
896
|
+
* mutually perpendicular because `this` matrix is symmetric.
|
|
897
|
+
* @param lambda a matrix that its diagonal entries will be filled by eigenvalues and its non-diagonal elements
|
|
898
|
+
* converge to 0 (allocated by caller, computed and filled by this function).
|
|
899
|
+
*/
|
|
900
|
+
applySymmetricJacobi(i, j, leftEigenvectors, lambda) {
|
|
901
|
+
const sii = lambda.at(i, i);
|
|
902
|
+
const sjj = lambda.at(j, j);
|
|
903
|
+
const sij = lambda.at(i, j);
|
|
904
|
+
if (Math.abs(sij) < 1.0e-15 * (sii + sjj))
|
|
905
|
+
return 0.0;
|
|
906
|
+
const jacobi = Angle.trigValuesToHalfAngleTrigValues(sii - sjj, 2.0 * sij);
|
|
907
|
+
const c = jacobi.c;
|
|
908
|
+
const s = jacobi.s;
|
|
909
|
+
/**
|
|
910
|
+
* The following check does not exist in applyFastSymmetricJacobi because here if we don't return
|
|
911
|
+
* early, the matrix remains untouched. However, applyFastSymmetricJacobi zeroes-out elements ij
|
|
912
|
+
* and ji. Therefore, if we return early in applyFastSymmetricJacobi, zeroing-out wont happen.
|
|
913
|
+
*/
|
|
914
|
+
if (Math.abs(s) < 2.0e-15)
|
|
915
|
+
return 0.0;
|
|
916
|
+
/**
|
|
917
|
+
* If you apply the following 2 lines to a symmetric matrix, you get same lines used in
|
|
918
|
+
* applyFastSymmetricJacobi. There are 2 differences which make applyFastSymmetricJacobi
|
|
919
|
+
* more efficient. First, we directly set elements ij and ji equal to zero rather than
|
|
920
|
+
* calculation them. Second, we copy symmetric elements from upper triangle to lower
|
|
921
|
+
* instead of calculating them.
|
|
922
|
+
*/
|
|
923
|
+
lambda.applyGivensRowOp(i, j, c, s);
|
|
924
|
+
lambda.applyGivensColumnOp(i, j, c, s);
|
|
925
|
+
leftEigenvectors.applyGivensColumnOp(i, j, c, s);
|
|
926
|
+
return Math.abs(sij);
|
|
927
|
+
}
|
|
928
|
+
/**
|
|
929
|
+
* Factor `this` matrix as a product `U * lambda * UT` where `U` is an orthogonal matrix and `lambda`
|
|
930
|
+
* is a diagonal matrix.
|
|
931
|
+
*
|
|
932
|
+
* * **Note 1:** You must apply this function to a `symmetric` matrix. Otherwise, the lower triangle is ignored
|
|
933
|
+
* and the upper triangle is mirrored to the lower triangle to enforce symmetry.
|
|
934
|
+
* * **Note 2:** This function is replaced by a faster method called `fastSymmetricEigenvalues` so consider
|
|
935
|
+
* using the fast version instead.
|
|
936
|
+
* @param leftEigenvectors a matrix that its columns will be filled by the left eigenvectors of `this` Matrix3d
|
|
937
|
+
* (allocated by caller, computed and filled by this function). Note that columns of leftEigenVectors will be
|
|
938
|
+
* mutually perpendicular because `this` matrix is symmetric.
|
|
939
|
+
* @param lambda a vector that its entries will be filled by eigenvalues of `this` Matrix3d (allocated by
|
|
940
|
+
* caller, computed and filled by this function).
|
|
890
941
|
*/
|
|
891
|
-
|
|
942
|
+
symmetricEigenvalues(leftEigenvectors, lambda) {
|
|
943
|
+
const matrix = this.clone();
|
|
944
|
+
leftEigenvectors.setIdentity();
|
|
945
|
+
matrix.coffs[3] = matrix.coffs[1];
|
|
946
|
+
matrix.coffs[6] = matrix.coffs[2];
|
|
947
|
+
matrix.coffs[7] = matrix.coffs[5];
|
|
948
|
+
const tolerance = 1.0e-12 * this.sumSquares();
|
|
949
|
+
const numberOfIterations = 7;
|
|
950
|
+
for (let iteration = 0; iteration < numberOfIterations; iteration++) {
|
|
951
|
+
const sum = this.applySymmetricJacobi(0, 1, leftEigenvectors, matrix)
|
|
952
|
+
+ this.applySymmetricJacobi(0, 2, leftEigenvectors, matrix)
|
|
953
|
+
+ this.applySymmetricJacobi(1, 2, leftEigenvectors, matrix);
|
|
954
|
+
if (sum < tolerance) {
|
|
955
|
+
lambda.set(matrix.at(0, 0), matrix.at(1, 1), matrix.at(2, 2));
|
|
956
|
+
return true;
|
|
957
|
+
}
|
|
958
|
+
}
|
|
959
|
+
return false;
|
|
960
|
+
}
|
|
961
|
+
/**
|
|
962
|
+
* Apply (in place) a jacobi eigenvalue algorithm that diagonalize `this` matrix, i.e., zeros out this.at(i,j).
|
|
963
|
+
* * During diagonalization, the upper triangle is mirrored to lower triangle to enforce symmetry.
|
|
964
|
+
* * Math details can be found at docs/learning/geometry/Matrix.md
|
|
965
|
+
* @param i row index of zeroed member.
|
|
966
|
+
* @param j column index of zeroed member.
|
|
967
|
+
* @param k other row/column index (different from i and j).
|
|
968
|
+
* @param leftEigenVectors a matrix that its columns will be filled by the left eigenvectors of `this` Matrix3d
|
|
969
|
+
* (allocated by caller, computed and filled by this function). Note that columns of leftEigenVectors will be
|
|
970
|
+
* mutually perpendicular because `this` matrix is symmetric.
|
|
971
|
+
*/
|
|
972
|
+
applyFastSymmetricJacobi(i, j, k, leftEigenVectors) {
|
|
892
973
|
const indexII = 4 * i;
|
|
893
974
|
const indexJJ = 4 * j;
|
|
894
975
|
const indexIJ = 3 * i + j;
|
|
976
|
+
const indexJI = 3 * j + i;
|
|
895
977
|
const indexIK = 3 * i + k;
|
|
978
|
+
const indexKI = 3 * k + i;
|
|
896
979
|
const indexJK = 3 * j + k;
|
|
897
|
-
const
|
|
898
|
-
const
|
|
899
|
-
const
|
|
900
|
-
const
|
|
901
|
-
if (Math.abs(
|
|
980
|
+
const indexKJ = 3 * k + j;
|
|
981
|
+
const sii = this.coffs[indexII];
|
|
982
|
+
const sjj = this.coffs[indexJJ];
|
|
983
|
+
const sij = this.coffs[indexIJ];
|
|
984
|
+
if (Math.abs(sij) < 1.0e-15 * (sii + sjj))
|
|
902
985
|
return 0.0;
|
|
986
|
+
const jacobi = Angle.trigValuesToHalfAngleTrigValues(sii - sjj, 2.0 * sij);
|
|
903
987
|
const c = jacobi.c;
|
|
904
988
|
const s = jacobi.s;
|
|
905
989
|
const cc = c * c;
|
|
906
990
|
const ss = s * s;
|
|
907
991
|
const sc2 = 2.0 * c * s;
|
|
908
|
-
this.coffs[indexII] = cc *
|
|
909
|
-
this.coffs[indexJJ] = ss *
|
|
992
|
+
this.coffs[indexII] = cc * sii + sc2 * sij + ss * sjj;
|
|
993
|
+
this.coffs[indexJJ] = ss * sii - sc2 * sij + cc * sjj;
|
|
910
994
|
this.coffs[indexIJ] = 0.0;
|
|
995
|
+
this.coffs[indexJI] = 0.0;
|
|
911
996
|
const a = this.coffs[indexIK];
|
|
912
997
|
const b = this.coffs[indexJK];
|
|
913
|
-
this.coffs[indexIK] =
|
|
998
|
+
this.coffs[indexIK] = c * a + s * b;
|
|
914
999
|
this.coffs[indexJK] = -s * a + c * b;
|
|
915
|
-
this.coffs[
|
|
916
|
-
this.coffs[
|
|
917
|
-
this.coffs[3 * k + j] = this.coffs[indexJK];
|
|
1000
|
+
this.coffs[indexKI] = this.coffs[indexIK];
|
|
1001
|
+
this.coffs[indexKJ] = this.coffs[indexJK];
|
|
918
1002
|
leftEigenVectors.applyGivensColumnOp(i, j, c, s);
|
|
919
|
-
return Math.abs(
|
|
1003
|
+
return Math.abs(sij);
|
|
920
1004
|
}
|
|
921
1005
|
/**
|
|
922
|
-
* Factor this
|
|
923
|
-
*
|
|
924
|
-
*
|
|
925
|
-
*
|
|
926
|
-
*
|
|
927
|
-
*
|
|
1006
|
+
* Factor `this` matrix as a product `U * lambda * UT` where `U` is an orthogonal matrix and `lambda`
|
|
1007
|
+
* is a diagonal matrix.
|
|
1008
|
+
*
|
|
1009
|
+
* * **Note:** You must apply this function to a `symmetric` matrix. Otherwise, the lower triangle is ignored
|
|
1010
|
+
* and the upper triangle is mirrored to the lower triangle to enforce symmetry.
|
|
1011
|
+
* * Math details can be found at docs/learning/geometry/Matrix.md
|
|
1012
|
+
* @param leftEigenvectors a matrix that its columns will be filled by the left eigenvectors of `this` Matrix3d
|
|
1013
|
+
* (allocated by caller, computed and filled by this function). Note that columns of leftEigenVectors will be
|
|
1014
|
+
* mutually perpendicular because `this` matrix is symmetric.
|
|
1015
|
+
* @param lambda a vector that its entries will be filled by eigenvalues of `this` Matrix3d (allocated by
|
|
1016
|
+
* caller, computed and filled by this function).
|
|
928
1017
|
*/
|
|
929
1018
|
fastSymmetricEigenvalues(leftEigenvectors, lambda) {
|
|
930
1019
|
const matrix = this.clone();
|
|
931
1020
|
leftEigenvectors.setIdentity();
|
|
932
1021
|
const tolerance = 1.0e-12 * this.sumSquares();
|
|
933
|
-
|
|
934
|
-
|
|
935
|
-
|
|
936
|
-
+ matrix.
|
|
937
|
-
|
|
938
|
-
// console.log ("sum", sum);
|
|
1022
|
+
const numberOfIterations = 7;
|
|
1023
|
+
for (let iteration = 0; iteration < numberOfIterations; iteration++) {
|
|
1024
|
+
const sum = matrix.applyFastSymmetricJacobi(0, 1, 2, leftEigenvectors)
|
|
1025
|
+
+ matrix.applyFastSymmetricJacobi(0, 2, 1, leftEigenvectors)
|
|
1026
|
+
+ matrix.applyFastSymmetricJacobi(1, 2, 0, leftEigenvectors);
|
|
939
1027
|
if (sum < tolerance) {
|
|
940
|
-
// console.log("symmetric iterations", iteration);
|
|
941
1028
|
lambda.set(matrix.at(0, 0), matrix.at(1, 1), matrix.at(2, 2));
|
|
942
1029
|
return true;
|
|
943
1030
|
}
|
|
@@ -945,8 +1032,8 @@ export class Matrix3d {
|
|
|
945
1032
|
return false;
|
|
946
1033
|
}
|
|
947
1034
|
/**
|
|
948
|
-
* Compute the (unit vector) axis and angle
|
|
949
|
-
* *
|
|
1035
|
+
* Compute the (unit vector) axis and angle for the rotation generated by `this` Matrix3d.
|
|
1036
|
+
* * Math details can be found at docs/learning/geometry/Angle.md
|
|
950
1037
|
* @returns Returns axis and angle of rotation with result.ok === true when the conversion succeeded.
|
|
951
1038
|
*/
|
|
952
1039
|
getAxisAndAngleOfRotation() {
|
|
@@ -972,7 +1059,7 @@ export class Matrix3d {
|
|
|
972
1059
|
* 2x^2-1 2xy 2xz
|
|
973
1060
|
* 2xy 2y^2-1 2yz
|
|
974
1061
|
* 2xz 2yz 2z^2-1
|
|
975
|
-
* Note that the matrix is symmetric.
|
|
1062
|
+
* Note that the matrix is "symmetric".
|
|
976
1063
|
* If rotation is around one the standard basis then non-diagonal entries become 0 and we
|
|
977
1064
|
* have one 1 and two -1s on the diagonal.
|
|
978
1065
|
* If rotation is around an axis other than standard basis, then the axis is the eigenvector
|
|
@@ -994,7 +1081,7 @@ export class Matrix3d {
|
|
|
994
1081
|
// Look for eigenvector with eigenvalue = 1
|
|
995
1082
|
const eigenvectors = Matrix3d.createIdentity();
|
|
996
1083
|
const eigenvalues = Vector3d.create(0, 0, 0);
|
|
997
|
-
if (this.fastSymmetricEigenvalues(eigenvectors, eigenvalues)) {
|
|
1084
|
+
if (this.fastSymmetricEigenvalues(eigenvectors, eigenvalues)) { // note: this matrix is "symmetric"
|
|
998
1085
|
for (let axisIndex = 0; axisIndex < 2; axisIndex++) {
|
|
999
1086
|
const lambda = eigenvalues.at(axisIndex);
|
|
1000
1087
|
if (Geometry.isAlmostEqualNumber(1, lambda))
|
|
@@ -1015,53 +1102,67 @@ export class Matrix3d {
|
|
|
1015
1102
|
};
|
|
1016
1103
|
return result;
|
|
1017
1104
|
}
|
|
1018
|
-
/**
|
|
1105
|
+
/**
|
|
1106
|
+
* Rotate columns i and j of `this` matrix to make them perpendicular using the angle that zero-out
|
|
1107
|
+
* `thisTranspose * this`.
|
|
1108
|
+
* @param i row index of zeroed member.
|
|
1109
|
+
* @param j column index of zeroed member.
|
|
1110
|
+
* @param matrixU a matrix that its columns will be filled by the right eigenvectors of `thisTranspose * this`
|
|
1111
|
+
* (allocated by caller, computed and filled by this function). Note that columns of matrixU will be mutually
|
|
1112
|
+
* perpendicular because `thisTranspose * this` matrix is symmetric.
|
|
1113
|
+
*/
|
|
1019
1114
|
applyJacobiColumnRotation(i, j, matrixU) {
|
|
1020
|
-
const uDotU = this.coffs[i] * this.coffs[i]
|
|
1021
|
-
|
|
1022
|
-
|
|
1023
|
-
|
|
1024
|
-
|
|
1115
|
+
const uDotU = this.coffs[i] * this.coffs[i]
|
|
1116
|
+
+ this.coffs[i + 3] * this.coffs[i + 3]
|
|
1117
|
+
+ this.coffs[i + 6] * this.coffs[i + 6];
|
|
1118
|
+
const vDotV = this.coffs[j] * this.coffs[j]
|
|
1119
|
+
+ this.coffs[j + 3] * this.coffs[j + 3]
|
|
1120
|
+
+ this.coffs[j + 6] * this.coffs[j + 6];
|
|
1121
|
+
const uDotV = this.coffs[i] * this.coffs[j]
|
|
1122
|
+
+ this.coffs[i + 3] * this.coffs[j + 3]
|
|
1123
|
+
+ this.coffs[i + 6] * this.coffs[j + 6];
|
|
1025
1124
|
const jacobi = Angle.trigValuesToHalfAngleTrigValues(uDotU - vDotV, 2.0 * uDotV);
|
|
1026
|
-
|
|
1027
|
-
|
|
1028
|
-
|
|
1029
|
-
// console.log("i j uDotV", i, j, uDotV);
|
|
1030
|
-
if (Math.abs(jacobi.s) < 2.0e-15)
|
|
1125
|
+
const c = jacobi.c;
|
|
1126
|
+
const s = jacobi.s;
|
|
1127
|
+
if (Math.abs(s) < 2.0e-15)
|
|
1031
1128
|
return 0.0;
|
|
1032
|
-
this.applyGivensColumnOp(i, j,
|
|
1033
|
-
matrixU.applyGivensRowOp(i, j,
|
|
1034
|
-
// const BTB = this.multiplyMatrixTransposeMatrix(this);
|
|
1035
|
-
// console.log("BTB", BTB.at(0, 0), BTB.at(1, 1), BTB.at(2, 2), " off", BTB.at(0, 1), BTB.at(0, 2), BTB.at(1, 2), " at(i,j)", BTB.at(i, j));
|
|
1129
|
+
this.applyGivensColumnOp(i, j, c, s); // make columns i and j of `this` matrix perpendicular
|
|
1130
|
+
matrixU.applyGivensRowOp(i, j, c, s); // right eigenvalues of `thisTranspose * this`
|
|
1036
1131
|
return Math.abs(uDotV);
|
|
1037
1132
|
}
|
|
1038
1133
|
/**
|
|
1039
|
-
* Factor this as a product
|
|
1040
|
-
*
|
|
1041
|
-
*
|
|
1042
|
-
* @param matrixU
|
|
1134
|
+
* Factor `this` matrix as a product `VD * U` where `VD` has mutually perpendicular columns and `U` is orthogonal.
|
|
1135
|
+
* @param matrixVD a matrix that its columns will be filled by rotating columns of `this` to make them mutually
|
|
1136
|
+
* perpendicular (allocated by caller, computed and filled by this function).
|
|
1137
|
+
* @param matrixU a matrix that its columns will be filled by the right eigenvectors of `thisTranspose * this`
|
|
1138
|
+
* (allocated by caller, computed and filled by this function). Note that columns of matrixU will be mutually
|
|
1139
|
+
* perpendicular because `thisTranspose * this` matrix is symmetric.
|
|
1043
1140
|
*/
|
|
1044
|
-
factorPerpendicularColumns(
|
|
1045
|
-
|
|
1141
|
+
factorPerpendicularColumns(matrixVD, matrixU) {
|
|
1142
|
+
matrixVD.setFrom(this);
|
|
1046
1143
|
matrixU.setIdentity();
|
|
1047
1144
|
const tolerance = 1.0e-12 * this.sumSquares();
|
|
1048
|
-
|
|
1049
|
-
|
|
1050
|
-
|
|
1051
|
-
+
|
|
1052
|
-
|
|
1145
|
+
const numberOfIterations = 7;
|
|
1146
|
+
for (let iteration = 0; iteration < numberOfIterations; iteration++) {
|
|
1147
|
+
const sum = matrixVD.applyJacobiColumnRotation(0, 1, matrixU)
|
|
1148
|
+
+ matrixVD.applyJacobiColumnRotation(0, 2, matrixU)
|
|
1149
|
+
+ matrixVD.applyJacobiColumnRotation(1, 2, matrixU);
|
|
1053
1150
|
if (sum < tolerance) {
|
|
1054
|
-
// console.log("jacobi iterations", iteration);
|
|
1055
1151
|
return true;
|
|
1056
1152
|
}
|
|
1057
1153
|
}
|
|
1058
1154
|
return false;
|
|
1059
1155
|
}
|
|
1060
1156
|
/**
|
|
1061
|
-
* Factor this matrix
|
|
1062
|
-
*
|
|
1063
|
-
*
|
|
1064
|
-
* @param
|
|
1157
|
+
* Factor `this` matrix as a product `V * D * U` where `V` and `U` are orthogonal and `D` is diagonal with
|
|
1158
|
+
* positive entries.
|
|
1159
|
+
* * This is formally known as the `Singular Value Decomposition` or `SVD`.
|
|
1160
|
+
* @param matrixV an orthogonal matrix that its columns will be filled by the left eigenvectors of
|
|
1161
|
+
* `thisTranspose * this` (allocated by caller, computed and filled by this function).
|
|
1162
|
+
* @param scale singular values of `this` (allocated by caller, computed and filled by this function).
|
|
1163
|
+
* The singular values in the `scale` are non-negative and decreasing.
|
|
1164
|
+
* @param matrixU an orthogonal matrix that its columns will be filled by the right eigenvectors of
|
|
1165
|
+
* `thisTranspose * this` (allocated by caller, computed and filled by this function).
|
|
1065
1166
|
*/
|
|
1066
1167
|
factorOrthogonalScaleOrthogonal(matrixV, scale, matrixU) {
|
|
1067
1168
|
const matrixVD = Matrix3d.createZero();
|
|
@@ -1071,7 +1172,7 @@ export class Matrix3d {
|
|
|
1071
1172
|
column.push(matrixVD.getColumn(0));
|
|
1072
1173
|
column.push(matrixVD.getColumn(1));
|
|
1073
1174
|
column.push(matrixVD.getColumn(2));
|
|
1074
|
-
scale.set(column[0].magnitude(), column[1].magnitude(), column[2].magnitude());
|
|
1175
|
+
scale.set(column[0].magnitude(), column[1].magnitude(), column[2].magnitude()); // singular values of `this`
|
|
1075
1176
|
const det = matrixVD.determinant();
|
|
1076
1177
|
if (det < 0)
|
|
1077
1178
|
scale.z = -scale.z;
|
|
@@ -1079,7 +1180,7 @@ export class Matrix3d {
|
|
|
1079
1180
|
const scaleXIsZero = Math.abs(scale.x) < almostZero;
|
|
1080
1181
|
const scaleYIsZero = Math.abs(scale.y) < almostZero;
|
|
1081
1182
|
const scaleZIsZero = Math.abs(scale.z) < almostZero;
|
|
1082
|
-
//
|
|
1183
|
+
// NOTE: We assume any zero-magnitude column(s) of matrixVD are last
|
|
1083
1184
|
if (!scaleXIsZero && !scaleYIsZero && !scaleZIsZero) { // full rank
|
|
1084
1185
|
matrixV = matrixVD.scaleColumns(1 / scale.x, 1 / scale.y, 1 / scale.z, matrixV);
|
|
1085
1186
|
}
|
|
@@ -1097,59 +1198,6 @@ export class Matrix3d {
|
|
|
1097
1198
|
}
|
|
1098
1199
|
return true;
|
|
1099
1200
|
}
|
|
1100
|
-
/** Apply a jacobi step to lambda which evolves towards diagonal. */
|
|
1101
|
-
applySymmetricJacobi(i, j, lambda) {
|
|
1102
|
-
const uDotU = lambda.at(i, i);
|
|
1103
|
-
const vDotV = lambda.at(j, j);
|
|
1104
|
-
const uDotV = lambda.at(i, j);
|
|
1105
|
-
if (Math.abs(uDotV) < 1.0e-15 * (uDotU + vDotV))
|
|
1106
|
-
return 0.0;
|
|
1107
|
-
// const c2 = uDotU - vDotV;
|
|
1108
|
-
// const s2 = 2.0 * uDotV;
|
|
1109
|
-
const jacobi = Angle.trigValuesToHalfAngleTrigValues(uDotU - vDotV, 2.0 * uDotV);
|
|
1110
|
-
// const h = Math.hypot(c2, s2);
|
|
1111
|
-
// console.log(" c2 s2", c2 / h, s2 / h);
|
|
1112
|
-
// console.log(" C S ", Math.cos(2 * jacobi.radians), Math.sin(2 * jacobi.radians));
|
|
1113
|
-
// console.log("i j uDotV", i, j, uDotV);
|
|
1114
|
-
if (Math.abs(jacobi.s) < 2.0e-15)
|
|
1115
|
-
return 0.0;
|
|
1116
|
-
// Factored form is this *lambda * thisTranspose
|
|
1117
|
-
// Let Q be the rotation matrix. Q*QT is inserted, viz
|
|
1118
|
-
// this*Q * QT * lambda * Q*thisTranspose
|
|
1119
|
-
this.applyGivensColumnOp(i, j, jacobi.c, jacobi.s);
|
|
1120
|
-
lambda.applyGivensRowOp(i, j, jacobi.c, jacobi.s);
|
|
1121
|
-
lambda.applyGivensColumnOp(i, j, jacobi.c, jacobi.s);
|
|
1122
|
-
// const BTB = this.multiplyMatrixTransposeMatrix(this);
|
|
1123
|
-
// console.log("BTB", BTB.at(0, 0), BTB.at(1, 1), BTB.at(2, 2), " off", BTB.at(0, 1), BTB.at(0, 2), BTB.at(1, 2), " at(i,j)", BTB.at(i, j));
|
|
1124
|
-
return Math.abs(uDotV);
|
|
1125
|
-
}
|
|
1126
|
-
/**
|
|
1127
|
-
* Factor this (symmetrized) as a product U * lambda * UT where U is orthogonal, lambda is diagonal.
|
|
1128
|
-
* The upper triangle is mirrored to lower triangle to enforce symmetry.
|
|
1129
|
-
* @param matrixC (allocate by caller, computed here)
|
|
1130
|
-
* @param factor (allocate by caller, computed here)
|
|
1131
|
-
*/
|
|
1132
|
-
symmetricEigenvalues(leftEigenvectors, lambda) {
|
|
1133
|
-
const matrix = this.clone();
|
|
1134
|
-
leftEigenvectors.setIdentity();
|
|
1135
|
-
matrix.coffs[3] = matrix.coffs[1];
|
|
1136
|
-
matrix.coffs[6] = matrix.coffs[2];
|
|
1137
|
-
matrix.coffs[7] = matrix.coffs[5];
|
|
1138
|
-
const tolerance = 1.0e-12 * this.sumSquares();
|
|
1139
|
-
for (let iteration = 0; iteration < 7; iteration++) {
|
|
1140
|
-
const sum = leftEigenvectors.applySymmetricJacobi(0, 1, matrix)
|
|
1141
|
-
+ leftEigenvectors.applySymmetricJacobi(0, 2, matrix)
|
|
1142
|
-
+ leftEigenvectors.applySymmetricJacobi(1, 2, matrix);
|
|
1143
|
-
// console.log("symmetric sum", sum);
|
|
1144
|
-
// console.log (" sum", sum);
|
|
1145
|
-
if (sum < tolerance) {
|
|
1146
|
-
// console.log("symmetric iterations", iteration);
|
|
1147
|
-
lambda.set(matrix.at(0, 0), matrix.at(1, 1), matrix.at(2, 2));
|
|
1148
|
-
return true;
|
|
1149
|
-
}
|
|
1150
|
-
}
|
|
1151
|
-
return false;
|
|
1152
|
-
}
|
|
1153
1201
|
/**
|
|
1154
1202
|
* Return a matrix that rotates a fraction of the angular sweep from vectorA to vectorB.
|
|
1155
1203
|
* @param vectorA initial vector position
|
|
@@ -2247,8 +2295,7 @@ export class Matrix3d {
|
|
|
2247
2295
|
this.inverseState = InverseMatrixState.unknown;
|
|
2248
2296
|
}
|
|
2249
2297
|
/**
|
|
2250
|
-
* Create a rigid matrix (columns and rows are unit length and pairwise perpendicular) for
|
|
2251
|
-
* the given eye coordinate.
|
|
2298
|
+
* Create a rigid matrix (columns and rows are unit length and pairwise perpendicular) for the given eye coordinate.
|
|
2252
2299
|
* * column 2 is parallel to (x,y,z).
|
|
2253
2300
|
* * column 0 is perpendicular to column 2 and is in the xy plane.
|
|
2254
2301
|
* * column 1 is perpendicular to both. It is the "up" vector on the view plane.
|
|
@@ -2281,7 +2328,8 @@ export class Matrix3d {
|
|
|
2281
2328
|
*
|
|
2282
2329
|
* This is an orthogonal matrix meaning it rotates the standard XYZ axis to ABC axis system
|
|
2283
2330
|
* (if matrix is [A B C]). The matrix rotates (0,0,1), i.e., the default Top view or Z axis,
|
|
2284
|
-
*
|
|
2331
|
+
* to the eye point (x/r,y/r,z/r) where r = sqrt(x*x + y*y + z*z). The matrix also rotates
|
|
2332
|
+
* (1,0,0) to a point on XY plane.
|
|
2285
2333
|
*/
|
|
2286
2334
|
const c = x / rxy;
|
|
2287
2335
|
const s = y / rxy;
|
|
@@ -2361,6 +2409,15 @@ export class Matrix3d {
|
|
|
2361
2409
|
const sumOff = Math.abs(sumAll - sumDiagonal);
|
|
2362
2410
|
return Math.sqrt(sumOff) <= Geometry.smallAngleRadians * (1.0 + Math.sqrt(sumAll));
|
|
2363
2411
|
}
|
|
2412
|
+
/** Sum of squared differences between symmetric pairs (symmetric pairs have indices (1,3), (2,6), and (5,7).) */
|
|
2413
|
+
sumSkewSquares() {
|
|
2414
|
+
return Geometry.hypotenuseSquaredXYZ(this.coffs[1] - this.coffs[3], this.coffs[2] - this.coffs[6], this.coffs[5] - this.coffs[7]);
|
|
2415
|
+
}
|
|
2416
|
+
/** Test if the matrix is (very near to) symmetric */
|
|
2417
|
+
isSymmetric() {
|
|
2418
|
+
const offDiagonal = this.sumSkewSquares();
|
|
2419
|
+
return Math.sqrt(offDiagonal) <= Geometry.smallAngleRadians * (1.0 + Math.sqrt(this.sumSquares()));
|
|
2420
|
+
}
|
|
2364
2421
|
/** Test if the stored inverse is present and marked valid */
|
|
2365
2422
|
get hasCachedInverse() {
|
|
2366
2423
|
return this.inverseState === InverseMatrixState.inverseStored && this.inverseCoffs !== undefined;
|
|
@@ -2374,7 +2431,7 @@ export class Matrix3d {
|
|
|
2374
2431
|
/** Test if the above diagonal entries (1,2,5) are all nearly zero */
|
|
2375
2432
|
get isLowerTriangular() {
|
|
2376
2433
|
const sumAll = this.sumSquares();
|
|
2377
|
-
const sumLow = Geometry.hypotenuseSquaredXYZ(this.coffs[1], this.coffs[2], this.coffs[
|
|
2434
|
+
const sumLow = Geometry.hypotenuseSquaredXYZ(this.coffs[1], this.coffs[2], this.coffs[5]);
|
|
2378
2435
|
return Math.sqrt(sumLow) <= Geometry.smallAngleRadians * (1.0 + Math.sqrt(sumAll));
|
|
2379
2436
|
}
|
|
2380
2437
|
/**
|
|
@@ -2391,10 +2448,6 @@ export class Matrix3d {
|
|
|
2391
2448
|
return this.coffs[0];
|
|
2392
2449
|
return undefined;
|
|
2393
2450
|
}
|
|
2394
|
-
/** Sum of squared differences between symmetric pairs (entry 1 and 3 - 2 and 6 - 5 and 7) */
|
|
2395
|
-
sumSkewSquares() {
|
|
2396
|
-
return Geometry.hypotenuseSquaredXYZ(this.coffs[1] - this.coffs[3], this.coffs[2] - this.coffs[6], this.coffs[5] - this.coffs[7]);
|
|
2397
|
-
}
|
|
2398
2451
|
/**
|
|
2399
2452
|
* Test if all rows and columns are unit length and are perpendicular to each other, i.e., the matrix is either
|
|
2400
2453
|
* a `pure rotation` (determinant is +1) or is a `mirror` (determinant is -1).
|