@itwin/ecschema-rpcinterface-tests 4.3.0-dev.15 → 4.3.0-dev.16

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.
@@ -86104,6 +86104,7 @@ class SpatialViewState extends _ViewState__WEBPACK_IMPORTED_MODULE_6__.ViewState
86104
86104
  this.registerModelSelectorListeners();
86105
86105
  this.onViewedModelsChanged.raiseEvent();
86106
86106
  }
86107
+ this.markModelSelectorChanged();
86107
86108
  }
86108
86109
  /** Create a new *blank* SpatialViewState. The returned SpatialViewState will nave non-persistent empty [[CategorySelectorState]] and [[ModelSelectorState]],
86109
86110
  * and a non-persistent [[DisplayStyle3dState]] with default values for all of its components. Generally after creating a blank SpatialViewState,
@@ -178747,28 +178748,31 @@ __webpack_require__.r(__webpack_exports__);
178747
178748
  /* harmony export */ ClipStepAction: () => (/* binding */ ClipStepAction),
178748
178749
  /* harmony export */ ClipUtilities: () => (/* binding */ ClipUtilities)
178749
178750
  /* harmony export */ });
178750
- /* harmony import */ var _curve_CurveCollection__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../curve/CurveCollection */ "../../core/geometry/lib/esm/curve/CurveCollection.js");
178751
- /* harmony import */ var _curve_CurveFactory__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ../curve/CurveFactory */ "../../core/geometry/lib/esm/curve/CurveFactory.js");
178752
- /* harmony import */ var _curve_CurvePrimitive__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../curve/CurvePrimitive */ "../../core/geometry/lib/esm/curve/CurvePrimitive.js");
178753
- /* harmony import */ var _curve_LineString3d__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../curve/LineString3d */ "../../core/geometry/lib/esm/curve/LineString3d.js");
178754
- /* harmony import */ var _curve_Loop__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../curve/Loop */ "../../core/geometry/lib/esm/curve/Loop.js");
178755
- /* harmony import */ var _curve_Path__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../curve/Path */ "../../core/geometry/lib/esm/curve/Path.js");
178756
- /* harmony import */ var _curve_RegionOps__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../curve/RegionOps */ "../../core/geometry/lib/esm/curve/RegionOps.js");
178757
- /* harmony import */ var _curve_UnionRegion__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../curve/UnionRegion */ "../../core/geometry/lib/esm/curve/UnionRegion.js");
178758
- /* harmony import */ var _Geometry__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Geometry */ "../../core/geometry/lib/esm/Geometry.js");
178759
- /* harmony import */ var _geometry3d_FrameBuilder__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../geometry3d/FrameBuilder */ "../../core/geometry/lib/esm/geometry3d/FrameBuilder.js");
178760
- /* harmony import */ var _geometry3d_GrowableXYZArray__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../geometry3d/GrowableXYZArray */ "../../core/geometry/lib/esm/geometry3d/GrowableXYZArray.js");
178761
- /* harmony import */ var _geometry3d_Point3dArrayCarrier__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ../geometry3d/Point3dArrayCarrier */ "../../core/geometry/lib/esm/geometry3d/Point3dArrayCarrier.js");
178762
- /* harmony import */ var _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../geometry3d/Point3dVector3d */ "../../core/geometry/lib/esm/geometry3d/Point3dVector3d.js");
178763
- /* harmony import */ var _geometry3d_Range__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../geometry3d/Range */ "../../core/geometry/lib/esm/geometry3d/Range.js");
178764
- /* harmony import */ var _geometry3d_ReusableObjectCache__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../geometry3d/ReusableObjectCache */ "../../core/geometry/lib/esm/geometry3d/ReusableObjectCache.js");
178765
- /* harmony import */ var _polyface_PolyfaceBuilder__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ../polyface/PolyfaceBuilder */ "../../core/geometry/lib/esm/polyface/PolyfaceBuilder.js");
178766
- /* harmony import */ var _ClipPlane__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./ClipPlane */ "../../core/geometry/lib/esm/clipping/ClipPlane.js");
178767
- /* harmony import */ var _ClipPrimitive__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./ClipPrimitive */ "../../core/geometry/lib/esm/clipping/ClipPrimitive.js");
178768
- /* harmony import */ var _ClipVector__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./ClipVector */ "../../core/geometry/lib/esm/clipping/ClipVector.js");
178769
- /* harmony import */ var _ConvexClipPlaneSet__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./ConvexClipPlaneSet */ "../../core/geometry/lib/esm/clipping/ConvexClipPlaneSet.js");
178770
- /* harmony import */ var _internalContexts_LineStringOffsetClipperContext__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./internalContexts/LineStringOffsetClipperContext */ "../../core/geometry/lib/esm/clipping/internalContexts/LineStringOffsetClipperContext.js");
178771
- /* harmony import */ var _UnionOfConvexClipPlaneSets__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./UnionOfConvexClipPlaneSets */ "../../core/geometry/lib/esm/clipping/UnionOfConvexClipPlaneSets.js");
178751
+ /* harmony import */ var _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @itwin/core-bentley */ "../../core/bentley/lib/esm/core-bentley.js");
178752
+ /* harmony import */ var _curve_CurveCollection__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../curve/CurveCollection */ "../../core/geometry/lib/esm/curve/CurveCollection.js");
178753
+ /* harmony import */ var _curve_CurveFactory__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ../curve/CurveFactory */ "../../core/geometry/lib/esm/curve/CurveFactory.js");
178754
+ /* harmony import */ var _curve_CurvePrimitive__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../curve/CurvePrimitive */ "../../core/geometry/lib/esm/curve/CurvePrimitive.js");
178755
+ /* harmony import */ var _curve_LineSegment3d__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ../curve/LineSegment3d */ "../../core/geometry/lib/esm/curve/LineSegment3d.js");
178756
+ /* harmony import */ var _curve_LineString3d__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../curve/LineString3d */ "../../core/geometry/lib/esm/curve/LineString3d.js");
178757
+ /* harmony import */ var _curve_Loop__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../curve/Loop */ "../../core/geometry/lib/esm/curve/Loop.js");
178758
+ /* harmony import */ var _curve_Path__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../curve/Path */ "../../core/geometry/lib/esm/curve/Path.js");
178759
+ /* harmony import */ var _curve_RegionOps__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../curve/RegionOps */ "../../core/geometry/lib/esm/curve/RegionOps.js");
178760
+ /* harmony import */ var _curve_UnionRegion__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../curve/UnionRegion */ "../../core/geometry/lib/esm/curve/UnionRegion.js");
178761
+ /* harmony import */ var _Geometry__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Geometry */ "../../core/geometry/lib/esm/Geometry.js");
178762
+ /* harmony import */ var _geometry3d_FrameBuilder__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../geometry3d/FrameBuilder */ "../../core/geometry/lib/esm/geometry3d/FrameBuilder.js");
178763
+ /* harmony import */ var _geometry3d_GrowableXYZArray__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../geometry3d/GrowableXYZArray */ "../../core/geometry/lib/esm/geometry3d/GrowableXYZArray.js");
178764
+ /* harmony import */ var _geometry3d_Point3dArrayCarrier__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ../geometry3d/Point3dArrayCarrier */ "../../core/geometry/lib/esm/geometry3d/Point3dArrayCarrier.js");
178765
+ /* harmony import */ var _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../geometry3d/Point3dVector3d */ "../../core/geometry/lib/esm/geometry3d/Point3dVector3d.js");
178766
+ /* harmony import */ var _geometry3d_Range__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../geometry3d/Range */ "../../core/geometry/lib/esm/geometry3d/Range.js");
178767
+ /* harmony import */ var _geometry3d_ReusableObjectCache__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../geometry3d/ReusableObjectCache */ "../../core/geometry/lib/esm/geometry3d/ReusableObjectCache.js");
178768
+ /* harmony import */ var _geometry3d_Transform__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ../geometry3d/Transform */ "../../core/geometry/lib/esm/geometry3d/Transform.js");
178769
+ /* harmony import */ var _polyface_PolyfaceBuilder__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ../polyface/PolyfaceBuilder */ "../../core/geometry/lib/esm/polyface/PolyfaceBuilder.js");
178770
+ /* harmony import */ var _ClipPlane__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./ClipPlane */ "../../core/geometry/lib/esm/clipping/ClipPlane.js");
178771
+ /* harmony import */ var _ClipPrimitive__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./ClipPrimitive */ "../../core/geometry/lib/esm/clipping/ClipPrimitive.js");
178772
+ /* harmony import */ var _ClipVector__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./ClipVector */ "../../core/geometry/lib/esm/clipping/ClipVector.js");
178773
+ /* harmony import */ var _ConvexClipPlaneSet__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./ConvexClipPlaneSet */ "../../core/geometry/lib/esm/clipping/ConvexClipPlaneSet.js");
178774
+ /* harmony import */ var _internalContexts_LineStringOffsetClipperContext__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./internalContexts/LineStringOffsetClipperContext */ "../../core/geometry/lib/esm/clipping/internalContexts/LineStringOffsetClipperContext.js");
178775
+ /* harmony import */ var _UnionOfConvexClipPlaneSets__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./UnionOfConvexClipPlaneSets */ "../../core/geometry/lib/esm/clipping/UnionOfConvexClipPlaneSets.js");
178772
178776
  /*---------------------------------------------------------------------------------------------
178773
178777
  * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
178774
178778
  * See LICENSE.md in the project root for license terms and full copyright notice.
@@ -178794,6 +178798,9 @@ __webpack_require__.r(__webpack_exports__);
178794
178798
 
178795
178799
 
178796
178800
 
178801
+
178802
+
178803
+
178797
178804
 
178798
178805
 
178799
178806
 
@@ -178859,7 +178866,7 @@ class ClipUtilities {
178859
178866
  const n = unsortedFractions.length;
178860
178867
  for (let i = 1; i < n; i++) {
178861
178868
  f1 = unsortedFractions.atUncheckedIndex(i);
178862
- if (f1 > f0 + _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.smallFraction) {
178869
+ if (f1 > f0 + _Geometry__WEBPACK_IMPORTED_MODULE_1__.Geometry.smallFraction) {
178863
178870
  fMid = 0.5 * (f0 + f1);
178864
178871
  if (fMid >= 0.0 && fMid <= 1.0) {
178865
178872
  curve.fractionToPoint(fMid, testPoint);
@@ -178916,7 +178923,7 @@ class ClipUtilities {
178916
178923
  let result;
178917
178924
  // Create "local region" which is the result of rotating region to make
178918
178925
  // it parallel to the xy-plane and then translating it to the xy-plane.
178919
- const localToWorld = ClipUtilities._workTransform = _geometry3d_FrameBuilder__WEBPACK_IMPORTED_MODULE_1__.FrameBuilder.createRightHandedFrame(undefined, region, ClipUtilities._workTransform);
178926
+ const localToWorld = ClipUtilities._workTransform = _geometry3d_FrameBuilder__WEBPACK_IMPORTED_MODULE_2__.FrameBuilder.createRightHandedFrame(undefined, region, ClipUtilities._workTransform);
178920
178927
  if (!localToWorld)
178921
178928
  return result;
178922
178929
  const worldToLocal = localToWorld?.inverse();
@@ -178933,24 +178940,24 @@ class ClipUtilities {
178933
178940
  const localRegionRange = ClipUtilities._workRange = localRegion.range();
178934
178941
  const xLength = localRegionRange.xLength();
178935
178942
  const yLength = localRegionRange.yLength();
178936
- const rectangle = _curve_LineString3d__WEBPACK_IMPORTED_MODULE_2__.LineString3d.createRectangleXY(localRegionRange.low, xLength, yLength, true);
178943
+ const rectangle = _curve_LineString3d__WEBPACK_IMPORTED_MODULE_3__.LineString3d.createRectangleXY(localRegionRange.low, xLength, yLength, true);
178937
178944
  rectangle.tryTransformInPlace(localToWorld);
178938
178945
  // Clip the rectangle to produce fragment(s) which we can Boolean intersect with the input region.
178939
178946
  const insideFragments = [];
178940
178947
  const outsideFragments = [];
178941
- const cache = new _geometry3d_ReusableObjectCache__WEBPACK_IMPORTED_MODULE_3__.GrowableXYZArrayCache();
178948
+ const cache = new _geometry3d_ReusableObjectCache__WEBPACK_IMPORTED_MODULE_4__.GrowableXYZArrayCache();
178942
178949
  clipper.appendPolygonClip?.(rectangle.packedPoints, insideFragments, outsideFragments, cache);
178943
178950
  if (insideFragments.length === 0)
178944
178951
  return result;
178945
178952
  // Create the "clipped region".
178946
178953
  for (const fragment of insideFragments) {
178947
- const loop = _curve_Loop__WEBPACK_IMPORTED_MODULE_4__.Loop.createPolygon(fragment);
178954
+ const loop = _curve_Loop__WEBPACK_IMPORTED_MODULE_5__.Loop.createPolygon(fragment);
178948
178955
  loop.tryTransformInPlace(worldToLocal);
178949
- const clippedLocalRegion = _curve_RegionOps__WEBPACK_IMPORTED_MODULE_5__.RegionOps.regionBooleanXY(localRegion, loop, _curve_RegionOps__WEBPACK_IMPORTED_MODULE_5__.RegionBinaryOpType.Intersection);
178956
+ const clippedLocalRegion = _curve_RegionOps__WEBPACK_IMPORTED_MODULE_6__.RegionOps.regionBooleanXY(localRegion, loop, _curve_RegionOps__WEBPACK_IMPORTED_MODULE_6__.RegionBinaryOpType.Intersection);
178950
178957
  if (clippedLocalRegion) {
178951
178958
  clippedLocalRegion.tryTransformInPlace(localToWorld);
178952
178959
  if (!result)
178953
- result = (clippedLocalRegion instanceof _curve_UnionRegion__WEBPACK_IMPORTED_MODULE_6__.UnionRegion) ? clippedLocalRegion : _curve_UnionRegion__WEBPACK_IMPORTED_MODULE_6__.UnionRegion.create(clippedLocalRegion);
178960
+ result = (clippedLocalRegion instanceof _curve_UnionRegion__WEBPACK_IMPORTED_MODULE_7__.UnionRegion) ? clippedLocalRegion : _curve_UnionRegion__WEBPACK_IMPORTED_MODULE_7__.UnionRegion.create(clippedLocalRegion);
178954
178961
  else if (!result.tryAddChild(clippedLocalRegion))
178955
178962
  result.children.push(...clippedLocalRegion.children);
178956
178963
  }
@@ -178964,14 +178971,14 @@ class ClipUtilities {
178964
178971
  * @return array of clipped components of the input curve or region that lie inside the clipper
178965
178972
  */
178966
178973
  static clipAnyCurve(curve, clipper) {
178967
- if (curve instanceof _curve_CurvePrimitive__WEBPACK_IMPORTED_MODULE_7__.CurvePrimitive)
178974
+ if (curve instanceof _curve_CurvePrimitive__WEBPACK_IMPORTED_MODULE_8__.CurvePrimitive)
178968
178975
  return ClipUtilities.collectClippedCurves(curve, clipper);
178969
178976
  if (curve.isAnyRegion()) {
178970
178977
  const ret = ClipUtilities.clipAnyRegion(curve, clipper);
178971
178978
  return ret ? [ret] : [];
178972
178979
  }
178973
178980
  const result = [];
178974
- if (curve instanceof _curve_Path__WEBPACK_IMPORTED_MODULE_8__.Path || curve instanceof _curve_CurveCollection__WEBPACK_IMPORTED_MODULE_9__.BagOfCurves) {
178981
+ if (curve instanceof _curve_Path__WEBPACK_IMPORTED_MODULE_9__.Path || curve instanceof _curve_CurveCollection__WEBPACK_IMPORTED_MODULE_10__.BagOfCurves) {
178975
178982
  for (const child of curve.children) {
178976
178983
  const partialClip = ClipUtilities.clipAnyCurve(child, clipper);
178977
178984
  result.push(...partialClip);
@@ -179017,8 +179024,8 @@ class ClipUtilities {
179017
179024
  for (const plane of convexSet.planes) {
179018
179025
  let numInside = 0, numOutside = 0;
179019
179026
  const planeDistance = plane.distance - tolerance;
179020
- const currPt = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_10__.Point3d.create();
179021
- const currVec = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_10__.Vector3d.create();
179027
+ const currPt = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_11__.Point3d.create();
179028
+ const currVec = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_11__.Vector3d.create();
179022
179029
  for (let i = 0; i < points.length; i++) {
179023
179030
  points.getPoint3dAtUncheckedPointIndex(i, currPt);
179024
179031
  currVec.setFrom(currPt);
@@ -179046,15 +179053,15 @@ class ClipUtilities {
179046
179053
  * @param ignoreInvisiblePlanes if true, do NOT compute a facet for convex set faces marked invisible.
179047
179054
  */
179048
179055
  static announceLoopsOfConvexClipPlaneSetIntersectRange(convexSet, range, loopFunction, includeConvexSetFaces = true, includeRangeFaces = true, ignoreInvisiblePlanes = false) {
179049
- const work = new _geometry3d_GrowableXYZArray__WEBPACK_IMPORTED_MODULE_11__.GrowableXYZArray();
179056
+ const work = new _geometry3d_GrowableXYZArray__WEBPACK_IMPORTED_MODULE_12__.GrowableXYZArray();
179050
179057
  if (includeConvexSetFaces) {
179051
179058
  // Clip convexSet planes to the range and to the rest of the convexSet . .
179052
- if (convexSet instanceof _ConvexClipPlaneSet__WEBPACK_IMPORTED_MODULE_12__.ConvexClipPlaneSet) {
179059
+ if (convexSet instanceof _ConvexClipPlaneSet__WEBPACK_IMPORTED_MODULE_13__.ConvexClipPlaneSet) {
179053
179060
  for (const plane of convexSet.planes) {
179054
179061
  if (ignoreInvisiblePlanes && plane.invisible)
179055
179062
  continue;
179056
179063
  const pointsClippedToRange = plane.intersectRange(range, true);
179057
- const finalPoints = new _geometry3d_GrowableXYZArray__WEBPACK_IMPORTED_MODULE_11__.GrowableXYZArray();
179064
+ const finalPoints = new _geometry3d_GrowableXYZArray__WEBPACK_IMPORTED_MODULE_12__.GrowableXYZArray();
179058
179065
  if (pointsClippedToRange) {
179059
179066
  convexSet.polygonClip(pointsClippedToRange, finalPoints, work, plane);
179060
179067
  if (finalPoints.length > 0)
@@ -179077,10 +179084,10 @@ class ClipUtilities {
179077
179084
  // clip range faces to the convex set . . .
179078
179085
  const corners = range.corners();
179079
179086
  for (let i = 0; i < 6; i++) {
179080
- const indices = _geometry3d_Range__WEBPACK_IMPORTED_MODULE_13__.Range3d.faceCornerIndices(i);
179081
- const finalPoints = new _geometry3d_GrowableXYZArray__WEBPACK_IMPORTED_MODULE_11__.GrowableXYZArray();
179082
- const lineString = _curve_LineString3d__WEBPACK_IMPORTED_MODULE_2__.LineString3d.createIndexedPoints(corners, indices);
179083
- if (convexSet instanceof _ConvexClipPlaneSet__WEBPACK_IMPORTED_MODULE_12__.ConvexClipPlaneSet) {
179087
+ const indices = _geometry3d_Range__WEBPACK_IMPORTED_MODULE_14__.Range3d.faceCornerIndices(i);
179088
+ const finalPoints = new _geometry3d_GrowableXYZArray__WEBPACK_IMPORTED_MODULE_12__.GrowableXYZArray();
179089
+ const lineString = _curve_LineString3d__WEBPACK_IMPORTED_MODULE_3__.LineString3d.createIndexedPoints(corners, indices);
179090
+ if (convexSet instanceof _ConvexClipPlaneSet__WEBPACK_IMPORTED_MODULE_13__.ConvexClipPlaneSet) {
179084
179091
  convexSet.polygonClip(lineString.packedPoints, finalPoints, work);
179085
179092
  if (finalPoints.length > 0)
179086
179093
  loopFunction(finalPoints);
@@ -179105,18 +179112,18 @@ class ClipUtilities {
179105
179112
  */
179106
179113
  static loopsOfConvexClipPlaneIntersectionWithRange(allClippers, range, includeConvexSetFaces = true, includeRangeFaces = true, ignoreInvisiblePlanes = false) {
179107
179114
  const result = [];
179108
- if (allClippers instanceof _UnionOfConvexClipPlaneSets__WEBPACK_IMPORTED_MODULE_14__.UnionOfConvexClipPlaneSets) {
179115
+ if (allClippers instanceof _UnionOfConvexClipPlaneSets__WEBPACK_IMPORTED_MODULE_15__.UnionOfConvexClipPlaneSets) {
179109
179116
  for (const clipper of allClippers.convexSets) {
179110
179117
  this.announceLoopsOfConvexClipPlaneSetIntersectRange(clipper, range, (points) => {
179111
179118
  if (points.length > 0)
179112
- result.push(_curve_Loop__WEBPACK_IMPORTED_MODULE_4__.Loop.createPolygon(points));
179119
+ result.push(_curve_Loop__WEBPACK_IMPORTED_MODULE_5__.Loop.createPolygon(points));
179113
179120
  }, includeConvexSetFaces, includeRangeFaces, ignoreInvisiblePlanes);
179114
179121
  }
179115
179122
  }
179116
- else if (allClippers instanceof _ConvexClipPlaneSet__WEBPACK_IMPORTED_MODULE_12__.ConvexClipPlaneSet || allClippers instanceof _ClipPlane__WEBPACK_IMPORTED_MODULE_15__.ClipPlane) {
179123
+ else if (allClippers instanceof _ConvexClipPlaneSet__WEBPACK_IMPORTED_MODULE_13__.ConvexClipPlaneSet || allClippers instanceof _ClipPlane__WEBPACK_IMPORTED_MODULE_16__.ClipPlane) {
179117
179124
  this.announceLoopsOfConvexClipPlaneSetIntersectRange(allClippers, range, (points) => {
179118
179125
  if (points.length > 0)
179119
- result.push(_curve_Loop__WEBPACK_IMPORTED_MODULE_4__.Loop.createPolygon(points));
179126
+ result.push(_curve_Loop__WEBPACK_IMPORTED_MODULE_5__.Loop.createPolygon(points));
179120
179127
  }, includeConvexSetFaces, includeRangeFaces, ignoreInvisiblePlanes);
179121
179128
  }
179122
179129
  return result;
@@ -179128,7 +179135,7 @@ class ClipUtilities {
179128
179135
  * @param range range to intersect
179129
179136
  */
179130
179137
  static rangeOfConvexClipPlaneSetIntersectionWithRange(convexSet, range) {
179131
- const result = _geometry3d_Range__WEBPACK_IMPORTED_MODULE_13__.Range3d.createNull();
179138
+ const result = _geometry3d_Range__WEBPACK_IMPORTED_MODULE_14__.Range3d.createNull();
179132
179139
  this.announceLoopsOfConvexClipPlaneSetIntersectRange(convexSet, range, (points) => {
179133
179140
  if (points.length > 0)
179134
179141
  result.extendArray(points);
@@ -179151,22 +179158,22 @@ class ClipUtilities {
179151
179158
  static rangeOfClipperIntersectionWithRange(clipper, range, observeInvisibleFlag = true) {
179152
179159
  if (clipper === undefined)
179153
179160
  return range.clone();
179154
- if (clipper instanceof _ConvexClipPlaneSet__WEBPACK_IMPORTED_MODULE_12__.ConvexClipPlaneSet)
179161
+ if (clipper instanceof _ConvexClipPlaneSet__WEBPACK_IMPORTED_MODULE_13__.ConvexClipPlaneSet)
179155
179162
  return this.rangeOfConvexClipPlaneSetIntersectionWithRange(clipper, range);
179156
- if (clipper instanceof _UnionOfConvexClipPlaneSets__WEBPACK_IMPORTED_MODULE_14__.UnionOfConvexClipPlaneSets) {
179157
- const rangeUnion = _geometry3d_Range__WEBPACK_IMPORTED_MODULE_13__.Range3d.createNull();
179163
+ if (clipper instanceof _UnionOfConvexClipPlaneSets__WEBPACK_IMPORTED_MODULE_15__.UnionOfConvexClipPlaneSets) {
179164
+ const rangeUnion = _geometry3d_Range__WEBPACK_IMPORTED_MODULE_14__.Range3d.createNull();
179158
179165
  for (const c of clipper.convexSets) {
179159
179166
  const rangeC = this.rangeOfConvexClipPlaneSetIntersectionWithRange(c, range);
179160
179167
  rangeUnion.extendRange(rangeC);
179161
179168
  }
179162
179169
  return rangeUnion;
179163
179170
  }
179164
- if (clipper instanceof _ClipPrimitive__WEBPACK_IMPORTED_MODULE_16__.ClipPrimitive) {
179171
+ if (clipper instanceof _ClipPrimitive__WEBPACK_IMPORTED_MODULE_17__.ClipPrimitive) {
179165
179172
  if (observeInvisibleFlag && clipper.invisible)
179166
179173
  return range.clone();
179167
179174
  return this.rangeOfClipperIntersectionWithRange(clipper.fetchClipPlanesRef(), range);
179168
179175
  }
179169
- if (clipper instanceof _ClipVector__WEBPACK_IMPORTED_MODULE_17__.ClipVector) {
179176
+ if (clipper instanceof _ClipVector__WEBPACK_IMPORTED_MODULE_18__.ClipVector) {
179170
179177
  const rangeIntersection = range.clone();
179171
179178
  for (const c of clipper.clips) {
179172
179179
  if (observeInvisibleFlag && c.invisible) {
@@ -179198,21 +179205,21 @@ class ClipUtilities {
179198
179205
  static doesClipperIntersectRange(clipper, range, observeInvisibleFlag = true) {
179199
179206
  if (clipper === undefined)
179200
179207
  return true;
179201
- if (clipper instanceof _ConvexClipPlaneSet__WEBPACK_IMPORTED_MODULE_12__.ConvexClipPlaneSet)
179208
+ if (clipper instanceof _ConvexClipPlaneSet__WEBPACK_IMPORTED_MODULE_13__.ConvexClipPlaneSet)
179202
179209
  return this.doesConvexClipPlaneSetIntersectRange(clipper, range);
179203
- if (clipper instanceof _UnionOfConvexClipPlaneSets__WEBPACK_IMPORTED_MODULE_14__.UnionOfConvexClipPlaneSets) {
179210
+ if (clipper instanceof _UnionOfConvexClipPlaneSets__WEBPACK_IMPORTED_MODULE_15__.UnionOfConvexClipPlaneSets) {
179204
179211
  for (const c of clipper.convexSets) {
179205
179212
  if (this.doesConvexClipPlaneSetIntersectRange(c, range))
179206
179213
  return true;
179207
179214
  }
179208
179215
  return false;
179209
179216
  }
179210
- if (clipper instanceof _ClipPrimitive__WEBPACK_IMPORTED_MODULE_16__.ClipPrimitive) {
179217
+ if (clipper instanceof _ClipPrimitive__WEBPACK_IMPORTED_MODULE_17__.ClipPrimitive) {
179211
179218
  if (observeInvisibleFlag && clipper.invisible) // um is there an easy way to detect range-completely-inside?
179212
179219
  return true;
179213
179220
  return this.doesClipperIntersectRange(clipper.fetchClipPlanesRef(), range);
179214
179221
  }
179215
- if (clipper instanceof _ClipVector__WEBPACK_IMPORTED_MODULE_17__.ClipVector) {
179222
+ if (clipper instanceof _ClipVector__WEBPACK_IMPORTED_MODULE_18__.ClipVector) {
179216
179223
  const rangeIntersection = range.clone();
179217
179224
  for (const c of clipper.clips) {
179218
179225
  if (observeInvisibleFlag && c.invisible) {
@@ -179237,7 +179244,7 @@ class ClipUtilities {
179237
179244
  * @param ignoreInvisiblePlanes if true, do NOT compute a facet for convex set faces marked invisible.
179238
179245
  */
179239
179246
  static doesConvexClipPlaneSetIntersectRange(convexSet, range, includeConvexSetFaces = true, includeRangeFaces = true, ignoreInvisiblePlanes = false) {
179240
- const work = new _geometry3d_GrowableXYZArray__WEBPACK_IMPORTED_MODULE_11__.GrowableXYZArray();
179247
+ const work = new _geometry3d_GrowableXYZArray__WEBPACK_IMPORTED_MODULE_12__.GrowableXYZArray();
179241
179248
  if (includeConvexSetFaces) {
179242
179249
  // Clip convexSet planes to the range and to the rest of the convexSet . .
179243
179250
  for (const plane of convexSet.planes) {
@@ -179245,7 +179252,7 @@ class ClipUtilities {
179245
179252
  continue;
179246
179253
  const pointsClippedToRange = plane.intersectRange(range, true);
179247
179254
  if (pointsClippedToRange) {
179248
- const finalPoints = new _geometry3d_GrowableXYZArray__WEBPACK_IMPORTED_MODULE_11__.GrowableXYZArray();
179255
+ const finalPoints = new _geometry3d_GrowableXYZArray__WEBPACK_IMPORTED_MODULE_12__.GrowableXYZArray();
179249
179256
  convexSet.polygonClip(pointsClippedToRange, finalPoints, work, plane);
179250
179257
  if (finalPoints.length > 0)
179251
179258
  return true;
@@ -179256,9 +179263,9 @@ class ClipUtilities {
179256
179263
  // clip range faces to the convex set . . .
179257
179264
  const corners = range.corners();
179258
179265
  for (let i = 0; i < 6; i++) {
179259
- const indices = _geometry3d_Range__WEBPACK_IMPORTED_MODULE_13__.Range3d.faceCornerIndices(i);
179260
- const finalPoints = new _geometry3d_GrowableXYZArray__WEBPACK_IMPORTED_MODULE_11__.GrowableXYZArray();
179261
- const lineString = _curve_LineString3d__WEBPACK_IMPORTED_MODULE_2__.LineString3d.createIndexedPoints(corners, indices);
179266
+ const indices = _geometry3d_Range__WEBPACK_IMPORTED_MODULE_14__.Range3d.faceCornerIndices(i);
179267
+ const finalPoints = new _geometry3d_GrowableXYZArray__WEBPACK_IMPORTED_MODULE_12__.GrowableXYZArray();
179268
+ const lineString = _curve_LineString3d__WEBPACK_IMPORTED_MODULE_3__.LineString3d.createIndexedPoints(corners, indices);
179262
179269
  convexSet.polygonClip(lineString.packedPoints, finalPoints, work);
179263
179270
  if (finalPoints.length > 0)
179264
179271
  return true;
@@ -179266,32 +179273,110 @@ class ClipUtilities {
179266
179273
  }
179267
179274
  return false;
179268
179275
  }
179276
+ /**
179277
+ * Create a clipper from the transformed range.
179278
+ * @param range input range to create clipper from
179279
+ * @param transform how to transform the range (NOTE: applied to the range faces without swelling the range volume)
179280
+ * @param degeneratePoints optionally populated with the 1 or 2 points defining the transformed range if it is degenerate (all points colinear/coincident); otherwise untouched
179281
+ * @returns newly constructed clipper. If no clip planes could be computed, fill `degeneratePoints` and return undefined.
179282
+ */
179283
+ static createClipperFromTransformedRange3d(range, transform, degeneratePoints) {
179284
+ if (!transform)
179285
+ transform = _geometry3d_Transform__WEBPACK_IMPORTED_MODULE_19__.Transform.createIdentity();
179286
+ const builder = _polyface_PolyfaceBuilder__WEBPACK_IMPORTED_MODULE_20__.PolyfaceBuilder.create();
179287
+ builder.addTransformedRangeMesh(transform, range);
179288
+ const mesh = builder.claimPolyface();
179289
+ const clipper = this._workClipper = _ConvexClipPlaneSet__WEBPACK_IMPORTED_MODULE_13__.ConvexClipPlaneSet.createConvexPolyface(mesh, this._workClipper).clipper;
179290
+ if (clipper.planes.length > 0)
179291
+ return clipper;
179292
+ // no faces found in the compressed mesh
179293
+ if (degeneratePoints) {
179294
+ (0,_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.assert)(mesh.data.point.length <= 2);
179295
+ for (let i = 0; i < 2; ++i) {
179296
+ const point = mesh.data.point.getPoint3dAtCheckedPointIndex(i);
179297
+ if (point)
179298
+ degeneratePoints.push(point);
179299
+ }
179300
+ }
179301
+ return undefined;
179302
+ }
179303
+ /**
179304
+ * Handle pathological cases of range-range intersection, where one of the ranges defines no area or volume (is a line segment or single point).
179305
+ * @param range local range to intersect with the point/segment
179306
+ * @param points isolated local point, or local segment's start and end
179307
+ * @param localToWorld optional transform for output range
179308
+ * @param intersection optional range of the intersection, in world coordinates, or null range if no intersection.
179309
+ * @returns whether the point/segment intersects the range
179310
+ */
179311
+ static rangeIntersectPointOrSegment(range, points, localToWorld, intersection) {
179312
+ const announceInterval = intersection ?
179313
+ (f0, f1, cp) => {
179314
+ intersection.extendPoint(cp.fractionToPoint(f0), localToWorld);
179315
+ intersection.extendPoint(cp.fractionToPoint(f1), localToWorld);
179316
+ } : undefined;
179317
+ let hasIntersection = false;
179318
+ if (points.length > 1) {
179319
+ const segment = _curve_LineSegment3d__WEBPACK_IMPORTED_MODULE_21__.LineSegment3d.createCapture(points[0], points[1]);
179320
+ const clipper = _ConvexClipPlaneSet__WEBPACK_IMPORTED_MODULE_13__.ConvexClipPlaneSet.createRange3dPlanes(range);
179321
+ hasIntersection = segment.announceClipIntervals(clipper, announceInterval);
179322
+ }
179323
+ else if (points.length > 0) {
179324
+ hasIntersection = range.containsPoint(points[0]);
179325
+ if (hasIntersection && intersection)
179326
+ intersection.extendPoint(points[0], localToWorld);
179327
+ }
179328
+ return hasIntersection;
179329
+ }
179269
179330
  /**
179270
179331
  * Test for intersection of two ranges in different local coordinates.
179271
179332
  * * Useful for clash detection of elements in iModels, using their stored (tight) local ranges and placement transforms.
179272
- * @param range0 range in local coordinates of first geometry
179273
- * @param local0ToWorld placement transform for first geometry
179274
- * @param range1 range in local coordinates of second geometry
179275
- * @param local1ToWorld placement transform for second geometry. Assumed to be invertible.
179333
+ * @param range0 first range in local coordinates
179334
+ * @param local0ToWorld placement transform for first range
179335
+ * @param range1 second range in local coordinates
179336
+ * @param local1ToWorld placement transform for second range. Assumed to be invertible.
179276
179337
  * @param range1Margin optional signed local distance to expand/contract the second range before intersection. Positive expands.
179277
179338
  * @return whether the local ranges are adjacent or intersect. Also returns false if local1ToWorld is singular.
179278
179339
  */
179279
179340
  static doLocalRangesIntersect(range0, local0ToWorld, range1, local1ToWorld, range1Margin) {
179280
- const worldToLocal1 = ClipUtilities._workTransform = local1ToWorld.inverse(ClipUtilities._workTransform);
179341
+ const worldToLocal1 = this._workTransform = local1ToWorld.inverse(this._workTransform);
179281
179342
  if (!worldToLocal1)
179282
179343
  return false;
179283
179344
  let myRange1 = range1;
179284
179345
  if (range1Margin) {
179285
- myRange1 = ClipUtilities._workRange = range1.clone(ClipUtilities._workRange);
179346
+ myRange1 = this._workRange = range1.clone(this._workRange);
179286
179347
  myRange1.expandInPlace(range1Margin);
179287
179348
  }
179349
+ const degeneratePoints = [];
179350
+ const local0ToLocal1 = worldToLocal1.multiplyTransformTransform(local0ToWorld, worldToLocal1);
179288
179351
  // convert range0 into a clipper in local1 coordinates, then intersect with range1
179352
+ const clipper = this.createClipperFromTransformedRange3d(range0, local0ToLocal1, degeneratePoints);
179353
+ if (clipper)
179354
+ return this.doesClipperIntersectRange(clipper, myRange1);
179355
+ return this.rangeIntersectPointOrSegment(myRange1, degeneratePoints, local1ToWorld);
179356
+ }
179357
+ /**
179358
+ * Compute the range of the intersection between two local (e.g., element-aligned) ranges.
179359
+ * @param range0 first range in local coordinates
179360
+ * @param local0ToWorld placement transform for first range
179361
+ * @param range1 second range in local coordinates
179362
+ * @param local1ToWorld placement transform for second range. Assumed to be invertible.
179363
+ * @param result optional pre-allocated range to fill and return
179364
+ * @return range of the intersection (aligned to world axes). Returns null range if local1ToWorld is singular.
179365
+ */
179366
+ static rangeOfIntersectionOfLocalRanges(range0, local0ToWorld, range1, local1ToWorld, result) {
179367
+ const myResult = _geometry3d_Range__WEBPACK_IMPORTED_MODULE_14__.Range3d.createNull(result);
179368
+ const worldToLocal1 = this._workTransform = local1ToWorld.inverse(this._workTransform);
179369
+ if (!worldToLocal1)
179370
+ return myResult;
179371
+ const degeneratePoints = [];
179289
179372
  const local0ToLocal1 = worldToLocal1.multiplyTransformTransform(local0ToWorld, worldToLocal1);
179290
- const builder = _polyface_PolyfaceBuilder__WEBPACK_IMPORTED_MODULE_18__.PolyfaceBuilder.create();
179291
- builder.addTransformedRangeMesh(local0ToLocal1, range0);
179292
- const mesh0 = builder.claimPolyface();
179293
- const clipper = ClipUtilities._workClipper = _ConvexClipPlaneSet__WEBPACK_IMPORTED_MODULE_12__.ConvexClipPlaneSet.createConvexPolyface(mesh0, ClipUtilities._workClipper).clipper;
179294
- return ClipUtilities.doesClipperIntersectRange(clipper, myRange1);
179373
+ // convert range0 into a clipper in local1 coordinates, then intersect with range1
179374
+ const clipper = this.createClipperFromTransformedRange3d(range0, local0ToLocal1, degeneratePoints);
179375
+ if (clipper)
179376
+ this.announceLoopsOfConvexClipPlaneSetIntersectRange(clipper, range1, (loopPoints) => { loopPoints.extendRange(myResult, local1ToWorld); });
179377
+ else
179378
+ this.rangeIntersectPointOrSegment(range1, degeneratePoints, local1ToWorld, myResult);
179379
+ return myResult;
179295
179380
  }
179296
179381
  /**
179297
179382
  * Test if `obj` is a `Clipper` object.
@@ -179342,9 +179427,9 @@ class ClipUtilities {
179342
179427
  */
179343
179428
  static createXYOffsetClipFromLineString(points, leftOffset, rightOffset, z0, z1) {
179344
179429
  if (Array.isArray(points)) {
179345
- return _internalContexts_LineStringOffsetClipperContext__WEBPACK_IMPORTED_MODULE_19__.LineStringOffsetClipperContext.createClipBetweenOffsets(new _geometry3d_Point3dArrayCarrier__WEBPACK_IMPORTED_MODULE_20__.Point3dArrayCarrier(points), leftOffset, rightOffset, z0, z1);
179430
+ return _internalContexts_LineStringOffsetClipperContext__WEBPACK_IMPORTED_MODULE_22__.LineStringOffsetClipperContext.createClipBetweenOffsets(new _geometry3d_Point3dArrayCarrier__WEBPACK_IMPORTED_MODULE_23__.Point3dArrayCarrier(points), leftOffset, rightOffset, z0, z1);
179346
179431
  }
179347
- return _internalContexts_LineStringOffsetClipperContext__WEBPACK_IMPORTED_MODULE_19__.LineStringOffsetClipperContext.createClipBetweenOffsets(points, leftOffset, rightOffset, z0, z1);
179432
+ return _internalContexts_LineStringOffsetClipperContext__WEBPACK_IMPORTED_MODULE_22__.LineStringOffsetClipperContext.createClipBetweenOffsets(points, leftOffset, rightOffset, z0, z1);
179348
179433
  }
179349
179434
  /** If data.length >= minLength threshold, push it to destination; if smaller drop it back to the cache. */
179350
179435
  static captureOrDrop(data, minLength, destination, cache) {
@@ -179534,7 +179619,7 @@ class ClipUtilities {
179534
179619
  */
179535
179620
  static doPolygonClipSequence(xyz, clippers, acceptedIn, acceptedOut, finalCandidates, inAction, outAction, finalFragmentAction, arrayCache) {
179536
179621
  if (arrayCache === undefined)
179537
- arrayCache = new _geometry3d_ReusableObjectCache__WEBPACK_IMPORTED_MODULE_3__.GrowableXYZArrayCache();
179622
+ arrayCache = new _geometry3d_ReusableObjectCache__WEBPACK_IMPORTED_MODULE_4__.GrowableXYZArrayCache();
179538
179623
  let candidates = [arrayCache.grabAndFill(xyz)];
179539
179624
  let nextCandidates = [];
179540
179625
  const intermediateIn = [];
@@ -179571,7 +179656,7 @@ class ClipUtilities {
179571
179656
  /** Pass polygon `xyz` through a sequence of PolygonClip steps with "parity" rules */
179572
179657
  static doPolygonClipParitySequence(xyz, clippers, acceptedIn, acceptedOut, arrayCache) {
179573
179658
  if (arrayCache === undefined)
179574
- arrayCache = new _geometry3d_ReusableObjectCache__WEBPACK_IMPORTED_MODULE_3__.GrowableXYZArrayCache();
179659
+ arrayCache = new _geometry3d_ReusableObjectCache__WEBPACK_IMPORTED_MODULE_4__.GrowableXYZArrayCache();
179575
179660
  let candidatesOut = [arrayCache.grabAndFill(xyz)];
179576
179661
  let candidatesIn = [];
179577
179662
  let nextCandidatesIn = [];
@@ -179623,22 +179708,22 @@ class ClipUtilities {
179623
179708
  */
179624
179709
  static createComplementaryClips(clipper) {
179625
179710
  const planes = clipper.planes;
179626
- const interval = _geometry3d_Range__WEBPACK_IMPORTED_MODULE_13__.Range1d.createNull();
179711
+ const interval = _geometry3d_Range__WEBPACK_IMPORTED_MODULE_14__.Range1d.createNull();
179627
179712
  const n = planes.length;
179628
179713
  const newClippers = [];
179629
179714
  for (const p of planes) {
179630
- const outerSet = _ConvexClipPlaneSet__WEBPACK_IMPORTED_MODULE_12__.ConvexClipPlaneSet.createEmpty();
179715
+ const outerSet = _ConvexClipPlaneSet__WEBPACK_IMPORTED_MODULE_13__.ConvexClipPlaneSet.createEmpty();
179631
179716
  outerSet.addPlaneToConvexSet(p.cloneNegated());
179632
179717
  newClippers.push(outerSet);
179633
179718
  }
179634
179719
  for (let i = 0; i < n; i++) {
179635
179720
  for (let j = i + 1; j < n; j++) {
179636
- const ray = _curve_CurveFactory__WEBPACK_IMPORTED_MODULE_21__.CurveFactory.planePlaneIntersectionRay(planes[i], planes[j]);
179721
+ const ray = _curve_CurveFactory__WEBPACK_IMPORTED_MODULE_24__.CurveFactory.planePlaneIntersectionRay(planes[i], planes[j]);
179637
179722
  if (ray) {
179638
179723
  if (clipper.hasIntersectionWithRay(ray, interval)) {
179639
179724
  // the normal-to-normal vector is bisector (or close to bisector?)
179640
179725
  const newNormal = planes[j].inwardNormalRef.minus(planes[i].inwardNormalRef);
179641
- const plane1 = _ClipPlane__WEBPACK_IMPORTED_MODULE_15__.ClipPlane.createNormalAndPoint(newNormal, ray.origin);
179726
+ const plane1 = _ClipPlane__WEBPACK_IMPORTED_MODULE_16__.ClipPlane.createNormalAndPoint(newNormal, ray.origin);
179642
179727
  if (plane1) {
179643
179728
  const plane2 = plane1.cloneNegated();
179644
179729
  newClippers[i].addPlaneToConvexSet(plane1);
@@ -179648,10 +179733,10 @@ class ClipUtilities {
179648
179733
  }
179649
179734
  }
179650
179735
  }
179651
- return _UnionOfConvexClipPlaneSets__WEBPACK_IMPORTED_MODULE_14__.UnionOfConvexClipPlaneSets.createConvexSets(newClippers);
179736
+ return _UnionOfConvexClipPlaneSets__WEBPACK_IMPORTED_MODULE_15__.UnionOfConvexClipPlaneSets.createConvexSets(newClippers);
179652
179737
  }
179653
179738
  }
179654
- ClipUtilities._selectIntervals01TestPoint = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_10__.Point3d.create();
179739
+ ClipUtilities._selectIntervals01TestPoint = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_11__.Point3d.create();
179655
179740
 
179656
179741
  function moveFragments(fragments, destination, arrayCache) {
179657
179742
  if (destination === undefined)
@@ -226209,7 +226294,8 @@ class Newton2dUnboundedWithDerivative extends AbstractNewtonIterator {
226209
226294
  computeStep() {
226210
226295
  if (this._func.evaluate(this._currentUV.x, this._currentUV.y)) {
226211
226296
  const fA = this._func.currentF;
226212
- if (_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))
226297
+ 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:
226298
+ _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))
226213
226299
  return true;
226214
226300
  }
226215
226301
  return false;
@@ -231894,6 +231980,7 @@ class PolyfaceBuilder extends _geometry3d_GeometryHandler__WEBPACK_IMPORTED_MODU
231894
231980
  this.addTransformedRangeMesh(transform, _geometry3d_Range__WEBPACK_IMPORTED_MODULE_6__.Range3d.createXYZXYZ(0, 0, 0, 1, 1, 1));
231895
231981
  }
231896
231982
  /** Add facets for a transformed range box.
231983
+ * * For best results, the transformed range corners should define a nonzero volume or area.
231897
231984
  * @param transform applied to the range points before adding to the polyface
231898
231985
  * @param range sides become 6 quad polyface facets
231899
231986
  * @param faceSelector for each face in the order of BoxTopology.cornerIndexCCW, faceSelector[i]===false skips that facet.
@@ -289407,7 +289494,7 @@ module.exports = JSON.parse('{"name":"axios","version":"0.21.4","description":"P
289407
289494
  /***/ ((module) => {
289408
289495
 
289409
289496
  "use strict";
289410
- module.exports = JSON.parse('{"name":"@itwin/core-frontend","version":"4.3.0-dev.15","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.15","@itwin/core-bentley":"workspace:^4.3.0-dev.15","@itwin/core-common":"workspace:^4.3.0-dev.15","@itwin/core-geometry":"workspace:^4.3.0-dev.15","@itwin/core-orbitgt":"workspace:^4.3.0-dev.15","@itwin/core-quantity":"workspace:^4.3.0-dev.15"},"//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"}}');
289497
+ module.exports = JSON.parse('{"name":"@itwin/core-frontend","version":"4.3.0-dev.16","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.16","@itwin/core-bentley":"workspace:^4.3.0-dev.16","@itwin/core-common":"workspace:^4.3.0-dev.16","@itwin/core-geometry":"workspace:^4.3.0-dev.16","@itwin/core-orbitgt":"workspace:^4.3.0-dev.16","@itwin/core-quantity":"workspace:^4.3.0-dev.16"},"//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"}}');
289411
289498
 
289412
289499
  /***/ })
289413
289500