@itwin/core-geometry 5.0.0-dev.99 → 5.1.0-dev.1

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 (104) hide show
  1. package/CHANGELOG.md +6 -1
  2. package/lib/cjs/Geometry.d.ts +11 -0
  3. package/lib/cjs/Geometry.d.ts.map +1 -1
  4. package/lib/cjs/Geometry.js +14 -0
  5. package/lib/cjs/Geometry.js.map +1 -1
  6. package/lib/cjs/curve/Arc3d.d.ts +3 -1
  7. package/lib/cjs/curve/Arc3d.d.ts.map +1 -1
  8. package/lib/cjs/curve/Arc3d.js +36 -0
  9. package/lib/cjs/curve/Arc3d.js.map +1 -1
  10. package/lib/cjs/curve/CurveExtendMode.d.ts +13 -5
  11. package/lib/cjs/curve/CurveExtendMode.d.ts.map +1 -1
  12. package/lib/cjs/curve/CurveExtendMode.js +19 -15
  13. package/lib/cjs/curve/CurveExtendMode.js.map +1 -1
  14. package/lib/cjs/curve/CurvePrimitive.d.ts +67 -8
  15. package/lib/cjs/curve/CurvePrimitive.d.ts.map +1 -1
  16. package/lib/cjs/curve/CurvePrimitive.js +59 -6
  17. package/lib/cjs/curve/CurvePrimitive.js.map +1 -1
  18. package/lib/cjs/curve/LineString3d.d.ts +8 -7
  19. package/lib/cjs/curve/LineString3d.d.ts.map +1 -1
  20. package/lib/cjs/curve/LineString3d.js +25 -22
  21. package/lib/cjs/curve/LineString3d.js.map +1 -1
  22. package/lib/cjs/curve/internalContexts/AnnounceTangentStrokeHandler.d.ts +71 -0
  23. package/lib/cjs/curve/internalContexts/AnnounceTangentStrokeHandler.d.ts.map +1 -0
  24. package/lib/cjs/curve/internalContexts/AnnounceTangentStrokeHandler.js +181 -0
  25. package/lib/cjs/curve/internalContexts/AnnounceTangentStrokeHandler.js.map +1 -0
  26. package/lib/cjs/curve/internalContexts/ClosestPointStrokeHandler.d.ts +21 -5
  27. package/lib/cjs/curve/internalContexts/ClosestPointStrokeHandler.d.ts.map +1 -1
  28. package/lib/cjs/curve/internalContexts/ClosestPointStrokeHandler.js +42 -17
  29. package/lib/cjs/curve/internalContexts/ClosestPointStrokeHandler.js.map +1 -1
  30. package/lib/cjs/curve/internalContexts/NewtonRtoRStrokeHandler.d.ts +5 -3
  31. package/lib/cjs/curve/internalContexts/NewtonRtoRStrokeHandler.d.ts.map +1 -1
  32. package/lib/cjs/curve/internalContexts/NewtonRtoRStrokeHandler.js +5 -3
  33. package/lib/cjs/curve/internalContexts/NewtonRtoRStrokeHandler.js.map +1 -1
  34. package/lib/cjs/geometry3d/AngleSweep.d.ts +1 -1
  35. package/lib/cjs/geometry3d/AngleSweep.js +8 -8
  36. package/lib/cjs/geometry3d/AngleSweep.js.map +1 -1
  37. package/lib/cjs/geometry3d/GeometryHandler.d.ts +15 -16
  38. package/lib/cjs/geometry3d/GeometryHandler.d.ts.map +1 -1
  39. package/lib/cjs/geometry3d/GeometryHandler.js.map +1 -1
  40. package/lib/cjs/geometry3d/Matrix3d.d.ts +10 -11
  41. package/lib/cjs/geometry3d/Matrix3d.d.ts.map +1 -1
  42. package/lib/cjs/geometry3d/Matrix3d.js +11 -12
  43. package/lib/cjs/geometry3d/Matrix3d.js.map +1 -1
  44. package/lib/cjs/polyface/FacetOrientation.js +1 -1
  45. package/lib/cjs/polyface/FacetOrientation.js.map +1 -1
  46. package/lib/cjs/polyface/PolyfaceData.d.ts.map +1 -1
  47. package/lib/cjs/polyface/PolyfaceData.js +2 -0
  48. package/lib/cjs/polyface/PolyfaceData.js.map +1 -1
  49. package/lib/cjs/topology/Triangulation.d.ts +3 -3
  50. package/lib/cjs/topology/Triangulation.d.ts.map +1 -1
  51. package/lib/cjs/topology/Triangulation.js +7 -7
  52. package/lib/cjs/topology/Triangulation.js.map +1 -1
  53. package/lib/esm/Geometry.d.ts +11 -0
  54. package/lib/esm/Geometry.d.ts.map +1 -1
  55. package/lib/esm/Geometry.js +14 -0
  56. package/lib/esm/Geometry.js.map +1 -1
  57. package/lib/esm/curve/Arc3d.d.ts +3 -1
  58. package/lib/esm/curve/Arc3d.d.ts.map +1 -1
  59. package/lib/esm/curve/Arc3d.js +36 -0
  60. package/lib/esm/curve/Arc3d.js.map +1 -1
  61. package/lib/esm/curve/CurveExtendMode.d.ts +13 -5
  62. package/lib/esm/curve/CurveExtendMode.d.ts.map +1 -1
  63. package/lib/esm/curve/CurveExtendMode.js +19 -15
  64. package/lib/esm/curve/CurveExtendMode.js.map +1 -1
  65. package/lib/esm/curve/CurvePrimitive.d.ts +67 -8
  66. package/lib/esm/curve/CurvePrimitive.d.ts.map +1 -1
  67. package/lib/esm/curve/CurvePrimitive.js +59 -6
  68. package/lib/esm/curve/CurvePrimitive.js.map +1 -1
  69. package/lib/esm/curve/LineString3d.d.ts +8 -7
  70. package/lib/esm/curve/LineString3d.d.ts.map +1 -1
  71. package/lib/esm/curve/LineString3d.js +25 -22
  72. package/lib/esm/curve/LineString3d.js.map +1 -1
  73. package/lib/esm/curve/internalContexts/AnnounceTangentStrokeHandler.d.ts +71 -0
  74. package/lib/esm/curve/internalContexts/AnnounceTangentStrokeHandler.d.ts.map +1 -0
  75. package/lib/esm/curve/internalContexts/AnnounceTangentStrokeHandler.js +177 -0
  76. package/lib/esm/curve/internalContexts/AnnounceTangentStrokeHandler.js.map +1 -0
  77. package/lib/esm/curve/internalContexts/ClosestPointStrokeHandler.d.ts +21 -5
  78. package/lib/esm/curve/internalContexts/ClosestPointStrokeHandler.d.ts.map +1 -1
  79. package/lib/esm/curve/internalContexts/ClosestPointStrokeHandler.js +42 -17
  80. package/lib/esm/curve/internalContexts/ClosestPointStrokeHandler.js.map +1 -1
  81. package/lib/esm/curve/internalContexts/NewtonRtoRStrokeHandler.d.ts +5 -3
  82. package/lib/esm/curve/internalContexts/NewtonRtoRStrokeHandler.d.ts.map +1 -1
  83. package/lib/esm/curve/internalContexts/NewtonRtoRStrokeHandler.js +5 -3
  84. package/lib/esm/curve/internalContexts/NewtonRtoRStrokeHandler.js.map +1 -1
  85. package/lib/esm/geometry3d/AngleSweep.d.ts +1 -1
  86. package/lib/esm/geometry3d/AngleSweep.js +8 -8
  87. package/lib/esm/geometry3d/AngleSweep.js.map +1 -1
  88. package/lib/esm/geometry3d/GeometryHandler.d.ts +15 -16
  89. package/lib/esm/geometry3d/GeometryHandler.d.ts.map +1 -1
  90. package/lib/esm/geometry3d/GeometryHandler.js.map +1 -1
  91. package/lib/esm/geometry3d/Matrix3d.d.ts +10 -11
  92. package/lib/esm/geometry3d/Matrix3d.d.ts.map +1 -1
  93. package/lib/esm/geometry3d/Matrix3d.js +11 -12
  94. package/lib/esm/geometry3d/Matrix3d.js.map +1 -1
  95. package/lib/esm/polyface/FacetOrientation.js +1 -1
  96. package/lib/esm/polyface/FacetOrientation.js.map +1 -1
  97. package/lib/esm/polyface/PolyfaceData.d.ts.map +1 -1
  98. package/lib/esm/polyface/PolyfaceData.js +2 -0
  99. package/lib/esm/polyface/PolyfaceData.js.map +1 -1
  100. package/lib/esm/topology/Triangulation.d.ts +3 -3
  101. package/lib/esm/topology/Triangulation.d.ts.map +1 -1
  102. package/lib/esm/topology/Triangulation.js +7 -7
  103. package/lib/esm/topology/Triangulation.js.map +1 -1
  104. package/package.json +3 -3
@@ -2621,28 +2621,27 @@ export class Matrix3d {
2621
2621
  return count === 3;
2622
2622
  }
2623
2623
  /**
2624
- * Adjust the matrix in place to make is a `rigid` matrix so that:
2625
- * * columns are perpendicular and have unit length.
2626
- * * transpose equals inverse.
2627
- * * mirroring is removed.
2628
- * * This function internally uses `axisOrderCrossProductsInPlace` to make the matrix rigid.
2629
- * @param axisOrder how to reorder the matrix columns
2630
- * @return whether the adjusted matrix is `rigid` on return
2624
+ * Adjust the matrix in place to make it rigid:
2625
+ * * Columns are perpendicular and have unit length.
2626
+ * * Transpose equals inverse.
2627
+ * @param axisOrder how to reorder the matrix columns. A left-handed ordering will return a mirror.
2628
+ * @return whether the adjusted matrix is rigid on return
2631
2629
  */
2632
2630
  makeRigid(axisOrder = AxisOrder.XYZ) {
2633
2631
  const maxAbs = this.maxAbs();
2634
2632
  if (Geometry.isSmallMetricDistance(maxAbs))
2635
2633
  return false;
2636
2634
  const scale = 1.0 / maxAbs;
2637
- this.scaleColumnsInPlace(scale, scale, scale);
2635
+ this.scaleColumnsInPlace(scale, scale, scale); // improve numerical stability
2638
2636
  this.axisOrderCrossProductsInPlace(axisOrder);
2639
2637
  return this.normalizeColumnsInPlace();
2640
2638
  }
2641
2639
  /**
2642
- * Create a new orthogonal matrix (perpendicular columns, unit length, transpose is inverse).
2643
- * * Columns are taken from the source Matrix3d in order indicated by the axis order.
2644
- * * Mirroring in the matrix is removed.
2645
- * * This function internally uses `axisOrderCrossProductsInPlace` to make the matrix rigid.
2640
+ * Create a new orthogonal matrix by calling [[makeRigid]] on a clone of `source`.
2641
+ * @param source input matrix
2642
+ * @param axisOrder how to reorder the matrix columns. A left-handed ordering will return a mirror.
2643
+ * @param result optional preallocated result to populate and return
2644
+ * @returns rigid matrix, or `undefined` if the operation failed.
2646
2645
  */
2647
2646
  static createRigidFromMatrix3d(source, axisOrder = AxisOrder.XYZ, result) {
2648
2647
  result = source.clone(result);