@itwin/core-geometry 4.10.0-dev.3 → 4.10.0-dev.31

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 (208) hide show
  1. package/CHANGELOG.md +36 -1
  2. package/lib/cjs/Geometry.d.ts +2 -2
  3. package/lib/cjs/Geometry.js +2 -2
  4. package/lib/cjs/Geometry.js.map +1 -1
  5. package/lib/cjs/clipping/ClipPrimitive.d.ts +7 -7
  6. package/lib/cjs/clipping/ClipPrimitive.d.ts.map +1 -1
  7. package/lib/cjs/clipping/ClipPrimitive.js +1 -1
  8. package/lib/cjs/clipping/ClipPrimitive.js.map +1 -1
  9. package/lib/cjs/core-geometry.d.ts +1 -1
  10. package/lib/cjs/core-geometry.d.ts.map +1 -1
  11. package/lib/cjs/core-geometry.js +1 -1
  12. package/lib/cjs/core-geometry.js.map +1 -1
  13. package/lib/cjs/curve/Arc3d.d.ts +21 -10
  14. package/lib/cjs/curve/Arc3d.d.ts.map +1 -1
  15. package/lib/cjs/curve/Arc3d.js +66 -38
  16. package/lib/cjs/curve/Arc3d.js.map +1 -1
  17. package/lib/cjs/curve/CurveChainWithDistanceIndex.d.ts +27 -8
  18. package/lib/cjs/curve/CurveChainWithDistanceIndex.d.ts.map +1 -1
  19. package/lib/cjs/curve/CurveChainWithDistanceIndex.js +44 -25
  20. package/lib/cjs/curve/CurveChainWithDistanceIndex.js.map +1 -1
  21. package/lib/cjs/curve/CurveFactory.d.ts +11 -13
  22. package/lib/cjs/curve/CurveFactory.d.ts.map +1 -1
  23. package/lib/cjs/curve/CurveFactory.js +19 -46
  24. package/lib/cjs/curve/CurveFactory.js.map +1 -1
  25. package/lib/cjs/curve/LineSegment3d.js +2 -2
  26. package/lib/cjs/curve/LineSegment3d.js.map +1 -1
  27. package/lib/cjs/curve/internalContexts/CurveCurveCloseApproachXY.d.ts.map +1 -1
  28. package/lib/cjs/curve/internalContexts/CurveCurveCloseApproachXY.js +5 -4
  29. package/lib/cjs/curve/internalContexts/CurveCurveCloseApproachXY.js.map +1 -1
  30. package/lib/cjs/curve/internalContexts/CurveCurveIntersectXY.d.ts +1 -0
  31. package/lib/cjs/curve/internalContexts/CurveCurveIntersectXY.d.ts.map +1 -1
  32. package/lib/cjs/curve/internalContexts/CurveCurveIntersectXY.js +40 -65
  33. package/lib/cjs/curve/internalContexts/CurveCurveIntersectXY.js.map +1 -1
  34. package/lib/cjs/curve/internalContexts/CurveCurveIntersectXYZ.d.ts +22 -7
  35. package/lib/cjs/curve/internalContexts/CurveCurveIntersectXYZ.d.ts.map +1 -1
  36. package/lib/cjs/curve/internalContexts/CurveCurveIntersectXYZ.js +131 -70
  37. package/lib/cjs/curve/internalContexts/CurveCurveIntersectXYZ.js.map +1 -1
  38. package/lib/cjs/curve/internalContexts/EllipticalArcApproximationContext.d.ts.map +1 -1
  39. package/lib/cjs/curve/internalContexts/EllipticalArcApproximationContext.js +14 -11
  40. package/lib/cjs/curve/internalContexts/EllipticalArcApproximationContext.js.map +1 -1
  41. package/lib/cjs/geometry3d/Angle.d.ts +5 -5
  42. package/lib/cjs/geometry3d/Angle.js +5 -5
  43. package/lib/cjs/geometry3d/Angle.js.map +1 -1
  44. package/lib/cjs/geometry3d/AngleSweep.d.ts +101 -13
  45. package/lib/cjs/geometry3d/AngleSweep.d.ts.map +1 -1
  46. package/lib/cjs/geometry3d/AngleSweep.js +156 -57
  47. package/lib/cjs/geometry3d/AngleSweep.js.map +1 -1
  48. package/lib/cjs/geometry3d/BilinearPatch.js +4 -4
  49. package/lib/cjs/geometry3d/BilinearPatch.js.map +1 -1
  50. package/lib/cjs/geometry3d/Matrix3d.d.ts +35 -31
  51. package/lib/cjs/geometry3d/Matrix3d.d.ts.map +1 -1
  52. package/lib/cjs/geometry3d/Matrix3d.js +55 -31
  53. package/lib/cjs/geometry3d/Matrix3d.js.map +1 -1
  54. package/lib/cjs/geometry3d/Point3dVector3d.d.ts +6 -5
  55. package/lib/cjs/geometry3d/Point3dVector3d.d.ts.map +1 -1
  56. package/lib/cjs/geometry3d/Point3dVector3d.js +6 -5
  57. package/lib/cjs/geometry3d/Point3dVector3d.js.map +1 -1
  58. package/lib/cjs/geometry3d/PolygonOps.js +2 -2
  59. package/lib/cjs/geometry3d/PolygonOps.js.map +1 -1
  60. package/lib/cjs/geometry3d/Ray3d.js +2 -2
  61. package/lib/cjs/geometry3d/Ray3d.js.map +1 -1
  62. package/lib/cjs/geometry3d/Transform.d.ts +4 -2
  63. package/lib/cjs/geometry3d/Transform.d.ts.map +1 -1
  64. package/lib/cjs/geometry3d/Transform.js +4 -2
  65. package/lib/cjs/geometry3d/Transform.js.map +1 -1
  66. package/lib/cjs/geometry4d/Map4d.d.ts +5 -5
  67. package/lib/cjs/geometry4d/Map4d.js +5 -5
  68. package/lib/cjs/geometry4d/Map4d.js.map +1 -1
  69. package/lib/cjs/geometry4d/Matrix4d.d.ts +4 -7
  70. package/lib/cjs/geometry4d/Matrix4d.d.ts.map +1 -1
  71. package/lib/cjs/geometry4d/Matrix4d.js +4 -7
  72. package/lib/cjs/geometry4d/Matrix4d.js.map +1 -1
  73. package/lib/cjs/geometry4d/Point4d.d.ts.map +1 -1
  74. package/lib/cjs/geometry4d/Point4d.js +2 -1
  75. package/lib/cjs/geometry4d/Point4d.js.map +1 -1
  76. package/lib/cjs/numerics/Newton.d.ts +3 -0
  77. package/lib/cjs/numerics/Newton.d.ts.map +1 -1
  78. package/lib/cjs/numerics/Newton.js +2 -5
  79. package/lib/cjs/numerics/Newton.js.map +1 -1
  80. package/lib/cjs/numerics/Polynomials.d.ts +46 -201
  81. package/lib/cjs/numerics/Polynomials.d.ts.map +1 -1
  82. package/lib/cjs/numerics/Polynomials.js +132 -445
  83. package/lib/cjs/numerics/Polynomials.js.map +1 -1
  84. package/lib/cjs/numerics/SmallSystem.d.ts +164 -0
  85. package/lib/cjs/numerics/SmallSystem.d.ts.map +1 -0
  86. package/lib/cjs/numerics/SmallSystem.js +321 -0
  87. package/lib/cjs/numerics/SmallSystem.js.map +1 -0
  88. package/lib/cjs/polyface/PolyfaceClip.d.ts +3 -3
  89. package/lib/cjs/polyface/PolyfaceClip.d.ts.map +1 -1
  90. package/lib/cjs/polyface/PolyfaceClip.js +1 -1
  91. package/lib/cjs/polyface/PolyfaceClip.js.map +1 -1
  92. package/lib/cjs/polyface/multiclip/OffsetMeshContext.d.ts +1 -1
  93. package/lib/cjs/polyface/multiclip/OffsetMeshContext.d.ts.map +1 -1
  94. package/lib/cjs/polyface/multiclip/OffsetMeshContext.js +7 -7
  95. package/lib/cjs/polyface/multiclip/OffsetMeshContext.js.map +1 -1
  96. package/lib/cjs/topology/Graph.d.ts.map +1 -1
  97. package/lib/cjs/topology/Graph.js +2 -2
  98. package/lib/cjs/topology/Graph.js.map +1 -1
  99. package/lib/cjs/topology/InsertAndRetriangulateContext.js +2 -2
  100. package/lib/cjs/topology/InsertAndRetriangulateContext.js.map +1 -1
  101. package/lib/cjs/topology/Merging.d.ts +1 -1
  102. package/lib/cjs/topology/Merging.d.ts.map +1 -1
  103. package/lib/cjs/topology/Merging.js +2 -2
  104. package/lib/cjs/topology/Merging.js.map +1 -1
  105. package/lib/esm/Geometry.d.ts +2 -2
  106. package/lib/esm/Geometry.js +2 -2
  107. package/lib/esm/Geometry.js.map +1 -1
  108. package/lib/esm/clipping/ClipPrimitive.d.ts +7 -7
  109. package/lib/esm/clipping/ClipPrimitive.d.ts.map +1 -1
  110. package/lib/esm/clipping/ClipPrimitive.js +1 -1
  111. package/lib/esm/clipping/ClipPrimitive.js.map +1 -1
  112. package/lib/esm/core-geometry.d.ts +1 -1
  113. package/lib/esm/core-geometry.d.ts.map +1 -1
  114. package/lib/esm/core-geometry.js +1 -1
  115. package/lib/esm/core-geometry.js.map +1 -1
  116. package/lib/esm/curve/Arc3d.d.ts +21 -10
  117. package/lib/esm/curve/Arc3d.d.ts.map +1 -1
  118. package/lib/esm/curve/Arc3d.js +66 -38
  119. package/lib/esm/curve/Arc3d.js.map +1 -1
  120. package/lib/esm/curve/CurveChainWithDistanceIndex.d.ts +27 -8
  121. package/lib/esm/curve/CurveChainWithDistanceIndex.d.ts.map +1 -1
  122. package/lib/esm/curve/CurveChainWithDistanceIndex.js +44 -25
  123. package/lib/esm/curve/CurveChainWithDistanceIndex.js.map +1 -1
  124. package/lib/esm/curve/CurveFactory.d.ts +11 -13
  125. package/lib/esm/curve/CurveFactory.d.ts.map +1 -1
  126. package/lib/esm/curve/CurveFactory.js +17 -44
  127. package/lib/esm/curve/CurveFactory.js.map +1 -1
  128. package/lib/esm/curve/LineSegment3d.js +1 -1
  129. package/lib/esm/curve/LineSegment3d.js.map +1 -1
  130. package/lib/esm/curve/internalContexts/CurveCurveCloseApproachXY.d.ts.map +1 -1
  131. package/lib/esm/curve/internalContexts/CurveCurveCloseApproachXY.js +4 -3
  132. package/lib/esm/curve/internalContexts/CurveCurveCloseApproachXY.js.map +1 -1
  133. package/lib/esm/curve/internalContexts/CurveCurveIntersectXY.d.ts +1 -0
  134. package/lib/esm/curve/internalContexts/CurveCurveIntersectXY.d.ts.map +1 -1
  135. package/lib/esm/curve/internalContexts/CurveCurveIntersectXY.js +35 -60
  136. package/lib/esm/curve/internalContexts/CurveCurveIntersectXY.js.map +1 -1
  137. package/lib/esm/curve/internalContexts/CurveCurveIntersectXYZ.d.ts +22 -7
  138. package/lib/esm/curve/internalContexts/CurveCurveIntersectXYZ.d.ts.map +1 -1
  139. package/lib/esm/curve/internalContexts/CurveCurveIntersectXYZ.js +130 -69
  140. package/lib/esm/curve/internalContexts/CurveCurveIntersectXYZ.js.map +1 -1
  141. package/lib/esm/curve/internalContexts/EllipticalArcApproximationContext.d.ts.map +1 -1
  142. package/lib/esm/curve/internalContexts/EllipticalArcApproximationContext.js +14 -11
  143. package/lib/esm/curve/internalContexts/EllipticalArcApproximationContext.js.map +1 -1
  144. package/lib/esm/geometry3d/Angle.d.ts +5 -5
  145. package/lib/esm/geometry3d/Angle.js +5 -5
  146. package/lib/esm/geometry3d/Angle.js.map +1 -1
  147. package/lib/esm/geometry3d/AngleSweep.d.ts +101 -13
  148. package/lib/esm/geometry3d/AngleSweep.d.ts.map +1 -1
  149. package/lib/esm/geometry3d/AngleSweep.js +156 -57
  150. package/lib/esm/geometry3d/AngleSweep.js.map +1 -1
  151. package/lib/esm/geometry3d/BilinearPatch.js +1 -1
  152. package/lib/esm/geometry3d/BilinearPatch.js.map +1 -1
  153. package/lib/esm/geometry3d/Matrix3d.d.ts +35 -31
  154. package/lib/esm/geometry3d/Matrix3d.d.ts.map +1 -1
  155. package/lib/esm/geometry3d/Matrix3d.js +55 -31
  156. package/lib/esm/geometry3d/Matrix3d.js.map +1 -1
  157. package/lib/esm/geometry3d/Point3dVector3d.d.ts +6 -5
  158. package/lib/esm/geometry3d/Point3dVector3d.d.ts.map +1 -1
  159. package/lib/esm/geometry3d/Point3dVector3d.js +6 -5
  160. package/lib/esm/geometry3d/Point3dVector3d.js.map +1 -1
  161. package/lib/esm/geometry3d/PolygonOps.js +2 -2
  162. package/lib/esm/geometry3d/PolygonOps.js.map +1 -1
  163. package/lib/esm/geometry3d/Ray3d.js +1 -1
  164. package/lib/esm/geometry3d/Ray3d.js.map +1 -1
  165. package/lib/esm/geometry3d/Transform.d.ts +4 -2
  166. package/lib/esm/geometry3d/Transform.d.ts.map +1 -1
  167. package/lib/esm/geometry3d/Transform.js +4 -2
  168. package/lib/esm/geometry3d/Transform.js.map +1 -1
  169. package/lib/esm/geometry4d/Map4d.d.ts +5 -5
  170. package/lib/esm/geometry4d/Map4d.js +5 -5
  171. package/lib/esm/geometry4d/Map4d.js.map +1 -1
  172. package/lib/esm/geometry4d/Matrix4d.d.ts +4 -7
  173. package/lib/esm/geometry4d/Matrix4d.d.ts.map +1 -1
  174. package/lib/esm/geometry4d/Matrix4d.js +4 -7
  175. package/lib/esm/geometry4d/Matrix4d.js.map +1 -1
  176. package/lib/esm/geometry4d/Point4d.d.ts.map +1 -1
  177. package/lib/esm/geometry4d/Point4d.js +2 -1
  178. package/lib/esm/geometry4d/Point4d.js.map +1 -1
  179. package/lib/esm/numerics/Newton.d.ts +3 -0
  180. package/lib/esm/numerics/Newton.d.ts.map +1 -1
  181. package/lib/esm/numerics/Newton.js +1 -4
  182. package/lib/esm/numerics/Newton.js.map +1 -1
  183. package/lib/esm/numerics/Polynomials.d.ts +46 -201
  184. package/lib/esm/numerics/Polynomials.d.ts.map +1 -1
  185. package/lib/esm/numerics/Polynomials.js +132 -444
  186. package/lib/esm/numerics/Polynomials.js.map +1 -1
  187. package/lib/esm/numerics/SmallSystem.d.ts +164 -0
  188. package/lib/esm/numerics/SmallSystem.d.ts.map +1 -0
  189. package/lib/esm/numerics/SmallSystem.js +317 -0
  190. package/lib/esm/numerics/SmallSystem.js.map +1 -0
  191. package/lib/esm/polyface/PolyfaceClip.d.ts +3 -3
  192. package/lib/esm/polyface/PolyfaceClip.d.ts.map +1 -1
  193. package/lib/esm/polyface/PolyfaceClip.js +1 -1
  194. package/lib/esm/polyface/PolyfaceClip.js.map +1 -1
  195. package/lib/esm/polyface/multiclip/OffsetMeshContext.d.ts +1 -1
  196. package/lib/esm/polyface/multiclip/OffsetMeshContext.d.ts.map +1 -1
  197. package/lib/esm/polyface/multiclip/OffsetMeshContext.js +4 -4
  198. package/lib/esm/polyface/multiclip/OffsetMeshContext.js.map +1 -1
  199. package/lib/esm/topology/Graph.d.ts.map +1 -1
  200. package/lib/esm/topology/Graph.js +1 -1
  201. package/lib/esm/topology/Graph.js.map +1 -1
  202. package/lib/esm/topology/InsertAndRetriangulateContext.js +1 -1
  203. package/lib/esm/topology/InsertAndRetriangulateContext.js.map +1 -1
  204. package/lib/esm/topology/Merging.d.ts +1 -1
  205. package/lib/esm/topology/Merging.d.ts.map +1 -1
  206. package/lib/esm/topology/Merging.js +1 -1
  207. package/lib/esm/topology/Merging.js.map +1 -1
  208. package/package.json +7 -19
@@ -408,7 +408,8 @@ export declare class Matrix3d implements BeJSONFunctions {
408
408
  * ```
409
409
  */
410
410
  static createColumns(vectorU: Vector3d, vectorV: Vector3d, vectorW: Vector3d, result?: Matrix3d): Matrix3d;
411
- /** Create a matrix with each column's _x,y_ parts given `XAndY` and separate numeric z values.
411
+ /**
412
+ * Create a matrix with each column's _x,y_ parts given `XAndY` and separate numeric z values.
412
413
  * ```
413
414
  * equation
414
415
  * \begin{bmatrix}U_x & V_x & W_x \\ U_y & V_y & W_y \\ u & v & w \end{bmatrix}
@@ -698,20 +699,13 @@ export declare class Matrix3d implements BeJSONFunctions {
698
699
  */
699
700
  static createDirectionalScale(direction: Vector3d, scale: number, result?: Matrix3d): Matrix3d;
700
701
  /**
701
- * Create a matrix which sweeps a vector along `sweepVector` until it hits the plane through the origin with the given normal.
702
- * * To sweep an arbitrary vector U0 along direction W to the vector U1 in the plane through the origin with normal N:
703
- * * `U1 = U0 + W * alpha`
704
- * * `U1 DOT N = (U0 + W * alpha) DOT N = 0`
705
- * * `U0 DOT N = - alpha * W DOT N`
706
- * * `alpha = - U0 DOT N / W DOT N`
707
- * * Insert the alpha definition in U1:
708
- * * `U1 = U0 - W * N DOT U0 / W DOT N`
709
- * * Write vector dot expression N DOT U0 as a matrix product (^T indicates transpose):
710
- * * `U1 = U0 - W * N^T * U0 / W DOT N`
711
- * * Note W * N^T is an outer product, i.e. a 3x3 matrix. By associativity of matrix multiplication:
712
- * * `U1 = (I - W * N^T / W DOT N) * U0`
713
- * * and the matrix to do the sweep for any vector in place of U0 is `I - W * N^T / W DOT N`.
714
- * @param sweepVector sweep direction
702
+ * Create a matrix which sweeps a vector along `sweepVector` until it hits the plane through the origin with the
703
+ * given normal.
704
+ * * Geometrically, the returned matrix `M` acts on a vector `u` by rotating and scaling it to lie in the plane.
705
+ * Specifically, `Mu = u + sw` is perpendicular to `n` for some scalar `s`, where `w` is the sweep direction, and
706
+ * `n` is the plane normal.
707
+ * * Symbolically, `M = I - w⊗n / w.n`, where `I` is the identity, and ⊗ is the vector outer product.
708
+ * @param sweepVector sweep direction. If same as `planeNormal`, the resulting matrix flattens to the plane.
715
709
  * @param planeNormal normal to the target plane
716
710
  */
717
711
  static createFlattenAlongVectorToPlane(sweepVector: Vector3d, planeNormal: Vector3d): Matrix3d | undefined;
@@ -1153,37 +1147,47 @@ export declare class Matrix3d implements BeJSONFunctions {
1153
1147
  /** Test if the above diagonal entries (1,2,5) are all nearly zero */
1154
1148
  get isLowerTriangular(): boolean;
1155
1149
  /**
1156
- * If the matrix is diagonal and all diagonals are almost equal, return the first diagonal (entry 0
1157
- * which is same as entry 4 and 8). Otherwise return `undefined`.
1150
+ * If the matrix is diagonal with almost equal diagonal entries, return the first diagonal entry.
1151
+ * Otherwise return `undefined`.
1158
1152
  */
1159
1153
  sameDiagonalScale(): number | undefined;
1160
1154
  /**
1161
- * Test if all rows and columns are unit length and are perpendicular to each other, i.e., the matrix is either
1162
- * a `pure rotation` (determinant is +1) or is a `mirror` (determinant is -1).
1163
- * * **Note:** such a matrix is called `orthogonal` and its inverse is its transpose.
1155
+ * Test if all rows and columns are unit length and perpendicular to each other.
1156
+ * * If so, the matrix is either a rotation (determinant is +1) or a mirror (determinant is -1).
1157
+ * * Such a matrix is called "orthogonal" and its inverse is its transpose.
1164
1158
  */
1165
1159
  testPerpendicularUnitRowsAndColumns(): boolean;
1166
1160
  /**
1167
- * Test if the matrix is a `rigid` matrix (or `pure rotation`, i.e., columns and rows are unit length and
1168
- * pairwise perpendicular and determinant is +1).
1169
- * @param allowMirror whether to widen the test to return true if the matrix is a `mirror` (determinant is -1).
1161
+ * Test if the matrix is a rigid matrix.
1162
+ * * A rigid matrix is a rotation: its columns and rows are unit length and pairwise perpendicular, and its
1163
+ * determinant is +1.
1164
+ * @param allowMirror whether to widen the test to also return true if the matrix is a mirror (determinant is -1).
1170
1165
  */
1171
1166
  isRigid(allowMirror?: boolean): boolean;
1172
1167
  /**
1173
- * Test if all rows and columns are perpendicular to each other and have equal length.
1174
- * If so, the length (or its negative) is the `scale` factor from a set of `orthonormal axes` to
1175
- * the set of axes created by columns of `this` matrix. Otherwise, returns `undefined`.
1168
+ * Test if the instance is the product of a rigid matrix and a signed scale, and return both.
1169
+ * * Specifically, this is a test of whether the instance rows and columns are pairwise perpendicular and have equal
1170
+ * length. If so, the scale factor is this length, or its negative if the instance is a mirror, and dividing the
1171
+ * columns by this scale factor produces a rigid matrix (a rotation).
1176
1172
  * @param result optional pre-allocated object to populate and return
1177
- * @returns returns `{ rigidAxes, scale }` where `rigidAxes` is a Matrix3d with its columns as the rigid axes
1178
- * (with the scale factor removed) and `scale` is the scale factor.
1179
- * * Note that determinant of a rigid matrix is +1.
1180
- * * The context for this method is to determine if the matrix is the product a `rotation` matrix and a uniform
1181
- * `scale` matrix (diagonal matrix with all diagonal entries the same nonzero number).
1173
+ * @returns the factorization `{ rigidAxes, scale }` where `rigidAxes` is the instance matrix with `scale` factor
1174
+ * removed, or undefined if the factorization failed.
1182
1175
  */
1183
1176
  factorRigidWithSignedScale(result?: Matrix3d): {
1184
1177
  rigidAxes: Matrix3d;
1185
1178
  scale: number;
1186
1179
  } | undefined;
1180
+ /**
1181
+ * Compute the factorization M = R*G, where R is rigid (a rotation) and G is whatever is left over (skew, scale,
1182
+ * mirror, etc).
1183
+ * * The rotation is computed from the instance by passing `axisOrder` into [[createRigidFromMatrix3d]].
1184
+ * @param rotation the rigid factor R
1185
+ * @param skew the non-rotation factor G = R^t * M (since R transposed is its inverse)
1186
+ * @param axisOrder optional cross product ordering for computing R
1187
+ * @return whether [[createRigidFromMatrix3d]] succeeded; if not, `rotation` is set to the identity, and `skew` is
1188
+ * set to this instance.
1189
+ */
1190
+ factorRigidSkew(rotation: Matrix3d, skew: Matrix3d, axisOrder?: AxisOrder): boolean;
1187
1191
  /** Test if `this` matrix reorders and/or negates the columns of the `identity` matrix. */
1188
1192
  get isSignedPermutation(): boolean;
1189
1193
  /**
@@ -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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"}
@@ -770,7 +770,8 @@ class Matrix3d {
770
770
  static createColumns(vectorU, vectorV, vectorW, result) {
771
771
  return Matrix3d.createRowValues(vectorU.x, vectorV.x, vectorW.x, vectorU.y, vectorV.y, vectorW.y, vectorU.z, vectorV.z, vectorW.z, result);
772
772
  }
773
- /** Create a matrix with each column's _x,y_ parts given `XAndY` and separate numeric z values.
773
+ /**
774
+ * Create a matrix with each column's _x,y_ parts given `XAndY` and separate numeric z values.
774
775
  * ```
775
776
  * equation
776
777
  * \begin{bmatrix}U_x & V_x & W_x \\ U_y & V_y & W_y \\ u & v & w \end{bmatrix}
@@ -1495,23 +1496,28 @@ class Matrix3d {
1495
1496
  return Matrix3d.createUniformScale(scale);
1496
1497
  }
1497
1498
  /**
1498
- * Create a matrix which sweeps a vector along `sweepVector` until it hits the plane through the origin with the given normal.
1499
- * * To sweep an arbitrary vector U0 along direction W to the vector U1 in the plane through the origin with normal N:
1500
- * * `U1 = U0 + W * alpha`
1501
- * * `U1 DOT N = (U0 + W * alpha) DOT N = 0`
1502
- * * `U0 DOT N = - alpha * W DOT N`
1503
- * * `alpha = - U0 DOT N / W DOT N`
1504
- * * Insert the alpha definition in U1:
1505
- * * `U1 = U0 - W * N DOT U0 / W DOT N`
1506
- * * Write vector dot expression N DOT U0 as a matrix product (^T indicates transpose):
1507
- * * `U1 = U0 - W * N^T * U0 / W DOT N`
1508
- * * Note W * N^T is an outer product, i.e. a 3x3 matrix. By associativity of matrix multiplication:
1509
- * * `U1 = (I - W * N^T / W DOT N) * U0`
1510
- * * and the matrix to do the sweep for any vector in place of U0 is `I - W * N^T / W DOT N`.
1511
- * @param sweepVector sweep direction
1499
+ * Create a matrix which sweeps a vector along `sweepVector` until it hits the plane through the origin with the
1500
+ * given normal.
1501
+ * * Geometrically, the returned matrix `M` acts on a vector `u` by rotating and scaling it to lie in the plane.
1502
+ * Specifically, `Mu = u + sw` is perpendicular to `n` for some scalar `s`, where `w` is the sweep direction, and
1503
+ * `n` is the plane normal.
1504
+ * * Symbolically, `M = I - w⊗n / w.n`, where `I` is the identity, and ⊗ is the vector outer product.
1505
+ * @param sweepVector sweep direction. If same as `planeNormal`, the resulting matrix flattens to the plane.
1512
1506
  * @param planeNormal normal to the target plane
1513
1507
  */
1514
1508
  static createFlattenAlongVectorToPlane(sweepVector, planeNormal) {
1509
+ // To sweep an arbitrary vector U0 along direction W to the vector U1 in the plane through the origin with normal N:
1510
+ // `U1 = U0 + W * alpha`
1511
+ // `U1 DOT N = (U0 + W * alpha) DOT N = 0`
1512
+ // `U0 DOT N = - alpha * W DOT N`
1513
+ // `alpha = - U0 DOT N / W DOT N`
1514
+ // Insert the alpha definition in U1:
1515
+ // `U1 = U0 - W * N DOT U0 / W DOT N`
1516
+ // Write W * N DOT U0 in terms of a vector outer product (^T indicates transpose):
1517
+ // `U1 = U0 - W * N^T * U0 / W DOT N`
1518
+ // Note W * N^T is a 3x3 matrix. By associativity of matrix multiplication:
1519
+ // `U1 = (I - W * N^T / W DOT N) * U0`
1520
+ // and the matrix to do the sweep for any vector in place of U0 is `I - W * N^T / W DOT N`.
1515
1521
  const result = Matrix3d.createIdentity();
1516
1522
  const dot = sweepVector.dotProduct(planeNormal);
1517
1523
  const inverse = Geometry_1.Geometry.conditionalDivideCoordinate(1.0, -dot);
@@ -2495,8 +2501,8 @@ class Matrix3d {
2495
2501
  return Math.sqrt(sumLow) <= Geometry_1.Geometry.smallAngleRadians * (1.0 + Math.sqrt(sumAll));
2496
2502
  }
2497
2503
  /**
2498
- * If the matrix is diagonal and all diagonals are almost equal, return the first diagonal (entry 0
2499
- * which is same as entry 4 and 8). Otherwise return `undefined`.
2504
+ * If the matrix is diagonal with almost equal diagonal entries, return the first diagonal entry.
2505
+ * Otherwise return `undefined`.
2500
2506
  */
2501
2507
  sameDiagonalScale() {
2502
2508
  const sumAll = this.sumSquares();
@@ -2509,32 +2515,31 @@ class Matrix3d {
2509
2515
  return undefined;
2510
2516
  }
2511
2517
  /**
2512
- * Test if all rows and columns are unit length and are perpendicular to each other, i.e., the matrix is either
2513
- * a `pure rotation` (determinant is +1) or is a `mirror` (determinant is -1).
2514
- * * **Note:** such a matrix is called `orthogonal` and its inverse is its transpose.
2518
+ * Test if all rows and columns are unit length and perpendicular to each other.
2519
+ * * If so, the matrix is either a rotation (determinant is +1) or a mirror (determinant is -1).
2520
+ * * Such a matrix is called "orthogonal" and its inverse is its transpose.
2515
2521
  */
2516
2522
  testPerpendicularUnitRowsAndColumns() {
2517
2523
  const product = this.multiplyMatrixMatrixTranspose(this);
2518
2524
  return product.isIdentity;
2519
2525
  }
2520
2526
  /**
2521
- * Test if the matrix is a `rigid` matrix (or `pure rotation`, i.e., columns and rows are unit length and
2522
- * pairwise perpendicular and determinant is +1).
2523
- * @param allowMirror whether to widen the test to return true if the matrix is a `mirror` (determinant is -1).
2527
+ * Test if the matrix is a rigid matrix.
2528
+ * * A rigid matrix is a rotation: its columns and rows are unit length and pairwise perpendicular, and its
2529
+ * determinant is +1.
2530
+ * @param allowMirror whether to widen the test to also return true if the matrix is a mirror (determinant is -1).
2524
2531
  */
2525
2532
  isRigid(allowMirror = false) {
2526
2533
  return this.testPerpendicularUnitRowsAndColumns() && (allowMirror || this.determinant() > 0);
2527
2534
  }
2528
2535
  /**
2529
- * Test if all rows and columns are perpendicular to each other and have equal length.
2530
- * If so, the length (or its negative) is the `scale` factor from a set of `orthonormal axes` to
2531
- * the set of axes created by columns of `this` matrix. Otherwise, returns `undefined`.
2536
+ * Test if the instance is the product of a rigid matrix and a signed scale, and return both.
2537
+ * * Specifically, this is a test of whether the instance rows and columns are pairwise perpendicular and have equal
2538
+ * length. If so, the scale factor is this length, or its negative if the instance is a mirror, and dividing the
2539
+ * columns by this scale factor produces a rigid matrix (a rotation).
2532
2540
  * @param result optional pre-allocated object to populate and return
2533
- * @returns returns `{ rigidAxes, scale }` where `rigidAxes` is a Matrix3d with its columns as the rigid axes
2534
- * (with the scale factor removed) and `scale` is the scale factor.
2535
- * * Note that determinant of a rigid matrix is +1.
2536
- * * The context for this method is to determine if the matrix is the product a `rotation` matrix and a uniform
2537
- * `scale` matrix (diagonal matrix with all diagonal entries the same nonzero number).
2541
+ * @returns the factorization `{ rigidAxes, scale }` where `rigidAxes` is the instance matrix with `scale` factor
2542
+ * removed, or undefined if the factorization failed.
2538
2543
  */
2539
2544
  factorRigidWithSignedScale(result) {
2540
2545
  const product = this.multiplyMatrixMatrixTranspose(this);
@@ -2545,6 +2550,25 @@ class Matrix3d {
2545
2550
  const scaleInverse = 1.0 / scale;
2546
2551
  return { rigidAxes: this.scaleColumns(scaleInverse, scaleInverse, scaleInverse, result), scale };
2547
2552
  }
2553
+ /**
2554
+ * Compute the factorization M = R*G, where R is rigid (a rotation) and G is whatever is left over (skew, scale,
2555
+ * mirror, etc).
2556
+ * * The rotation is computed from the instance by passing `axisOrder` into [[createRigidFromMatrix3d]].
2557
+ * @param rotation the rigid factor R
2558
+ * @param skew the non-rotation factor G = R^t * M (since R transposed is its inverse)
2559
+ * @param axisOrder optional cross product ordering for computing R
2560
+ * @return whether [[createRigidFromMatrix3d]] succeeded; if not, `rotation` is set to the identity, and `skew` is
2561
+ * set to this instance.
2562
+ */
2563
+ factorRigidSkew(rotation, skew, axisOrder = Geometry_1.AxisOrder.XYZ) {
2564
+ if (Matrix3d.createRigidFromMatrix3d(this, axisOrder, rotation)) {
2565
+ rotation.multiplyMatrixTransposeMatrix(this, skew);
2566
+ return true;
2567
+ }
2568
+ rotation.setIdentity();
2569
+ skew.setFrom(this);
2570
+ return false;
2571
+ }
2548
2572
  /** Test if `this` matrix reorders and/or negates the columns of the `identity` matrix. */
2549
2573
  get isSignedPermutation() {
2550
2574
  let count = 0;