@itwin/ecschema-rpcinterface-tests 4.3.0-dev.21 → 4.3.0-dev.23

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.
@@ -170465,9 +170465,10 @@ class Geometry {
170465
170465
  // (c0,s0) is the closest approach of the line to the circle center (origin)
170466
170466
  const c0 = da2b2 * cosCoff; // -ad/(a^2+b^2)
170467
170467
  const s0 = da2b2 * sinCoff; // -bd/(a^2+b^2)
170468
- if (criterion <= 0.0) { // nSolution = 1
170469
- // We observed criterion = -2.22e-16 in a rotated tangent system, therefore for negative criteria near
170470
- // zero, return the near-tangency; for tiny positive criteria, fall through to return both solutions.
170468
+ if (criterion <= Geometry.smallMetricDistanceSquared) { // nSolution = 1
170469
+ // We observed criterion = -2.22e-16 in a rotated tangent system, and criterion = 4.44e-16 in a
170470
+ // transverse line-arc intersectXYZ near-tangency, therefore for criteria near zero (on either side),
170471
+ // return the (near) tangency; any larger criteria fall through to return both solutions.
170471
170472
  result = [_geometry3d_Point2dVector2d__WEBPACK_IMPORTED_MODULE_1__.Vector2d.create(c0, s0)];
170472
170473
  }
170473
170474
  else { // nSolution = 2
@@ -181596,43 +181597,42 @@ class LineStringOffsetClipperContext {
181596
181597
  "use strict";
181597
181598
  __webpack_require__.r(__webpack_exports__);
181598
181599
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
181599
- /* harmony export */ AbstractNewtonIterator: () => (/* reexport safe */ _numerics_Newton__WEBPACK_IMPORTED_MODULE_53__.AbstractNewtonIterator),
181600
- /* harmony export */ AkimaCurve3d: () => (/* reexport safe */ _bspline_AkimaCurve3d__WEBPACK_IMPORTED_MODULE_98__.AkimaCurve3d),
181601
- /* harmony export */ AkimaCurve3dOptions: () => (/* reexport safe */ _bspline_AkimaCurve3d__WEBPACK_IMPORTED_MODULE_98__.AkimaCurve3dOptions),
181602
- /* harmony export */ AnalyticRoots: () => (/* reexport safe */ _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_56__.AnalyticRoots),
181600
+ /* harmony export */ AkimaCurve3d: () => (/* reexport safe */ _bspline_AkimaCurve3d__WEBPACK_IMPORTED_MODULE_97__.AkimaCurve3d),
181601
+ /* harmony export */ AkimaCurve3dOptions: () => (/* reexport safe */ _bspline_AkimaCurve3d__WEBPACK_IMPORTED_MODULE_97__.AkimaCurve3dOptions),
181602
+ /* harmony export */ AnalyticRoots: () => (/* reexport safe */ _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_55__.AnalyticRoots),
181603
181603
  /* harmony export */ Angle: () => (/* reexport safe */ _geometry3d_Angle__WEBPACK_IMPORTED_MODULE_0__.Angle),
181604
181604
  /* harmony export */ AngleSweep: () => (/* reexport safe */ _geometry3d_AngleSweep__WEBPACK_IMPORTED_MODULE_1__.AngleSweep),
181605
- /* harmony export */ AnnotatedLineString3d: () => (/* reexport safe */ _curve_LineString3d__WEBPACK_IMPORTED_MODULE_74__.AnnotatedLineString3d),
181606
- /* harmony export */ Arc3d: () => (/* reexport safe */ _curve_Arc3d__WEBPACK_IMPORTED_MODULE_60__.Arc3d),
181607
- /* harmony export */ AuxChannel: () => (/* reexport safe */ _polyface_AuxData__WEBPACK_IMPORTED_MODULE_110__.AuxChannel),
181608
- /* harmony export */ AuxChannelData: () => (/* reexport safe */ _polyface_AuxData__WEBPACK_IMPORTED_MODULE_110__.AuxChannelData),
181609
- /* harmony export */ AuxChannelDataType: () => (/* reexport safe */ _polyface_AuxData__WEBPACK_IMPORTED_MODULE_110__.AuxChannelDataType),
181605
+ /* harmony export */ AnnotatedLineString3d: () => (/* reexport safe */ _curve_LineString3d__WEBPACK_IMPORTED_MODULE_73__.AnnotatedLineString3d),
181606
+ /* harmony export */ Arc3d: () => (/* reexport safe */ _curve_Arc3d__WEBPACK_IMPORTED_MODULE_59__.Arc3d),
181607
+ /* harmony export */ AuxChannel: () => (/* reexport safe */ _polyface_AuxData__WEBPACK_IMPORTED_MODULE_109__.AuxChannel),
181608
+ /* harmony export */ AuxChannelData: () => (/* reexport safe */ _polyface_AuxData__WEBPACK_IMPORTED_MODULE_109__.AuxChannelData),
181609
+ /* harmony export */ AuxChannelDataType: () => (/* reexport safe */ _polyface_AuxData__WEBPACK_IMPORTED_MODULE_109__.AuxChannelDataType),
181610
181610
  /* harmony export */ AxisIndex: () => (/* reexport safe */ _Geometry__WEBPACK_IMPORTED_MODULE_36__.AxisIndex),
181611
181611
  /* harmony export */ AxisOrder: () => (/* reexport safe */ _Geometry__WEBPACK_IMPORTED_MODULE_36__.AxisOrder),
181612
181612
  /* harmony export */ AxisScaleSelect: () => (/* reexport safe */ _Geometry__WEBPACK_IMPORTED_MODULE_36__.AxisScaleSelect),
181613
- /* harmony export */ BSpline1dNd: () => (/* reexport safe */ _bspline_BSpline1dNd__WEBPACK_IMPORTED_MODULE_105__.BSpline1dNd),
181614
- /* harmony export */ BSpline2dNd: () => (/* reexport safe */ _bspline_BSplineSurface__WEBPACK_IMPORTED_MODULE_107__.BSpline2dNd),
181615
- /* harmony export */ BSplineCurve3d: () => (/* reexport safe */ _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_103__.BSplineCurve3d),
181616
- /* harmony export */ BSplineCurve3dBase: () => (/* reexport safe */ _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_103__.BSplineCurve3dBase),
181617
- /* harmony export */ BSplineCurve3dH: () => (/* reexport safe */ _bspline_BSplineCurve3dH__WEBPACK_IMPORTED_MODULE_106__.BSplineCurve3dH),
181618
- /* harmony export */ BSplineCurveOps: () => (/* reexport safe */ _bspline_BSplineCurveOps__WEBPACK_IMPORTED_MODULE_104__.BSplineCurveOps),
181619
- /* harmony export */ BSplineSurface3d: () => (/* reexport safe */ _bspline_BSplineSurface__WEBPACK_IMPORTED_MODULE_107__.BSplineSurface3d),
181620
- /* harmony export */ BSplineSurface3dH: () => (/* reexport safe */ _bspline_BSplineSurface__WEBPACK_IMPORTED_MODULE_107__.BSplineSurface3dH),
181621
- /* harmony export */ BSplineWrapMode: () => (/* reexport safe */ _bspline_KnotVector__WEBPACK_IMPORTED_MODULE_109__.BSplineWrapMode),
181622
- /* harmony export */ BagOfCurves: () => (/* reexport safe */ _curve_CurveCollection__WEBPACK_IMPORTED_MODULE_65__.BagOfCurves),
181613
+ /* harmony export */ BSpline1dNd: () => (/* reexport safe */ _bspline_BSpline1dNd__WEBPACK_IMPORTED_MODULE_104__.BSpline1dNd),
181614
+ /* harmony export */ BSpline2dNd: () => (/* reexport safe */ _bspline_BSplineSurface__WEBPACK_IMPORTED_MODULE_106__.BSpline2dNd),
181615
+ /* harmony export */ BSplineCurve3d: () => (/* reexport safe */ _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_102__.BSplineCurve3d),
181616
+ /* harmony export */ BSplineCurve3dBase: () => (/* reexport safe */ _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_102__.BSplineCurve3dBase),
181617
+ /* harmony export */ BSplineCurve3dH: () => (/* reexport safe */ _bspline_BSplineCurve3dH__WEBPACK_IMPORTED_MODULE_105__.BSplineCurve3dH),
181618
+ /* harmony export */ BSplineCurveOps: () => (/* reexport safe */ _bspline_BSplineCurveOps__WEBPACK_IMPORTED_MODULE_103__.BSplineCurveOps),
181619
+ /* harmony export */ BSplineSurface3d: () => (/* reexport safe */ _bspline_BSplineSurface__WEBPACK_IMPORTED_MODULE_106__.BSplineSurface3d),
181620
+ /* harmony export */ BSplineSurface3dH: () => (/* reexport safe */ _bspline_BSplineSurface__WEBPACK_IMPORTED_MODULE_106__.BSplineSurface3dH),
181621
+ /* harmony export */ BSplineWrapMode: () => (/* reexport safe */ _bspline_KnotVector__WEBPACK_IMPORTED_MODULE_108__.BSplineWrapMode),
181622
+ /* harmony export */ BagOfCurves: () => (/* reexport safe */ _curve_CurveCollection__WEBPACK_IMPORTED_MODULE_64__.BagOfCurves),
181623
181623
  /* harmony export */ BarycentricTriangle: () => (/* reexport safe */ _geometry3d_BarycentricTriangle__WEBPACK_IMPORTED_MODULE_3__.BarycentricTriangle),
181624
- /* harmony export */ BentleyGeometryFlatBuffer: () => (/* reexport safe */ _serialization_BentleyGeometryFlatBuffer__WEBPACK_IMPORTED_MODULE_129__.BentleyGeometryFlatBuffer),
181625
- /* harmony export */ Bezier1dNd: () => (/* reexport safe */ _bspline_Bezier1dNd__WEBPACK_IMPORTED_MODULE_99__.Bezier1dNd),
181624
+ /* harmony export */ BentleyGeometryFlatBuffer: () => (/* reexport safe */ _serialization_BentleyGeometryFlatBuffer__WEBPACK_IMPORTED_MODULE_128__.BentleyGeometryFlatBuffer),
181625
+ /* harmony export */ Bezier1dNd: () => (/* reexport safe */ _bspline_Bezier1dNd__WEBPACK_IMPORTED_MODULE_98__.Bezier1dNd),
181626
181626
  /* harmony export */ BezierCoffs: () => (/* reexport safe */ _numerics_BezierPolynomials__WEBPACK_IMPORTED_MODULE_51__.BezierCoffs),
181627
- /* harmony export */ BezierCurve3d: () => (/* reexport safe */ _bspline_BezierCurve3d__WEBPACK_IMPORTED_MODULE_101__.BezierCurve3d),
181628
- /* harmony export */ BezierCurve3dH: () => (/* reexport safe */ _bspline_BezierCurve3dH__WEBPACK_IMPORTED_MODULE_102__.BezierCurve3dH),
181629
- /* harmony export */ BezierCurveBase: () => (/* reexport safe */ _bspline_BezierCurveBase__WEBPACK_IMPORTED_MODULE_100__.BezierCurveBase),
181627
+ /* harmony export */ BezierCurve3d: () => (/* reexport safe */ _bspline_BezierCurve3d__WEBPACK_IMPORTED_MODULE_100__.BezierCurve3d),
181628
+ /* harmony export */ BezierCurve3dH: () => (/* reexport safe */ _bspline_BezierCurve3dH__WEBPACK_IMPORTED_MODULE_101__.BezierCurve3dH),
181629
+ /* harmony export */ BezierCurveBase: () => (/* reexport safe */ _bspline_BezierCurveBase__WEBPACK_IMPORTED_MODULE_99__.BezierCurveBase),
181630
181630
  /* harmony export */ BezierPolynomialAlgebra: () => (/* reexport safe */ _numerics_BezierPolynomials__WEBPACK_IMPORTED_MODULE_51__.BezierPolynomialAlgebra),
181631
181631
  /* harmony export */ BilinearPatch: () => (/* reexport safe */ _geometry3d_BilinearPatch__WEBPACK_IMPORTED_MODULE_4__.BilinearPatch),
181632
- /* harmony export */ BilinearPolynomial: () => (/* reexport safe */ _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_56__.BilinearPolynomial),
181632
+ /* harmony export */ BilinearPolynomial: () => (/* reexport safe */ _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_55__.BilinearPolynomial),
181633
181633
  /* harmony export */ BooleanClipFactory: () => (/* reexport safe */ _clipping_BooleanClipFactory__WEBPACK_IMPORTED_MODULE_38__.BooleanClipFactory),
181634
- /* harmony export */ Box: () => (/* reexport safe */ _solid_Box__WEBPACK_IMPORTED_MODULE_89__.Box),
181635
- /* harmony export */ BoxTopology: () => (/* reexport safe */ _polyface_BoxTopology__WEBPACK_IMPORTED_MODULE_111__.BoxTopology),
181634
+ /* harmony export */ Box: () => (/* reexport safe */ _solid_Box__WEBPACK_IMPORTED_MODULE_88__.Box),
181635
+ /* harmony export */ BoxTopology: () => (/* reexport safe */ _polyface_BoxTopology__WEBPACK_IMPORTED_MODULE_110__.BoxTopology),
181636
181636
  /* harmony export */ ClipMaskXYZRangePlanes: () => (/* reexport safe */ _clipping_ClipPrimitive__WEBPACK_IMPORTED_MODULE_42__.ClipMaskXYZRangePlanes),
181637
181637
  /* harmony export */ ClipPlane: () => (/* reexport safe */ _clipping_ClipPlane__WEBPACK_IMPORTED_MODULE_39__.ClipPlane),
181638
181638
  /* harmony export */ ClipPlaneContainment: () => (/* reexport safe */ _clipping_ClipUtils__WEBPACK_IMPORTED_MODULE_44__.ClipPlaneContainment),
@@ -181642,109 +181642,103 @@ __webpack_require__.r(__webpack_exports__);
181642
181642
  /* harmony export */ ClipStepAction: () => (/* reexport safe */ _clipping_ClipUtils__WEBPACK_IMPORTED_MODULE_44__.ClipStepAction),
181643
181643
  /* harmony export */ ClipUtilities: () => (/* reexport safe */ _clipping_ClipUtils__WEBPACK_IMPORTED_MODULE_44__.ClipUtilities),
181644
181644
  /* harmony export */ ClipVector: () => (/* reexport safe */ _clipping_ClipVector__WEBPACK_IMPORTED_MODULE_43__.ClipVector),
181645
- /* harmony export */ ClippedPolyfaceBuilders: () => (/* reexport safe */ _polyface_PolyfaceClip__WEBPACK_IMPORTED_MODULE_121__.ClippedPolyfaceBuilders),
181645
+ /* harmony export */ ClippedPolyfaceBuilders: () => (/* reexport safe */ _polyface_PolyfaceClip__WEBPACK_IMPORTED_MODULE_120__.ClippedPolyfaceBuilders),
181646
181646
  /* harmony export */ ClusterableArray: () => (/* reexport safe */ _numerics_ClusterableArray__WEBPACK_IMPORTED_MODULE_52__.ClusterableArray),
181647
- /* harmony export */ Complex: () => (/* reexport safe */ _numerics_Complex__WEBPACK_IMPORTED_MODULE_54__.Complex),
181648
- /* harmony export */ Cone: () => (/* reexport safe */ _solid_Cone__WEBPACK_IMPORTED_MODULE_90__.Cone),
181649
- /* harmony export */ ConsolidateAdjacentCurvePrimitivesOptions: () => (/* reexport safe */ _curve_RegionOps__WEBPACK_IMPORTED_MODULE_80__.ConsolidateAdjacentCurvePrimitivesOptions),
181647
+ /* harmony export */ Complex: () => (/* reexport safe */ _numerics_Complex__WEBPACK_IMPORTED_MODULE_53__.Complex),
181648
+ /* harmony export */ Cone: () => (/* reexport safe */ _solid_Cone__WEBPACK_IMPORTED_MODULE_89__.Cone),
181649
+ /* harmony export */ ConsolidateAdjacentCurvePrimitivesOptions: () => (/* reexport safe */ _curve_RegionOps__WEBPACK_IMPORTED_MODULE_79__.ConsolidateAdjacentCurvePrimitivesOptions),
181650
181650
  /* harmony export */ Constant: () => (/* reexport safe */ _Constant__WEBPACK_IMPORTED_MODULE_37__.Constant),
181651
- /* harmony export */ ConstructCurveBetweenCurves: () => (/* reexport safe */ _curve_ConstructCurveBetweenCurves__WEBPACK_IMPORTED_MODULE_61__.ConstructCurveBetweenCurves),
181651
+ /* harmony export */ ConstructCurveBetweenCurves: () => (/* reexport safe */ _curve_ConstructCurveBetweenCurves__WEBPACK_IMPORTED_MODULE_60__.ConstructCurveBetweenCurves),
181652
181652
  /* harmony export */ ConvexClipPlaneSet: () => (/* reexport safe */ _clipping_ConvexClipPlaneSet__WEBPACK_IMPORTED_MODULE_40__.ConvexClipPlaneSet),
181653
- /* harmony export */ ConvexFacetLocationDetail: () => (/* reexport safe */ _polyface_FacetLocationDetail__WEBPACK_IMPORTED_MODULE_114__.ConvexFacetLocationDetail),
181653
+ /* harmony export */ ConvexFacetLocationDetail: () => (/* reexport safe */ _polyface_FacetLocationDetail__WEBPACK_IMPORTED_MODULE_113__.ConvexFacetLocationDetail),
181654
181654
  /* harmony export */ ConvexPolygon2d: () => (/* reexport safe */ _numerics_ConvexPolygon2d__WEBPACK_IMPORTED_MODULE_45__.ConvexPolygon2d),
181655
- /* harmony export */ CoordinateXYZ: () => (/* reexport safe */ _curve_CoordinateXYZ__WEBPACK_IMPORTED_MODULE_62__.CoordinateXYZ),
181656
- /* harmony export */ CurveChain: () => (/* reexport safe */ _curve_CurveCollection__WEBPACK_IMPORTED_MODULE_65__.CurveChain),
181657
- /* harmony export */ CurveChainWithDistanceIndex: () => (/* reexport safe */ _curve_CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_63__.CurveChainWithDistanceIndex),
181658
- /* harmony export */ CurveCollection: () => (/* reexport safe */ _curve_CurveCollection__WEBPACK_IMPORTED_MODULE_65__.CurveCollection),
181659
- /* harmony export */ CurveCurve: () => (/* reexport safe */ _curve_CurveCurve__WEBPACK_IMPORTED_MODULE_66__.CurveCurve),
181660
- /* harmony export */ CurveCurveApproachType: () => (/* reexport safe */ _curve_CurveLocationDetail__WEBPACK_IMPORTED_MODULE_67__.CurveCurveApproachType),
181661
- /* harmony export */ CurveExtendMode: () => (/* reexport safe */ _curve_CurveExtendMode__WEBPACK_IMPORTED_MODULE_64__.CurveExtendMode),
181662
- /* harmony export */ CurveExtendOptions: () => (/* reexport safe */ _curve_CurveExtendMode__WEBPACK_IMPORTED_MODULE_64__.CurveExtendOptions),
181663
- /* harmony export */ CurveFactory: () => (/* reexport safe */ _curve_CurveFactory__WEBPACK_IMPORTED_MODULE_68__.CurveFactory),
181664
- /* harmony export */ CurveIntervalRole: () => (/* reexport safe */ _curve_CurveLocationDetail__WEBPACK_IMPORTED_MODULE_67__.CurveIntervalRole),
181665
- /* harmony export */ CurveLocationDetail: () => (/* reexport safe */ _curve_CurveLocationDetail__WEBPACK_IMPORTED_MODULE_67__.CurveLocationDetail),
181666
- /* harmony export */ CurveLocationDetailArrayPair: () => (/* reexport safe */ _curve_CurveLocationDetail__WEBPACK_IMPORTED_MODULE_67__.CurveLocationDetailArrayPair),
181667
- /* harmony export */ CurveLocationDetailPair: () => (/* reexport safe */ _curve_CurveLocationDetail__WEBPACK_IMPORTED_MODULE_67__.CurveLocationDetailPair),
181668
- /* harmony export */ CurveOps: () => (/* reexport safe */ _curve_CurveOps__WEBPACK_IMPORTED_MODULE_69__.CurveOps),
181669
- /* harmony export */ CurvePrimitive: () => (/* reexport safe */ _curve_CurvePrimitive__WEBPACK_IMPORTED_MODULE_70__.CurvePrimitive),
181670
- /* harmony export */ CurveSearchStatus: () => (/* reexport safe */ _curve_CurveLocationDetail__WEBPACK_IMPORTED_MODULE_67__.CurveSearchStatus),
181655
+ /* harmony export */ CoordinateXYZ: () => (/* reexport safe */ _curve_CoordinateXYZ__WEBPACK_IMPORTED_MODULE_61__.CoordinateXYZ),
181656
+ /* harmony export */ CurveChain: () => (/* reexport safe */ _curve_CurveCollection__WEBPACK_IMPORTED_MODULE_64__.CurveChain),
181657
+ /* harmony export */ CurveChainWithDistanceIndex: () => (/* reexport safe */ _curve_CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_62__.CurveChainWithDistanceIndex),
181658
+ /* harmony export */ CurveCollection: () => (/* reexport safe */ _curve_CurveCollection__WEBPACK_IMPORTED_MODULE_64__.CurveCollection),
181659
+ /* harmony export */ CurveCurve: () => (/* reexport safe */ _curve_CurveCurve__WEBPACK_IMPORTED_MODULE_65__.CurveCurve),
181660
+ /* harmony export */ CurveCurveApproachType: () => (/* reexport safe */ _curve_CurveLocationDetail__WEBPACK_IMPORTED_MODULE_66__.CurveCurveApproachType),
181661
+ /* harmony export */ CurveExtendMode: () => (/* reexport safe */ _curve_CurveExtendMode__WEBPACK_IMPORTED_MODULE_63__.CurveExtendMode),
181662
+ /* harmony export */ CurveExtendOptions: () => (/* reexport safe */ _curve_CurveExtendMode__WEBPACK_IMPORTED_MODULE_63__.CurveExtendOptions),
181663
+ /* harmony export */ CurveFactory: () => (/* reexport safe */ _curve_CurveFactory__WEBPACK_IMPORTED_MODULE_67__.CurveFactory),
181664
+ /* harmony export */ CurveIntervalRole: () => (/* reexport safe */ _curve_CurveLocationDetail__WEBPACK_IMPORTED_MODULE_66__.CurveIntervalRole),
181665
+ /* harmony export */ CurveLocationDetail: () => (/* reexport safe */ _curve_CurveLocationDetail__WEBPACK_IMPORTED_MODULE_66__.CurveLocationDetail),
181666
+ /* harmony export */ CurveLocationDetailArrayPair: () => (/* reexport safe */ _curve_CurveLocationDetail__WEBPACK_IMPORTED_MODULE_66__.CurveLocationDetailArrayPair),
181667
+ /* harmony export */ CurveLocationDetailPair: () => (/* reexport safe */ _curve_CurveLocationDetail__WEBPACK_IMPORTED_MODULE_66__.CurveLocationDetailPair),
181668
+ /* harmony export */ CurveOps: () => (/* reexport safe */ _curve_CurveOps__WEBPACK_IMPORTED_MODULE_68__.CurveOps),
181669
+ /* harmony export */ CurvePrimitive: () => (/* reexport safe */ _curve_CurvePrimitive__WEBPACK_IMPORTED_MODULE_69__.CurvePrimitive),
181670
+ /* harmony export */ CurveSearchStatus: () => (/* reexport safe */ _curve_CurveLocationDetail__WEBPACK_IMPORTED_MODULE_66__.CurveSearchStatus),
181671
181671
  /* harmony export */ CutLoop: () => (/* reexport safe */ _geometry3d_PolygonOps__WEBPACK_IMPORTED_MODULE_27__.CutLoop),
181672
181672
  /* harmony export */ CutLoopMergeContext: () => (/* reexport safe */ _geometry3d_PolygonOps__WEBPACK_IMPORTED_MODULE_27__.CutLoopMergeContext),
181673
- /* harmony export */ DeepCompare: () => (/* reexport safe */ _serialization_DeepCompare__WEBPACK_IMPORTED_MODULE_127__.DeepCompare),
181674
- /* harmony export */ Degree2PowerPolynomial: () => (/* reexport safe */ _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_56__.Degree2PowerPolynomial),
181675
- /* harmony export */ Degree3PowerPolynomial: () => (/* reexport safe */ _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_56__.Degree3PowerPolynomial),
181676
- /* harmony export */ Degree4PowerPolynomial: () => (/* reexport safe */ _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_56__.Degree4PowerPolynomial),
181677
- /* harmony export */ DirectSpiral3d: () => (/* reexport safe */ _curve_spiral_DirectSpiral3d__WEBPACK_IMPORTED_MODULE_86__.DirectSpiral3d),
181678
- /* harmony export */ DuplicateFacetClusterSelector: () => (/* reexport safe */ _polyface_PolyfaceQuery__WEBPACK_IMPORTED_MODULE_120__.DuplicateFacetClusterSelector),
181673
+ /* harmony export */ DeepCompare: () => (/* reexport safe */ _serialization_DeepCompare__WEBPACK_IMPORTED_MODULE_126__.DeepCompare),
181674
+ /* harmony export */ Degree2PowerPolynomial: () => (/* reexport safe */ _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_55__.Degree2PowerPolynomial),
181675
+ /* harmony export */ Degree3PowerPolynomial: () => (/* reexport safe */ _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_55__.Degree3PowerPolynomial),
181676
+ /* harmony export */ Degree4PowerPolynomial: () => (/* reexport safe */ _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_55__.Degree4PowerPolynomial),
181677
+ /* harmony export */ DirectSpiral3d: () => (/* reexport safe */ _curve_spiral_DirectSpiral3d__WEBPACK_IMPORTED_MODULE_85__.DirectSpiral3d),
181678
+ /* harmony export */ DuplicateFacetClusterSelector: () => (/* reexport safe */ _polyface_PolyfaceQuery__WEBPACK_IMPORTED_MODULE_119__.DuplicateFacetClusterSelector),
181679
181679
  /* harmony export */ Ellipsoid: () => (/* reexport safe */ _geometry3d_Ellipsoid__WEBPACK_IMPORTED_MODULE_5__.Ellipsoid),
181680
181680
  /* harmony export */ EllipsoidPatch: () => (/* reexport safe */ _geometry3d_Ellipsoid__WEBPACK_IMPORTED_MODULE_5__.EllipsoidPatch),
181681
- /* harmony export */ FacetFaceData: () => (/* reexport safe */ _polyface_FacetFaceData__WEBPACK_IMPORTED_MODULE_112__.FacetFaceData),
181682
- /* harmony export */ FacetIntersectOptions: () => (/* reexport safe */ _polyface_FacetLocationDetail__WEBPACK_IMPORTED_MODULE_114__.FacetIntersectOptions),
181681
+ /* harmony export */ FacetFaceData: () => (/* reexport safe */ _polyface_FacetFaceData__WEBPACK_IMPORTED_MODULE_111__.FacetFaceData),
181682
+ /* harmony export */ FacetIntersectOptions: () => (/* reexport safe */ _polyface_FacetLocationDetail__WEBPACK_IMPORTED_MODULE_113__.FacetIntersectOptions),
181683
181683
  /* harmony export */ FrameBuilder: () => (/* reexport safe */ _geometry3d_FrameBuilder__WEBPACK_IMPORTED_MODULE_6__.FrameBuilder),
181684
- /* harmony export */ GaussMapper: () => (/* reexport safe */ _numerics_Quadrature__WEBPACK_IMPORTED_MODULE_57__.GaussMapper),
181684
+ /* harmony export */ GaussMapper: () => (/* reexport safe */ _numerics_Quadrature__WEBPACK_IMPORTED_MODULE_56__.GaussMapper),
181685
181685
  /* harmony export */ GeodesicPathPoint: () => (/* reexport safe */ _geometry3d_Ellipsoid__WEBPACK_IMPORTED_MODULE_5__.GeodesicPathPoint),
181686
181686
  /* harmony export */ GeodesicPathSolver: () => (/* reexport safe */ _geometry3d_Ellipsoid__WEBPACK_IMPORTED_MODULE_5__.GeodesicPathSolver),
181687
181687
  /* harmony export */ Geometry: () => (/* reexport safe */ _Geometry__WEBPACK_IMPORTED_MODULE_36__.Geometry),
181688
181688
  /* harmony export */ GeometryHandler: () => (/* reexport safe */ _geometry3d_GeometryHandler__WEBPACK_IMPORTED_MODULE_8__.GeometryHandler),
181689
- /* harmony export */ GeometryQuery: () => (/* reexport safe */ _curve_GeometryQuery__WEBPACK_IMPORTED_MODULE_72__.GeometryQuery),
181690
- /* harmony export */ GriddedRaggedRange2dSet: () => (/* reexport safe */ _polyface_multiclip_GriddedRaggedRange2dSet__WEBPACK_IMPORTED_MODULE_116__.GriddedRaggedRange2dSet),
181691
- /* harmony export */ GriddedRaggedRange2dSetWithOverflow: () => (/* reexport safe */ _polyface_multiclip_GriddedRaggedRange2dSetWithOverflow__WEBPACK_IMPORTED_MODULE_117__.GriddedRaggedRange2dSetWithOverflow),
181689
+ /* harmony export */ GeometryQuery: () => (/* reexport safe */ _curve_GeometryQuery__WEBPACK_IMPORTED_MODULE_71__.GeometryQuery),
181690
+ /* harmony export */ GriddedRaggedRange2dSet: () => (/* reexport safe */ _polyface_multiclip_GriddedRaggedRange2dSet__WEBPACK_IMPORTED_MODULE_115__.GriddedRaggedRange2dSet),
181691
+ /* harmony export */ GriddedRaggedRange2dSetWithOverflow: () => (/* reexport safe */ _polyface_multiclip_GriddedRaggedRange2dSetWithOverflow__WEBPACK_IMPORTED_MODULE_116__.GriddedRaggedRange2dSetWithOverflow),
181692
181692
  /* harmony export */ GrowableBlockedArray: () => (/* reexport safe */ _geometry3d_GrowableBlockedArray__WEBPACK_IMPORTED_MODULE_9__.GrowableBlockedArray),
181693
181693
  /* harmony export */ GrowableFloat64Array: () => (/* reexport safe */ _geometry3d_GrowableFloat64Array__WEBPACK_IMPORTED_MODULE_10__.GrowableFloat64Array),
181694
181694
  /* harmony export */ GrowableXYArray: () => (/* reexport safe */ _geometry3d_GrowableXYArray__WEBPACK_IMPORTED_MODULE_11__.GrowableXYArray),
181695
181695
  /* harmony export */ GrowableXYZArray: () => (/* reexport safe */ _geometry3d_GrowableXYZArray__WEBPACK_IMPORTED_MODULE_12__.GrowableXYZArray),
181696
- /* harmony export */ HalfEdge: () => (/* reexport safe */ _topology_Graph__WEBPACK_IMPORTED_MODULE_123__.HalfEdge),
181697
- /* harmony export */ HalfEdgeGraph: () => (/* reexport safe */ _topology_Graph__WEBPACK_IMPORTED_MODULE_123__.HalfEdgeGraph),
181698
- /* harmony export */ HalfEdgeMask: () => (/* reexport safe */ _topology_Graph__WEBPACK_IMPORTED_MODULE_123__.HalfEdgeMask),
181699
- /* harmony export */ IModelJson: () => (/* reexport safe */ _serialization_IModelJsonSchema__WEBPACK_IMPORTED_MODULE_126__.IModelJson),
181700
- /* harmony export */ ImplicitLineXY: () => (/* reexport safe */ _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_56__.ImplicitLineXY),
181696
+ /* harmony export */ HalfEdge: () => (/* reexport safe */ _topology_Graph__WEBPACK_IMPORTED_MODULE_122__.HalfEdge),
181697
+ /* harmony export */ HalfEdgeGraph: () => (/* reexport safe */ _topology_Graph__WEBPACK_IMPORTED_MODULE_122__.HalfEdgeGraph),
181698
+ /* harmony export */ HalfEdgeMask: () => (/* reexport safe */ _topology_Graph__WEBPACK_IMPORTED_MODULE_122__.HalfEdgeMask),
181699
+ /* harmony export */ IModelJson: () => (/* reexport safe */ _serialization_IModelJsonSchema__WEBPACK_IMPORTED_MODULE_125__.IModelJson),
181700
+ /* harmony export */ ImplicitLineXY: () => (/* reexport safe */ _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_55__.ImplicitLineXY),
181701
181701
  /* harmony export */ IndexedCollectionInterval: () => (/* reexport safe */ _geometry3d_IndexedCollectionInterval__WEBPACK_IMPORTED_MODULE_13__.IndexedCollectionInterval),
181702
- /* harmony export */ IndexedPolyface: () => (/* reexport safe */ _polyface_Polyface__WEBPACK_IMPORTED_MODULE_113__.IndexedPolyface),
181703
- /* harmony export */ IndexedPolyfaceSubsetVisitor: () => (/* reexport safe */ _polyface_IndexedPolyfaceVisitor__WEBPACK_IMPORTED_MODULE_115__.IndexedPolyfaceSubsetVisitor),
181704
- /* harmony export */ IndexedPolyfaceVisitor: () => (/* reexport safe */ _polyface_IndexedPolyfaceVisitor__WEBPACK_IMPORTED_MODULE_115__.IndexedPolyfaceVisitor),
181702
+ /* harmony export */ IndexedPolyface: () => (/* reexport safe */ _polyface_Polyface__WEBPACK_IMPORTED_MODULE_112__.IndexedPolyface),
181703
+ /* harmony export */ IndexedPolyfaceSubsetVisitor: () => (/* reexport safe */ _polyface_IndexedPolyfaceVisitor__WEBPACK_IMPORTED_MODULE_114__.IndexedPolyfaceSubsetVisitor),
181704
+ /* harmony export */ IndexedPolyfaceVisitor: () => (/* reexport safe */ _polyface_IndexedPolyfaceVisitor__WEBPACK_IMPORTED_MODULE_114__.IndexedPolyfaceVisitor),
181705
181705
  /* harmony export */ IndexedReadWriteXYZCollection: () => (/* reexport safe */ _geometry3d_IndexedXYZCollection__WEBPACK_IMPORTED_MODULE_15__.IndexedReadWriteXYZCollection),
181706
181706
  /* harmony export */ IndexedXYCollection: () => (/* reexport safe */ _geometry3d_IndexedXYCollection__WEBPACK_IMPORTED_MODULE_14__.IndexedXYCollection),
181707
181707
  /* harmony export */ IndexedXYZCollection: () => (/* reexport safe */ _geometry3d_IndexedXYZCollection__WEBPACK_IMPORTED_MODULE_15__.IndexedXYZCollection),
181708
181708
  /* harmony export */ IndexedXYZCollectionInterval: () => (/* reexport safe */ _geometry3d_IndexedCollectionInterval__WEBPACK_IMPORTED_MODULE_13__.IndexedXYZCollectionInterval),
181709
181709
  /* harmony export */ IndexedXYZCollectionPolygonOps: () => (/* reexport safe */ _geometry3d_PolygonOps__WEBPACK_IMPORTED_MODULE_27__.IndexedXYZCollectionPolygonOps),
181710
- /* harmony export */ IntegratedSpiral3d: () => (/* reexport safe */ _curve_spiral_IntegratedSpiral3d__WEBPACK_IMPORTED_MODULE_85__.IntegratedSpiral3d),
181711
- /* harmony export */ InterpolationCurve3d: () => (/* reexport safe */ _bspline_InterpolationCurve3d__WEBPACK_IMPORTED_MODULE_108__.InterpolationCurve3d),
181712
- /* harmony export */ InterpolationCurve3dOptions: () => (/* reexport safe */ _bspline_InterpolationCurve3d__WEBPACK_IMPORTED_MODULE_108__.InterpolationCurve3dOptions),
181710
+ /* harmony export */ IntegratedSpiral3d: () => (/* reexport safe */ _curve_spiral_IntegratedSpiral3d__WEBPACK_IMPORTED_MODULE_84__.IntegratedSpiral3d),
181711
+ /* harmony export */ InterpolationCurve3d: () => (/* reexport safe */ _bspline_InterpolationCurve3d__WEBPACK_IMPORTED_MODULE_107__.InterpolationCurve3d),
181712
+ /* harmony export */ InterpolationCurve3dOptions: () => (/* reexport safe */ _bspline_InterpolationCurve3d__WEBPACK_IMPORTED_MODULE_107__.InterpolationCurve3dOptions),
181713
181713
  /* harmony export */ InverseMatrixState: () => (/* reexport safe */ _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_16__.InverseMatrixState),
181714
- /* harmony export */ JointOptions: () => (/* reexport safe */ _curve_OffsetOptions__WEBPACK_IMPORTED_MODULE_76__.JointOptions),
181715
- /* harmony export */ KnotVector: () => (/* reexport safe */ _bspline_KnotVector__WEBPACK_IMPORTED_MODULE_109__.KnotVector),
181716
- /* harmony export */ LineSegment3d: () => (/* reexport safe */ _curve_LineSegment3d__WEBPACK_IMPORTED_MODULE_73__.LineSegment3d),
181717
- /* harmony export */ LineString3d: () => (/* reexport safe */ _curve_LineString3d__WEBPACK_IMPORTED_MODULE_74__.LineString3d),
181718
- /* harmony export */ LinearSweep: () => (/* reexport safe */ _solid_LinearSweep__WEBPACK_IMPORTED_MODULE_91__.LinearSweep),
181714
+ /* harmony export */ JointOptions: () => (/* reexport safe */ _curve_OffsetOptions__WEBPACK_IMPORTED_MODULE_75__.JointOptions),
181715
+ /* harmony export */ KnotVector: () => (/* reexport safe */ _bspline_KnotVector__WEBPACK_IMPORTED_MODULE_108__.KnotVector),
181716
+ /* harmony export */ LineSegment3d: () => (/* reexport safe */ _curve_LineSegment3d__WEBPACK_IMPORTED_MODULE_72__.LineSegment3d),
181717
+ /* harmony export */ LineString3d: () => (/* reexport safe */ _curve_LineString3d__WEBPACK_IMPORTED_MODULE_73__.LineString3d),
181718
+ /* harmony export */ LinearSweep: () => (/* reexport safe */ _solid_LinearSweep__WEBPACK_IMPORTED_MODULE_90__.LinearSweep),
181719
181719
  /* harmony export */ LongitudeLatitudeNumber: () => (/* reexport safe */ _geometry3d_LongitudeLatitudeAltitude__WEBPACK_IMPORTED_MODULE_2__.LongitudeLatitudeNumber),
181720
- /* harmony export */ Loop: () => (/* reexport safe */ _curve_Loop__WEBPACK_IMPORTED_MODULE_75__.Loop),
181721
- /* harmony export */ LoopCurveLoopCurve: () => (/* reexport safe */ _curve_Loop__WEBPACK_IMPORTED_MODULE_75__.LoopCurveLoopCurve),
181720
+ /* harmony export */ Loop: () => (/* reexport safe */ _curve_Loop__WEBPACK_IMPORTED_MODULE_74__.Loop),
181721
+ /* harmony export */ LoopCurveLoopCurve: () => (/* reexport safe */ _curve_Loop__WEBPACK_IMPORTED_MODULE_74__.LoopCurveLoopCurve),
181722
181722
  /* harmony export */ Map4d: () => (/* reexport safe */ _geometry4d_Map4d__WEBPACK_IMPORTED_MODULE_49__.Map4d),
181723
181723
  /* harmony export */ Matrix3d: () => (/* reexport safe */ _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_16__.Matrix3d),
181724
181724
  /* harmony export */ Matrix4d: () => (/* reexport safe */ _geometry4d_Matrix4d__WEBPACK_IMPORTED_MODULE_48__.Matrix4d),
181725
- /* harmony export */ MiteredSweepOutputSelect: () => (/* reexport safe */ _curve_CurveFactory__WEBPACK_IMPORTED_MODULE_68__.MiteredSweepOutputSelect),
181725
+ /* harmony export */ MiteredSweepOutputSelect: () => (/* reexport safe */ _curve_CurveFactory__WEBPACK_IMPORTED_MODULE_67__.MiteredSweepOutputSelect),
181726
181726
  /* harmony export */ MomentData: () => (/* reexport safe */ _geometry4d_MomentData__WEBPACK_IMPORTED_MODULE_50__.MomentData),
181727
- /* harmony export */ Newton1dUnbounded: () => (/* reexport safe */ _numerics_Newton__WEBPACK_IMPORTED_MODULE_53__.Newton1dUnbounded),
181728
- /* harmony export */ Newton1dUnboundedApproximateDerivative: () => (/* reexport safe */ _numerics_Newton__WEBPACK_IMPORTED_MODULE_53__.Newton1dUnboundedApproximateDerivative),
181729
- /* harmony export */ Newton2dUnboundedWithDerivative: () => (/* reexport safe */ _numerics_Newton__WEBPACK_IMPORTED_MODULE_53__.Newton2dUnboundedWithDerivative),
181730
- /* harmony export */ NewtonEvaluatorRRtoRRD: () => (/* reexport safe */ _numerics_Newton__WEBPACK_IMPORTED_MODULE_53__.NewtonEvaluatorRRtoRRD),
181731
- /* harmony export */ NewtonEvaluatorRtoR: () => (/* reexport safe */ _numerics_Newton__WEBPACK_IMPORTED_MODULE_53__.NewtonEvaluatorRtoR),
181732
- /* harmony export */ NewtonEvaluatorRtoRD: () => (/* reexport safe */ _numerics_Newton__WEBPACK_IMPORTED_MODULE_53__.NewtonEvaluatorRtoRD),
181733
- /* harmony export */ NonConvexFacetLocationDetail: () => (/* reexport safe */ _polyface_FacetLocationDetail__WEBPACK_IMPORTED_MODULE_114__.NonConvexFacetLocationDetail),
181727
+ /* harmony export */ NonConvexFacetLocationDetail: () => (/* reexport safe */ _polyface_FacetLocationDetail__WEBPACK_IMPORTED_MODULE_113__.NonConvexFacetLocationDetail),
181734
181728
  /* harmony export */ NullGeometryHandler: () => (/* reexport safe */ _geometry3d_GeometryHandler__WEBPACK_IMPORTED_MODULE_8__.NullGeometryHandler),
181735
181729
  /* harmony export */ NumberArray: () => (/* reexport safe */ _geometry3d_PointHelpers__WEBPACK_IMPORTED_MODULE_24__.NumberArray),
181736
- /* harmony export */ OffsetMeshOptions: () => (/* reexport safe */ _polyface_PolyfaceQuery__WEBPACK_IMPORTED_MODULE_120__.OffsetMeshOptions),
181737
- /* harmony export */ OffsetOptions: () => (/* reexport safe */ _curve_OffsetOptions__WEBPACK_IMPORTED_MODULE_76__.OffsetOptions),
181730
+ /* harmony export */ OffsetMeshOptions: () => (/* reexport safe */ _polyface_PolyfaceQuery__WEBPACK_IMPORTED_MODULE_119__.OffsetMeshOptions),
181731
+ /* harmony export */ OffsetOptions: () => (/* reexport safe */ _curve_OffsetOptions__WEBPACK_IMPORTED_MODULE_75__.OffsetOptions),
181738
181732
  /* harmony export */ Order2Bezier: () => (/* reexport safe */ _numerics_BezierPolynomials__WEBPACK_IMPORTED_MODULE_51__.Order2Bezier),
181739
181733
  /* harmony export */ Order3Bezier: () => (/* reexport safe */ _numerics_BezierPolynomials__WEBPACK_IMPORTED_MODULE_51__.Order3Bezier),
181740
181734
  /* harmony export */ Order4Bezier: () => (/* reexport safe */ _numerics_BezierPolynomials__WEBPACK_IMPORTED_MODULE_51__.Order4Bezier),
181741
181735
  /* harmony export */ Order5Bezier: () => (/* reexport safe */ _numerics_BezierPolynomials__WEBPACK_IMPORTED_MODULE_51__.Order5Bezier),
181742
181736
  /* harmony export */ OrderedRotationAngles: () => (/* reexport safe */ _geometry3d_OrderedRotationAngles__WEBPACK_IMPORTED_MODULE_17__.OrderedRotationAngles),
181743
181737
  /* harmony export */ PackedMatrix3dOps: () => (/* reexport safe */ _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_16__.PackedMatrix3dOps),
181744
- /* harmony export */ ParityRegion: () => (/* reexport safe */ _curve_ParityRegion__WEBPACK_IMPORTED_MODULE_77__.ParityRegion),
181745
- /* harmony export */ PascalCoefficients: () => (/* reexport safe */ _numerics_PascalCoefficients__WEBPACK_IMPORTED_MODULE_55__.PascalCoefficients),
181746
- /* harmony export */ Path: () => (/* reexport safe */ _curve_Path__WEBPACK_IMPORTED_MODULE_78__.Path),
181747
- /* harmony export */ PathFragment: () => (/* reexport safe */ _curve_CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_63__.PathFragment),
181738
+ /* harmony export */ ParityRegion: () => (/* reexport safe */ _curve_ParityRegion__WEBPACK_IMPORTED_MODULE_76__.ParityRegion),
181739
+ /* harmony export */ PascalCoefficients: () => (/* reexport safe */ _numerics_PascalCoefficients__WEBPACK_IMPORTED_MODULE_54__.PascalCoefficients),
181740
+ /* harmony export */ Path: () => (/* reexport safe */ _curve_Path__WEBPACK_IMPORTED_MODULE_77__.Path),
181741
+ /* harmony export */ PathFragment: () => (/* reexport safe */ _curve_CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_62__.PathFragment),
181748
181742
  /* harmony export */ Plane3d: () => (/* reexport safe */ _geometry3d_Plane3d__WEBPACK_IMPORTED_MODULE_18__.Plane3d),
181749
181743
  /* harmony export */ Plane3dByOriginAndUnitNormal: () => (/* reexport safe */ _geometry3d_Plane3dByOriginAndUnitNormal__WEBPACK_IMPORTED_MODULE_19__.Plane3dByOriginAndUnitNormal),
181750
181744
  /* harmony export */ Plane3dByOriginAndVectors: () => (/* reexport safe */ _geometry3d_Plane3dByOriginAndVectors__WEBPACK_IMPORTED_MODULE_20__.Plane3dByOriginAndVectors),
@@ -181758,78 +181752,77 @@ __webpack_require__.r(__webpack_exports__);
181758
181752
  /* harmony export */ Point3dArrayPolygonOps: () => (/* reexport safe */ _geometry3d_PolygonOps__WEBPACK_IMPORTED_MODULE_27__.Point3dArrayPolygonOps),
181759
181753
  /* harmony export */ Point4d: () => (/* reexport safe */ _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_47__.Point4d),
181760
181754
  /* harmony export */ Point4dArray: () => (/* reexport safe */ _geometry3d_PointHelpers__WEBPACK_IMPORTED_MODULE_24__.Point4dArray),
181761
- /* harmony export */ PointString3d: () => (/* reexport safe */ _curve_PointString3d__WEBPACK_IMPORTED_MODULE_81__.PointString3d),
181762
- /* harmony export */ Polyface: () => (/* reexport safe */ _polyface_Polyface__WEBPACK_IMPORTED_MODULE_113__.Polyface),
181763
- /* harmony export */ PolyfaceAuxData: () => (/* reexport safe */ _polyface_AuxData__WEBPACK_IMPORTED_MODULE_110__.PolyfaceAuxData),
181764
- /* harmony export */ PolyfaceBuilder: () => (/* reexport safe */ _polyface_PolyfaceBuilder__WEBPACK_IMPORTED_MODULE_118__.PolyfaceBuilder),
181765
- /* harmony export */ PolyfaceClip: () => (/* reexport safe */ _polyface_PolyfaceClip__WEBPACK_IMPORTED_MODULE_121__.PolyfaceClip),
181766
- /* harmony export */ PolyfaceData: () => (/* reexport safe */ _polyface_PolyfaceData__WEBPACK_IMPORTED_MODULE_119__.PolyfaceData),
181767
- /* harmony export */ PolyfaceQuery: () => (/* reexport safe */ _polyface_PolyfaceQuery__WEBPACK_IMPORTED_MODULE_120__.PolyfaceQuery),
181755
+ /* harmony export */ PointString3d: () => (/* reexport safe */ _curve_PointString3d__WEBPACK_IMPORTED_MODULE_80__.PointString3d),
181756
+ /* harmony export */ Polyface: () => (/* reexport safe */ _polyface_Polyface__WEBPACK_IMPORTED_MODULE_112__.Polyface),
181757
+ /* harmony export */ PolyfaceAuxData: () => (/* reexport safe */ _polyface_AuxData__WEBPACK_IMPORTED_MODULE_109__.PolyfaceAuxData),
181758
+ /* harmony export */ PolyfaceBuilder: () => (/* reexport safe */ _polyface_PolyfaceBuilder__WEBPACK_IMPORTED_MODULE_117__.PolyfaceBuilder),
181759
+ /* harmony export */ PolyfaceClip: () => (/* reexport safe */ _polyface_PolyfaceClip__WEBPACK_IMPORTED_MODULE_120__.PolyfaceClip),
181760
+ /* harmony export */ PolyfaceData: () => (/* reexport safe */ _polyface_PolyfaceData__WEBPACK_IMPORTED_MODULE_118__.PolyfaceData),
181761
+ /* harmony export */ PolyfaceQuery: () => (/* reexport safe */ _polyface_PolyfaceQuery__WEBPACK_IMPORTED_MODULE_119__.PolyfaceQuery),
181768
181762
  /* harmony export */ PolygonLocation: () => (/* reexport safe */ _Geometry__WEBPACK_IMPORTED_MODULE_36__.PolygonLocation),
181769
181763
  /* harmony export */ PolygonLocationDetail: () => (/* reexport safe */ _geometry3d_PolygonOps__WEBPACK_IMPORTED_MODULE_27__.PolygonLocationDetail),
181770
181764
  /* harmony export */ PolygonOps: () => (/* reexport safe */ _geometry3d_PolygonOps__WEBPACK_IMPORTED_MODULE_27__.PolygonOps),
181771
181765
  /* harmony export */ PolylineOps: () => (/* reexport safe */ _geometry3d_PolylineOps__WEBPACK_IMPORTED_MODULE_26__.PolylineOps),
181772
- /* harmony export */ PowerPolynomial: () => (/* reexport safe */ _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_56__.PowerPolynomial),
181773
- /* harmony export */ ProxyCurve: () => (/* reexport safe */ _curve_ProxyCurve__WEBPACK_IMPORTED_MODULE_82__.ProxyCurve),
181774
- /* harmony export */ Quadrature: () => (/* reexport safe */ _numerics_Quadrature__WEBPACK_IMPORTED_MODULE_57__.Quadrature),
181766
+ /* harmony export */ PowerPolynomial: () => (/* reexport safe */ _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_55__.PowerPolynomial),
181767
+ /* harmony export */ ProxyCurve: () => (/* reexport safe */ _curve_ProxyCurve__WEBPACK_IMPORTED_MODULE_81__.ProxyCurve),
181768
+ /* harmony export */ Quadrature: () => (/* reexport safe */ _numerics_Quadrature__WEBPACK_IMPORTED_MODULE_56__.Quadrature),
181775
181769
  /* harmony export */ Range1d: () => (/* reexport safe */ _geometry3d_Range__WEBPACK_IMPORTED_MODULE_28__.Range1d),
181776
- /* harmony export */ Range1dArray: () => (/* reexport safe */ _numerics_Range1dArray__WEBPACK_IMPORTED_MODULE_58__.Range1dArray),
181770
+ /* harmony export */ Range1dArray: () => (/* reexport safe */ _numerics_Range1dArray__WEBPACK_IMPORTED_MODULE_57__.Range1dArray),
181777
181771
  /* harmony export */ Range2d: () => (/* reexport safe */ _geometry3d_Range__WEBPACK_IMPORTED_MODULE_28__.Range2d),
181778
181772
  /* harmony export */ Range3d: () => (/* reexport safe */ _geometry3d_Range__WEBPACK_IMPORTED_MODULE_28__.Range3d),
181779
181773
  /* harmony export */ RangeBase: () => (/* reexport safe */ _geometry3d_Range__WEBPACK_IMPORTED_MODULE_28__.RangeBase),
181780
181774
  /* harmony export */ Ray2d: () => (/* reexport safe */ _geometry3d_Ray2d__WEBPACK_IMPORTED_MODULE_29__.Ray2d),
181781
181775
  /* harmony export */ Ray3d: () => (/* reexport safe */ _geometry3d_Ray3d__WEBPACK_IMPORTED_MODULE_30__.Ray3d),
181782
181776
  /* harmony export */ RecurseToCurvesGeometryHandler: () => (/* reexport safe */ _geometry3d_GeometryHandler__WEBPACK_IMPORTED_MODULE_8__.RecurseToCurvesGeometryHandler),
181783
- /* harmony export */ RecursiveCurveProcessor: () => (/* reexport safe */ _curve_CurveProcessor__WEBPACK_IMPORTED_MODULE_71__.RecursiveCurveProcessor),
181784
- /* harmony export */ RecursiveCurveProcessorWithStack: () => (/* reexport safe */ _curve_CurveProcessor__WEBPACK_IMPORTED_MODULE_71__.RecursiveCurveProcessorWithStack),
181785
- /* harmony export */ RegionBinaryOpType: () => (/* reexport safe */ _curve_RegionOps__WEBPACK_IMPORTED_MODULE_80__.RegionBinaryOpType),
181786
- /* harmony export */ RegionMomentsXY: () => (/* reexport safe */ _curve_RegionMomentsXY__WEBPACK_IMPORTED_MODULE_79__.RegionMomentsXY),
181787
- /* harmony export */ RegionOps: () => (/* reexport safe */ _curve_RegionOps__WEBPACK_IMPORTED_MODULE_80__.RegionOps),
181788
- /* harmony export */ RotationalSweep: () => (/* reexport safe */ _solid_RotationalSweep__WEBPACK_IMPORTED_MODULE_92__.RotationalSweep),
181789
- /* harmony export */ RuledSweep: () => (/* reexport safe */ _solid_RuledSweep__WEBPACK_IMPORTED_MODULE_93__.RuledSweep),
181790
- /* harmony export */ Sample: () => (/* reexport safe */ _serialization_GeometrySamples__WEBPACK_IMPORTED_MODULE_128__.Sample),
181777
+ /* harmony export */ RecursiveCurveProcessor: () => (/* reexport safe */ _curve_CurveProcessor__WEBPACK_IMPORTED_MODULE_70__.RecursiveCurveProcessor),
181778
+ /* harmony export */ RecursiveCurveProcessorWithStack: () => (/* reexport safe */ _curve_CurveProcessor__WEBPACK_IMPORTED_MODULE_70__.RecursiveCurveProcessorWithStack),
181779
+ /* harmony export */ RegionBinaryOpType: () => (/* reexport safe */ _curve_RegionOps__WEBPACK_IMPORTED_MODULE_79__.RegionBinaryOpType),
181780
+ /* harmony export */ RegionMomentsXY: () => (/* reexport safe */ _curve_RegionMomentsXY__WEBPACK_IMPORTED_MODULE_78__.RegionMomentsXY),
181781
+ /* harmony export */ RegionOps: () => (/* reexport safe */ _curve_RegionOps__WEBPACK_IMPORTED_MODULE_79__.RegionOps),
181782
+ /* harmony export */ RotationalSweep: () => (/* reexport safe */ _solid_RotationalSweep__WEBPACK_IMPORTED_MODULE_91__.RotationalSweep),
181783
+ /* harmony export */ RuledSweep: () => (/* reexport safe */ _solid_RuledSweep__WEBPACK_IMPORTED_MODULE_92__.RuledSweep),
181784
+ /* harmony export */ Sample: () => (/* reexport safe */ _serialization_GeometrySamples__WEBPACK_IMPORTED_MODULE_127__.Sample),
181791
181785
  /* harmony export */ Segment1d: () => (/* reexport safe */ _geometry3d_Segment1d__WEBPACK_IMPORTED_MODULE_31__.Segment1d),
181792
- /* harmony export */ SimpleNewton: () => (/* reexport safe */ _numerics_Newton__WEBPACK_IMPORTED_MODULE_53__.SimpleNewton),
181793
- /* harmony export */ SineCosinePolynomial: () => (/* reexport safe */ _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_56__.SineCosinePolynomial),
181794
- /* harmony export */ SmallSystem: () => (/* reexport safe */ _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_56__.SmallSystem),
181786
+ /* harmony export */ SineCosinePolynomial: () => (/* reexport safe */ _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_55__.SineCosinePolynomial),
181787
+ /* harmony export */ SmallSystem: () => (/* reexport safe */ _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_55__.SmallSystem),
181795
181788
  /* harmony export */ SmoothTransformBetweenFrusta: () => (/* reexport safe */ _geometry3d_FrustumAnimation__WEBPACK_IMPORTED_MODULE_7__.SmoothTransformBetweenFrusta),
181796
- /* harmony export */ SolidPrimitive: () => (/* reexport safe */ _solid_SolidPrimitive__WEBPACK_IMPORTED_MODULE_94__.SolidPrimitive),
181797
- /* harmony export */ SpacePolygonTriangulation: () => (/* reexport safe */ _topology_SpaceTriangulation__WEBPACK_IMPORTED_MODULE_125__.SpacePolygonTriangulation),
181798
- /* harmony export */ Sphere: () => (/* reexport safe */ _solid_Sphere__WEBPACK_IMPORTED_MODULE_95__.Sphere),
181799
- /* harmony export */ SphereImplicit: () => (/* reexport safe */ _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_56__.SphereImplicit),
181789
+ /* harmony export */ SolidPrimitive: () => (/* reexport safe */ _solid_SolidPrimitive__WEBPACK_IMPORTED_MODULE_93__.SolidPrimitive),
181790
+ /* harmony export */ SpacePolygonTriangulation: () => (/* reexport safe */ _topology_SpaceTriangulation__WEBPACK_IMPORTED_MODULE_124__.SpacePolygonTriangulation),
181791
+ /* harmony export */ Sphere: () => (/* reexport safe */ _solid_Sphere__WEBPACK_IMPORTED_MODULE_94__.Sphere),
181792
+ /* harmony export */ SphereImplicit: () => (/* reexport safe */ _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_55__.SphereImplicit),
181800
181793
  /* harmony export */ StandardViewIndex: () => (/* reexport safe */ _Geometry__WEBPACK_IMPORTED_MODULE_36__.StandardViewIndex),
181801
- /* harmony export */ SteppedIndexFunctionFactory: () => (/* reexport safe */ _serialization_GeometrySamples__WEBPACK_IMPORTED_MODULE_128__.SteppedIndexFunctionFactory),
181794
+ /* harmony export */ SteppedIndexFunctionFactory: () => (/* reexport safe */ _serialization_GeometrySamples__WEBPACK_IMPORTED_MODULE_127__.SteppedIndexFunctionFactory),
181802
181795
  /* harmony export */ StringifiedClipVector: () => (/* reexport safe */ _clipping_ClipVector__WEBPACK_IMPORTED_MODULE_43__.StringifiedClipVector),
181803
- /* harmony export */ StrokeCountMap: () => (/* reexport safe */ _curve_Query_StrokeCountMap__WEBPACK_IMPORTED_MODULE_88__.StrokeCountMap),
181804
- /* harmony export */ StrokeOptions: () => (/* reexport safe */ _curve_StrokeOptions__WEBPACK_IMPORTED_MODULE_83__.StrokeOptions),
181805
- /* harmony export */ SweepContour: () => (/* reexport safe */ _solid_SweepContour__WEBPACK_IMPORTED_MODULE_96__.SweepContour),
181806
- /* harmony export */ SweepLineStringToFacetsOptions: () => (/* reexport safe */ _polyface_PolyfaceQuery__WEBPACK_IMPORTED_MODULE_120__.SweepLineStringToFacetsOptions),
181807
- /* harmony export */ TaggedNumericConstants: () => (/* reexport safe */ _polyface_TaggedNumericData__WEBPACK_IMPORTED_MODULE_122__.TaggedNumericConstants),
181808
- /* harmony export */ TaggedNumericData: () => (/* reexport safe */ _polyface_TaggedNumericData__WEBPACK_IMPORTED_MODULE_122__.TaggedNumericData),
181809
- /* harmony export */ TorusImplicit: () => (/* reexport safe */ _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_56__.TorusImplicit),
181810
- /* harmony export */ TorusPipe: () => (/* reexport safe */ _solid_TorusPipe__WEBPACK_IMPORTED_MODULE_97__.TorusPipe),
181796
+ /* harmony export */ StrokeCountMap: () => (/* reexport safe */ _curve_Query_StrokeCountMap__WEBPACK_IMPORTED_MODULE_87__.StrokeCountMap),
181797
+ /* harmony export */ StrokeOptions: () => (/* reexport safe */ _curve_StrokeOptions__WEBPACK_IMPORTED_MODULE_82__.StrokeOptions),
181798
+ /* harmony export */ SweepContour: () => (/* reexport safe */ _solid_SweepContour__WEBPACK_IMPORTED_MODULE_95__.SweepContour),
181799
+ /* harmony export */ SweepLineStringToFacetsOptions: () => (/* reexport safe */ _polyface_PolyfaceQuery__WEBPACK_IMPORTED_MODULE_119__.SweepLineStringToFacetsOptions),
181800
+ /* harmony export */ TaggedNumericConstants: () => (/* reexport safe */ _polyface_TaggedNumericData__WEBPACK_IMPORTED_MODULE_121__.TaggedNumericConstants),
181801
+ /* harmony export */ TaggedNumericData: () => (/* reexport safe */ _polyface_TaggedNumericData__WEBPACK_IMPORTED_MODULE_121__.TaggedNumericData),
181802
+ /* harmony export */ TorusImplicit: () => (/* reexport safe */ _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_55__.TorusImplicit),
181803
+ /* harmony export */ TorusPipe: () => (/* reexport safe */ _solid_TorusPipe__WEBPACK_IMPORTED_MODULE_96__.TorusPipe),
181811
181804
  /* harmony export */ Transform: () => (/* reexport safe */ _geometry3d_Transform__WEBPACK_IMPORTED_MODULE_32__.Transform),
181812
- /* harmony export */ TransitionSpiral3d: () => (/* reexport safe */ _curve_spiral_TransitionSpiral3d__WEBPACK_IMPORTED_MODULE_84__.TransitionSpiral3d),
181813
- /* harmony export */ TriDiagonalSystem: () => (/* reexport safe */ _numerics_TriDiagonalSystem__WEBPACK_IMPORTED_MODULE_59__.TriDiagonalSystem),
181805
+ /* harmony export */ TransitionSpiral3d: () => (/* reexport safe */ _curve_spiral_TransitionSpiral3d__WEBPACK_IMPORTED_MODULE_83__.TransitionSpiral3d),
181806
+ /* harmony export */ TriDiagonalSystem: () => (/* reexport safe */ _numerics_TriDiagonalSystem__WEBPACK_IMPORTED_MODULE_58__.TriDiagonalSystem),
181814
181807
  /* harmony export */ TriangleLocationDetail: () => (/* reexport safe */ _geometry3d_BarycentricTriangle__WEBPACK_IMPORTED_MODULE_3__.TriangleLocationDetail),
181815
- /* harmony export */ TriangularFacetLocationDetail: () => (/* reexport safe */ _polyface_FacetLocationDetail__WEBPACK_IMPORTED_MODULE_114__.TriangularFacetLocationDetail),
181816
- /* harmony export */ Triangulator: () => (/* reexport safe */ _topology_Triangulation__WEBPACK_IMPORTED_MODULE_124__.Triangulator),
181817
- /* harmony export */ TrigPolynomial: () => (/* reexport safe */ _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_56__.TrigPolynomial),
181818
- /* harmony export */ UVSelect: () => (/* reexport safe */ _bspline_BSplineSurface__WEBPACK_IMPORTED_MODULE_107__.UVSelect),
181808
+ /* harmony export */ TriangularFacetLocationDetail: () => (/* reexport safe */ _polyface_FacetLocationDetail__WEBPACK_IMPORTED_MODULE_113__.TriangularFacetLocationDetail),
181809
+ /* harmony export */ Triangulator: () => (/* reexport safe */ _topology_Triangulation__WEBPACK_IMPORTED_MODULE_123__.Triangulator),
181810
+ /* harmony export */ TrigPolynomial: () => (/* reexport safe */ _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_55__.TrigPolynomial),
181811
+ /* harmony export */ UVSelect: () => (/* reexport safe */ _bspline_BSplineSurface__WEBPACK_IMPORTED_MODULE_106__.UVSelect),
181819
181812
  /* harmony export */ UVSurfaceOps: () => (/* reexport safe */ _geometry3d_UVSurfaceOps__WEBPACK_IMPORTED_MODULE_33__.UVSurfaceOps),
181820
181813
  /* harmony export */ UnionOfConvexClipPlaneSets: () => (/* reexport safe */ _clipping_UnionOfConvexClipPlaneSets__WEBPACK_IMPORTED_MODULE_41__.UnionOfConvexClipPlaneSets),
181821
- /* harmony export */ UnionRegion: () => (/* reexport safe */ _curve_UnionRegion__WEBPACK_IMPORTED_MODULE_87__.UnionRegion),
181814
+ /* harmony export */ UnionRegion: () => (/* reexport safe */ _curve_UnionRegion__WEBPACK_IMPORTED_MODULE_86__.UnionRegion),
181822
181815
  /* harmony export */ UnivariateBezier: () => (/* reexport safe */ _numerics_BezierPolynomials__WEBPACK_IMPORTED_MODULE_51__.UnivariateBezier),
181823
181816
  /* harmony export */ Vector2d: () => (/* reexport safe */ _geometry3d_Point2dVector2d__WEBPACK_IMPORTED_MODULE_22__.Vector2d),
181824
181817
  /* harmony export */ Vector3d: () => (/* reexport safe */ _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_23__.Vector3d),
181825
181818
  /* harmony export */ Vector3dArray: () => (/* reexport safe */ _geometry3d_PointHelpers__WEBPACK_IMPORTED_MODULE_24__.Vector3dArray),
181826
- /* harmony export */ WeightStyle: () => (/* reexport safe */ _bspline_BSplineSurface__WEBPACK_IMPORTED_MODULE_107__.WeightStyle),
181819
+ /* harmony export */ WeightStyle: () => (/* reexport safe */ _bspline_BSplineSurface__WEBPACK_IMPORTED_MODULE_106__.WeightStyle),
181827
181820
  /* harmony export */ XY: () => (/* reexport safe */ _geometry3d_Point2dVector2d__WEBPACK_IMPORTED_MODULE_22__.XY),
181828
181821
  /* harmony export */ XYAndZ: () => (/* reexport safe */ _geometry3d_XYZProps__WEBPACK_IMPORTED_MODULE_34__.XYAndZ),
181829
181822
  /* harmony export */ XYZ: () => (/* reexport safe */ _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_23__.XYZ),
181830
181823
  /* harmony export */ YawPitchRollAngles: () => (/* reexport safe */ _geometry3d_YawPitchRollAngles__WEBPACK_IMPORTED_MODULE_35__.YawPitchRollAngles),
181831
- /* harmony export */ compareRange1dLexicalLowHigh: () => (/* reexport safe */ _numerics_Range1dArray__WEBPACK_IMPORTED_MODULE_58__.compareRange1dLexicalLowHigh),
181832
- /* harmony export */ interpolateColor: () => (/* reexport safe */ _polyface_IndexedPolyfaceVisitor__WEBPACK_IMPORTED_MODULE_115__.interpolateColor)
181824
+ /* harmony export */ compareRange1dLexicalLowHigh: () => (/* reexport safe */ _numerics_Range1dArray__WEBPACK_IMPORTED_MODULE_57__.compareRange1dLexicalLowHigh),
181825
+ /* harmony export */ interpolateColor: () => (/* reexport safe */ _polyface_IndexedPolyfaceVisitor__WEBPACK_IMPORTED_MODULE_114__.interpolateColor)
181833
181826
  /* harmony export */ });
181834
181827
  /* harmony import */ var _geometry3d_Angle__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./geometry3d/Angle */ "../../core/geometry/lib/esm/geometry3d/Angle.js");
181835
181828
  /* harmony import */ var _geometry3d_AngleSweep__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./geometry3d/AngleSweep */ "../../core/geometry/lib/esm/geometry3d/AngleSweep.js");
@@ -181884,83 +181877,82 @@ __webpack_require__.r(__webpack_exports__);
181884
181877
  /* harmony import */ var _geometry4d_MomentData__WEBPACK_IMPORTED_MODULE_50__ = __webpack_require__(/*! ./geometry4d/MomentData */ "../../core/geometry/lib/esm/geometry4d/MomentData.js");
181885
181878
  /* harmony import */ var _numerics_BezierPolynomials__WEBPACK_IMPORTED_MODULE_51__ = __webpack_require__(/*! ./numerics/BezierPolynomials */ "../../core/geometry/lib/esm/numerics/BezierPolynomials.js");
181886
181879
  /* harmony import */ var _numerics_ClusterableArray__WEBPACK_IMPORTED_MODULE_52__ = __webpack_require__(/*! ./numerics/ClusterableArray */ "../../core/geometry/lib/esm/numerics/ClusterableArray.js");
181887
- /* harmony import */ var _numerics_Newton__WEBPACK_IMPORTED_MODULE_53__ = __webpack_require__(/*! ./numerics/Newton */ "../../core/geometry/lib/esm/numerics/Newton.js");
181888
- /* harmony import */ var _numerics_Complex__WEBPACK_IMPORTED_MODULE_54__ = __webpack_require__(/*! ./numerics/Complex */ "../../core/geometry/lib/esm/numerics/Complex.js");
181889
- /* harmony import */ var _numerics_PascalCoefficients__WEBPACK_IMPORTED_MODULE_55__ = __webpack_require__(/*! ./numerics/PascalCoefficients */ "../../core/geometry/lib/esm/numerics/PascalCoefficients.js");
181890
- /* harmony import */ var _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_56__ = __webpack_require__(/*! ./numerics/Polynomials */ "../../core/geometry/lib/esm/numerics/Polynomials.js");
181891
- /* harmony import */ var _numerics_Quadrature__WEBPACK_IMPORTED_MODULE_57__ = __webpack_require__(/*! ./numerics/Quadrature */ "../../core/geometry/lib/esm/numerics/Quadrature.js");
181892
- /* harmony import */ var _numerics_Range1dArray__WEBPACK_IMPORTED_MODULE_58__ = __webpack_require__(/*! ./numerics/Range1dArray */ "../../core/geometry/lib/esm/numerics/Range1dArray.js");
181893
- /* harmony import */ var _numerics_TriDiagonalSystem__WEBPACK_IMPORTED_MODULE_59__ = __webpack_require__(/*! ./numerics/TriDiagonalSystem */ "../../core/geometry/lib/esm/numerics/TriDiagonalSystem.js");
181894
- /* harmony import */ var _curve_Arc3d__WEBPACK_IMPORTED_MODULE_60__ = __webpack_require__(/*! ./curve/Arc3d */ "../../core/geometry/lib/esm/curve/Arc3d.js");
181895
- /* harmony import */ var _curve_ConstructCurveBetweenCurves__WEBPACK_IMPORTED_MODULE_61__ = __webpack_require__(/*! ./curve/ConstructCurveBetweenCurves */ "../../core/geometry/lib/esm/curve/ConstructCurveBetweenCurves.js");
181896
- /* harmony import */ var _curve_CoordinateXYZ__WEBPACK_IMPORTED_MODULE_62__ = __webpack_require__(/*! ./curve/CoordinateXYZ */ "../../core/geometry/lib/esm/curve/CoordinateXYZ.js");
181897
- /* harmony import */ var _curve_CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_63__ = __webpack_require__(/*! ./curve/CurveChainWithDistanceIndex */ "../../core/geometry/lib/esm/curve/CurveChainWithDistanceIndex.js");
181898
- /* harmony import */ var _curve_CurveExtendMode__WEBPACK_IMPORTED_MODULE_64__ = __webpack_require__(/*! ./curve/CurveExtendMode */ "../../core/geometry/lib/esm/curve/CurveExtendMode.js");
181899
- /* harmony import */ var _curve_CurveCollection__WEBPACK_IMPORTED_MODULE_65__ = __webpack_require__(/*! ./curve/CurveCollection */ "../../core/geometry/lib/esm/curve/CurveCollection.js");
181900
- /* harmony import */ var _curve_CurveCurve__WEBPACK_IMPORTED_MODULE_66__ = __webpack_require__(/*! ./curve/CurveCurve */ "../../core/geometry/lib/esm/curve/CurveCurve.js");
181901
- /* harmony import */ var _curve_CurveLocationDetail__WEBPACK_IMPORTED_MODULE_67__ = __webpack_require__(/*! ./curve/CurveLocationDetail */ "../../core/geometry/lib/esm/curve/CurveLocationDetail.js");
181902
- /* harmony import */ var _curve_CurveFactory__WEBPACK_IMPORTED_MODULE_68__ = __webpack_require__(/*! ./curve/CurveFactory */ "../../core/geometry/lib/esm/curve/CurveFactory.js");
181903
- /* harmony import */ var _curve_CurveOps__WEBPACK_IMPORTED_MODULE_69__ = __webpack_require__(/*! ./curve/CurveOps */ "../../core/geometry/lib/esm/curve/CurveOps.js");
181904
- /* harmony import */ var _curve_CurvePrimitive__WEBPACK_IMPORTED_MODULE_70__ = __webpack_require__(/*! ./curve/CurvePrimitive */ "../../core/geometry/lib/esm/curve/CurvePrimitive.js");
181905
- /* harmony import */ var _curve_CurveProcessor__WEBPACK_IMPORTED_MODULE_71__ = __webpack_require__(/*! ./curve/CurveProcessor */ "../../core/geometry/lib/esm/curve/CurveProcessor.js");
181906
- /* harmony import */ var _curve_GeometryQuery__WEBPACK_IMPORTED_MODULE_72__ = __webpack_require__(/*! ./curve/GeometryQuery */ "../../core/geometry/lib/esm/curve/GeometryQuery.js");
181907
- /* harmony import */ var _curve_LineSegment3d__WEBPACK_IMPORTED_MODULE_73__ = __webpack_require__(/*! ./curve/LineSegment3d */ "../../core/geometry/lib/esm/curve/LineSegment3d.js");
181908
- /* harmony import */ var _curve_LineString3d__WEBPACK_IMPORTED_MODULE_74__ = __webpack_require__(/*! ./curve/LineString3d */ "../../core/geometry/lib/esm/curve/LineString3d.js");
181909
- /* harmony import */ var _curve_Loop__WEBPACK_IMPORTED_MODULE_75__ = __webpack_require__(/*! ./curve/Loop */ "../../core/geometry/lib/esm/curve/Loop.js");
181910
- /* harmony import */ var _curve_OffsetOptions__WEBPACK_IMPORTED_MODULE_76__ = __webpack_require__(/*! ./curve/OffsetOptions */ "../../core/geometry/lib/esm/curve/OffsetOptions.js");
181911
- /* harmony import */ var _curve_ParityRegion__WEBPACK_IMPORTED_MODULE_77__ = __webpack_require__(/*! ./curve/ParityRegion */ "../../core/geometry/lib/esm/curve/ParityRegion.js");
181912
- /* harmony import */ var _curve_Path__WEBPACK_IMPORTED_MODULE_78__ = __webpack_require__(/*! ./curve/Path */ "../../core/geometry/lib/esm/curve/Path.js");
181913
- /* harmony import */ var _curve_RegionMomentsXY__WEBPACK_IMPORTED_MODULE_79__ = __webpack_require__(/*! ./curve/RegionMomentsXY */ "../../core/geometry/lib/esm/curve/RegionMomentsXY.js");
181914
- /* harmony import */ var _curve_RegionOps__WEBPACK_IMPORTED_MODULE_80__ = __webpack_require__(/*! ./curve/RegionOps */ "../../core/geometry/lib/esm/curve/RegionOps.js");
181915
- /* harmony import */ var _curve_PointString3d__WEBPACK_IMPORTED_MODULE_81__ = __webpack_require__(/*! ./curve/PointString3d */ "../../core/geometry/lib/esm/curve/PointString3d.js");
181916
- /* harmony import */ var _curve_ProxyCurve__WEBPACK_IMPORTED_MODULE_82__ = __webpack_require__(/*! ./curve/ProxyCurve */ "../../core/geometry/lib/esm/curve/ProxyCurve.js");
181917
- /* harmony import */ var _curve_StrokeOptions__WEBPACK_IMPORTED_MODULE_83__ = __webpack_require__(/*! ./curve/StrokeOptions */ "../../core/geometry/lib/esm/curve/StrokeOptions.js");
181918
- /* harmony import */ var _curve_spiral_TransitionSpiral3d__WEBPACK_IMPORTED_MODULE_84__ = __webpack_require__(/*! ./curve/spiral/TransitionSpiral3d */ "../../core/geometry/lib/esm/curve/spiral/TransitionSpiral3d.js");
181919
- /* harmony import */ var _curve_spiral_IntegratedSpiral3d__WEBPACK_IMPORTED_MODULE_85__ = __webpack_require__(/*! ./curve/spiral/IntegratedSpiral3d */ "../../core/geometry/lib/esm/curve/spiral/IntegratedSpiral3d.js");
181920
- /* harmony import */ var _curve_spiral_DirectSpiral3d__WEBPACK_IMPORTED_MODULE_86__ = __webpack_require__(/*! ./curve/spiral/DirectSpiral3d */ "../../core/geometry/lib/esm/curve/spiral/DirectSpiral3d.js");
181921
- /* harmony import */ var _curve_UnionRegion__WEBPACK_IMPORTED_MODULE_87__ = __webpack_require__(/*! ./curve/UnionRegion */ "../../core/geometry/lib/esm/curve/UnionRegion.js");
181922
- /* harmony import */ var _curve_Query_StrokeCountMap__WEBPACK_IMPORTED_MODULE_88__ = __webpack_require__(/*! ./curve/Query/StrokeCountMap */ "../../core/geometry/lib/esm/curve/Query/StrokeCountMap.js");
181923
- /* harmony import */ var _solid_Box__WEBPACK_IMPORTED_MODULE_89__ = __webpack_require__(/*! ./solid/Box */ "../../core/geometry/lib/esm/solid/Box.js");
181924
- /* harmony import */ var _solid_Cone__WEBPACK_IMPORTED_MODULE_90__ = __webpack_require__(/*! ./solid/Cone */ "../../core/geometry/lib/esm/solid/Cone.js");
181925
- /* harmony import */ var _solid_LinearSweep__WEBPACK_IMPORTED_MODULE_91__ = __webpack_require__(/*! ./solid/LinearSweep */ "../../core/geometry/lib/esm/solid/LinearSweep.js");
181926
- /* harmony import */ var _solid_RotationalSweep__WEBPACK_IMPORTED_MODULE_92__ = __webpack_require__(/*! ./solid/RotationalSweep */ "../../core/geometry/lib/esm/solid/RotationalSweep.js");
181927
- /* harmony import */ var _solid_RuledSweep__WEBPACK_IMPORTED_MODULE_93__ = __webpack_require__(/*! ./solid/RuledSweep */ "../../core/geometry/lib/esm/solid/RuledSweep.js");
181928
- /* harmony import */ var _solid_SolidPrimitive__WEBPACK_IMPORTED_MODULE_94__ = __webpack_require__(/*! ./solid/SolidPrimitive */ "../../core/geometry/lib/esm/solid/SolidPrimitive.js");
181929
- /* harmony import */ var _solid_Sphere__WEBPACK_IMPORTED_MODULE_95__ = __webpack_require__(/*! ./solid/Sphere */ "../../core/geometry/lib/esm/solid/Sphere.js");
181930
- /* harmony import */ var _solid_SweepContour__WEBPACK_IMPORTED_MODULE_96__ = __webpack_require__(/*! ./solid/SweepContour */ "../../core/geometry/lib/esm/solid/SweepContour.js");
181931
- /* harmony import */ var _solid_TorusPipe__WEBPACK_IMPORTED_MODULE_97__ = __webpack_require__(/*! ./solid/TorusPipe */ "../../core/geometry/lib/esm/solid/TorusPipe.js");
181932
- /* harmony import */ var _bspline_AkimaCurve3d__WEBPACK_IMPORTED_MODULE_98__ = __webpack_require__(/*! ./bspline/AkimaCurve3d */ "../../core/geometry/lib/esm/bspline/AkimaCurve3d.js");
181933
- /* harmony import */ var _bspline_Bezier1dNd__WEBPACK_IMPORTED_MODULE_99__ = __webpack_require__(/*! ./bspline/Bezier1dNd */ "../../core/geometry/lib/esm/bspline/Bezier1dNd.js");
181934
- /* harmony import */ var _bspline_BezierCurveBase__WEBPACK_IMPORTED_MODULE_100__ = __webpack_require__(/*! ./bspline/BezierCurveBase */ "../../core/geometry/lib/esm/bspline/BezierCurveBase.js");
181935
- /* harmony import */ var _bspline_BezierCurve3d__WEBPACK_IMPORTED_MODULE_101__ = __webpack_require__(/*! ./bspline/BezierCurve3d */ "../../core/geometry/lib/esm/bspline/BezierCurve3d.js");
181936
- /* harmony import */ var _bspline_BezierCurve3dH__WEBPACK_IMPORTED_MODULE_102__ = __webpack_require__(/*! ./bspline/BezierCurve3dH */ "../../core/geometry/lib/esm/bspline/BezierCurve3dH.js");
181937
- /* harmony import */ var _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_103__ = __webpack_require__(/*! ./bspline/BSplineCurve */ "../../core/geometry/lib/esm/bspline/BSplineCurve.js");
181938
- /* harmony import */ var _bspline_BSplineCurveOps__WEBPACK_IMPORTED_MODULE_104__ = __webpack_require__(/*! ./bspline/BSplineCurveOps */ "../../core/geometry/lib/esm/bspline/BSplineCurveOps.js");
181939
- /* harmony import */ var _bspline_BSpline1dNd__WEBPACK_IMPORTED_MODULE_105__ = __webpack_require__(/*! ./bspline/BSpline1dNd */ "../../core/geometry/lib/esm/bspline/BSpline1dNd.js");
181940
- /* harmony import */ var _bspline_BSplineCurve3dH__WEBPACK_IMPORTED_MODULE_106__ = __webpack_require__(/*! ./bspline/BSplineCurve3dH */ "../../core/geometry/lib/esm/bspline/BSplineCurve3dH.js");
181941
- /* harmony import */ var _bspline_BSplineSurface__WEBPACK_IMPORTED_MODULE_107__ = __webpack_require__(/*! ./bspline/BSplineSurface */ "../../core/geometry/lib/esm/bspline/BSplineSurface.js");
181942
- /* harmony import */ var _bspline_InterpolationCurve3d__WEBPACK_IMPORTED_MODULE_108__ = __webpack_require__(/*! ./bspline/InterpolationCurve3d */ "../../core/geometry/lib/esm/bspline/InterpolationCurve3d.js");
181943
- /* harmony import */ var _bspline_KnotVector__WEBPACK_IMPORTED_MODULE_109__ = __webpack_require__(/*! ./bspline/KnotVector */ "../../core/geometry/lib/esm/bspline/KnotVector.js");
181944
- /* harmony import */ var _polyface_AuxData__WEBPACK_IMPORTED_MODULE_110__ = __webpack_require__(/*! ./polyface/AuxData */ "../../core/geometry/lib/esm/polyface/AuxData.js");
181945
- /* harmony import */ var _polyface_BoxTopology__WEBPACK_IMPORTED_MODULE_111__ = __webpack_require__(/*! ./polyface/BoxTopology */ "../../core/geometry/lib/esm/polyface/BoxTopology.js");
181946
- /* harmony import */ var _polyface_FacetFaceData__WEBPACK_IMPORTED_MODULE_112__ = __webpack_require__(/*! ./polyface/FacetFaceData */ "../../core/geometry/lib/esm/polyface/FacetFaceData.js");
181947
- /* harmony import */ var _polyface_Polyface__WEBPACK_IMPORTED_MODULE_113__ = __webpack_require__(/*! ./polyface/Polyface */ "../../core/geometry/lib/esm/polyface/Polyface.js");
181948
- /* harmony import */ var _polyface_FacetLocationDetail__WEBPACK_IMPORTED_MODULE_114__ = __webpack_require__(/*! ./polyface/FacetLocationDetail */ "../../core/geometry/lib/esm/polyface/FacetLocationDetail.js");
181949
- /* harmony import */ var _polyface_IndexedPolyfaceVisitor__WEBPACK_IMPORTED_MODULE_115__ = __webpack_require__(/*! ./polyface/IndexedPolyfaceVisitor */ "../../core/geometry/lib/esm/polyface/IndexedPolyfaceVisitor.js");
181950
- /* harmony import */ var _polyface_multiclip_GriddedRaggedRange2dSet__WEBPACK_IMPORTED_MODULE_116__ = __webpack_require__(/*! ./polyface/multiclip/GriddedRaggedRange2dSet */ "../../core/geometry/lib/esm/polyface/multiclip/GriddedRaggedRange2dSet.js");
181951
- /* harmony import */ var _polyface_multiclip_GriddedRaggedRange2dSetWithOverflow__WEBPACK_IMPORTED_MODULE_117__ = __webpack_require__(/*! ./polyface/multiclip/GriddedRaggedRange2dSetWithOverflow */ "../../core/geometry/lib/esm/polyface/multiclip/GriddedRaggedRange2dSetWithOverflow.js");
181952
- /* harmony import */ var _polyface_PolyfaceBuilder__WEBPACK_IMPORTED_MODULE_118__ = __webpack_require__(/*! ./polyface/PolyfaceBuilder */ "../../core/geometry/lib/esm/polyface/PolyfaceBuilder.js");
181953
- /* harmony import */ var _polyface_PolyfaceData__WEBPACK_IMPORTED_MODULE_119__ = __webpack_require__(/*! ./polyface/PolyfaceData */ "../../core/geometry/lib/esm/polyface/PolyfaceData.js");
181954
- /* harmony import */ var _polyface_PolyfaceQuery__WEBPACK_IMPORTED_MODULE_120__ = __webpack_require__(/*! ./polyface/PolyfaceQuery */ "../../core/geometry/lib/esm/polyface/PolyfaceQuery.js");
181955
- /* harmony import */ var _polyface_PolyfaceClip__WEBPACK_IMPORTED_MODULE_121__ = __webpack_require__(/*! ./polyface/PolyfaceClip */ "../../core/geometry/lib/esm/polyface/PolyfaceClip.js");
181956
- /* harmony import */ var _polyface_TaggedNumericData__WEBPACK_IMPORTED_MODULE_122__ = __webpack_require__(/*! ./polyface/TaggedNumericData */ "../../core/geometry/lib/esm/polyface/TaggedNumericData.js");
181957
- /* harmony import */ var _topology_Graph__WEBPACK_IMPORTED_MODULE_123__ = __webpack_require__(/*! ./topology/Graph */ "../../core/geometry/lib/esm/topology/Graph.js");
181958
- /* harmony import */ var _topology_Triangulation__WEBPACK_IMPORTED_MODULE_124__ = __webpack_require__(/*! ./topology/Triangulation */ "../../core/geometry/lib/esm/topology/Triangulation.js");
181959
- /* harmony import */ var _topology_SpaceTriangulation__WEBPACK_IMPORTED_MODULE_125__ = __webpack_require__(/*! ./topology/SpaceTriangulation */ "../../core/geometry/lib/esm/topology/SpaceTriangulation.js");
181960
- /* harmony import */ var _serialization_IModelJsonSchema__WEBPACK_IMPORTED_MODULE_126__ = __webpack_require__(/*! ./serialization/IModelJsonSchema */ "../../core/geometry/lib/esm/serialization/IModelJsonSchema.js");
181961
- /* harmony import */ var _serialization_DeepCompare__WEBPACK_IMPORTED_MODULE_127__ = __webpack_require__(/*! ./serialization/DeepCompare */ "../../core/geometry/lib/esm/serialization/DeepCompare.js");
181962
- /* harmony import */ var _serialization_GeometrySamples__WEBPACK_IMPORTED_MODULE_128__ = __webpack_require__(/*! ./serialization/GeometrySamples */ "../../core/geometry/lib/esm/serialization/GeometrySamples.js");
181963
- /* harmony import */ var _serialization_BentleyGeometryFlatBuffer__WEBPACK_IMPORTED_MODULE_129__ = __webpack_require__(/*! ./serialization/BentleyGeometryFlatBuffer */ "../../core/geometry/lib/esm/serialization/BentleyGeometryFlatBuffer.js");
181880
+ /* harmony import */ var _numerics_Complex__WEBPACK_IMPORTED_MODULE_53__ = __webpack_require__(/*! ./numerics/Complex */ "../../core/geometry/lib/esm/numerics/Complex.js");
181881
+ /* harmony import */ var _numerics_PascalCoefficients__WEBPACK_IMPORTED_MODULE_54__ = __webpack_require__(/*! ./numerics/PascalCoefficients */ "../../core/geometry/lib/esm/numerics/PascalCoefficients.js");
181882
+ /* harmony import */ var _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_55__ = __webpack_require__(/*! ./numerics/Polynomials */ "../../core/geometry/lib/esm/numerics/Polynomials.js");
181883
+ /* harmony import */ var _numerics_Quadrature__WEBPACK_IMPORTED_MODULE_56__ = __webpack_require__(/*! ./numerics/Quadrature */ "../../core/geometry/lib/esm/numerics/Quadrature.js");
181884
+ /* harmony import */ var _numerics_Range1dArray__WEBPACK_IMPORTED_MODULE_57__ = __webpack_require__(/*! ./numerics/Range1dArray */ "../../core/geometry/lib/esm/numerics/Range1dArray.js");
181885
+ /* harmony import */ var _numerics_TriDiagonalSystem__WEBPACK_IMPORTED_MODULE_58__ = __webpack_require__(/*! ./numerics/TriDiagonalSystem */ "../../core/geometry/lib/esm/numerics/TriDiagonalSystem.js");
181886
+ /* harmony import */ var _curve_Arc3d__WEBPACK_IMPORTED_MODULE_59__ = __webpack_require__(/*! ./curve/Arc3d */ "../../core/geometry/lib/esm/curve/Arc3d.js");
181887
+ /* harmony import */ var _curve_ConstructCurveBetweenCurves__WEBPACK_IMPORTED_MODULE_60__ = __webpack_require__(/*! ./curve/ConstructCurveBetweenCurves */ "../../core/geometry/lib/esm/curve/ConstructCurveBetweenCurves.js");
181888
+ /* harmony import */ var _curve_CoordinateXYZ__WEBPACK_IMPORTED_MODULE_61__ = __webpack_require__(/*! ./curve/CoordinateXYZ */ "../../core/geometry/lib/esm/curve/CoordinateXYZ.js");
181889
+ /* harmony import */ var _curve_CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_62__ = __webpack_require__(/*! ./curve/CurveChainWithDistanceIndex */ "../../core/geometry/lib/esm/curve/CurveChainWithDistanceIndex.js");
181890
+ /* harmony import */ var _curve_CurveExtendMode__WEBPACK_IMPORTED_MODULE_63__ = __webpack_require__(/*! ./curve/CurveExtendMode */ "../../core/geometry/lib/esm/curve/CurveExtendMode.js");
181891
+ /* harmony import */ var _curve_CurveCollection__WEBPACK_IMPORTED_MODULE_64__ = __webpack_require__(/*! ./curve/CurveCollection */ "../../core/geometry/lib/esm/curve/CurveCollection.js");
181892
+ /* harmony import */ var _curve_CurveCurve__WEBPACK_IMPORTED_MODULE_65__ = __webpack_require__(/*! ./curve/CurveCurve */ "../../core/geometry/lib/esm/curve/CurveCurve.js");
181893
+ /* harmony import */ var _curve_CurveLocationDetail__WEBPACK_IMPORTED_MODULE_66__ = __webpack_require__(/*! ./curve/CurveLocationDetail */ "../../core/geometry/lib/esm/curve/CurveLocationDetail.js");
181894
+ /* harmony import */ var _curve_CurveFactory__WEBPACK_IMPORTED_MODULE_67__ = __webpack_require__(/*! ./curve/CurveFactory */ "../../core/geometry/lib/esm/curve/CurveFactory.js");
181895
+ /* harmony import */ var _curve_CurveOps__WEBPACK_IMPORTED_MODULE_68__ = __webpack_require__(/*! ./curve/CurveOps */ "../../core/geometry/lib/esm/curve/CurveOps.js");
181896
+ /* harmony import */ var _curve_CurvePrimitive__WEBPACK_IMPORTED_MODULE_69__ = __webpack_require__(/*! ./curve/CurvePrimitive */ "../../core/geometry/lib/esm/curve/CurvePrimitive.js");
181897
+ /* harmony import */ var _curve_CurveProcessor__WEBPACK_IMPORTED_MODULE_70__ = __webpack_require__(/*! ./curve/CurveProcessor */ "../../core/geometry/lib/esm/curve/CurveProcessor.js");
181898
+ /* harmony import */ var _curve_GeometryQuery__WEBPACK_IMPORTED_MODULE_71__ = __webpack_require__(/*! ./curve/GeometryQuery */ "../../core/geometry/lib/esm/curve/GeometryQuery.js");
181899
+ /* harmony import */ var _curve_LineSegment3d__WEBPACK_IMPORTED_MODULE_72__ = __webpack_require__(/*! ./curve/LineSegment3d */ "../../core/geometry/lib/esm/curve/LineSegment3d.js");
181900
+ /* harmony import */ var _curve_LineString3d__WEBPACK_IMPORTED_MODULE_73__ = __webpack_require__(/*! ./curve/LineString3d */ "../../core/geometry/lib/esm/curve/LineString3d.js");
181901
+ /* harmony import */ var _curve_Loop__WEBPACK_IMPORTED_MODULE_74__ = __webpack_require__(/*! ./curve/Loop */ "../../core/geometry/lib/esm/curve/Loop.js");
181902
+ /* harmony import */ var _curve_OffsetOptions__WEBPACK_IMPORTED_MODULE_75__ = __webpack_require__(/*! ./curve/OffsetOptions */ "../../core/geometry/lib/esm/curve/OffsetOptions.js");
181903
+ /* harmony import */ var _curve_ParityRegion__WEBPACK_IMPORTED_MODULE_76__ = __webpack_require__(/*! ./curve/ParityRegion */ "../../core/geometry/lib/esm/curve/ParityRegion.js");
181904
+ /* harmony import */ var _curve_Path__WEBPACK_IMPORTED_MODULE_77__ = __webpack_require__(/*! ./curve/Path */ "../../core/geometry/lib/esm/curve/Path.js");
181905
+ /* harmony import */ var _curve_RegionMomentsXY__WEBPACK_IMPORTED_MODULE_78__ = __webpack_require__(/*! ./curve/RegionMomentsXY */ "../../core/geometry/lib/esm/curve/RegionMomentsXY.js");
181906
+ /* harmony import */ var _curve_RegionOps__WEBPACK_IMPORTED_MODULE_79__ = __webpack_require__(/*! ./curve/RegionOps */ "../../core/geometry/lib/esm/curve/RegionOps.js");
181907
+ /* harmony import */ var _curve_PointString3d__WEBPACK_IMPORTED_MODULE_80__ = __webpack_require__(/*! ./curve/PointString3d */ "../../core/geometry/lib/esm/curve/PointString3d.js");
181908
+ /* harmony import */ var _curve_ProxyCurve__WEBPACK_IMPORTED_MODULE_81__ = __webpack_require__(/*! ./curve/ProxyCurve */ "../../core/geometry/lib/esm/curve/ProxyCurve.js");
181909
+ /* harmony import */ var _curve_StrokeOptions__WEBPACK_IMPORTED_MODULE_82__ = __webpack_require__(/*! ./curve/StrokeOptions */ "../../core/geometry/lib/esm/curve/StrokeOptions.js");
181910
+ /* harmony import */ var _curve_spiral_TransitionSpiral3d__WEBPACK_IMPORTED_MODULE_83__ = __webpack_require__(/*! ./curve/spiral/TransitionSpiral3d */ "../../core/geometry/lib/esm/curve/spiral/TransitionSpiral3d.js");
181911
+ /* harmony import */ var _curve_spiral_IntegratedSpiral3d__WEBPACK_IMPORTED_MODULE_84__ = __webpack_require__(/*! ./curve/spiral/IntegratedSpiral3d */ "../../core/geometry/lib/esm/curve/spiral/IntegratedSpiral3d.js");
181912
+ /* harmony import */ var _curve_spiral_DirectSpiral3d__WEBPACK_IMPORTED_MODULE_85__ = __webpack_require__(/*! ./curve/spiral/DirectSpiral3d */ "../../core/geometry/lib/esm/curve/spiral/DirectSpiral3d.js");
181913
+ /* harmony import */ var _curve_UnionRegion__WEBPACK_IMPORTED_MODULE_86__ = __webpack_require__(/*! ./curve/UnionRegion */ "../../core/geometry/lib/esm/curve/UnionRegion.js");
181914
+ /* harmony import */ var _curve_Query_StrokeCountMap__WEBPACK_IMPORTED_MODULE_87__ = __webpack_require__(/*! ./curve/Query/StrokeCountMap */ "../../core/geometry/lib/esm/curve/Query/StrokeCountMap.js");
181915
+ /* harmony import */ var _solid_Box__WEBPACK_IMPORTED_MODULE_88__ = __webpack_require__(/*! ./solid/Box */ "../../core/geometry/lib/esm/solid/Box.js");
181916
+ /* harmony import */ var _solid_Cone__WEBPACK_IMPORTED_MODULE_89__ = __webpack_require__(/*! ./solid/Cone */ "../../core/geometry/lib/esm/solid/Cone.js");
181917
+ /* harmony import */ var _solid_LinearSweep__WEBPACK_IMPORTED_MODULE_90__ = __webpack_require__(/*! ./solid/LinearSweep */ "../../core/geometry/lib/esm/solid/LinearSweep.js");
181918
+ /* harmony import */ var _solid_RotationalSweep__WEBPACK_IMPORTED_MODULE_91__ = __webpack_require__(/*! ./solid/RotationalSweep */ "../../core/geometry/lib/esm/solid/RotationalSweep.js");
181919
+ /* harmony import */ var _solid_RuledSweep__WEBPACK_IMPORTED_MODULE_92__ = __webpack_require__(/*! ./solid/RuledSweep */ "../../core/geometry/lib/esm/solid/RuledSweep.js");
181920
+ /* harmony import */ var _solid_SolidPrimitive__WEBPACK_IMPORTED_MODULE_93__ = __webpack_require__(/*! ./solid/SolidPrimitive */ "../../core/geometry/lib/esm/solid/SolidPrimitive.js");
181921
+ /* harmony import */ var _solid_Sphere__WEBPACK_IMPORTED_MODULE_94__ = __webpack_require__(/*! ./solid/Sphere */ "../../core/geometry/lib/esm/solid/Sphere.js");
181922
+ /* harmony import */ var _solid_SweepContour__WEBPACK_IMPORTED_MODULE_95__ = __webpack_require__(/*! ./solid/SweepContour */ "../../core/geometry/lib/esm/solid/SweepContour.js");
181923
+ /* harmony import */ var _solid_TorusPipe__WEBPACK_IMPORTED_MODULE_96__ = __webpack_require__(/*! ./solid/TorusPipe */ "../../core/geometry/lib/esm/solid/TorusPipe.js");
181924
+ /* harmony import */ var _bspline_AkimaCurve3d__WEBPACK_IMPORTED_MODULE_97__ = __webpack_require__(/*! ./bspline/AkimaCurve3d */ "../../core/geometry/lib/esm/bspline/AkimaCurve3d.js");
181925
+ /* harmony import */ var _bspline_Bezier1dNd__WEBPACK_IMPORTED_MODULE_98__ = __webpack_require__(/*! ./bspline/Bezier1dNd */ "../../core/geometry/lib/esm/bspline/Bezier1dNd.js");
181926
+ /* harmony import */ var _bspline_BezierCurveBase__WEBPACK_IMPORTED_MODULE_99__ = __webpack_require__(/*! ./bspline/BezierCurveBase */ "../../core/geometry/lib/esm/bspline/BezierCurveBase.js");
181927
+ /* harmony import */ var _bspline_BezierCurve3d__WEBPACK_IMPORTED_MODULE_100__ = __webpack_require__(/*! ./bspline/BezierCurve3d */ "../../core/geometry/lib/esm/bspline/BezierCurve3d.js");
181928
+ /* harmony import */ var _bspline_BezierCurve3dH__WEBPACK_IMPORTED_MODULE_101__ = __webpack_require__(/*! ./bspline/BezierCurve3dH */ "../../core/geometry/lib/esm/bspline/BezierCurve3dH.js");
181929
+ /* harmony import */ var _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_102__ = __webpack_require__(/*! ./bspline/BSplineCurve */ "../../core/geometry/lib/esm/bspline/BSplineCurve.js");
181930
+ /* harmony import */ var _bspline_BSplineCurveOps__WEBPACK_IMPORTED_MODULE_103__ = __webpack_require__(/*! ./bspline/BSplineCurveOps */ "../../core/geometry/lib/esm/bspline/BSplineCurveOps.js");
181931
+ /* harmony import */ var _bspline_BSpline1dNd__WEBPACK_IMPORTED_MODULE_104__ = __webpack_require__(/*! ./bspline/BSpline1dNd */ "../../core/geometry/lib/esm/bspline/BSpline1dNd.js");
181932
+ /* harmony import */ var _bspline_BSplineCurve3dH__WEBPACK_IMPORTED_MODULE_105__ = __webpack_require__(/*! ./bspline/BSplineCurve3dH */ "../../core/geometry/lib/esm/bspline/BSplineCurve3dH.js");
181933
+ /* harmony import */ var _bspline_BSplineSurface__WEBPACK_IMPORTED_MODULE_106__ = __webpack_require__(/*! ./bspline/BSplineSurface */ "../../core/geometry/lib/esm/bspline/BSplineSurface.js");
181934
+ /* harmony import */ var _bspline_InterpolationCurve3d__WEBPACK_IMPORTED_MODULE_107__ = __webpack_require__(/*! ./bspline/InterpolationCurve3d */ "../../core/geometry/lib/esm/bspline/InterpolationCurve3d.js");
181935
+ /* harmony import */ var _bspline_KnotVector__WEBPACK_IMPORTED_MODULE_108__ = __webpack_require__(/*! ./bspline/KnotVector */ "../../core/geometry/lib/esm/bspline/KnotVector.js");
181936
+ /* harmony import */ var _polyface_AuxData__WEBPACK_IMPORTED_MODULE_109__ = __webpack_require__(/*! ./polyface/AuxData */ "../../core/geometry/lib/esm/polyface/AuxData.js");
181937
+ /* harmony import */ var _polyface_BoxTopology__WEBPACK_IMPORTED_MODULE_110__ = __webpack_require__(/*! ./polyface/BoxTopology */ "../../core/geometry/lib/esm/polyface/BoxTopology.js");
181938
+ /* harmony import */ var _polyface_FacetFaceData__WEBPACK_IMPORTED_MODULE_111__ = __webpack_require__(/*! ./polyface/FacetFaceData */ "../../core/geometry/lib/esm/polyface/FacetFaceData.js");
181939
+ /* harmony import */ var _polyface_Polyface__WEBPACK_IMPORTED_MODULE_112__ = __webpack_require__(/*! ./polyface/Polyface */ "../../core/geometry/lib/esm/polyface/Polyface.js");
181940
+ /* harmony import */ var _polyface_FacetLocationDetail__WEBPACK_IMPORTED_MODULE_113__ = __webpack_require__(/*! ./polyface/FacetLocationDetail */ "../../core/geometry/lib/esm/polyface/FacetLocationDetail.js");
181941
+ /* harmony import */ var _polyface_IndexedPolyfaceVisitor__WEBPACK_IMPORTED_MODULE_114__ = __webpack_require__(/*! ./polyface/IndexedPolyfaceVisitor */ "../../core/geometry/lib/esm/polyface/IndexedPolyfaceVisitor.js");
181942
+ /* harmony import */ var _polyface_multiclip_GriddedRaggedRange2dSet__WEBPACK_IMPORTED_MODULE_115__ = __webpack_require__(/*! ./polyface/multiclip/GriddedRaggedRange2dSet */ "../../core/geometry/lib/esm/polyface/multiclip/GriddedRaggedRange2dSet.js");
181943
+ /* harmony import */ var _polyface_multiclip_GriddedRaggedRange2dSetWithOverflow__WEBPACK_IMPORTED_MODULE_116__ = __webpack_require__(/*! ./polyface/multiclip/GriddedRaggedRange2dSetWithOverflow */ "../../core/geometry/lib/esm/polyface/multiclip/GriddedRaggedRange2dSetWithOverflow.js");
181944
+ /* harmony import */ var _polyface_PolyfaceBuilder__WEBPACK_IMPORTED_MODULE_117__ = __webpack_require__(/*! ./polyface/PolyfaceBuilder */ "../../core/geometry/lib/esm/polyface/PolyfaceBuilder.js");
181945
+ /* harmony import */ var _polyface_PolyfaceData__WEBPACK_IMPORTED_MODULE_118__ = __webpack_require__(/*! ./polyface/PolyfaceData */ "../../core/geometry/lib/esm/polyface/PolyfaceData.js");
181946
+ /* harmony import */ var _polyface_PolyfaceQuery__WEBPACK_IMPORTED_MODULE_119__ = __webpack_require__(/*! ./polyface/PolyfaceQuery */ "../../core/geometry/lib/esm/polyface/PolyfaceQuery.js");
181947
+ /* harmony import */ var _polyface_PolyfaceClip__WEBPACK_IMPORTED_MODULE_120__ = __webpack_require__(/*! ./polyface/PolyfaceClip */ "../../core/geometry/lib/esm/polyface/PolyfaceClip.js");
181948
+ /* harmony import */ var _polyface_TaggedNumericData__WEBPACK_IMPORTED_MODULE_121__ = __webpack_require__(/*! ./polyface/TaggedNumericData */ "../../core/geometry/lib/esm/polyface/TaggedNumericData.js");
181949
+ /* harmony import */ var _topology_Graph__WEBPACK_IMPORTED_MODULE_122__ = __webpack_require__(/*! ./topology/Graph */ "../../core/geometry/lib/esm/topology/Graph.js");
181950
+ /* harmony import */ var _topology_Triangulation__WEBPACK_IMPORTED_MODULE_123__ = __webpack_require__(/*! ./topology/Triangulation */ "../../core/geometry/lib/esm/topology/Triangulation.js");
181951
+ /* harmony import */ var _topology_SpaceTriangulation__WEBPACK_IMPORTED_MODULE_124__ = __webpack_require__(/*! ./topology/SpaceTriangulation */ "../../core/geometry/lib/esm/topology/SpaceTriangulation.js");
181952
+ /* harmony import */ var _serialization_IModelJsonSchema__WEBPACK_IMPORTED_MODULE_125__ = __webpack_require__(/*! ./serialization/IModelJsonSchema */ "../../core/geometry/lib/esm/serialization/IModelJsonSchema.js");
181953
+ /* harmony import */ var _serialization_DeepCompare__WEBPACK_IMPORTED_MODULE_126__ = __webpack_require__(/*! ./serialization/DeepCompare */ "../../core/geometry/lib/esm/serialization/DeepCompare.js");
181954
+ /* harmony import */ var _serialization_GeometrySamples__WEBPACK_IMPORTED_MODULE_127__ = __webpack_require__(/*! ./serialization/GeometrySamples */ "../../core/geometry/lib/esm/serialization/GeometrySamples.js");
181955
+ /* harmony import */ var _serialization_BentleyGeometryFlatBuffer__WEBPACK_IMPORTED_MODULE_128__ = __webpack_require__(/*! ./serialization/BentleyGeometryFlatBuffer */ "../../core/geometry/lib/esm/serialization/BentleyGeometryFlatBuffer.js");
181964
181956
  /*---------------------------------------------------------------------------------------------
181965
181957
  * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
181966
181958
  * See LICENSE.md in the project root for license terms and full copyright notice.
@@ -182210,8 +182202,6 @@ __webpack_require__.r(__webpack_exports__);
182210
182202
 
182211
182203
 
182212
182204
 
182213
-
182214
-
182215
182205
 
182216
182206
 
182217
182207
 
@@ -182461,13 +182451,13 @@ class Arc3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePrimitive
182461
182451
  static createCircularStartMiddleEnd(pointA, pointB, pointC, result) {
182462
182452
  const vectorAB = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_3__.Vector3d.createStartEnd(pointA, pointB);
182463
182453
  const vectorAC = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_3__.Vector3d.createStartEnd(pointA, pointC);
182464
- const ab = vectorAB.magnitude();
182465
- const bc = vectorAC.magnitude();
182466
- const normal = vectorAB.sizedCrossProduct(vectorAC, Math.sqrt(ab * bc));
182454
+ const ab2 = vectorAB.magnitudeSquared();
182455
+ const ac2 = vectorAC.magnitudeSquared();
182456
+ const normal = vectorAB.sizedCrossProduct(vectorAC, Math.sqrt(Math.sqrt(ab2 * ac2)));
182467
182457
  if (normal) {
182468
182458
  const vectorToCenter = _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_5__.SmallSystem.linearSystem3d(normal.x, normal.y, normal.z, vectorAB.x, vectorAB.y, vectorAB.z, vectorAC.x, vectorAC.y, vectorAC.z, 0, // vectorToCenter DOT normal = 0
182469
- 0.5 * ab * ab, // vectorToCenter DOT vectorBA = 0.5 * vectorBA DOT vectorBA (Rayleigh quotient)
182470
- 0.5 * bc * bc); // vectorToCenter DOT vectorBC = 0.5 * vectorBC DOT vectorBC (Rayleigh quotient)
182459
+ 0.5 * ab2, // vectorToCenter DOT vectorAB = 0.5 * vectorAB DOT vectorAB (Rayleigh quotient)
182460
+ 0.5 * ac2);
182471
182461
  if (vectorToCenter) {
182472
182462
  const center = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_3__.Point3d.create(pointA.x, pointA.y, pointA.z).plus(vectorToCenter);
182473
182463
  const vectorX = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_3__.Vector3d.createStartEnd(center, pointA);
@@ -188114,6 +188104,7 @@ class LineString3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePri
188114
188104
  /**
188115
188105
  * Evaluate a point a fractional position and derivative with respect to fraction along this linestring.
188116
188106
  * * See `LineString3d` class comments for description of how fraction relates to the linestring points.
188107
+ * * At interior corners and the end point, the left derivative is returned; at the start point, the right derivative is returned.
188117
188108
  * @param fraction fractional position
188118
188109
  * @param result optional result
188119
188110
  */
@@ -194168,16 +194159,17 @@ __webpack_require__.r(__webpack_exports__);
194168
194159
  /* harmony import */ var _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../../bspline/BSplineCurve */ "../../core/geometry/lib/esm/bspline/BSplineCurve.js");
194169
194160
  /* harmony import */ var _Geometry__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../Geometry */ "../../core/geometry/lib/esm/Geometry.js");
194170
194161
  /* harmony import */ var _geometry3d_GeometryHandler__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../geometry3d/GeometryHandler */ "../../core/geometry/lib/esm/geometry3d/GeometryHandler.js");
194171
- /* harmony import */ var _geometry3d_GrowableFloat64Array__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../geometry3d/GrowableFloat64Array */ "../../core/geometry/lib/esm/geometry3d/GrowableFloat64Array.js");
194172
- /* harmony import */ var _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../geometry3d/Point3dVector3d */ "../../core/geometry/lib/esm/geometry3d/Point3dVector3d.js");
194162
+ /* harmony import */ var _geometry3d_GrowableFloat64Array__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../geometry3d/GrowableFloat64Array */ "../../core/geometry/lib/esm/geometry3d/GrowableFloat64Array.js");
194163
+ /* harmony import */ var _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../../geometry3d/Point3dVector3d */ "../../core/geometry/lib/esm/geometry3d/Point3dVector3d.js");
194173
194164
  /* harmony import */ var _geometry3d_Range__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../../geometry3d/Range */ "../../core/geometry/lib/esm/geometry3d/Range.js");
194174
- /* harmony import */ var _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../numerics/Polynomials */ "../../core/geometry/lib/esm/numerics/Polynomials.js");
194165
+ /* harmony import */ var _numerics_Newton__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../numerics/Newton */ "../../core/geometry/lib/esm/numerics/Newton.js");
194166
+ /* harmony import */ var _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../numerics/Polynomials */ "../../core/geometry/lib/esm/numerics/Polynomials.js");
194175
194167
  /* harmony import */ var _Arc3d__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../Arc3d */ "../../core/geometry/lib/esm/curve/Arc3d.js");
194176
- /* harmony import */ var _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../CurveChainWithDistanceIndex */ "../../core/geometry/lib/esm/curve/CurveChainWithDistanceIndex.js");
194177
- /* harmony import */ var _CurveCollection__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../CurveCollection */ "../../core/geometry/lib/esm/curve/CurveCollection.js");
194168
+ /* harmony import */ var _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../CurveChainWithDistanceIndex */ "../../core/geometry/lib/esm/curve/CurveChainWithDistanceIndex.js");
194169
+ /* harmony import */ var _CurveCollection__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../CurveCollection */ "../../core/geometry/lib/esm/curve/CurveCollection.js");
194178
194170
  /* harmony import */ var _CurveLocationDetail__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../CurveLocationDetail */ "../../core/geometry/lib/esm/curve/CurveLocationDetail.js");
194179
- /* harmony import */ var _LineSegment3d__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../LineSegment3d */ "../../core/geometry/lib/esm/curve/LineSegment3d.js");
194180
- /* harmony import */ var _LineString3d__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../LineString3d */ "../../core/geometry/lib/esm/curve/LineString3d.js");
194171
+ /* harmony import */ var _LineSegment3d__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../LineSegment3d */ "../../core/geometry/lib/esm/curve/LineSegment3d.js");
194172
+ /* harmony import */ var _LineString3d__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../LineString3d */ "../../core/geometry/lib/esm/curve/LineString3d.js");
194181
194173
  /*---------------------------------------------------------------------------------------------
194182
194174
  * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
194183
194175
  * See LICENSE.md in the project root for license terms and full copyright notice.
@@ -194199,7 +194191,8 @@ __webpack_require__.r(__webpack_exports__);
194199
194191
 
194200
194192
 
194201
194193
 
194202
- // cspell:word XYRR
194194
+
194195
+ // cspell:word XYRR currentdFdX
194203
194196
  /**
194204
194197
  * Handler class for XY close approach between _geometryB and another geometry.
194205
194198
  * * Approach means the XY distance (z is ignored) between _geometryB and another geometry.
@@ -194534,10 +194527,44 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
194534
194527
  this.testAndRecordProjection(cpB, fB1, pointB1, cpA, fA0, fA1, !reversed);
194535
194528
  }
194536
194529
  }
194530
+ /**
194531
+ * Return XY closest approach between a curve primitive and a point.
194532
+ * Currently, this function only supports Arc3d and LineSegment.
194533
+ * Note that this function doesn't handle endpoints.
194534
+ */
194535
+ getPointCurveClosestApproachXYNewton(curveP, pointQ) {
194536
+ if (!(curveP instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_2__.Arc3d) && !(curveP instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_5__.LineSegment3d)) {
194537
+ (0,_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.assert)(!!"getPointCurveClosestApproachXYNewton only supports Arc3d and LineSegment");
194538
+ return undefined;
194539
+ }
194540
+ const seeds = [0.2, 0.4, 0.6, 0.8]; // HEURISTIC: arcs have up to 4 perpendiculars; lines have only 1
194541
+ const newtonEvaluator = new _numerics_Newton__WEBPACK_IMPORTED_MODULE_6__.CurvePointCloseApproachXYRtoRD(curveP, pointQ);
194542
+ const newtonSearcher = new _numerics_Newton__WEBPACK_IMPORTED_MODULE_6__.Newton1dUnbounded(newtonEvaluator);
194543
+ let minCloseApproachLength = _Geometry__WEBPACK_IMPORTED_MODULE_3__.Geometry.largeCoordinateResult;
194544
+ let minCurvePFraction;
194545
+ let minPointP;
194546
+ for (const seed of seeds) {
194547
+ newtonSearcher.setX(seed);
194548
+ if (newtonSearcher.runIterations()) {
194549
+ const curvePFraction = newtonSearcher.getX();
194550
+ if (this.acceptFraction(curvePFraction)) {
194551
+ const pointP = curveP.fractionToPoint(curvePFraction);
194552
+ const closeApproachLength = pointP.distanceSquaredXY(pointQ);
194553
+ if (closeApproachLength < minCloseApproachLength) {
194554
+ minCloseApproachLength = closeApproachLength;
194555
+ minCurvePFraction = curvePFraction;
194556
+ minPointP = pointP;
194557
+ }
194558
+ }
194559
+ }
194560
+ }
194561
+ if (minCurvePFraction && minPointP)
194562
+ return _CurveLocationDetail__WEBPACK_IMPORTED_MODULE_4__.CurveLocationDetail.createCurveFractionPoint(curveP, minCurvePFraction, minPointP);
194563
+ return undefined;
194564
+ }
194537
194565
  /** Find the closest approach between pointA and cpB. Add the approach if it's within fB0 and fB1. */
194538
194566
  testAndRecordProjection(cpA, fA, pointA, cpB, fB0, fB1, reversed) {
194539
- // NO NO NO -- this is 3D closest point --- need 2d !!
194540
- const detail = cpB.closestPoint(pointA, false);
194567
+ const detail = this.getPointCurveClosestApproachXYNewton(cpB, pointA);
194541
194568
  if (detail) {
194542
194569
  const fB = _Geometry__WEBPACK_IMPORTED_MODULE_3__.Geometry.restrictToInterval(detail.fraction, fB0, fB1);
194543
194570
  if (fB === detail.fraction) { // if fraction is within fB0 and fB1
@@ -194566,13 +194593,13 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
194566
194593
  this.computeSegmentSegment3D(cpA, pointA0, fractionA0, pointA1, fractionA1, cpB, pointB0, fractionB0, pointB1, fractionB1, reversed);
194567
194594
  }
194568
194595
  /**
194569
- * Low level dispatch of segment with arc.
194596
+ * Low level dispatch of line segment with arc.
194570
194597
  * Find close approaches within maxDistance between a line segments (pointA0, pointA1) and an arc.
194571
194598
  * To consider:
194572
194599
  * 1) intersection between arc and segment.
194573
- * 2) arc endpoints to segment endpoints or arc endpoints projection to the segment.
194574
- * 3) line parallel to arc tangent.
194575
- * @param cpA curve A (line segment or line string)
194600
+ * 2) endpoints to endpoints or endpoints projection to the other curve.
194601
+ * 3) arc tangent parallel to line segment (or line string).
194602
+ * @param cpA curve A (line segment or line string; if it is a line string, then the fractions must specify a segment)
194576
194603
  * @param pointA0 start point of the segment
194577
194604
  * @param fractionA0 fraction of the start of the segment
194578
194605
  * @param pointA1 end point of the segment
@@ -194581,7 +194608,7 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
194581
194608
  * @param reversed whether to reverse the details in the pair (e.g., so that detailB refers to geometryB).
194582
194609
  */
194583
194610
  dispatchSegmentArc(cpA, pointA0, fractionA0, pointA1, fractionA1, arc, reversed) {
194584
- // 1) intersection between arc and segment
194611
+ // 1) intersection between arc and line segment (or string).
194585
194612
  // Suppose:
194586
194613
  // Arc: X = C + cU + sV where c = cos(theta) and s = sin(theta)
194587
194614
  // Line: contains points A0 and A1
@@ -194597,15 +194624,15 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
194597
194624
  const alpha = _Geometry__WEBPACK_IMPORTED_MODULE_3__.Geometry.tripleProductXYW(pointA0Local, 1, pointA1Local, 1, data.center, 1); // det(A0, A1, C)
194598
194625
  const beta = _Geometry__WEBPACK_IMPORTED_MODULE_3__.Geometry.tripleProductXYW(pointA0Local, 1, pointA1Local, 1, data.vector0, 0); // det(A0, A1, U)
194599
194626
  const gamma = _Geometry__WEBPACK_IMPORTED_MODULE_3__.Geometry.tripleProductXYW(pointA0Local, 1, pointA1Local, 1, data.vector90, 0); // det(A0, A1, V)
194600
- const cosines = new _geometry3d_GrowableFloat64Array__WEBPACK_IMPORTED_MODULE_5__.GrowableFloat64Array(2);
194601
- const sines = new _geometry3d_GrowableFloat64Array__WEBPACK_IMPORTED_MODULE_5__.GrowableFloat64Array(2);
194602
- const radians = new _geometry3d_GrowableFloat64Array__WEBPACK_IMPORTED_MODULE_5__.GrowableFloat64Array(2);
194603
- const numRoots = _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_6__.AnalyticRoots.appendImplicitLineUnitCircleIntersections(// solve the equation
194627
+ const cosines = new _geometry3d_GrowableFloat64Array__WEBPACK_IMPORTED_MODULE_7__.GrowableFloat64Array(2);
194628
+ const sines = new _geometry3d_GrowableFloat64Array__WEBPACK_IMPORTED_MODULE_7__.GrowableFloat64Array(2);
194629
+ const radians = new _geometry3d_GrowableFloat64Array__WEBPACK_IMPORTED_MODULE_7__.GrowableFloat64Array(2);
194630
+ const numRoots = _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_8__.AnalyticRoots.appendImplicitLineUnitCircleIntersections(// solve the equation
194604
194631
  alpha, beta, gamma, cosines, sines, radians);
194605
194632
  for (let i = 0; i < numRoots; i++) {
194606
194633
  const arcPoint = data.center.plus2Scaled(data.vector0, cosines.atUncheckedIndex(i), data.vector90, sines.atUncheckedIndex(i));
194607
194634
  const arcFraction = data.sweep.radiansToSignedPeriodicFraction(radians.atUncheckedIndex(i));
194608
- const lineFraction = _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_6__.SmallSystem.lineSegment3dXYClosestPointUnbounded(pointA0Local, pointA1Local, arcPoint);
194635
+ const lineFraction = _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_8__.SmallSystem.lineSegment3dXYClosestPointUnbounded(pointA0Local, pointA1Local, arcPoint);
194609
194636
  // only add if the point is within the start and end fractions of both line segment and arc
194610
194637
  if (lineFraction !== undefined && this.acceptFraction(lineFraction) && this.acceptFraction(arcFraction)) {
194611
194638
  this.recordPointWithLocalFractions(lineFraction, cpA, fractionA0, fractionA1, arcFraction, arc, 0, 1, reversed);
@@ -194614,9 +194641,9 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
194614
194641
  }
194615
194642
  if (intersectionFound)
194616
194643
  return;
194617
- // 2) endpoints to endpoints or endpoints projection to the other curve
194618
- this.testAndRecordFractionalPairApproach(cpA, fractionA0, fractionA1, true, arc, 0, 1, false, reversed);
194619
- // 3) line parallel to arc tangent.
194644
+ // 2) endpoints to endpoints or endpoints projection to the other curve.
194645
+ this.testAndRecordFractionalPairApproach(cpA, fractionA0, fractionA1, true, arc, 0, 1, true, reversed);
194646
+ // 3) arc tangent parallel to line segment (or string).
194620
194647
  // If line does not intersect the arc, then the closest (and/or the furthest) point on arc to the line is a
194621
194648
  // point where the tangent line on arc at that point is parallel to the line.
194622
194649
  const dotUT = data.vector0.crossProductStartEndXY(pointA0, pointA1);
@@ -194625,94 +194652,71 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
194625
194652
  for (const radians1 of [parallelRadians, parallelRadians + Math.PI]) {
194626
194653
  const arcPoint = data.center.plus2Scaled(data.vector0, Math.cos(radians1), data.vector90, Math.sin(radians1));
194627
194654
  const arcFraction = data.sweep.radiansToSignedPeriodicFraction(radians1);
194628
- const lineFraction = _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_6__.SmallSystem.lineSegment3dXYClosestPointUnbounded(pointA0Local, pointA1Local, arcPoint);
194655
+ const lineFraction = _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_8__.SmallSystem.lineSegment3dXYClosestPointUnbounded(pointA0Local, pointA1Local, arcPoint);
194629
194656
  // only add if the point is within the start and end fractions of both line segment and arc
194630
194657
  if (lineFraction !== undefined && this.acceptFraction(lineFraction) && this.acceptFraction(arcFraction)) {
194631
194658
  this.recordPointWithLocalFractions(lineFraction, cpA, fractionA0, fractionA1, arcFraction, arc, 0, 1, reversed);
194632
194659
  }
194633
194660
  }
194634
194661
  }
194635
- /** Low level dispatch of circular arc with circular arc. radiusA must be larger than or equal to radiusB. */
194636
- dispatchCircularCircularOrdered(cpA, radiusA, cpB, radiusB, reversed) {
194637
- const c = cpA.center.distance(cpB.center);
194638
- const e = this._maxDistanceToAccept !== undefined ? this._maxDistanceToAccept : _Geometry__WEBPACK_IMPORTED_MODULE_3__.Geometry.smallMetricDistance;
194639
- if (c > radiusA + radiusB + e) // distance between circles is more than max distance
194640
- return;
194641
- // TODO: 1) intersection between arcs
194642
- // 2) endpoints to endpoints
194643
- this.testAndRecordFractionalPairApproach(cpA, 0, 1, false, cpB, 0, 1, false, reversed);
194644
- // 3) line from one arc to another (perpendicular to arc tangents along center-center line)
194645
- if (!_Geometry__WEBPACK_IMPORTED_MODULE_3__.Geometry.isSmallMetricDistance(c)) {
194646
- const vectorAB = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_7__.Vector3d.createStartEnd(cpA.center, cpB.center);
194647
- vectorAB.scaleInPlace(1.0 / c);
194648
- for (const rA of [-radiusA, radiusA]) {
194649
- for (const rB of [-radiusB, radiusB]) {
194650
- const tangentDistance = c - rA + rB;
194651
- if (tangentDistance < e) {
194652
- const detailA = this.resolveDirectionToArcXYFraction(cpA, vectorAB, rA);
194653
- if (detailA) {
194654
- const detailB = this.resolveDirectionToArcXYFraction(cpB, vectorAB, rB);
194655
- if (detailB)
194656
- this.captureDetailPair(detailA, detailB, reversed);
194657
- }
194662
+ /** Solve Newton for 2 arcs and the given newtonEvaluator. */
194663
+ solveArcArcNewton(curveP, curveQ, reversed, newtonEvaluator) {
194664
+ const seedsU = [0.2, 0.4, 0.6, 0.8]; // HEURISTIC: 2 arcs have up to 4 perpendiculars/intersections
194665
+ const seedsV = [0.2, 0.4, 0.6, 0.8];
194666
+ const newtonSearcher = new _numerics_Newton__WEBPACK_IMPORTED_MODULE_6__.Newton2dUnboundedWithDerivative(newtonEvaluator);
194667
+ for (const seedU of seedsU) {
194668
+ for (const seedV of seedsV) {
194669
+ newtonSearcher.setUV(seedU, seedV);
194670
+ if (newtonSearcher.runIterations()) {
194671
+ const curvePFraction = newtonSearcher.getU();
194672
+ const curveQFraction = newtonSearcher.getV();
194673
+ if (this.acceptFraction(curvePFraction) && this.acceptFraction(curveQFraction)) {
194674
+ this.recordPointWithLocalFractions(curvePFraction, curveP, 0, 1, curveQFraction, curveQ, 0, 1, reversed);
194658
194675
  }
194659
194676
  }
194660
194677
  }
194661
194678
  }
194662
194679
  }
194663
- /** Find the fractional point (if any) on the circular `arc` in the direction of `radialVector`. */
194664
- resolveDirectionToArcXYFraction(arc, radialVector, scale) {
194665
- // The scale ultimately only affects the direction --- easiest way to use it is two multiplies.
194666
- const c = scale * arc.matrixRef.columnDotXYZ(0, radialVector.x, radialVector.y, 0);
194667
- const s = scale * arc.matrixRef.columnDotXYZ(1, radialVector.x, radialVector.y, 0);
194668
- const radians = Math.atan2(s, c);
194669
- const fraction = arc.sweep.radiansToPositivePeriodicFraction(radians, 0);
194670
- if (fraction < 1.0)
194671
- return _CurveLocationDetail__WEBPACK_IMPORTED_MODULE_4__.CurveLocationDetail.createCurveEvaluatedFraction(arc, fraction);
194672
- return undefined;
194680
+ /** Find and store perpendicular line between 2 arcs. */
194681
+ findPerpLineXYArcArcNewton(curveP, curveQ, reversed) {
194682
+ const newtonEvaluator = new _numerics_Newton__WEBPACK_IMPORTED_MODULE_6__.CurveCurveCloseApproachXYRRtoRRD(curveP, curveQ);
194683
+ this.solveArcArcNewton(curveP, curveQ, reversed, newtonEvaluator);
194673
194684
  }
194674
- /** Low level dispatch of arc with arc. Only circular arcs are supported. */
194685
+ /** Low level dispatch of arc with Arc3d. */
194675
194686
  dispatchArcArc(cpA, cpB, reversed) {
194676
194687
  const rangeA = cpA.range();
194677
194688
  const rangeB = cpB.range();
194678
194689
  rangeA.expandInPlace(this._maxDistanceToAccept);
194679
194690
  if (!rangeB.intersectsRangeXY(rangeA))
194680
194691
  return;
194681
- if (this._circularArcB) {
194682
- const radiusB = this._circularRadiusB;
194683
- const radiusA = cpA.circularRadiusXY();
194684
- if (radiusA !== undefined) {
194685
- if (radiusA >= radiusB)
194686
- this.dispatchCircularCircularOrdered(cpA, radiusA, cpB, radiusB, reversed);
194687
- else
194688
- this.dispatchCircularCircularOrdered(cpB, radiusB, cpA, radiusA, !reversed);
194689
- return;
194690
- }
194691
- }
194692
+ // 1) endpoints to endpoints or endpoints projection to the other curve
194693
+ this.testAndRecordFractionalPairApproach(cpA, 0, 1, true, cpB, 0, 1, true, reversed);
194694
+ // 2) perpendicular line between 2 arcs (includes intersections)
194695
+ this.findPerpLineXYArcArcNewton(cpA, cpB, reversed);
194692
194696
  }
194693
194697
  /** Low level dispatch of arc with (beziers of) a bspline curve */
194694
194698
  dispatchArcBsplineCurve3d(cpA, cpB, reversed) {
194695
- const ls = _LineString3d__WEBPACK_IMPORTED_MODULE_8__.LineString3d.create();
194699
+ const ls = _LineString3d__WEBPACK_IMPORTED_MODULE_9__.LineString3d.create();
194696
194700
  cpB.emitStrokes(ls);
194697
194701
  this.computeArcLineString(cpA, ls, reversed);
194698
194702
  }
194699
194703
  /** Low level dispatch of (beziers of) a bspline curve with (beziers of) a bspline curve */
194700
194704
  dispatchBSplineCurve3dBSplineCurve3d(bcurveA, bcurveB, reversed) {
194701
- const lsA = _LineString3d__WEBPACK_IMPORTED_MODULE_8__.LineString3d.create();
194705
+ const lsA = _LineString3d__WEBPACK_IMPORTED_MODULE_9__.LineString3d.create();
194702
194706
  bcurveA.emitStrokes(lsA);
194703
- const lsB = _LineString3d__WEBPACK_IMPORTED_MODULE_8__.LineString3d.create();
194707
+ const lsB = _LineString3d__WEBPACK_IMPORTED_MODULE_9__.LineString3d.create();
194704
194708
  bcurveB.emitStrokes(lsB);
194705
194709
  this.computeLineStringLineString(lsA, lsB, reversed);
194706
194710
  }
194707
194711
  /** Low level dispatch of linestring with (beziers of) a bspline curve */
194708
194712
  dispatchLineStringBSplineCurve(lsA, curveB, reversed) {
194709
- const lsB = _LineString3d__WEBPACK_IMPORTED_MODULE_8__.LineString3d.create();
194713
+ const lsB = _LineString3d__WEBPACK_IMPORTED_MODULE_9__.LineString3d.create();
194710
194714
  curveB.emitStrokes(lsB);
194711
194715
  this.computeLineStringLineString(lsA, lsB, reversed);
194712
194716
  }
194713
194717
  /** Low level dispatch of segment with (beziers of) a bspline curve */
194714
194718
  dispatchSegmentBsplineCurve(segA, curveB, reversed) {
194715
- const lsB = _LineString3d__WEBPACK_IMPORTED_MODULE_8__.LineString3d.create();
194719
+ const lsB = _LineString3d__WEBPACK_IMPORTED_MODULE_9__.LineString3d.create();
194716
194720
  curveB.emitStrokes(lsB);
194717
194721
  this.computeSegmentLineString(segA, lsB, reversed);
194718
194722
  }
@@ -194759,7 +194763,7 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
194759
194763
  /** Low level dispatch of curve collection. */
194760
194764
  dispatchCurveCollection(geomA, geomAHandler) {
194761
194765
  const geomB = this._geometryB; // save
194762
- if (!geomB || !geomB.children || !(geomB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_9__.CurveCollection))
194766
+ if (!geomB || !geomB.children || !(geomB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_10__.CurveCollection))
194763
194767
  return;
194764
194768
  for (const child of geomB.children) {
194765
194769
  this.resetGeometry(child);
@@ -194769,9 +194773,9 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
194769
194773
  }
194770
194774
  /** Low level dispatch to geomA given a CurveChainWithDistanceIndex in geometryB. */
194771
194775
  dispatchCurveChainWithDistanceIndex(geomA, geomAHandler) {
194772
- if (!this._geometryB || !(this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_10__.CurveChainWithDistanceIndex))
194776
+ if (!this._geometryB || !(this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_11__.CurveChainWithDistanceIndex))
194773
194777
  return;
194774
- if (geomA instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_10__.CurveChainWithDistanceIndex) {
194778
+ if (geomA instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_11__.CurveChainWithDistanceIndex) {
194775
194779
  (0,_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.assert)(!!"call handleCurveChainWithDistanceIndex(geomA) instead");
194776
194780
  return;
194777
194781
  }
@@ -194782,15 +194786,15 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
194782
194786
  geomAHandler(geomA);
194783
194787
  }
194784
194788
  this.resetGeometry(geomB); // restore
194785
- this._results = _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_10__.CurveChainWithDistanceIndex.convertChildDetailToChainDetail(this._results, index0, undefined, geomB, true);
194789
+ this._results = _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_11__.CurveChainWithDistanceIndex.convertChildDetailToChainDetail(this._results, index0, undefined, geomB, true);
194786
194790
  }
194787
194791
  /** Double dispatch handler for strongly typed segment. */
194788
194792
  handleLineSegment3d(segmentA) {
194789
- if (this._geometryB instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_11__.LineSegment3d) {
194793
+ if (this._geometryB instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_5__.LineSegment3d) {
194790
194794
  const segmentB = this._geometryB;
194791
194795
  this.dispatchSegmentSegment(segmentA, segmentA.point0Ref, 0.0, segmentA.point1Ref, 1.0, segmentB, segmentB.point0Ref, 0.0, segmentB.point1Ref, 1.0, false);
194792
194796
  }
194793
- else if (this._geometryB instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_8__.LineString3d) {
194797
+ else if (this._geometryB instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_9__.LineString3d) {
194794
194798
  this.computeSegmentLineString(segmentA, this._geometryB, false);
194795
194799
  }
194796
194800
  else if (this._geometryB instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_2__.Arc3d) {
@@ -194799,10 +194803,10 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
194799
194803
  else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_12__.BSplineCurve3d) {
194800
194804
  this.dispatchSegmentBsplineCurve(segmentA, this._geometryB, false);
194801
194805
  }
194802
- else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_9__.CurveCollection) {
194806
+ else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_10__.CurveCollection) {
194803
194807
  this.dispatchCurveCollection(segmentA, this.handleLineSegment3d.bind(this));
194804
194808
  }
194805
- else if (this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_10__.CurveChainWithDistanceIndex) {
194809
+ else if (this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_11__.CurveChainWithDistanceIndex) {
194806
194810
  this.dispatchCurveChainWithDistanceIndex(segmentA, this.handleLineSegment3d.bind(this));
194807
194811
  }
194808
194812
  return undefined;
@@ -194885,11 +194889,11 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
194885
194889
  }
194886
194890
  /** Double dispatch handler for strongly typed linestring. */
194887
194891
  handleLineString3d(lsA) {
194888
- if (this._geometryB instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_8__.LineString3d) {
194892
+ if (this._geometryB instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_9__.LineString3d) {
194889
194893
  const lsB = this._geometryB;
194890
194894
  this.computeLineStringLineString(lsA, lsB, false);
194891
194895
  }
194892
- else if (this._geometryB instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_11__.LineSegment3d) {
194896
+ else if (this._geometryB instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_5__.LineSegment3d) {
194893
194897
  this.computeSegmentLineString(this._geometryB, lsA, true);
194894
194898
  }
194895
194899
  else if (this._geometryB instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_2__.Arc3d) {
@@ -194898,20 +194902,20 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
194898
194902
  else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_12__.BSplineCurve3d) {
194899
194903
  this.dispatchLineStringBSplineCurve(lsA, this._geometryB, false);
194900
194904
  }
194901
- else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_9__.CurveCollection) {
194905
+ else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_10__.CurveCollection) {
194902
194906
  this.dispatchCurveCollection(lsA, this.handleLineString3d.bind(this));
194903
194907
  }
194904
- else if (this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_10__.CurveChainWithDistanceIndex) {
194908
+ else if (this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_11__.CurveChainWithDistanceIndex) {
194905
194909
  this.dispatchCurveChainWithDistanceIndex(lsA, this.handleLineString3d.bind(this));
194906
194910
  }
194907
194911
  return undefined;
194908
194912
  }
194909
194913
  /** Double dispatch handler for strongly typed arc. */
194910
194914
  handleArc3d(arc0) {
194911
- if (this._geometryB instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_11__.LineSegment3d) {
194915
+ if (this._geometryB instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_5__.LineSegment3d) {
194912
194916
  this.dispatchSegmentArc(this._geometryB, this._geometryB.point0Ref, 0.0, this._geometryB.point1Ref, 1.0, arc0, true);
194913
194917
  }
194914
- else if (this._geometryB instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_8__.LineString3d) {
194918
+ else if (this._geometryB instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_9__.LineString3d) {
194915
194919
  this.computeArcLineString(arc0, this._geometryB, false);
194916
194920
  }
194917
194921
  else if (this._geometryB instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_2__.Arc3d) {
@@ -194920,20 +194924,20 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
194920
194924
  else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_12__.BSplineCurve3d) {
194921
194925
  this.dispatchArcBsplineCurve3d(arc0, this._geometryB, false);
194922
194926
  }
194923
- else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_9__.CurveCollection) {
194927
+ else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_10__.CurveCollection) {
194924
194928
  this.dispatchCurveCollection(arc0, this.handleArc3d.bind(this));
194925
194929
  }
194926
- else if (this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_10__.CurveChainWithDistanceIndex) {
194930
+ else if (this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_11__.CurveChainWithDistanceIndex) {
194927
194931
  this.dispatchCurveChainWithDistanceIndex(arc0, this.handleArc3d.bind(this));
194928
194932
  }
194929
194933
  return undefined;
194930
194934
  }
194931
194935
  /** Double dispatch handler for strongly typed bspline curve. */
194932
194936
  handleBSplineCurve3d(curve) {
194933
- if (this._geometryB instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_11__.LineSegment3d) {
194937
+ if (this._geometryB instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_5__.LineSegment3d) {
194934
194938
  this.dispatchSegmentBsplineCurve(this._geometryB, curve, true);
194935
194939
  }
194936
- else if (this._geometryB instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_8__.LineString3d) {
194940
+ else if (this._geometryB instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_9__.LineString3d) {
194937
194941
  this.dispatchLineStringBSplineCurve(this._geometryB, curve, true);
194938
194942
  }
194939
194943
  else if (this._geometryB instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_2__.Arc3d) {
@@ -194942,10 +194946,10 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
194942
194946
  else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_12__.BSplineCurve3dBase) {
194943
194947
  this.dispatchBSplineCurve3dBSplineCurve3d(curve, this._geometryB, false);
194944
194948
  }
194945
- else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_9__.CurveCollection) {
194949
+ else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_10__.CurveCollection) {
194946
194950
  this.dispatchCurveCollection(curve, this.handleBSplineCurve3d.bind(this));
194947
194951
  }
194948
- else if (this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_10__.CurveChainWithDistanceIndex) {
194952
+ else if (this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_11__.CurveChainWithDistanceIndex) {
194949
194953
  this.dispatchCurveChainWithDistanceIndex(curve, this.handleBSplineCurve3d.bind(this));
194950
194954
  }
194951
194955
  return undefined;
@@ -194954,7 +194958,7 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
194954
194958
  handleCurveChainWithDistanceIndex(chain) {
194955
194959
  super.handleCurveChainWithDistanceIndex(chain);
194956
194960
  // if _geometryB is also a CurveChainWithDistanceIndex, it will already have been converted by dispatchCurveChainWithDistanceIndex
194957
- this._results = _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_10__.CurveChainWithDistanceIndex.convertChildDetailToChainDetail(this._results, 0, chain, undefined, true);
194961
+ this._results = _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_11__.CurveChainWithDistanceIndex.convertChildDetailToChainDetail(this._results, 0, chain, undefined, true);
194958
194962
  }
194959
194963
  /** Double dispatch handler for strongly typed homogeneous bspline curve .. */
194960
194964
  handleBSplineCurve3dH(_curve) {
@@ -194974,11 +194978,11 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
194974
194978
  return undefined;
194975
194979
  }
194976
194980
  }
194977
- CurveCurveCloseApproachXY._workPointAA0 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_7__.Point3d.create();
194978
- CurveCurveCloseApproachXY._workPointAA1 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_7__.Point3d.create();
194979
- CurveCurveCloseApproachXY._workPointBB0 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_7__.Point3d.create();
194980
- CurveCurveCloseApproachXY._workPointBB1 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_7__.Point3d.create();
194981
- CurveCurveCloseApproachXY._workPointB = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_7__.Point3d.create();
194981
+ CurveCurveCloseApproachXY._workPointAA0 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_14__.Point3d.create();
194982
+ CurveCurveCloseApproachXY._workPointAA1 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_14__.Point3d.create();
194983
+ CurveCurveCloseApproachXY._workPointBB0 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_14__.Point3d.create();
194984
+ CurveCurveCloseApproachXY._workPointBB1 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_14__.Point3d.create();
194985
+ CurveCurveCloseApproachXY._workPointB = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_14__.Point3d.create();
194982
194986
 
194983
194987
 
194984
194988
 
@@ -194993,29 +194997,27 @@ CurveCurveCloseApproachXY._workPointB = _geometry3d_Point3dVector3d__WEBPACK_IMP
194993
194997
  "use strict";
194994
194998
  __webpack_require__.r(__webpack_exports__);
194995
194999
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
194996
- /* harmony export */ BezierBezierIntersectionXYRRToRRD: () => (/* binding */ BezierBezierIntersectionXYRRToRRD),
194997
195000
  /* harmony export */ CurveCurveIntersectXY: () => (/* binding */ CurveCurveIntersectXY)
194998
195001
  /* harmony export */ });
194999
195002
  /* harmony import */ var _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @itwin/core-bentley */ "../../core/bentley/lib/esm/core-bentley.js");
195000
- /* harmony import */ var _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ../../bspline/BSplineCurve */ "../../core/geometry/lib/esm/bspline/BSplineCurve.js");
195001
- /* harmony import */ var _Geometry__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../Geometry */ "../../core/geometry/lib/esm/Geometry.js");
195002
- /* harmony import */ var _geometry3d_CoincidentGeometryOps__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../geometry3d/CoincidentGeometryOps */ "../../core/geometry/lib/esm/geometry3d/CoincidentGeometryOps.js");
195003
- /* harmony import */ var _geometry3d_GeometryHandler__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../geometry3d/GeometryHandler */ "../../core/geometry/lib/esm/geometry3d/GeometryHandler.js");
195004
- /* harmony import */ var _geometry3d_GrowableFloat64Array__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../geometry3d/GrowableFloat64Array */ "../../core/geometry/lib/esm/geometry3d/GrowableFloat64Array.js");
195005
- /* harmony import */ var _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../geometry3d/Matrix3d */ "../../core/geometry/lib/esm/geometry3d/Matrix3d.js");
195006
- /* harmony import */ var _geometry3d_Point2dVector2d__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ../../geometry3d/Point2dVector2d */ "../../core/geometry/lib/esm/geometry3d/Point2dVector2d.js");
195007
- /* harmony import */ var _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ../../geometry3d/Point3dVector3d */ "../../core/geometry/lib/esm/geometry3d/Point3dVector3d.js");
195008
- /* harmony import */ var _geometry3d_Ray3d__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../geometry3d/Ray3d */ "../../core/geometry/lib/esm/geometry3d/Ray3d.js");
195009
- /* harmony import */ var _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../../geometry4d/Point4d */ "../../core/geometry/lib/esm/geometry4d/Point4d.js");
195010
- /* harmony import */ var _numerics_BezierPolynomials__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../../numerics/BezierPolynomials */ "../../core/geometry/lib/esm/numerics/BezierPolynomials.js");
195011
- /* harmony import */ var _numerics_Newton__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../numerics/Newton */ "../../core/geometry/lib/esm/numerics/Newton.js");
195012
- /* harmony import */ var _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../numerics/Polynomials */ "../../core/geometry/lib/esm/numerics/Polynomials.js");
195013
- /* harmony import */ var _Arc3d__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ../Arc3d */ "../../core/geometry/lib/esm/curve/Arc3d.js");
195014
- /* harmony import */ var _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../CurveChainWithDistanceIndex */ "../../core/geometry/lib/esm/curve/CurveChainWithDistanceIndex.js");
195015
- /* harmony import */ var _CurveCollection__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../CurveCollection */ "../../core/geometry/lib/esm/curve/CurveCollection.js");
195016
- /* harmony import */ var _CurveLocationDetail__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../CurveLocationDetail */ "../../core/geometry/lib/esm/curve/CurveLocationDetail.js");
195017
- /* harmony import */ var _LineSegment3d__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../LineSegment3d */ "../../core/geometry/lib/esm/curve/LineSegment3d.js");
195018
- /* harmony import */ var _LineString3d__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../LineString3d */ "../../core/geometry/lib/esm/curve/LineString3d.js");
195003
+ /* harmony import */ var _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ../../bspline/BSplineCurve */ "../../core/geometry/lib/esm/bspline/BSplineCurve.js");
195004
+ /* harmony import */ var _Geometry__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../Geometry */ "../../core/geometry/lib/esm/Geometry.js");
195005
+ /* harmony import */ var _geometry3d_CoincidentGeometryOps__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../geometry3d/CoincidentGeometryOps */ "../../core/geometry/lib/esm/geometry3d/CoincidentGeometryOps.js");
195006
+ /* harmony import */ var _geometry3d_GeometryHandler__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../geometry3d/GeometryHandler */ "../../core/geometry/lib/esm/geometry3d/GeometryHandler.js");
195007
+ /* harmony import */ var _geometry3d_GrowableFloat64Array__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../geometry3d/GrowableFloat64Array */ "../../core/geometry/lib/esm/geometry3d/GrowableFloat64Array.js");
195008
+ /* harmony import */ var _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../geometry3d/Matrix3d */ "../../core/geometry/lib/esm/geometry3d/Matrix3d.js");
195009
+ /* harmony import */ var _geometry3d_Point2dVector2d__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ../../geometry3d/Point2dVector2d */ "../../core/geometry/lib/esm/geometry3d/Point2dVector2d.js");
195010
+ /* harmony import */ var _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ../../geometry3d/Point3dVector3d */ "../../core/geometry/lib/esm/geometry3d/Point3dVector3d.js");
195011
+ /* harmony import */ var _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../geometry4d/Point4d */ "../../core/geometry/lib/esm/geometry4d/Point4d.js");
195012
+ /* harmony import */ var _numerics_BezierPolynomials__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../numerics/BezierPolynomials */ "../../core/geometry/lib/esm/numerics/BezierPolynomials.js");
195013
+ /* harmony import */ var _numerics_Newton__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../../numerics/Newton */ "../../core/geometry/lib/esm/numerics/Newton.js");
195014
+ /* harmony import */ var _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../numerics/Polynomials */ "../../core/geometry/lib/esm/numerics/Polynomials.js");
195015
+ /* harmony import */ var _Arc3d__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../Arc3d */ "../../core/geometry/lib/esm/curve/Arc3d.js");
195016
+ /* harmony import */ var _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../CurveChainWithDistanceIndex */ "../../core/geometry/lib/esm/curve/CurveChainWithDistanceIndex.js");
195017
+ /* harmony import */ var _CurveCollection__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../CurveCollection */ "../../core/geometry/lib/esm/curve/CurveCollection.js");
195018
+ /* harmony import */ var _CurveLocationDetail__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../CurveLocationDetail */ "../../core/geometry/lib/esm/curve/CurveLocationDetail.js");
195019
+ /* harmony import */ var _LineSegment3d__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../LineSegment3d */ "../../core/geometry/lib/esm/curve/LineSegment3d.js");
195020
+ /* harmony import */ var _LineString3d__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../LineString3d */ "../../core/geometry/lib/esm/curve/LineString3d.js");
195019
195021
  /*---------------------------------------------------------------------------------------------
195020
195022
  * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
195021
195023
  * See LICENSE.md in the project root for license terms and full copyright notice.
@@ -195042,35 +195044,14 @@ __webpack_require__.r(__webpack_exports__);
195042
195044
 
195043
195045
 
195044
195046
 
195045
-
195046
195047
  // cspell:word XYRR
195047
- /**
195048
- * Private class for refining bezier-bezier intersections.
195049
- * * The inputs are assumed pre-transformed so that the target condition is to match x and y coordinates.
195050
- * @internal
195051
- */
195052
- class BezierBezierIntersectionXYRRToRRD extends _numerics_Newton__WEBPACK_IMPORTED_MODULE_1__.NewtonEvaluatorRRtoRRD {
195053
- constructor(curveA, curveB) {
195054
- super();
195055
- this._curveA = curveA;
195056
- this._curveB = curveB;
195057
- this._rayA = _geometry3d_Ray3d__WEBPACK_IMPORTED_MODULE_2__.Ray3d.createZero();
195058
- this._rayB = _geometry3d_Ray3d__WEBPACK_IMPORTED_MODULE_2__.Ray3d.createZero();
195059
- }
195060
- evaluate(fractionA, fractionB) {
195061
- this._curveA.fractionToPointAndDerivative(fractionA, this._rayA);
195062
- this._curveB.fractionToPointAndDerivative(fractionB, this._rayB);
195063
- this.currentF.setOriginAndVectorsXYZ(this._rayB.origin.x - this._rayA.origin.x, this._rayB.origin.y - this._rayA.origin.y, 0.0, -this._rayA.direction.x, -this._rayA.direction.y, 0.0, this._rayB.direction.x, this._rayB.direction.y, 0.0);
195064
- return true;
195065
- }
195066
- }
195067
195048
  /**
195068
195049
  * Handler class for XY intersections between _geometryB and another geometry.
195069
195050
  * * Instances are initialized and called from CurveCurve.
195070
195051
  * * geometryB is saved for later reference.
195071
195052
  * @internal
195072
195053
  */
195073
- class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTED_MODULE_3__.RecurseToCurvesGeometryHandler {
195054
+ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTED_MODULE_1__.RecurseToCurvesGeometryHandler {
195074
195055
  /**
195075
195056
  * The constructor.
195076
195057
  * @param worldToLocal optional transform (possibly perspective) to project to xy plane for intersection.
@@ -195079,7 +195060,7 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
195079
195060
  * @param extendB flag for extension of geometryB.
195080
195061
  * @param tolerance optional distance tolerance for coincidence.
195081
195062
  */
195082
- constructor(worldToLocal, extendA, geometryB, extendB, tolerance = _Geometry__WEBPACK_IMPORTED_MODULE_4__.Geometry.smallMetricDistance) {
195063
+ constructor(worldToLocal, extendA, geometryB, extendB, tolerance = _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.smallMetricDistance) {
195083
195064
  super();
195084
195065
  this._extendA = extendA;
195085
195066
  this._geometryB = geometryB;
@@ -195091,7 +195072,7 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
195091
195072
  if (!this._worldToLocalAffine)
195092
195073
  this._worldToLocalPerspective = worldToLocal.clone();
195093
195074
  }
195094
- this._coincidentGeometryContext = _geometry3d_CoincidentGeometryOps__WEBPACK_IMPORTED_MODULE_5__.CoincidentGeometryQuery.create(tolerance);
195075
+ this._coincidentGeometryContext = _geometry3d_CoincidentGeometryOps__WEBPACK_IMPORTED_MODULE_3__.CoincidentGeometryQuery.create(tolerance);
195095
195076
  this._results = [];
195096
195077
  }
195097
195078
  /** Reset the geometry, leaving all other parts unchanged (and preserving accumulated intersections). */
@@ -195106,12 +195087,12 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
195106
195087
  return true;
195107
195088
  }
195108
195089
  /** Test the fraction by strict parameter, but allow toleranced distance test at ends. */
195109
- acceptFractionOnLine(extend0, fraction, extend1, pointA, pointB, tolerance = _Geometry__WEBPACK_IMPORTED_MODULE_4__.Geometry.smallMetricDistance) {
195090
+ acceptFractionOnLine(extend0, fraction, extend1, pointA, pointB, tolerance = _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.smallMetricDistance) {
195110
195091
  if (!extend0 && fraction < 0) {
195111
- return _Geometry__WEBPACK_IMPORTED_MODULE_4__.Geometry.isDistanceWithinTol(fraction * pointA.distanceXY(pointB), tolerance);
195092
+ return _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.isDistanceWithinTol(fraction * pointA.distanceXY(pointB), tolerance);
195112
195093
  }
195113
195094
  else if (!extend1 && fraction > 1.0)
195114
- return _Geometry__WEBPACK_IMPORTED_MODULE_4__.Geometry.isDistanceWithinTol((fraction - 1.0) * pointA.distanceXY(pointB), tolerance);
195095
+ return _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.isDistanceWithinTol((fraction - 1.0) * pointA.distanceXY(pointB), tolerance);
195115
195096
  return true;
195116
195097
  }
195117
195098
  /**
@@ -195144,14 +195125,14 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
195144
195125
  intervalDetails.detailA.hasFraction1 &&
195145
195126
  intervalDetails.detailB.hasFraction1;
195146
195127
  if (isInterval) {
195147
- globalFractionA = _Geometry__WEBPACK_IMPORTED_MODULE_4__.Geometry.interpolate(fractionA0, intervalDetails.detailA.fraction, fractionA1);
195148
- globalFractionB = _Geometry__WEBPACK_IMPORTED_MODULE_4__.Geometry.interpolate(fractionB0, intervalDetails.detailB.fraction, fractionB1);
195149
- globalFractionA1 = _Geometry__WEBPACK_IMPORTED_MODULE_4__.Geometry.interpolate(fractionA0, intervalDetails.detailA.fraction1, fractionA1);
195150
- globalFractionB1 = _Geometry__WEBPACK_IMPORTED_MODULE_4__.Geometry.interpolate(fractionB0, intervalDetails.detailB.fraction1, fractionB1);
195128
+ globalFractionA = _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.interpolate(fractionA0, intervalDetails.detailA.fraction, fractionA1);
195129
+ globalFractionB = _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.interpolate(fractionB0, intervalDetails.detailB.fraction, fractionB1);
195130
+ globalFractionA1 = _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.interpolate(fractionA0, intervalDetails.detailA.fraction1, fractionA1);
195131
+ globalFractionB1 = _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.interpolate(fractionB0, intervalDetails.detailB.fraction1, fractionB1);
195151
195132
  }
195152
195133
  else {
195153
- globalFractionA = globalFractionA1 = _Geometry__WEBPACK_IMPORTED_MODULE_4__.Geometry.interpolate(fractionA0, localFractionA, fractionA1);
195154
- globalFractionB = globalFractionB1 = _Geometry__WEBPACK_IMPORTED_MODULE_4__.Geometry.interpolate(fractionB0, localFractionB, fractionB1);
195134
+ globalFractionA = globalFractionA1 = _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.interpolate(fractionA0, localFractionA, fractionA1);
195135
+ globalFractionB = globalFractionB1 = _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.interpolate(fractionB0, localFractionB, fractionB1);
195155
195136
  }
195156
195137
  // ignore duplicate of most recent pair
195157
195138
  const numPrevious = this._results.length;
@@ -195169,21 +195150,21 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
195169
195150
  return;
195170
195151
  }
195171
195152
  }
195172
- const detailA = _CurveLocationDetail__WEBPACK_IMPORTED_MODULE_6__.CurveLocationDetail.createCurveFractionPoint(cpA, globalFractionA, cpA.fractionToPoint(globalFractionA));
195173
- const detailB = _CurveLocationDetail__WEBPACK_IMPORTED_MODULE_6__.CurveLocationDetail.createCurveFractionPoint(cpB, globalFractionB, cpB.fractionToPoint(globalFractionB));
195153
+ const detailA = _CurveLocationDetail__WEBPACK_IMPORTED_MODULE_4__.CurveLocationDetail.createCurveFractionPoint(cpA, globalFractionA, cpA.fractionToPoint(globalFractionA));
195154
+ const detailB = _CurveLocationDetail__WEBPACK_IMPORTED_MODULE_4__.CurveLocationDetail.createCurveFractionPoint(cpB, globalFractionB, cpB.fractionToPoint(globalFractionB));
195174
195155
  if (isInterval) {
195175
195156
  detailA.captureFraction1Point1(globalFractionA1, cpA.fractionToPoint(globalFractionA1));
195176
195157
  detailB.captureFraction1Point1(globalFractionB1, cpB.fractionToPoint(globalFractionB1));
195177
195158
  }
195178
195159
  else {
195179
- detailA.setIntervalRole(_CurveLocationDetail__WEBPACK_IMPORTED_MODULE_6__.CurveIntervalRole.isolated);
195180
- detailB.setIntervalRole(_CurveLocationDetail__WEBPACK_IMPORTED_MODULE_6__.CurveIntervalRole.isolated);
195160
+ detailA.setIntervalRole(_CurveLocationDetail__WEBPACK_IMPORTED_MODULE_4__.CurveIntervalRole.isolated);
195161
+ detailB.setIntervalRole(_CurveLocationDetail__WEBPACK_IMPORTED_MODULE_4__.CurveIntervalRole.isolated);
195181
195162
  }
195182
195163
  if (reversed) {
195183
- this._results.push(new _CurveLocationDetail__WEBPACK_IMPORTED_MODULE_6__.CurveLocationDetailPair(detailB, detailA));
195164
+ this._results.push(new _CurveLocationDetail__WEBPACK_IMPORTED_MODULE_4__.CurveLocationDetailPair(detailB, detailA));
195184
195165
  }
195185
195166
  else {
195186
- this._results.push(new _CurveLocationDetail__WEBPACK_IMPORTED_MODULE_6__.CurveLocationDetailPair(detailA, detailB));
195167
+ this._results.push(new _CurveLocationDetail__WEBPACK_IMPORTED_MODULE_4__.CurveLocationDetailPair(detailA, detailB));
195187
195168
  }
195188
195169
  }
195189
195170
  /**
@@ -195213,7 +195194,7 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
195213
195194
  this.recordPointWithLocalFractions(overlap.detailA.fraction, cpA, fractionA0, fractionA1, overlap.detailB.fraction, cpB, fractionB0, fractionB1, reversed, overlap);
195214
195195
  }
195215
195196
  }
195216
- else if (_numerics_Polynomials__WEBPACK_IMPORTED_MODULE_7__.SmallSystem.lineSegment3dXYTransverseIntersectionUnbounded(pointA0, pointA1, pointB0, pointB1, uv)) {
195197
+ else if (_numerics_Polynomials__WEBPACK_IMPORTED_MODULE_5__.SmallSystem.lineSegment3dXYTransverseIntersectionUnbounded(pointA0, pointA1, pointB0, pointB1, uv)) {
195217
195198
  if (this.acceptFractionOnLine(extendA0, uv.x, extendA1, pointA0, pointA1, this._coincidentGeometryContext.tolerance) &&
195218
195199
  this.acceptFractionOnLine(extendB0, uv.y, extendB1, pointB0, pointB1, this._coincidentGeometryContext.tolerance)) {
195219
195200
  this.recordPointWithLocalFractions(uv.x, cpA, fractionA0, fractionA1, uv.y, cpB, fractionB0, fractionB1, reversed);
@@ -195233,7 +195214,7 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
195233
195214
  this._worldToLocalPerspective.multiplyPoint3d(pointA1, 1, hA1);
195234
195215
  this._worldToLocalPerspective.multiplyPoint3d(pointB0, 1, hB0);
195235
195216
  this._worldToLocalPerspective.multiplyPoint3d(pointB1, 1, hB1);
195236
- const fractionAB = _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_7__.SmallSystem.lineSegment3dHXYTransverseIntersectionUnbounded(hA0, hA1, hB0, hB1);
195217
+ const fractionAB = _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_5__.SmallSystem.lineSegment3dHXYTransverseIntersectionUnbounded(hA0, hA1, hB0, hB1);
195237
195218
  if (fractionAB !== undefined) {
195238
195219
  const fractionA = fractionAB.x;
195239
195220
  const fractionB = fractionAB.y;
@@ -195276,17 +195257,17 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
195276
195257
  const data = arc.toTransformedPoint4d(this._worldToLocalPerspective);
195277
195258
  const pointA0H = this._worldToLocalPerspective.multiplyPoint3d(pointA0, 1);
195278
195259
  const pointA1H = this._worldToLocalPerspective.multiplyPoint3d(pointA1, 1);
195279
- const alpha = _Geometry__WEBPACK_IMPORTED_MODULE_4__.Geometry.tripleProductPoint4dXYW(pointA0H, pointA1H, data.center);
195280
- const beta = _Geometry__WEBPACK_IMPORTED_MODULE_4__.Geometry.tripleProductPoint4dXYW(pointA0H, pointA1H, data.vector0);
195281
- const gamma = _Geometry__WEBPACK_IMPORTED_MODULE_4__.Geometry.tripleProductPoint4dXYW(pointA0H, pointA1H, data.vector90);
195282
- const cosines = new _geometry3d_GrowableFloat64Array__WEBPACK_IMPORTED_MODULE_8__.GrowableFloat64Array(2);
195283
- const sines = new _geometry3d_GrowableFloat64Array__WEBPACK_IMPORTED_MODULE_8__.GrowableFloat64Array(2);
195284
- const radians = new _geometry3d_GrowableFloat64Array__WEBPACK_IMPORTED_MODULE_8__.GrowableFloat64Array(2);
195285
- const numRoots = _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_7__.AnalyticRoots.appendImplicitLineUnitCircleIntersections(alpha, beta, gamma, cosines, sines, radians);
195260
+ const alpha = _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.tripleProductPoint4dXYW(pointA0H, pointA1H, data.center);
195261
+ const beta = _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.tripleProductPoint4dXYW(pointA0H, pointA1H, data.vector0);
195262
+ const gamma = _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.tripleProductPoint4dXYW(pointA0H, pointA1H, data.vector90);
195263
+ const cosines = new _geometry3d_GrowableFloat64Array__WEBPACK_IMPORTED_MODULE_6__.GrowableFloat64Array(2);
195264
+ const sines = new _geometry3d_GrowableFloat64Array__WEBPACK_IMPORTED_MODULE_6__.GrowableFloat64Array(2);
195265
+ const radians = new _geometry3d_GrowableFloat64Array__WEBPACK_IMPORTED_MODULE_6__.GrowableFloat64Array(2);
195266
+ const numRoots = _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_5__.AnalyticRoots.appendImplicitLineUnitCircleIntersections(alpha, beta, gamma, cosines, sines, radians);
195286
195267
  for (let i = 0; i < numRoots; i++) {
195287
195268
  const arcPoint = data.center.plus2Scaled(data.vector0, cosines.atUncheckedIndex(i), data.vector90, sines.atUncheckedIndex(i));
195288
195269
  const arcFraction = data.sweep.radiansToSignedPeriodicFraction(radians.atUncheckedIndex(i));
195289
- const lineFraction = _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_7__.SmallSystem.lineSegment3dHXYClosestPointUnbounded(pointA0H, pointA1H, arcPoint);
195270
+ const lineFraction = _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_5__.SmallSystem.lineSegment3dHXYClosestPointUnbounded(pointA0H, pointA1H, arcPoint);
195290
195271
  if (lineFraction !== undefined &&
195291
195272
  this.acceptFraction(extendA0, lineFraction, extendA1) &&
195292
195273
  this.acceptFraction(extendB0, arcFraction, extendB1)) {
@@ -195302,19 +195283,19 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
195302
195283
  pointA0Local = this._worldToLocalAffine.multiplyPoint3d(pointA0);
195303
195284
  pointA1Local = this._worldToLocalAffine.multiplyPoint3d(pointA1);
195304
195285
  }
195305
- const alpha = _Geometry__WEBPACK_IMPORTED_MODULE_4__.Geometry.tripleProductXYW(pointA0Local, 1, pointA1Local, 1, data.center, 1);
195306
- const beta = _Geometry__WEBPACK_IMPORTED_MODULE_4__.Geometry.tripleProductXYW(pointA0Local, 1, pointA1Local, 1, data.vector0, 0);
195307
- const gamma = _Geometry__WEBPACK_IMPORTED_MODULE_4__.Geometry.tripleProductXYW(pointA0Local, 1, pointA1Local, 1, data.vector90, 0);
195308
- const cosines = new _geometry3d_GrowableFloat64Array__WEBPACK_IMPORTED_MODULE_8__.GrowableFloat64Array(2);
195309
- const sines = new _geometry3d_GrowableFloat64Array__WEBPACK_IMPORTED_MODULE_8__.GrowableFloat64Array(2);
195310
- const radians = new _geometry3d_GrowableFloat64Array__WEBPACK_IMPORTED_MODULE_8__.GrowableFloat64Array(2);
195311
- const numRoots = _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_7__.AnalyticRoots.appendImplicitLineUnitCircleIntersections(alpha, beta, gamma, cosines, sines, radians);
195286
+ const alpha = _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.tripleProductXYW(pointA0Local, 1, pointA1Local, 1, data.center, 1);
195287
+ const beta = _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.tripleProductXYW(pointA0Local, 1, pointA1Local, 1, data.vector0, 0);
195288
+ const gamma = _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.tripleProductXYW(pointA0Local, 1, pointA1Local, 1, data.vector90, 0);
195289
+ const cosines = new _geometry3d_GrowableFloat64Array__WEBPACK_IMPORTED_MODULE_6__.GrowableFloat64Array(2);
195290
+ const sines = new _geometry3d_GrowableFloat64Array__WEBPACK_IMPORTED_MODULE_6__.GrowableFloat64Array(2);
195291
+ const radians = new _geometry3d_GrowableFloat64Array__WEBPACK_IMPORTED_MODULE_6__.GrowableFloat64Array(2);
195292
+ const numRoots = _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_5__.AnalyticRoots.appendImplicitLineUnitCircleIntersections(alpha, beta, gamma, cosines, sines, radians);
195312
195293
  const lineFractionTol = 1.0e-10;
195313
195294
  const arcFractionTol = 1.0e-7;
195314
195295
  for (let i = 0; i < numRoots; i++) {
195315
195296
  const arcPoint = data.center.plus2Scaled(data.vector0, cosines.atUncheckedIndex(i), data.vector90, sines.atUncheckedIndex(i));
195316
195297
  const arcFraction = data.sweep.radiansToSignedPeriodicFraction(radians.atUncheckedIndex(i));
195317
- const lineFraction = _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_7__.SmallSystem.lineSegment3dXYClosestPointUnbounded(pointA0Local, pointA1Local, arcPoint);
195298
+ const lineFraction = _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_5__.SmallSystem.lineSegment3dXYClosestPointUnbounded(pointA0Local, pointA1Local, arcPoint);
195318
195299
  if (lineFraction !== undefined &&
195319
195300
  this.acceptFraction(extendA0, lineFraction, extendA1, lineFractionTol) &&
195320
195301
  this.acceptFraction(extendB0, arcFraction, extendB1, arcFractionTol)) {
@@ -195323,65 +195304,66 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
195323
195304
  }
195324
195305
  }
195325
195306
  }
195326
- // Caller accesses data from two arcs.
195327
- // Each matrix has [U V C] in (x,y,w) form from projection.
195328
- // Invert the projection matrix matrixA.
195329
- // Apply the inverse to matrixB. Then arc b is an ellipse in the circular space of A.
195330
- dispatchArcArcThisOrder(cpA, matrixA, // homogeneous xyw projection !!!
195331
- extendA, cpB, matrixB, // homogeneous xyw projection !!!
195332
- extendB, reversed) {
195307
+ /**
195308
+ * Compute the intersection of two xy-arcs.
195309
+ * * Each matrix has [U V C] in (x,y,w) form from homogeneous projection (local to world).
195310
+ * * Arcs are ordered so that matrixA is better conditioned.
195311
+ */
195312
+ dispatchArcArcThisOrder(cpA, // arc closer to being circular
195313
+ matrixA, extendA, cpB, matrixB, extendB, reversed) {
195314
+ // inverseA transforms arcA to its local coordinates, where it is the unit xy-circle.
195333
195315
  const inverseA = matrixA.inverse();
195334
195316
  if (inverseA) {
195335
- const localB = inverseA.multiplyMatrixMatrix(matrixB); // localB->localA transform
195317
+ // localB defines the arc formed by transforming arcB into the local coordinates of arcA
195318
+ const localB = inverseA.multiplyMatrixMatrix(matrixB);
195336
195319
  const ellipseRadians = [];
195337
195320
  const circleRadians = [];
195338
- _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_7__.TrigPolynomial.solveUnitCircleHomogeneousEllipseIntersection(localB.coffs[2], localB.coffs[5], localB.coffs[8], // center xyw
195321
+ // find the intersection of the transformed arcs
195322
+ _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_5__.TrigPolynomial.solveUnitCircleHomogeneousEllipseIntersection(localB.coffs[2], localB.coffs[5], localB.coffs[8], // center xyw
195339
195323
  localB.coffs[0], localB.coffs[3], localB.coffs[6], // vector0 xyw
195340
195324
  localB.coffs[1], localB.coffs[4], localB.coffs[7], // vector90 xyw
195341
195325
  ellipseRadians, circleRadians);
195326
+ // the intersections are transform-invariant, so the solution angles apply directly to the input arcs
195342
195327
  for (let i = 0; i < ellipseRadians.length; i++) {
195343
195328
  const fractionA = cpA.sweep.radiansToSignedPeriodicFraction(circleRadians[i]);
195344
195329
  const fractionB = cpB.sweep.radiansToSignedPeriodicFraction(ellipseRadians[i]);
195345
- // hm .. do we really need to check the fractions? We know they are internal to the beziers
195346
195330
  if (this.acceptFraction(extendA, fractionA, extendA) && this.acceptFraction(extendB, fractionB, extendB)) {
195347
195331
  this.recordPointWithLocalFractions(fractionA, cpA, 0, 1, fractionB, cpB, 0, 1, reversed);
195348
195332
  }
195349
195333
  }
195350
195334
  }
195351
195335
  }
195352
- // Caller accesses data from two arcs.
195353
- // Selects the best conditioned arc (in xy parts) as "circle after inversion".
195354
- // Solves the arc-arc equations.
195336
+ /**
195337
+ * We have 2 xy-arcs.
195338
+ * 1- We pick the arc that is closest to circular (larger condition number is closer to circular).
195339
+ * 2- Transform it to local coords, where it becomes the unit xy-circle.
195340
+ * 3- Use the same map to transform the other arc.
195341
+ * 4- Find the intersection of arc and unit circle.
195342
+ * 5- Convert intersection angles to fractions and record intersections.
195343
+ */
195355
195344
  dispatchArcArc(cpA, extendA, cpB, extendB, reversed) {
195356
- // Arc: X = C + cU + sV
195357
- // Line: contains points A0,A1
195358
- // Arc point colinear with line if det (A0, A1, X) = 0
195359
- // with homogeneous xyw points and vectors.
195360
- // With equational X: det (A0, A1, C) + c det (A0, A1, U) + s det (A0, A1, V) = 0.
195361
- // solve for theta.
195362
- // evaluate points.
195363
- // project back to line.
195364
195345
  let matrixA;
195365
195346
  let matrixB;
195366
195347
  if (this._worldToLocalPerspective) {
195367
195348
  const dataA = cpA.toTransformedPoint4d(this._worldToLocalPerspective);
195368
195349
  const dataB = cpB.toTransformedPoint4d(this._worldToLocalPerspective);
195369
- matrixA = _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_9__.Matrix3d.createColumnsXYW(dataA.vector0, dataA.vector0.w, dataA.vector90, dataA.vector90.w, dataA.center, dataA.center.w);
195370
- matrixB = _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_9__.Matrix3d.createColumnsXYW(dataB.vector0, dataB.vector0.w, dataB.vector90, dataA.vector90.w, dataB.center, dataB.center.w);
195350
+ matrixA = _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_7__.Matrix3d.createColumnsXYW(dataA.vector0, dataA.vector0.w, dataA.vector90, dataA.vector90.w, dataA.center, dataA.center.w);
195351
+ matrixB = _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_7__.Matrix3d.createColumnsXYW(dataB.vector0, dataB.vector0.w, dataB.vector90, dataA.vector90.w, dataB.center, dataB.center.w);
195371
195352
  }
195372
195353
  else {
195373
195354
  const dataA = cpA.toTransformedVectors(this._worldToLocalAffine);
195374
195355
  const dataB = cpB.toTransformedVectors(this._worldToLocalAffine);
195375
- matrixA = _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_9__.Matrix3d.createColumnsXYW(dataA.vector0, 0, dataA.vector90, 0, dataA.center, 1);
195376
- matrixB = _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_9__.Matrix3d.createColumnsXYW(dataB.vector0, 0, dataB.vector90, 0, dataB.center, 1);
195356
+ matrixA = _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_7__.Matrix3d.createColumnsXYW(dataA.vector0, 0, dataA.vector90, 0, dataA.center, 1);
195357
+ matrixB = _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_7__.Matrix3d.createColumnsXYW(dataB.vector0, 0, dataB.vector90, 0, dataB.center, 1);
195377
195358
  }
195378
195359
  const conditionA = matrixA.conditionNumber();
195379
195360
  const conditionB = matrixB.conditionNumber();
195361
+ // pick the arc that is closest to circular.
195380
195362
  if (conditionA > conditionB)
195381
195363
  this.dispatchArcArcThisOrder(cpA, matrixA, extendA, cpB, matrixB, extendB, reversed);
195382
195364
  else
195383
195365
  this.dispatchArcArcThisOrder(cpB, matrixB, extendB, cpA, matrixA, extendA, !reversed);
195384
- // overlap handling .. perspective is not handled . . .
195366
+ // overlap handling. perspective is not handled.
195385
195367
  if (!this._coincidentGeometryContext) {
195386
195368
  // do nothing
195387
195369
  }
@@ -195403,11 +195385,11 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
195403
195385
  let matrixA;
195404
195386
  if (this._worldToLocalPerspective) {
195405
195387
  const dataA = cpA.toTransformedPoint4d(this._worldToLocalPerspective);
195406
- matrixA = _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_9__.Matrix3d.createColumnsXYW(dataA.vector0, dataA.vector0.w, dataA.vector90, dataA.vector90.w, dataA.center, dataA.center.w);
195388
+ matrixA = _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_7__.Matrix3d.createColumnsXYW(dataA.vector0, dataA.vector0.w, dataA.vector90, dataA.vector90.w, dataA.center, dataA.center.w);
195407
195389
  }
195408
195390
  else {
195409
195391
  const dataA = cpA.toTransformedVectors(this._worldToLocalAffine);
195410
- matrixA = _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_9__.Matrix3d.createColumnsXYW(dataA.vector0, 0, dataA.vector90, 0, dataA.center, 1);
195392
+ matrixA = _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_7__.Matrix3d.createColumnsXYW(dataA.vector0, 0, dataA.vector90, 0, dataA.center, 1);
195411
195393
  }
195412
195394
  // The worldToLocal has moved the arc vectors into local space.
195413
195395
  // matrixA captures the xyw parts (ignoring z)
@@ -195418,7 +195400,7 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
195418
195400
  const orderF = cpB.order; // order of the beziers for simple coordinates
195419
195401
  const orderG = 2 * orderF - 1; // order of the (single) bezier for squared coordinates.
195420
195402
  const coffF = new Float64Array(orderF);
195421
- const univariateBezierG = new _numerics_BezierPolynomials__WEBPACK_IMPORTED_MODULE_10__.UnivariateBezier(orderG);
195403
+ const univariateBezierG = new _numerics_BezierPolynomials__WEBPACK_IMPORTED_MODULE_8__.UnivariateBezier(orderG);
195422
195404
  const axx = matrixAInverse.at(0, 0);
195423
195405
  const axy = matrixAInverse.at(0, 1);
195424
195406
  const axz = 0.0;
@@ -195489,13 +195471,13 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
195489
195471
  dispatchBezierBezierStrokeFirst(bezierA, bcurveA, strokeCountA, bezierB, bcurveB, _strokeCountB, univariateBezierB, // caller-allocated for univariate coefficients.
195490
195472
  reversed) {
195491
195473
  if (!this._xyzwA0)
195492
- this._xyzwA0 = _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_11__.Point4d.create();
195474
+ this._xyzwA0 = _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_9__.Point4d.create();
195493
195475
  if (!this._xyzwA1)
195494
- this._xyzwA1 = _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_11__.Point4d.create();
195476
+ this._xyzwA1 = _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_9__.Point4d.create();
195495
195477
  if (!this._xyzwPlane)
195496
- this._xyzwPlane = _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_11__.Point4d.create();
195478
+ this._xyzwPlane = _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_9__.Point4d.create();
195497
195479
  if (!this._xyzwB)
195498
- this._xyzwB = _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_11__.Point4d.create();
195480
+ this._xyzwB = _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_9__.Point4d.create();
195499
195481
  /*
195500
195482
  const roots = univariateBezierG.roots(0.0, true);
195501
195483
  if (roots) {
@@ -195521,7 +195503,7 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
195521
195503
  for (let i = 1; i <= strokeCountA; i++, f0 = f1, this._xyzwA0.setFrom(this._xyzwA1)) {
195522
195504
  f1 = i * df;
195523
195505
  bezierA.fractionToPoint4d(f1, this._xyzwA1);
195524
- _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_11__.Point4d.createPlanePointPointZ(this._xyzwA0, this._xyzwA1, this._xyzwPlane);
195506
+ _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_9__.Point4d.createPlanePointPointZ(this._xyzwA0, this._xyzwA1, this._xyzwPlane);
195525
195507
  bezierB.poleProductsXYZW(univariateBezierB.coffs, this._xyzwPlane.x, this._xyzwPlane.y, this._xyzwPlane.z, this._xyzwPlane.w);
195526
195508
  let errors = 0;
195527
195509
  const roots = univariateBezierB.roots(0.0, true);
@@ -195529,35 +195511,22 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
195529
195511
  for (const r of roots) {
195530
195512
  let bezierBFraction = r;
195531
195513
  bezierB.fractionToPoint4d(bezierBFraction, this._xyzwB);
195532
- const segmentAFraction = _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_7__.SmallSystem.lineSegment3dHXYClosestPointUnbounded(this._xyzwA0, this._xyzwA1, this._xyzwB);
195533
- if (segmentAFraction && _Geometry__WEBPACK_IMPORTED_MODULE_4__.Geometry.isIn01WithTolerance(segmentAFraction, intervalTolerance)) {
195534
- let bezierAFraction = _Geometry__WEBPACK_IMPORTED_MODULE_4__.Geometry.interpolate(f0, segmentAFraction, f1);
195535
- const xyMatchingFunction = new BezierBezierIntersectionXYRRToRRD(bezierA, bezierB);
195536
- const newtonSearcher = new _numerics_Newton__WEBPACK_IMPORTED_MODULE_1__.Newton2dUnboundedWithDerivative(xyMatchingFunction);
195514
+ const segmentAFraction = _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_5__.SmallSystem.lineSegment3dHXYClosestPointUnbounded(this._xyzwA0, this._xyzwA1, this._xyzwB);
195515
+ if (segmentAFraction && _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.isIn01WithTolerance(segmentAFraction, intervalTolerance)) {
195516
+ let bezierAFraction = _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.interpolate(f0, segmentAFraction, f1);
195517
+ // We have a near intersection at fractions on the two beziers
195518
+ // Iterate on the curves for a true intersection
195519
+ const xyMatchingFunction = new _numerics_Newton__WEBPACK_IMPORTED_MODULE_10__.CurveCurveIntersectionXYRRToRRD(bezierA, bezierB);
195520
+ const newtonSearcher = new _numerics_Newton__WEBPACK_IMPORTED_MODULE_10__.Newton2dUnboundedWithDerivative(xyMatchingFunction);
195537
195521
  newtonSearcher.setUV(bezierAFraction, bezierBFraction);
195538
195522
  if (newtonSearcher.runIterations()) {
195539
195523
  bezierAFraction = newtonSearcher.getU();
195540
195524
  bezierBFraction = newtonSearcher.getV();
195541
195525
  }
195542
- // We have a near intersection at fractions on the two beziers !!!
195543
- // Iterate on the curves for a true intersection ....
195544
- // NEEDS WORK -- just accept . . .
195545
195526
  const bcurveAFraction = bezierA.fractionToParentFraction(bezierAFraction);
195546
195527
  const bcurveBFraction = bezierB.fractionToParentFraction(bezierBFraction);
195547
- const xyzA0 = bezierA.fractionToPoint(bezierAFraction);
195548
- const xyzA1 = bcurveA.fractionToPoint(bcurveAFraction);
195549
- const xyzB0 = bezierB.fractionToPoint(bezierBFraction);
195550
- const xyzB1 = bcurveB.fractionToPoint(bcurveBFraction);
195551
- if (!xyzA0.isAlmostEqualXY(xyzA1))
195552
- errors++;
195553
- if (!xyzB0.isAlmostEqualXY(xyzB1))
195554
- errors++;
195555
- if (errors > 0 && !xyzA0.isAlmostEqual(xyzB0))
195556
- errors++;
195557
- if (errors > 0 && !xyzA1.isAlmostEqual(xyzB1))
195558
- errors++;
195559
- if (this.acceptFraction(false, bcurveAFraction, false) &&
195560
- this.acceptFraction(false, bcurveBFraction, false)) {
195528
+ if (false) {}
195529
+ if (this.acceptFraction(false, bcurveAFraction, false) && this.acceptFraction(false, bcurveBFraction, false)) {
195561
195530
  this.recordPointWithLocalFractions(bcurveAFraction, bcurveA, 0, 1, bcurveBFraction, bcurveB, 0, 1, reversed);
195562
195531
  }
195563
195532
  }
@@ -195576,8 +195545,8 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
195576
195545
  const rangeB = this.getRanges(bezierSpanB);
195577
195546
  const orderA = bcurveA.order;
195578
195547
  const orderB = bcurveB.order;
195579
- const univariateCoffsA = new _numerics_BezierPolynomials__WEBPACK_IMPORTED_MODULE_10__.UnivariateBezier(orderA);
195580
- const univariateCoffsB = new _numerics_BezierPolynomials__WEBPACK_IMPORTED_MODULE_10__.UnivariateBezier(orderB);
195548
+ const univariateCoffsA = new _numerics_BezierPolynomials__WEBPACK_IMPORTED_MODULE_8__.UnivariateBezier(orderA);
195549
+ const univariateCoffsB = new _numerics_BezierPolynomials__WEBPACK_IMPORTED_MODULE_8__.UnivariateBezier(orderB);
195581
195550
  for (let a = 0; a < numA; a++) {
195582
195551
  for (let b = 0; b < numB; b++) {
195583
195552
  if (rangeA[a].intersectsRangeXY(rangeB[b])) {
@@ -195601,7 +195570,7 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
195601
195570
  return this._worldToLocalPerspective.multiplyPoint3d(xyz, w);
195602
195571
  if (this._worldToLocalAffine)
195603
195572
  return this._worldToLocalAffine.multiplyXYZW(xyz.x, xyz.y, xyz.z, w);
195604
- return _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_11__.Point4d.createFromPointAndWeight(xyz, w);
195573
+ return _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_9__.Point4d.createFromPointAndWeight(xyz, w);
195605
195574
  }
195606
195575
  mapNPCPlaneToWorld(npcPlane, worldPlane) {
195607
195576
  // for NPC pointY, Y^ * H = 0 is "on" plane H. (Hat is transpose)
@@ -195625,7 +195594,7 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
195625
195594
  dispatchSegmentBsplineCurve(cpA, extendA0, pointA0, fractionA0, pointA1, fractionA1, extendA1, bcurve, extendB, reversed) {
195626
195595
  const pointA0H = this.projectPoint(pointA0);
195627
195596
  const pointA1H = this.projectPoint(pointA1);
195628
- const planeCoffs = _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_11__.Point4d.createPlanePointPointZ(pointA0H, pointA1H);
195597
+ const planeCoffs = _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_9__.Point4d.createPlanePointPointZ(pointA0H, pointA1H);
195629
195598
  this.mapNPCPlaneToWorld(planeCoffs, planeCoffs);
195630
195599
  // NOW .. we have a plane in world space. Intersect it with the bspline:
195631
195600
  const intersections = [];
@@ -195637,7 +195606,7 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
195637
195606
  const fractionB = detail.fraction;
195638
195607
  const curvePoint = detail.point;
195639
195608
  const curvePointH = this.projectPoint(curvePoint);
195640
- const lineFraction = _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_7__.SmallSystem.lineSegment3dHXYClosestPointUnbounded(pointA0H, pointA1H, curvePointH);
195609
+ const lineFraction = _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_5__.SmallSystem.lineSegment3dHXYClosestPointUnbounded(pointA0H, pointA1H, curvePointH);
195641
195610
  if (lineFraction !== undefined) {
195642
195611
  if (this.acceptFraction(extendA0, lineFraction, extendA1) && this.acceptFraction(extendB, fractionB, extendB)) {
195643
195612
  this.recordPointWithLocalFractions(lineFraction, cpA, fractionA0, fractionA1, fractionB, bcurve, 0, 1, reversed);
@@ -195745,7 +195714,7 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
195745
195714
  /** Low level dispatch of curve collection. */
195746
195715
  dispatchCurveCollection(geomA, geomAHandler) {
195747
195716
  const geomB = this._geometryB; // save
195748
- if (!geomB || !geomB.children || !(geomB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_12__.CurveCollection))
195717
+ if (!geomB || !geomB.children || !(geomB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_11__.CurveCollection))
195749
195718
  return;
195750
195719
  for (const child of geomB.children) {
195751
195720
  this.resetGeometry(child);
@@ -195753,11 +195722,11 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
195753
195722
  }
195754
195723
  this._geometryB = geomB; // restore
195755
195724
  }
195756
- /** Low level dispatch to geomA given a CurveChainWithDistanceIndex in geometryB. */
195725
+ /** Low level dispatch of CurveChainWithDistanceIndex. */
195757
195726
  dispatchCurveChainWithDistanceIndex(geomA, geomAHandler) {
195758
- if (!this._geometryB || !(this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_13__.CurveChainWithDistanceIndex))
195727
+ if (!this._geometryB || !(this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_12__.CurveChainWithDistanceIndex))
195759
195728
  return;
195760
- if (geomA instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_13__.CurveChainWithDistanceIndex) {
195729
+ if (geomA instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_12__.CurveChainWithDistanceIndex) {
195761
195730
  (0,_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.assert)(!!"call handleCurveChainWithDistanceIndex(geomA) instead");
195762
195731
  return;
195763
195732
  }
@@ -195768,94 +195737,94 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
195768
195737
  geomAHandler(geomA);
195769
195738
  }
195770
195739
  this.resetGeometry(geomB); // restore
195771
- this._results = _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_13__.CurveChainWithDistanceIndex.convertChildDetailToChainDetail(this._results, index0, undefined, geomB, true);
195740
+ this._results = _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_12__.CurveChainWithDistanceIndex.convertChildDetailToChainDetail(this._results, index0, undefined, geomB, true);
195772
195741
  }
195773
195742
  /** Double dispatch handler for strongly typed segment. */
195774
195743
  handleLineSegment3d(segmentA) {
195775
- if (this._geometryB instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_14__.LineSegment3d) {
195744
+ if (this._geometryB instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_13__.LineSegment3d) {
195776
195745
  const segmentB = this._geometryB;
195777
195746
  this.dispatchSegmentSegment(segmentA, this._extendA, segmentA.point0Ref, 0.0, segmentA.point1Ref, 1.0, this._extendA, segmentB, this._extendB, segmentB.point0Ref, 0.0, segmentB.point1Ref, 1.0, this._extendB, false);
195778
195747
  }
195779
- else if (this._geometryB instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_15__.LineString3d) {
195748
+ else if (this._geometryB instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_14__.LineString3d) {
195780
195749
  this.computeSegmentLineString(segmentA, this._extendA, this._geometryB, this._extendB, false);
195781
195750
  }
195782
- else if (this._geometryB instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_16__.Arc3d) {
195751
+ else if (this._geometryB instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_15__.Arc3d) {
195783
195752
  this.dispatchSegmentArc(segmentA, this._extendA, segmentA.point0Ref, 0.0, segmentA.point1Ref, 1.0, this._extendA, this._geometryB, this._extendB, this._extendB, false);
195784
195753
  }
195785
- else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_17__.BSplineCurve3d) {
195754
+ else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_16__.BSplineCurve3d) {
195786
195755
  this.dispatchSegmentBsplineCurve(segmentA, this._extendA, segmentA.point0Ref, 0.0, segmentA.point1Ref, 1.0, this._extendA, this._geometryB, this._extendB, false);
195787
195756
  }
195788
- else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_12__.CurveCollection) {
195757
+ else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_11__.CurveCollection) {
195789
195758
  this.dispatchCurveCollection(segmentA, this.handleLineSegment3d.bind(this));
195790
195759
  }
195791
- else if (this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_13__.CurveChainWithDistanceIndex) {
195760
+ else if (this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_12__.CurveChainWithDistanceIndex) {
195792
195761
  this.dispatchCurveChainWithDistanceIndex(segmentA, this.handleLineSegment3d.bind(this));
195793
195762
  }
195794
195763
  return undefined;
195795
195764
  }
195796
195765
  /** Double dispatch handler for strongly typed linestring. */
195797
195766
  handleLineString3d(lsA) {
195798
- if (this._geometryB instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_15__.LineString3d) {
195767
+ if (this._geometryB instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_14__.LineString3d) {
195799
195768
  const lsB = this._geometryB;
195800
195769
  this.computeLineStringLineString(lsA, lsB, false);
195801
195770
  }
195802
- else if (this._geometryB instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_14__.LineSegment3d) {
195771
+ else if (this._geometryB instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_13__.LineSegment3d) {
195803
195772
  this.computeSegmentLineString(this._geometryB, this._extendB, lsA, this._extendA, true);
195804
195773
  }
195805
- else if (this._geometryB instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_16__.Arc3d) {
195774
+ else if (this._geometryB instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_15__.Arc3d) {
195806
195775
  this.computeArcLineString(this._geometryB, this._extendB, lsA, this._extendA, true);
195807
195776
  }
195808
- else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_17__.BSplineCurve3d) {
195777
+ else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_16__.BSplineCurve3d) {
195809
195778
  this.dispatchLineStringBSplineCurve(lsA, this._extendA, this._geometryB, this._extendB, false);
195810
195779
  }
195811
- else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_12__.CurveCollection) {
195780
+ else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_11__.CurveCollection) {
195812
195781
  this.dispatchCurveCollection(lsA, this.handleLineString3d.bind(this));
195813
195782
  }
195814
- else if (this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_13__.CurveChainWithDistanceIndex) {
195783
+ else if (this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_12__.CurveChainWithDistanceIndex) {
195815
195784
  this.dispatchCurveChainWithDistanceIndex(lsA, this.handleLineString3d.bind(this));
195816
195785
  }
195817
195786
  return undefined;
195818
195787
  }
195819
195788
  /** Double dispatch handler for strongly typed arc. */
195820
195789
  handleArc3d(arc0) {
195821
- if (this._geometryB instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_14__.LineSegment3d) {
195790
+ if (this._geometryB instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_13__.LineSegment3d) {
195822
195791
  this.dispatchSegmentArc(this._geometryB, this._extendB, this._geometryB.point0Ref, 0.0, this._geometryB.point1Ref, 1.0, this._extendB, arc0, this._extendA, this._extendA, true);
195823
195792
  }
195824
- else if (this._geometryB instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_15__.LineString3d) {
195793
+ else if (this._geometryB instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_14__.LineString3d) {
195825
195794
  this.computeArcLineString(arc0, this._extendA, this._geometryB, this._extendB, false);
195826
195795
  }
195827
- else if (this._geometryB instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_16__.Arc3d) {
195796
+ else if (this._geometryB instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_15__.Arc3d) {
195828
195797
  this.dispatchArcArc(arc0, this._extendA, this._geometryB, this._extendB, false);
195829
195798
  }
195830
- else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_17__.BSplineCurve3d) {
195799
+ else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_16__.BSplineCurve3d) {
195831
195800
  this.dispatchArcBsplineCurve3d(arc0, this._extendA, this._geometryB, this._extendB, false);
195832
195801
  }
195833
- else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_12__.CurveCollection) {
195802
+ else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_11__.CurveCollection) {
195834
195803
  this.dispatchCurveCollection(arc0, this.handleArc3d.bind(this));
195835
195804
  }
195836
- else if (this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_13__.CurveChainWithDistanceIndex) {
195805
+ else if (this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_12__.CurveChainWithDistanceIndex) {
195837
195806
  this.dispatchCurveChainWithDistanceIndex(arc0, this.handleArc3d.bind(this));
195838
195807
  }
195839
195808
  return undefined;
195840
195809
  }
195841
195810
  /** Double dispatch handler for strongly typed bspline curve. */
195842
195811
  handleBSplineCurve3d(curve) {
195843
- if (this._geometryB instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_14__.LineSegment3d) {
195812
+ if (this._geometryB instanceof _LineSegment3d__WEBPACK_IMPORTED_MODULE_13__.LineSegment3d) {
195844
195813
  this.dispatchSegmentBsplineCurve(this._geometryB, this._extendB, this._geometryB.point0Ref, 0.0, this._geometryB.point1Ref, 1.0, this._extendB, curve, this._extendA, true);
195845
195814
  }
195846
- else if (this._geometryB instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_15__.LineString3d) {
195815
+ else if (this._geometryB instanceof _LineString3d__WEBPACK_IMPORTED_MODULE_14__.LineString3d) {
195847
195816
  this.dispatchLineStringBSplineCurve(this._geometryB, this._extendB, curve, this._extendA, true);
195848
195817
  }
195849
- else if (this._geometryB instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_16__.Arc3d) {
195818
+ else if (this._geometryB instanceof _Arc3d__WEBPACK_IMPORTED_MODULE_15__.Arc3d) {
195850
195819
  this.dispatchArcBsplineCurve3d(this._geometryB, this._extendB, curve, this._extendA, true);
195851
195820
  }
195852
- else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_17__.BSplineCurve3dBase) {
195821
+ else if (this._geometryB instanceof _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_16__.BSplineCurve3dBase) {
195853
195822
  this.dispatchBSplineCurve3dBSplineCurve3d(curve, this._geometryB, false);
195854
195823
  }
195855
- else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_12__.CurveCollection) {
195824
+ else if (this._geometryB instanceof _CurveCollection__WEBPACK_IMPORTED_MODULE_11__.CurveCollection) {
195856
195825
  this.dispatchCurveCollection(curve, this.handleBSplineCurve3d.bind(this));
195857
195826
  }
195858
- else if (this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_13__.CurveChainWithDistanceIndex) {
195827
+ else if (this._geometryB instanceof _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_12__.CurveChainWithDistanceIndex) {
195859
195828
  this.dispatchCurveChainWithDistanceIndex(curve, this.handleBSplineCurve3d.bind(this));
195860
195829
  }
195861
195830
  return undefined;
@@ -195864,7 +195833,7 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
195864
195833
  handleCurveChainWithDistanceIndex(chain) {
195865
195834
  super.handleCurveChainWithDistanceIndex(chain);
195866
195835
  // if _geometryB is also a CurveChainWithDistanceIndex, it will already have been converted by dispatchCurveChainWithDistanceIndex
195867
- this._results = _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_13__.CurveChainWithDistanceIndex.convertChildDetailToChainDetail(this._results, 0, chain, undefined, true);
195836
+ this._results = _CurveChainWithDistanceIndex__WEBPACK_IMPORTED_MODULE_12__.CurveChainWithDistanceIndex.convertChildDetailToChainDetail(this._results, 0, chain, undefined, true);
195868
195837
  }
195869
195838
  /** Double dispatch handler for strongly typed homogeneous bspline curve .. */
195870
195839
  handleBSplineCurve3dH(_curve) {
@@ -195884,19 +195853,19 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
195884
195853
  return undefined;
195885
195854
  }
195886
195855
  }
195887
- CurveCurveIntersectXY._workVector2dA = _geometry3d_Point2dVector2d__WEBPACK_IMPORTED_MODULE_18__.Vector2d.create();
195888
- CurveCurveIntersectXY._workPointA0H = _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_11__.Point4d.create();
195889
- CurveCurveIntersectXY._workPointA1H = _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_11__.Point4d.create();
195890
- CurveCurveIntersectXY._workPointB0H = _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_11__.Point4d.create();
195891
- CurveCurveIntersectXY._workPointB1H = _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_11__.Point4d.create();
195892
- CurveCurveIntersectXY._workPointAA0 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_19__.Point3d.create();
195893
- CurveCurveIntersectXY._workPointAA1 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_19__.Point3d.create();
195894
- CurveCurveIntersectXY._workPointBB0 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_19__.Point3d.create();
195895
- CurveCurveIntersectXY._workPointBB1 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_19__.Point3d.create();
195896
- CurveCurveIntersectXY._workPointA0 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_19__.Point3d.create();
195897
- CurveCurveIntersectXY._workPointA1 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_19__.Point3d.create();
195898
- CurveCurveIntersectXY._workPointB0 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_19__.Point3d.create();
195899
- CurveCurveIntersectXY._workPointB1 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_19__.Point3d.create();
195856
+ CurveCurveIntersectXY._workVector2dA = _geometry3d_Point2dVector2d__WEBPACK_IMPORTED_MODULE_17__.Vector2d.create();
195857
+ CurveCurveIntersectXY._workPointA0H = _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_9__.Point4d.create();
195858
+ CurveCurveIntersectXY._workPointA1H = _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_9__.Point4d.create();
195859
+ CurveCurveIntersectXY._workPointB0H = _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_9__.Point4d.create();
195860
+ CurveCurveIntersectXY._workPointB1H = _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_9__.Point4d.create();
195861
+ CurveCurveIntersectXY._workPointAA0 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_18__.Point3d.create();
195862
+ CurveCurveIntersectXY._workPointAA1 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_18__.Point3d.create();
195863
+ CurveCurveIntersectXY._workPointBB0 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_18__.Point3d.create();
195864
+ CurveCurveIntersectXY._workPointBB1 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_18__.Point3d.create();
195865
+ CurveCurveIntersectXY._workPointA0 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_18__.Point3d.create();
195866
+ CurveCurveIntersectXY._workPointA1 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_18__.Point3d.create();
195867
+ CurveCurveIntersectXY._workPointB0 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_18__.Point3d.create();
195868
+ CurveCurveIntersectXY._workPointB1 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_18__.Point3d.create();
195900
195869
 
195901
195870
 
195902
195871
 
@@ -196075,11 +196044,12 @@ class CurveCurveIntersectXYZ extends _geometry3d_GeometryHandler__WEBPACK_IMPORT
196075
196044
  return undefined;
196076
196045
  }
196077
196046
  // Caller accesses data from a linestring or segment and passes it here.
196078
- // The line segment in question might be (a) a full line segment or (b) a fragment within a linestring.
196047
+ // The line in question might be (a) a full line segment or (b) a fragment within a linestring.
196079
196048
  // The fraction and extend parameters allow all combinations to be passed in.
196080
196049
  dispatchSegmentArc(cpA, extendA0, pointA0, fractionA0, pointA1, fractionA1, extendA1, arc, extendB0, extendB1, reversed) {
196081
196050
  const lineVector = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_6__.Vector3d.createStartEnd(pointA0, pointA1);
196082
- const plane = this.createPlaneWithPreferredPerpendicular(pointA0, lineVector, 0.94, arc.perpendicularVector, arc.vector0);
196051
+ const cosValue = 0.94; // cosine of 20 degrees
196052
+ const plane = this.createPlaneWithPreferredPerpendicular(pointA0, lineVector, cosValue, arc.perpendicularVector, arc.vector0);
196083
196053
  if (plane !== undefined) {
196084
196054
  const candidates = [];
196085
196055
  arc.appendPlaneIntersectionPoints(plane, candidates);
@@ -226045,6 +226015,9 @@ class ConvexPolygon2d {
226045
226015
  __webpack_require__.r(__webpack_exports__);
226046
226016
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
226047
226017
  /* harmony export */ AbstractNewtonIterator: () => (/* binding */ AbstractNewtonIterator),
226018
+ /* harmony export */ CurveCurveCloseApproachXYRRtoRRD: () => (/* binding */ CurveCurveCloseApproachXYRRtoRRD),
226019
+ /* harmony export */ CurveCurveIntersectionXYRRToRRD: () => (/* binding */ CurveCurveIntersectionXYRRToRRD),
226020
+ /* harmony export */ CurvePointCloseApproachXYRtoRD: () => (/* binding */ CurvePointCloseApproachXYRtoRD),
226048
226021
  /* harmony export */ Newton1dUnbounded: () => (/* binding */ Newton1dUnbounded),
226049
226022
  /* harmony export */ Newton1dUnboundedApproximateDerivative: () => (/* binding */ Newton1dUnboundedApproximateDerivative),
226050
226023
  /* harmony export */ Newton2dUnboundedWithDerivative: () => (/* binding */ Newton2dUnboundedWithDerivative),
@@ -226056,6 +226029,7 @@ __webpack_require__.r(__webpack_exports__);
226056
226029
  /* harmony import */ var _Geometry__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Geometry */ "../../core/geometry/lib/esm/Geometry.js");
226057
226030
  /* harmony import */ var _geometry3d_Plane3dByOriginAndVectors__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../geometry3d/Plane3dByOriginAndVectors */ "../../core/geometry/lib/esm/geometry3d/Plane3dByOriginAndVectors.js");
226058
226031
  /* harmony import */ var _geometry3d_Point2dVector2d__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../geometry3d/Point2dVector2d */ "../../core/geometry/lib/esm/geometry3d/Point2dVector2d.js");
226032
+ /* harmony import */ var _geometry3d_Ray3d__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../geometry3d/Ray3d */ "../../core/geometry/lib/esm/geometry3d/Ray3d.js");
226059
226033
  /* harmony import */ var _Polynomials__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Polynomials */ "../../core/geometry/lib/esm/numerics/Polynomials.js");
226060
226034
  /*---------------------------------------------------------------------------------------------
226061
226035
  * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
@@ -226068,7 +226042,8 @@ __webpack_require__.r(__webpack_exports__);
226068
226042
 
226069
226043
 
226070
226044
 
226071
- // cspell:word currentdFdX
226045
+
226046
+ // cspell:word currentdFdX XYRR
226072
226047
  /**
226073
226048
  * Base class for Newton iterations in various dimensions.
226074
226049
  * Dimension-specific classes carry all dimension-related data and answer generalized queries from this base class.
@@ -226122,6 +226097,7 @@ class AbstractNewtonIterator {
226122
226097
  this.numIterations = 0;
226123
226098
  while (this.numIterations++ < this._maxIterations && this.computeStep()) {
226124
226099
  if (this.testConvergence(this.currentStepSize()) && this.applyCurrentStep(true)) {
226100
+ // console.log("iter: " + this.numIterations); // print number of Newton iterations for debug
226125
226101
  return true;
226126
226102
  }
226127
226103
  this.applyCurrentStep(false);
@@ -226171,7 +226147,7 @@ class Newton1dUnbounded extends AbstractNewtonIterator {
226171
226147
  // console.log(this._currentX - this._currentStep); // print approximations for debug
226172
226148
  return this.setX(this._currentX - this._currentStep);
226173
226149
  }
226174
- /** Compute the univariate newton step. */
226150
+ /** Compute the univariate newton step dx. */
226175
226151
  computeStep() {
226176
226152
  if (this._func.evaluate(this._currentX)) {
226177
226153
  const dx = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.conditionalDivideFraction(this._func.currentF - this._target, this._func.currentdFdX);
@@ -226224,7 +226200,7 @@ class Newton1dUnboundedApproximateDerivative extends AbstractNewtonIterator {
226224
226200
  // console.log(this._currentX - this._currentStep); // print approximations for debug
226225
226201
  return this.setX(this._currentX - this._currentStep);
226226
226202
  }
226227
- /** Univariate newton step computed with approximate derivative. */
226203
+ /** Univariate newton step dx, computed with approximate derivative. */
226228
226204
  computeStep() {
226229
226205
  if (this._func.evaluate(this._currentX)) {
226230
226206
  const fA = this._func.currentF; // f(x_n)
@@ -226262,7 +226238,7 @@ class NewtonEvaluatorRRtoRRD {
226262
226238
  * * Suppose we want to find the roots of `F(u,v) := (x(u,v), y(u,v))`. Writing `X := (u,v)` and `F(X)` as column vectors,
226263
226239
  * the 2D Newton's iteration to find a root of `F` is given by:
226264
226240
  * `X_{n+1} = X_n - dX = X_n - JInv(X_n)F(X_n)`, where `JInv` is the inverse of the Jacobian matrix `J`, and `J` is
226265
- * defined as:
226241
+ * defined by the partial derivatives of the component functions of F:
226266
226242
  *
226267
226243
  * `[dx/du dx/dv]`
226268
226244
  *
@@ -226275,7 +226251,8 @@ class Newton2dUnboundedWithDerivative extends AbstractNewtonIterator {
226275
226251
  * @param func function that returns both function value and derivative.
226276
226252
  */
226277
226253
  constructor(func) {
226278
- super();
226254
+ const maxIterations = 100; // Was default (15). We observed 49 iters to achieve 1e-11 tol with tangent geometry.
226255
+ super(undefined, undefined, maxIterations);
226279
226256
  this._func = func;
226280
226257
  this._currentStep = _geometry3d_Point2dVector2d__WEBPACK_IMPORTED_MODULE_2__.Vector2d.createZero();
226281
226258
  this._currentUV = _geometry3d_Point2dVector2d__WEBPACK_IMPORTED_MODULE_2__.Point2d.createZero();
@@ -226307,7 +226284,10 @@ class Newton2dUnboundedWithDerivative extends AbstractNewtonIterator {
226307
226284
  if (this._func.evaluate(this._currentUV.x, this._currentUV.y)) {
226308
226285
  const fA = this._func.currentF;
226309
226286
  if ( // Given X_{n+1} = X_n - dX = X_n - JInv(X_n) F(X_n), we solve J(X_n) dX = F(X_n) for dX:
226310
- _Polynomials__WEBPACK_IMPORTED_MODULE_3__.SmallSystem.linearSystem2d(fA.vectorU.x, fA.vectorV.x, fA.vectorU.y, fA.vectorV.y, fA.origin.x, fA.origin.y, this._currentStep))
226287
+ _Polynomials__WEBPACK_IMPORTED_MODULE_3__.SmallSystem.linearSystem2d(fA.vectorU.x, fA.vectorV.x, // x_u(X_n), x_v(X_n): 1st row of J evaluated at X_n
226288
+ fA.vectorU.y, fA.vectorV.y, // y_u(X_n), y_v(X_n): 2nd row of J evaluated at X_n
226289
+ fA.origin.x, fA.origin.y, // F(X_n) := (x(X_n), y(X_n))
226290
+ this._currentStep))
226311
226291
  return true;
226312
226292
  }
226313
226293
  return false;
@@ -226361,6 +226341,106 @@ class SimpleNewton {
226361
226341
  return undefined;
226362
226342
  }
226363
226343
  }
226344
+ /**
226345
+ * Class to evaluate XY intersection between 2 curve primitives using the Newton method.
226346
+ * @internal
226347
+ */
226348
+ class CurveCurveIntersectionXYRRToRRD extends NewtonEvaluatorRRtoRRD {
226349
+ constructor(curveP, curveQ) {
226350
+ super();
226351
+ this._curveP = curveP;
226352
+ this._curveQ = curveQ;
226353
+ this._rayP = _geometry3d_Ray3d__WEBPACK_IMPORTED_MODULE_4__.Ray3d.createZero();
226354
+ this._rayQ = _geometry3d_Ray3d__WEBPACK_IMPORTED_MODULE_4__.Ray3d.createZero();
226355
+ }
226356
+ evaluate(fractionU, fractionV) {
226357
+ /**
226358
+ * To find an intersection between xy-curves P(u) = (x_p(u), y_p(u)) and Q(v) = (x_q(v), y_q(v)) we should solve
226359
+ * F(u,v) := P(u) - Q(v) = (0,0)
226360
+ * Using the Newton method we can find the fractions u and v at the intersection via
226361
+ * [u_{n+1}] [u_n] [x_p'(u_n) -x_q'(v_n)] [x_p(u_n) - x_q(v_n)]
226362
+ * = - Inv( )
226363
+ * [v_{n+1}] [v_n] [y_p'(u_n) -y_q'(v_n)] [y_p(u_n) - y_q(v_n)]
226364
+ * Note that this is xy intersection so we can ignore z.
226365
+ */
226366
+ this._curveP.fractionToPointAndDerivative(fractionU, this._rayP);
226367
+ this._curveQ.fractionToPointAndDerivative(fractionV, this._rayQ);
226368
+ this.currentF.setOriginAndVectorsXYZ(this._rayP.origin.x - this._rayQ.origin.x, this._rayP.origin.y - this._rayQ.origin.y, 0.0, this._rayP.direction.x, this._rayP.direction.y, 0.0, -this._rayQ.direction.x, -this._rayQ.direction.y, 0.0);
226369
+ return true;
226370
+ }
226371
+ }
226372
+ /**
226373
+ * Class to evaluate XY close approach between a curve primitive and a point using the Newton method.
226374
+ * @internal
226375
+ */
226376
+ class CurvePointCloseApproachXYRtoRD extends NewtonEvaluatorRtoRD {
226377
+ constructor(curveP, pointQ) {
226378
+ super();
226379
+ this._curveP = curveP;
226380
+ this._pointQ = pointQ;
226381
+ this._planeP = _geometry3d_Plane3dByOriginAndVectors__WEBPACK_IMPORTED_MODULE_1__.Plane3dByOriginAndVectors.createXYPlane();
226382
+ }
226383
+ evaluate(fractionU) {
226384
+ /**
226385
+ * To find a close approach between xy-curve P(u) and xy-point q we should solve
226386
+ * F(u) := P'(u).(P(u) - q) = 0
226387
+ * For a solution u, the segment S(u) := P(u) - q is perpendicular to the curve tangent P'(u), which means S(u) is a close approach.
226388
+ * Using the Newton method we can find the fractions u at the close approach location via
226389
+ * u_{n+1} = u_n + F(u_n)/F'(u_n) = u_n + [ P'(u_n).S(u_n) ]/[ P''(u_n).S(u_n) + P'(u_n).P'(u_n) ]
226390
+ * Note that this is xy close approach so we can ignore z.
226391
+ */
226392
+ this._curveP.fractionToPointAnd2Derivatives(fractionU, this._planeP);
226393
+ const segX = this._planeP.origin.x - this._pointQ.x;
226394
+ const segY = this._planeP.origin.y - this._pointQ.y;
226395
+ const pDerivX = this._planeP.vectorU.x;
226396
+ const pDerivY = this._planeP.vectorU.y;
226397
+ const p2DerivX = this._planeP.vectorV.x;
226398
+ const p2DerivY = this._planeP.vectorV.y;
226399
+ this.currentF = pDerivX * segX + pDerivY * segY;
226400
+ this.currentdFdX = p2DerivX * segX + pDerivX * pDerivX + p2DerivY * segY + pDerivY * pDerivY;
226401
+ return true;
226402
+ }
226403
+ }
226404
+ /**
226405
+ * Class to evaluate XY close approach between 2 curve primitives using the Newton method.
226406
+ * @internal
226407
+ */
226408
+ class CurveCurveCloseApproachXYRRtoRRD extends NewtonEvaluatorRRtoRRD {
226409
+ constructor(curveP, curveQ) {
226410
+ super();
226411
+ this._curveP = curveP;
226412
+ this._curveQ = curveQ;
226413
+ this._planeP = _geometry3d_Plane3dByOriginAndVectors__WEBPACK_IMPORTED_MODULE_1__.Plane3dByOriginAndVectors.createXYPlane();
226414
+ this._planeQ = _geometry3d_Plane3dByOriginAndVectors__WEBPACK_IMPORTED_MODULE_1__.Plane3dByOriginAndVectors.createXYPlane();
226415
+ }
226416
+ evaluate(fractionU, fractionV) {
226417
+ /**
226418
+ * To find a close approach between xy-curves P(u) and Q(v) we should solve
226419
+ * F(u,v) := (P'(u).(P(u) - Q(v)), Q'(v).(P(u) - Q(v))) = (0,0)
226420
+ * For a solution (u,v), the segment S(u,v) := P(u) - Q(v) is perpendicular to the curve tangents P'(u) and Q'(v),
226421
+ * which means S(u,v) is a close approach.
226422
+ * Using the Newton method we can find the fractions u and v at the close approach location via
226423
+ * [u_{n+1}] [u_n] [P''(u_n).S(u_n,v_n) + P'(u_n).P'(u_n) -P'(u_n).Q'(v_n)] [P'(u_n).S(u_n,v_n)]
226424
+ * = - Inv( )
226425
+ * [v_{n+1}] [v_n] [Q'(v_n).P'(u_n) Q''(v_n).S(u_n,v_n) - Q'(v_n).Q'(v_n)] [Q'(v_n).S(u_n,v_n)]
226426
+ * Note that this is xy close approach so we can ignore z.
226427
+ */
226428
+ this._curveP.fractionToPointAnd2Derivatives(fractionU, this._planeP);
226429
+ this._curveQ.fractionToPointAnd2Derivatives(fractionV, this._planeQ);
226430
+ const segX = this._planeP.origin.x - this._planeQ.origin.x;
226431
+ const segY = this._planeP.origin.y - this._planeQ.origin.y;
226432
+ const pDerivX = this._planeP.vectorU.x;
226433
+ const pDerivY = this._planeP.vectorU.y;
226434
+ const qDerivX = this._planeQ.vectorU.x;
226435
+ const qDerivY = this._planeQ.vectorU.y;
226436
+ const p2DerivX = this._planeP.vectorV.x;
226437
+ const p2DerivY = this._planeP.vectorV.y;
226438
+ const q2DerivX = this._planeQ.vectorV.x;
226439
+ const q2DerivY = this._planeQ.vectorV.y;
226440
+ this.currentF.setOriginAndVectorsXYZ(pDerivX * segX + pDerivY * segY, qDerivX * segX + qDerivY * segY, 0.0, p2DerivX * segX + p2DerivY * segY + pDerivX * pDerivX + pDerivY * pDerivY, qDerivX * pDerivX + qDerivY * pDerivY, 0.0, -(pDerivX * qDerivX + pDerivY * qDerivY), q2DerivX * segX + q2DerivY * segY - qDerivX * qDerivX - qDerivY * qDerivY, 0.0);
226441
+ return true;
226442
+ }
226443
+ }
226364
226444
 
226365
226445
 
226366
226446
  /***/ }),
@@ -227549,10 +227629,8 @@ class TrigPolynomial {
227549
227629
  * @param referenceCoefficient A number which represents the size of coefficients
227550
227630
  * at various stages of computation. A small fraction of this will be used as a zero
227551
227631
  * tolerance
227552
- * @param angles Roots are placed here. Assumed preallocated with adequate size.
227553
- * @param numRoots Number of roots . Zero roots is possible. (Passed as array of size
227554
- * one to pass-by-reference)
227555
- * Returns false if equation is all zeros. This usually means any angle is a solution.
227632
+ * @param radians Roots are placed here
227633
+ * @return false if equation is all zeros. This usually means any angle is a solution.
227556
227634
  */
227557
227635
  static solveAngles(coff, nominalDegree, referenceCoefficient, radians) {
227558
227636
  let maxCoff = Math.abs(referenceCoefficient);
@@ -227630,7 +227708,6 @@ class TrigPolynomial {
227630
227708
  * @param ay Coefficient of y
227631
227709
  * @param a1 Constant coefficient
227632
227710
  * @param radians solution angles
227633
- * @param numAngle number of solution angles(Passed as array to make changes to reference)
227634
227711
  */
227635
227712
  static solveUnitCircleImplicitQuadricIntersection(axx, axy, ayy, ax, ay, a1, radians) {
227636
227713
  const Coffs = new Float64Array(5);
@@ -227696,9 +227773,8 @@ class TrigPolynomial {
227696
227773
  return status;
227697
227774
  }
227698
227775
  /**
227699
- * Compute intersections of unit circle x^2 + y^2 = w^2 with the ellipse
227700
- * (x,y) = (cx + ux Math.Cos + vx sin, cy + uy Math.Cos + vy sin)/ (cw + uw Math.Cos + vw * Math.Sin)
227701
- * Solutions are returned as angles in the ellipse space.
227776
+ * Compute intersections of unit circle `x^2 + y^2 = w^2` with the ellipse
227777
+ * `F(t) = (cx + ux cos(t) + vx sin(t), cy + uy cos(t) + vy sin(t)) / (cw + uw cos(t) + vw sin(t))`.
227702
227778
  * @param cx center x
227703
227779
  * @param cy center y
227704
227780
  * @param cw center w
@@ -289597,7 +289673,7 @@ module.exports = JSON.parse('{"name":"axios","version":"0.21.4","description":"P
289597
289673
  /***/ ((module) => {
289598
289674
 
289599
289675
  "use strict";
289600
- module.exports = JSON.parse('{"name":"@itwin/core-frontend","version":"4.3.0-dev.21","description":"iTwin.js frontend components","main":"lib/cjs/core-frontend.js","module":"lib/esm/core-frontend.js","typings":"lib/cjs/core-frontend","license":"MIT","scripts":{"build":"npm run -s copy:public && npm run -s build:cjs && npm run -s build:esm && npm run -s webpackWorkers && npm run -s copy:workers","build:cjs":"npm run -s copy:js:cjs && tsc 1>&2 --outDir lib/cjs","build:esm":"npm run -s copy:js:esm && tsc 1>&2 --module ES2020 --outDir lib/esm","clean":"rimraf lib .rush/temp/package-deps*.json","copy:public":"cpx \\"./src/public/**/*\\" ./lib/public","copy:js:cjs":"cpx \\"./src/**/*.js\\" ./lib/cjs","copy:js:esm":"cpx \\"./src/**/*.js\\" ./lib/esm","copy:workers":"cpx \\"./lib/workers/webpack/parse-imdl-worker.js\\" ./lib/public/scripts","docs":"betools docs --includes=../../generated-docs/extract --json=../../generated-docs/core/core-frontend/file.json --tsIndexFile=./core-frontend.ts --onlyJson --excludes=webgl/**/*,**/map/*.d.ts,**/tile/*.d.ts,**/*-css.ts","extract-api":"betools extract-api --entry=core-frontend && npm run extract-extension-api","extract-extension-api":"eslint -c extraction.eslint.config.js \\"./src/**/*.ts\\" 1>&2","lint":"eslint -f visualstudio \\"./src/**/*.ts\\" 1>&2","pseudolocalize":"betools pseudolocalize --englishDir ./src/public/locales/en --out ./public/locales/en-PSEUDO","test":"npm run -s webpackTests && certa -r chrome","cover":"npm -s test","test:debug":"certa -r chrome --debug","webpackTests":"webpack --config ./src/test/utils/webpack.config.js 1>&2 && npm run -s webpackTestWorker","webpackTestWorker":"webpack --config ./src/test/worker/webpack.config.js 1>&2 && cpx \\"./lib/test/test-worker.js\\" ./lib/test","webpackWorkers":"webpack --config ./src/workers/ImdlParser/webpack.config.js 1>&2"},"repository":{"type":"git","url":"https://github.com/iTwin/itwinjs-core.git","directory":"core/frontend"},"keywords":["Bentley","BIM","iModel","digital-twin","iTwin"],"author":{"name":"Bentley Systems, Inc.","url":"http://www.bentley.com"},"peerDependencies":{"@itwin/appui-abstract":"workspace:^4.3.0-dev.21","@itwin/core-bentley":"workspace:^4.3.0-dev.21","@itwin/core-common":"workspace:^4.3.0-dev.21","@itwin/core-geometry":"workspace:^4.3.0-dev.21","@itwin/core-orbitgt":"workspace:^4.3.0-dev.21","@itwin/core-quantity":"workspace:^4.3.0-dev.21"},"//devDependencies":["NOTE: All peerDependencies should also be listed as devDependencies since peerDependencies are not considered by npm install","NOTE: All tools used by scripts in this package must be listed as devDependencies"],"devDependencies":{"@itwin/appui-abstract":"workspace:*","@itwin/build-tools":"workspace:*","@itwin/core-bentley":"workspace:*","@itwin/core-common":"workspace:*","@itwin/core-geometry":"workspace:*","@itwin/core-orbitgt":"workspace:*","@itwin/core-quantity":"workspace:*","@itwin/certa":"workspace:*","@itwin/eslint-plugin":"4.0.0-dev.44","@types/chai":"4.3.1","@types/chai-as-promised":"^7","@types/mocha":"^8.2.2","@types/node":"18.16.1","@types/sinon":"^10.0.15","babel-loader":"~8.2.5","babel-plugin-istanbul":"~6.1.1","chai":"^4.3.10","chai-as-promised":"^7","cpx2":"^3.0.0","eslint":"^8.44.0","glob":"^7.1.2","mocha":"^10.0.0","nyc":"^15.1.0","rimraf":"^3.0.2","sinon":"^15.0.4","source-map-loader":"^4.0.0","typescript":"~5.0.2","typemoq":"^2.1.0","webpack":"^5.76.0"},"//dependencies":["NOTE: these dependencies should be only for things that DO NOT APPEAR IN THE API","NOTE: core-frontend should remain UI technology agnostic, so no react/angular dependencies are allowed"],"dependencies":{"@itwin/cloud-agnostic-core":"^2.1.0","@itwin/object-storage-core":"^2.1.0","@itwin/core-i18n":"workspace:*","@itwin/core-telemetry":"workspace:*","@itwin/webgl-compatibility":"workspace:*","@loaders.gl/core":"^3.1.6","@loaders.gl/draco":"^3.1.6","fuse.js":"^3.3.0","wms-capabilities":"0.4.0"},"nyc":{"extends":"./node_modules/@itwin/build-tools/.nycrc"}}');
289676
+ module.exports = JSON.parse('{"name":"@itwin/core-frontend","version":"4.3.0-dev.23","description":"iTwin.js frontend components","main":"lib/cjs/core-frontend.js","module":"lib/esm/core-frontend.js","typings":"lib/cjs/core-frontend","license":"MIT","scripts":{"build":"npm run -s copy:public && npm run -s build:cjs && npm run -s build:esm && npm run -s webpackWorkers && npm run -s copy:workers","build:cjs":"npm run -s copy:js:cjs && tsc 1>&2 --outDir lib/cjs","build:esm":"npm run -s copy:js:esm && tsc 1>&2 --module ES2020 --outDir lib/esm","clean":"rimraf lib .rush/temp/package-deps*.json","copy:public":"cpx \\"./src/public/**/*\\" ./lib/public","copy:js:cjs":"cpx \\"./src/**/*.js\\" ./lib/cjs","copy:js:esm":"cpx \\"./src/**/*.js\\" ./lib/esm","copy:workers":"cpx \\"./lib/workers/webpack/parse-imdl-worker.js\\" ./lib/public/scripts","docs":"betools docs --includes=../../generated-docs/extract --json=../../generated-docs/core/core-frontend/file.json --tsIndexFile=./core-frontend.ts --onlyJson --excludes=webgl/**/*,**/map/*.d.ts,**/tile/*.d.ts,**/*-css.ts","extract-api":"betools extract-api --entry=core-frontend && npm run extract-extension-api","extract-extension-api":"eslint -c extraction.eslint.config.js \\"./src/**/*.ts\\" 1>&2","lint":"eslint -f visualstudio \\"./src/**/*.ts\\" 1>&2","pseudolocalize":"betools pseudolocalize --englishDir ./src/public/locales/en --out ./public/locales/en-PSEUDO","test":"npm run -s webpackTests && certa -r chrome","cover":"npm -s test","test:debug":"certa -r chrome --debug","webpackTests":"webpack --config ./src/test/utils/webpack.config.js 1>&2 && npm run -s webpackTestWorker","webpackTestWorker":"webpack --config ./src/test/worker/webpack.config.js 1>&2 && cpx \\"./lib/test/test-worker.js\\" ./lib/test","webpackWorkers":"webpack --config ./src/workers/ImdlParser/webpack.config.js 1>&2"},"repository":{"type":"git","url":"https://github.com/iTwin/itwinjs-core.git","directory":"core/frontend"},"keywords":["Bentley","BIM","iModel","digital-twin","iTwin"],"author":{"name":"Bentley Systems, Inc.","url":"http://www.bentley.com"},"peerDependencies":{"@itwin/appui-abstract":"workspace:^4.3.0-dev.23","@itwin/core-bentley":"workspace:^4.3.0-dev.23","@itwin/core-common":"workspace:^4.3.0-dev.23","@itwin/core-geometry":"workspace:^4.3.0-dev.23","@itwin/core-orbitgt":"workspace:^4.3.0-dev.23","@itwin/core-quantity":"workspace:^4.3.0-dev.23"},"//devDependencies":["NOTE: All peerDependencies should also be listed as devDependencies since peerDependencies are not considered by npm install","NOTE: All tools used by scripts in this package must be listed as devDependencies"],"devDependencies":{"@itwin/appui-abstract":"workspace:*","@itwin/build-tools":"workspace:*","@itwin/core-bentley":"workspace:*","@itwin/core-common":"workspace:*","@itwin/core-geometry":"workspace:*","@itwin/core-orbitgt":"workspace:*","@itwin/core-quantity":"workspace:*","@itwin/certa":"workspace:*","@itwin/eslint-plugin":"4.0.0-dev.44","@types/chai":"4.3.1","@types/chai-as-promised":"^7","@types/mocha":"^8.2.2","@types/node":"18.16.1","@types/sinon":"^10.0.15","babel-loader":"~8.2.5","babel-plugin-istanbul":"~6.1.1","chai":"^4.3.10","chai-as-promised":"^7","cpx2":"^3.0.0","eslint":"^8.44.0","glob":"^7.1.2","mocha":"^10.0.0","nyc":"^15.1.0","rimraf":"^3.0.2","sinon":"^15.0.4","source-map-loader":"^4.0.0","typescript":"~5.0.2","typemoq":"^2.1.0","webpack":"^5.76.0"},"//dependencies":["NOTE: these dependencies should be only for things that DO NOT APPEAR IN THE API","NOTE: core-frontend should remain UI technology agnostic, so no react/angular dependencies are allowed"],"dependencies":{"@itwin/cloud-agnostic-core":"^2.1.0","@itwin/object-storage-core":"^2.1.0","@itwin/core-i18n":"workspace:*","@itwin/core-telemetry":"workspace:*","@itwin/webgl-compatibility":"workspace:*","@loaders.gl/core":"^3.1.6","@loaders.gl/draco":"^3.1.6","fuse.js":"^3.3.0","wms-capabilities":"0.4.0"},"nyc":{"extends":"./node_modules/@itwin/build-tools/.nycrc"}}');
289601
289677
 
289602
289678
  /***/ })
289603
289679