@itwin/rpcinterface-full-stack-tests 4.2.0-dev.7 → 4.2.0-dev.9

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.
@@ -77045,6 +77045,7 @@ class ModelChangeMonitor {
77045
77045
  this.processBuffered();
77046
77046
  };
77047
77047
  this._removals.push(briefcase.txns.onCommitted.addListener(maybeProcess));
77048
+ this._removals.push(briefcase.txns.onReplayedExternalTxns.addListener(maybeProcess));
77048
77049
  this._removals.push(briefcase.txns.onAfterUndoRedo.addListener(maybeProcess));
77049
77050
  this._removals.push(briefcase.txns.onChangesPulled.addListener(maybeProcess));
77050
77051
  }
@@ -77376,6 +77377,14 @@ class BriefcaseTxns extends BriefcaseNotificationHandler {
77376
77377
  * @see [[onCommit]] for the event raised before the operation.
77377
77378
  */
77378
77379
  this.onCommitted = new _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.BeEvent();
77380
+ /** Event raised for a read-only briefcase that was opened with the `watchForChanges` flag enabled when changes made by another connection are applied to the briefcase.
77381
+ * @see [[onReplayedExternalTxns]] for the event raised after all such changes have been applied.
77382
+ */
77383
+ this.onReplayExternalTxns = new _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.BeEvent();
77384
+ /** Event raised for a read-only briefcase that was opened with the `watchForChanges` flag enabled when changes made by another connection are applied to the briefcase.
77385
+ * @see [[onReplayExternalTxns]] for the event raised before the changes are applied.
77386
+ */
77387
+ this.onReplayedExternalTxns = new _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.BeEvent();
77379
77388
  /** Event raised after a changeset has been applied to the briefcase.
77380
77389
  * Changesets may be applied as a result of [[BriefcaseConnection.pullChanges]], or by undo/redo operations.
77381
77390
  */
@@ -77511,6 +77520,14 @@ class BriefcaseTxns extends BriefcaseNotificationHandler {
77511
77520
  this.onCommitted.raiseEvent(hasPendingTxns, time);
77512
77521
  }
77513
77522
  /** @internal */
77523
+ notifyReplayExternalTxns() {
77524
+ this.onReplayExternalTxns.raiseEvent();
77525
+ }
77526
+ /** @internal */
77527
+ notifyReplayedExternalTxns() {
77528
+ this.onReplayedExternalTxns.raiseEvent();
77529
+ }
77530
+ /** @internal */
77514
77531
  notifyChangesApplied() {
77515
77532
  this.onChangesApplied.raiseEvent();
77516
77533
  }
@@ -179532,6 +179549,7 @@ __webpack_require__.r(__webpack_exports__);
179532
179549
  /* harmony import */ var _geometry3d_GrowableFloat64Array__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../geometry3d/GrowableFloat64Array */ "../../core/geometry/lib/esm/geometry3d/GrowableFloat64Array.js");
179533
179550
  /* harmony import */ var _geometry3d_GrowableXYZArray__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../geometry3d/GrowableXYZArray */ "../../core/geometry/lib/esm/geometry3d/GrowableXYZArray.js");
179534
179551
  /* harmony import */ var _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../geometry3d/Matrix3d */ "../../core/geometry/lib/esm/geometry3d/Matrix3d.js");
179552
+ /* harmony import */ var _geometry3d_Plane3d__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../geometry3d/Plane3d */ "../../core/geometry/lib/esm/geometry3d/Plane3d.js");
179535
179553
  /* harmony import */ var _geometry3d_Plane3dByOriginAndUnitNormal__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../geometry3d/Plane3dByOriginAndUnitNormal */ "../../core/geometry/lib/esm/geometry3d/Plane3dByOriginAndUnitNormal.js");
179536
179554
  /* harmony import */ var _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../geometry3d/Point3dVector3d */ "../../core/geometry/lib/esm/geometry3d/Point3dVector3d.js");
179537
179555
  /* harmony import */ var _geometry3d_PolygonOps__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../geometry3d/PolygonOps */ "../../core/geometry/lib/esm/geometry3d/PolygonOps.js");
@@ -179540,7 +179558,6 @@ __webpack_require__.r(__webpack_exports__);
179540
179558
  /* harmony import */ var _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../geometry4d/Point4d */ "../../core/geometry/lib/esm/geometry4d/Point4d.js");
179541
179559
  /* harmony import */ var _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../numerics/Polynomials */ "../../core/geometry/lib/esm/numerics/Polynomials.js");
179542
179560
  /* harmony import */ var _ClipUtils__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./ClipUtils */ "../../core/geometry/lib/esm/clipping/ClipUtils.js");
179543
- /* harmony import */ var _geometry3d_Plane3d__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../geometry3d/Plane3d */ "../../core/geometry/lib/esm/geometry3d/Plane3d.js");
179544
179561
  /*---------------------------------------------------------------------------------------------
179545
179562
  * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
179546
179563
  * See LICENSE.md in the project root for license terms and full copyright notice.
@@ -179562,6 +179579,7 @@ __webpack_require__.r(__webpack_exports__);
179562
179579
  * A ClipPlane is a single plane represented as
179563
179580
  * * An inward unit normal (u,v,w)
179564
179581
  * * A signedDistance
179582
+ * More details can be found at docs/learning/geometry/Clipping.md
179565
179583
  *
179566
179584
  * Hence
179567
179585
  * * The halfspace function evaluation for "point" (x,y,z) is `(x,y,z) DOT (u,v,w) - signedDistance`.
@@ -180074,8 +180092,9 @@ class ClipPlane extends _geometry3d_Plane3d__WEBPACK_IMPORTED_MODULE_0__.Plane3d
180074
180092
  xyzOut.pushWrap(1);
180075
180093
  return xyzOut;
180076
180094
  }
180077
- /** Implement appendPolygonClip, as defined in interface PolygonClipper.
180078
- * @param xyz input polygon. This is not changed.
180095
+ /**
180096
+ * Implement appendPolygonClip, as defined in interface PolygonClipper.
180097
+ * @param xyz convex polygon. This is not changed.
180079
180098
  * @param insideFragments Array to receive "inside" fragments. Each fragment is a GrowableXYZArray grabbed
180080
180099
  * from the cache. This is NOT cleared.
180081
180100
  * @param outsideFragments Array to receive "outside" fragments. Each fragment is a GrowableXYZArray grabbed
@@ -180853,22 +180872,28 @@ __webpack_require__.r(__webpack_exports__);
180853
180872
  /* harmony export */ ClipStepAction: () => (/* binding */ ClipStepAction),
180854
180873
  /* harmony export */ ClipUtilities: () => (/* binding */ ClipUtilities)
180855
180874
  /* harmony export */ });
180856
- /* harmony import */ var _curve_CurveFactory__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../curve/CurveFactory */ "../../core/geometry/lib/esm/curve/CurveFactory.js");
180857
- /* harmony import */ var _curve_LineString3d__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../curve/LineString3d */ "../../core/geometry/lib/esm/curve/LineString3d.js");
180858
- /* harmony import */ var _curve_Loop__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../curve/Loop */ "../../core/geometry/lib/esm/curve/Loop.js");
180875
+ /* harmony import */ var _curve_CurveCollection__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../curve/CurveCollection */ "../../core/geometry/lib/esm/curve/CurveCollection.js");
180876
+ /* harmony import */ var _curve_CurveFactory__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ../curve/CurveFactory */ "../../core/geometry/lib/esm/curve/CurveFactory.js");
180877
+ /* harmony import */ var _curve_CurvePrimitive__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../curve/CurvePrimitive */ "../../core/geometry/lib/esm/curve/CurvePrimitive.js");
180878
+ /* harmony import */ var _curve_LineString3d__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../curve/LineString3d */ "../../core/geometry/lib/esm/curve/LineString3d.js");
180879
+ /* harmony import */ var _curve_Loop__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../curve/Loop */ "../../core/geometry/lib/esm/curve/Loop.js");
180880
+ /* harmony import */ var _curve_Path__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../curve/Path */ "../../core/geometry/lib/esm/curve/Path.js");
180881
+ /* harmony import */ var _curve_RegionOps__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../curve/RegionOps */ "../../core/geometry/lib/esm/curve/RegionOps.js");
180882
+ /* harmony import */ var _curve_UnionRegion__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../curve/UnionRegion */ "../../core/geometry/lib/esm/curve/UnionRegion.js");
180859
180883
  /* harmony import */ var _Geometry__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Geometry */ "../../core/geometry/lib/esm/Geometry.js");
180860
- /* harmony import */ var _geometry3d_GrowableXYZArray__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../geometry3d/GrowableXYZArray */ "../../core/geometry/lib/esm/geometry3d/GrowableXYZArray.js");
180861
- /* harmony import */ var _geometry3d_Point3dArrayCarrier__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../geometry3d/Point3dArrayCarrier */ "../../core/geometry/lib/esm/geometry3d/Point3dArrayCarrier.js");
180862
- /* harmony import */ var _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../geometry3d/Point3dVector3d */ "../../core/geometry/lib/esm/geometry3d/Point3dVector3d.js");
180863
- /* harmony import */ var _geometry3d_Range__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../geometry3d/Range */ "../../core/geometry/lib/esm/geometry3d/Range.js");
180864
- /* harmony import */ var _geometry3d_ReusableObjectCache__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../geometry3d/ReusableObjectCache */ "../../core/geometry/lib/esm/geometry3d/ReusableObjectCache.js");
180865
- /* harmony import */ var _polyface_PolyfaceBuilder__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../polyface/PolyfaceBuilder */ "../../core/geometry/lib/esm/polyface/PolyfaceBuilder.js");
180866
- /* harmony import */ var _ClipPlane__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./ClipPlane */ "../../core/geometry/lib/esm/clipping/ClipPlane.js");
180867
- /* harmony import */ var _ClipPrimitive__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./ClipPrimitive */ "../../core/geometry/lib/esm/clipping/ClipPrimitive.js");
180868
- /* harmony import */ var _ClipVector__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./ClipVector */ "../../core/geometry/lib/esm/clipping/ClipVector.js");
180869
- /* harmony import */ var _ConvexClipPlaneSet__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./ConvexClipPlaneSet */ "../../core/geometry/lib/esm/clipping/ConvexClipPlaneSet.js");
180870
- /* harmony import */ var _internalContexts_LineStringOffsetClipperContext__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./internalContexts/LineStringOffsetClipperContext */ "../../core/geometry/lib/esm/clipping/internalContexts/LineStringOffsetClipperContext.js");
180871
- /* harmony import */ var _UnionOfConvexClipPlaneSets__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./UnionOfConvexClipPlaneSets */ "../../core/geometry/lib/esm/clipping/UnionOfConvexClipPlaneSets.js");
180884
+ /* harmony import */ var _geometry3d_FrameBuilder__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../geometry3d/FrameBuilder */ "../../core/geometry/lib/esm/geometry3d/FrameBuilder.js");
180885
+ /* harmony import */ var _geometry3d_GrowableXYZArray__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../geometry3d/GrowableXYZArray */ "../../core/geometry/lib/esm/geometry3d/GrowableXYZArray.js");
180886
+ /* harmony import */ var _geometry3d_Point3dArrayCarrier__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ../geometry3d/Point3dArrayCarrier */ "../../core/geometry/lib/esm/geometry3d/Point3dArrayCarrier.js");
180887
+ /* harmony import */ var _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../geometry3d/Point3dVector3d */ "../../core/geometry/lib/esm/geometry3d/Point3dVector3d.js");
180888
+ /* harmony import */ var _geometry3d_Range__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../geometry3d/Range */ "../../core/geometry/lib/esm/geometry3d/Range.js");
180889
+ /* harmony import */ var _geometry3d_ReusableObjectCache__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../geometry3d/ReusableObjectCache */ "../../core/geometry/lib/esm/geometry3d/ReusableObjectCache.js");
180890
+ /* harmony import */ var _polyface_PolyfaceBuilder__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ../polyface/PolyfaceBuilder */ "../../core/geometry/lib/esm/polyface/PolyfaceBuilder.js");
180891
+ /* harmony import */ var _ClipPlane__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./ClipPlane */ "../../core/geometry/lib/esm/clipping/ClipPlane.js");
180892
+ /* harmony import */ var _ClipPrimitive__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./ClipPrimitive */ "../../core/geometry/lib/esm/clipping/ClipPrimitive.js");
180893
+ /* harmony import */ var _ClipVector__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./ClipVector */ "../../core/geometry/lib/esm/clipping/ClipVector.js");
180894
+ /* harmony import */ var _ConvexClipPlaneSet__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./ConvexClipPlaneSet */ "../../core/geometry/lib/esm/clipping/ConvexClipPlaneSet.js");
180895
+ /* harmony import */ var _internalContexts_LineStringOffsetClipperContext__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./internalContexts/LineStringOffsetClipperContext */ "../../core/geometry/lib/esm/clipping/internalContexts/LineStringOffsetClipperContext.js");
180896
+ /* harmony import */ var _UnionOfConvexClipPlaneSets__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./UnionOfConvexClipPlaneSets */ "../../core/geometry/lib/esm/clipping/UnionOfConvexClipPlaneSets.js");
180872
180897
  /*---------------------------------------------------------------------------------------------
180873
180898
  * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
180874
180899
  * See LICENSE.md in the project root for license terms and full copyright notice.
@@ -180890,6 +180915,12 @@ __webpack_require__.r(__webpack_exports__);
180890
180915
 
180891
180916
 
180892
180917
 
180918
+
180919
+
180920
+
180921
+
180922
+
180923
+
180893
180924
 
180894
180925
 
180895
180926
  /**
@@ -180937,7 +180968,7 @@ var ClipStatus;
180937
180968
  */
180938
180969
  class ClipUtilities {
180939
180970
  /**
180940
- * * Augment the unsortedFractionsArray with 0 and 1
180971
+ * Augment the unsortedFractionsArray with 0 and 1
180941
180972
  * * sort
180942
180973
  * * test the midpoint of each interval with `clipper.isPointOnOrInside`
180943
180974
  * * pass accepted intervals to `announce(f0,f1,curve)`
@@ -180984,7 +181015,7 @@ class ClipUtilities {
180984
181015
  return intervals.length > 0;
180985
181016
  }
180986
181017
  /**
180987
- * Find portions of the curve that are within the clipper.
181018
+ * Find portions of the curve primitive that are within the clipper.
180988
181019
  * Collect them into an array of curve primitives.
180989
181020
  */
180990
181021
  static collectClippedCurves(curve, clipper) {
@@ -180998,6 +181029,75 @@ class ClipUtilities {
180998
181029
  });
180999
181030
  return result;
181000
181031
  }
181032
+ /**
181033
+ * Find portions of the planar region that are within the clipper.
181034
+ * Collect them into a single region to return.
181035
+ */
181036
+ static clipAnyRegion(region, clipper) {
181037
+ let result;
181038
+ // Create "local region" which is the result of rotating region to make
181039
+ // it parallel to the xy-plane and then translating it to the xy-plane.
181040
+ const localToWorld = _geometry3d_FrameBuilder__WEBPACK_IMPORTED_MODULE_1__.FrameBuilder.createRightHandedFrame(undefined, region);
181041
+ if (!localToWorld)
181042
+ return result;
181043
+ const worldToLocal = localToWorld?.inverse();
181044
+ if (!worldToLocal)
181045
+ return result;
181046
+ const localRegion = region.cloneTransformed(worldToLocal);
181047
+ if (!localRegion)
181048
+ return result;
181049
+ // We can only clip convex polygons with our clipper machinery, but the input region doesn't have to be
181050
+ // convex or even a polygon. We get around this limitation by using a Boolean operation, which admits
181051
+ // *any* planar regions, albeit in local coordinates. First, we clip a rectangle that covers the input region
181052
+ // (in world coordinates), then we intersect the resulting fragments with the input region in local coordinates.
181053
+ // Finally, we assemble the results into a UnionRegion back in world coordinates.
181054
+ const localRegionRange = ClipUtilities._workRange = localRegion.range();
181055
+ const xLength = localRegionRange.xLength();
181056
+ const yLength = localRegionRange.yLength();
181057
+ const rectangle = _curve_LineString3d__WEBPACK_IMPORTED_MODULE_2__.LineString3d.createRectangleXY(localRegionRange.low, xLength, yLength, true);
181058
+ rectangle.tryTransformInPlace(localToWorld);
181059
+ // Clip the rectangle to produce fragment(s) which we can Boolean intersect with the input region.
181060
+ const insideFragments = [];
181061
+ const outsideFragments = [];
181062
+ const cache = new _geometry3d_ReusableObjectCache__WEBPACK_IMPORTED_MODULE_3__.GrowableXYZArrayCache();
181063
+ clipper.appendPolygonClip?.(rectangle.packedPoints, insideFragments, outsideFragments, cache);
181064
+ if (insideFragments.length === 0)
181065
+ return result;
181066
+ // Create the "clipped region".
181067
+ for (const fragment of insideFragments) {
181068
+ const loop = _curve_Loop__WEBPACK_IMPORTED_MODULE_4__.Loop.createPolygon(fragment);
181069
+ loop.tryTransformInPlace(worldToLocal);
181070
+ const clippedLocalRegion = _curve_RegionOps__WEBPACK_IMPORTED_MODULE_5__.RegionOps.regionBooleanXY(localRegion, loop, _curve_RegionOps__WEBPACK_IMPORTED_MODULE_5__.RegionBinaryOpType.Intersection);
181071
+ if (clippedLocalRegion) {
181072
+ clippedLocalRegion.tryTransformInPlace(localToWorld);
181073
+ if (!result)
181074
+ result = (clippedLocalRegion instanceof _curve_UnionRegion__WEBPACK_IMPORTED_MODULE_6__.UnionRegion) ? clippedLocalRegion : _curve_UnionRegion__WEBPACK_IMPORTED_MODULE_6__.UnionRegion.create(clippedLocalRegion);
181075
+ else if (!result.tryAddChild(clippedLocalRegion))
181076
+ result.children.push(...clippedLocalRegion.children);
181077
+ }
181078
+ }
181079
+ return result;
181080
+ }
181081
+ /**
181082
+ * Find portions of any curve that are within the clipper.
181083
+ * Collect them into an array of any curves.
181084
+ */
181085
+ static clipAnyCurve(curve, clipper) {
181086
+ if (curve instanceof _curve_CurvePrimitive__WEBPACK_IMPORTED_MODULE_7__.CurvePrimitive)
181087
+ return ClipUtilities.collectClippedCurves(curve, clipper);
181088
+ if (curve.isAnyRegionType) {
181089
+ const ret = ClipUtilities.clipAnyRegion(curve, clipper);
181090
+ return ret ? [ret] : [];
181091
+ }
181092
+ const result = [];
181093
+ if (curve instanceof _curve_Path__WEBPACK_IMPORTED_MODULE_8__.Path || curve instanceof _curve_CurveCollection__WEBPACK_IMPORTED_MODULE_9__.BagOfCurves) {
181094
+ for (const child of curve.children) {
181095
+ const partialClip = ClipUtilities.clipAnyCurve(child, clipper);
181096
+ result.push(...partialClip);
181097
+ }
181098
+ }
181099
+ return result;
181100
+ }
181001
181101
  /**
181002
181102
  * Clip a polygon down to regions defined by each shape of a ClipShape.
181003
181103
  * @return An multidimensional array of points, where each array is the boundary of part of the remaining polygon.
@@ -181036,8 +181136,8 @@ class ClipUtilities {
181036
181136
  for (const plane of convexSet.planes) {
181037
181137
  let numInside = 0, numOutside = 0;
181038
181138
  const planeDistance = plane.distance - tolerance;
181039
- const currPt = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_1__.Point3d.create();
181040
- const currVec = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_1__.Vector3d.create();
181139
+ const currPt = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_10__.Point3d.create();
181140
+ const currVec = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_10__.Vector3d.create();
181041
181141
  for (let i = 0; i < points.length; i++) {
181042
181142
  points.getPoint3dAtUncheckedPointIndex(i, currPt);
181043
181143
  currVec.setFrom(currPt);
@@ -181065,15 +181165,15 @@ class ClipUtilities {
181065
181165
  * @param ignoreInvisiblePlanes if true, do NOT compute a facet for convex set faces marked invisible.
181066
181166
  */
181067
181167
  static announceLoopsOfConvexClipPlaneSetIntersectRange(convexSet, range, loopFunction, includeConvexSetFaces = true, includeRangeFaces = true, ignoreInvisiblePlanes = false) {
181068
- const work = new _geometry3d_GrowableXYZArray__WEBPACK_IMPORTED_MODULE_2__.GrowableXYZArray();
181168
+ const work = new _geometry3d_GrowableXYZArray__WEBPACK_IMPORTED_MODULE_11__.GrowableXYZArray();
181069
181169
  if (includeConvexSetFaces) {
181070
181170
  // Clip convexSet planes to the range and to the rest of the convexSet . .
181071
- if (convexSet instanceof _ConvexClipPlaneSet__WEBPACK_IMPORTED_MODULE_3__.ConvexClipPlaneSet) {
181171
+ if (convexSet instanceof _ConvexClipPlaneSet__WEBPACK_IMPORTED_MODULE_12__.ConvexClipPlaneSet) {
181072
181172
  for (const plane of convexSet.planes) {
181073
181173
  if (ignoreInvisiblePlanes && plane.invisible)
181074
181174
  continue;
181075
181175
  const pointsClippedToRange = plane.intersectRange(range, true);
181076
- const finalPoints = new _geometry3d_GrowableXYZArray__WEBPACK_IMPORTED_MODULE_2__.GrowableXYZArray();
181176
+ const finalPoints = new _geometry3d_GrowableXYZArray__WEBPACK_IMPORTED_MODULE_11__.GrowableXYZArray();
181077
181177
  if (pointsClippedToRange) {
181078
181178
  convexSet.polygonClip(pointsClippedToRange, finalPoints, work, plane);
181079
181179
  if (finalPoints.length > 0)
@@ -181096,10 +181196,10 @@ class ClipUtilities {
181096
181196
  // clip range faces to the convex set . . .
181097
181197
  const corners = range.corners();
181098
181198
  for (let i = 0; i < 6; i++) {
181099
- const indices = _geometry3d_Range__WEBPACK_IMPORTED_MODULE_4__.Range3d.faceCornerIndices(i);
181100
- const finalPoints = new _geometry3d_GrowableXYZArray__WEBPACK_IMPORTED_MODULE_2__.GrowableXYZArray();
181101
- const lineString = _curve_LineString3d__WEBPACK_IMPORTED_MODULE_5__.LineString3d.createIndexedPoints(corners, indices);
181102
- if (convexSet instanceof _ConvexClipPlaneSet__WEBPACK_IMPORTED_MODULE_3__.ConvexClipPlaneSet) {
181199
+ const indices = _geometry3d_Range__WEBPACK_IMPORTED_MODULE_13__.Range3d.faceCornerIndices(i);
181200
+ const finalPoints = new _geometry3d_GrowableXYZArray__WEBPACK_IMPORTED_MODULE_11__.GrowableXYZArray();
181201
+ const lineString = _curve_LineString3d__WEBPACK_IMPORTED_MODULE_2__.LineString3d.createIndexedPoints(corners, indices);
181202
+ if (convexSet instanceof _ConvexClipPlaneSet__WEBPACK_IMPORTED_MODULE_12__.ConvexClipPlaneSet) {
181103
181203
  convexSet.polygonClip(lineString.packedPoints, finalPoints, work);
181104
181204
  if (finalPoints.length > 0)
181105
181205
  loopFunction(finalPoints);
@@ -181124,18 +181224,18 @@ class ClipUtilities {
181124
181224
  */
181125
181225
  static loopsOfConvexClipPlaneIntersectionWithRange(allClippers, range, includeConvexSetFaces = true, includeRangeFaces = true, ignoreInvisiblePlanes = false) {
181126
181226
  const result = [];
181127
- if (allClippers instanceof _UnionOfConvexClipPlaneSets__WEBPACK_IMPORTED_MODULE_6__.UnionOfConvexClipPlaneSets) {
181227
+ if (allClippers instanceof _UnionOfConvexClipPlaneSets__WEBPACK_IMPORTED_MODULE_14__.UnionOfConvexClipPlaneSets) {
181128
181228
  for (const clipper of allClippers.convexSets) {
181129
181229
  this.announceLoopsOfConvexClipPlaneSetIntersectRange(clipper, range, (points) => {
181130
181230
  if (points.length > 0)
181131
- result.push(_curve_Loop__WEBPACK_IMPORTED_MODULE_7__.Loop.createPolygon(points));
181231
+ result.push(_curve_Loop__WEBPACK_IMPORTED_MODULE_4__.Loop.createPolygon(points));
181132
181232
  }, includeConvexSetFaces, includeRangeFaces, ignoreInvisiblePlanes);
181133
181233
  }
181134
181234
  }
181135
- else if (allClippers instanceof _ConvexClipPlaneSet__WEBPACK_IMPORTED_MODULE_3__.ConvexClipPlaneSet || allClippers instanceof _ClipPlane__WEBPACK_IMPORTED_MODULE_8__.ClipPlane) {
181235
+ else if (allClippers instanceof _ConvexClipPlaneSet__WEBPACK_IMPORTED_MODULE_12__.ConvexClipPlaneSet || allClippers instanceof _ClipPlane__WEBPACK_IMPORTED_MODULE_15__.ClipPlane) {
181136
181236
  this.announceLoopsOfConvexClipPlaneSetIntersectRange(allClippers, range, (points) => {
181137
181237
  if (points.length > 0)
181138
- result.push(_curve_Loop__WEBPACK_IMPORTED_MODULE_7__.Loop.createPolygon(points));
181238
+ result.push(_curve_Loop__WEBPACK_IMPORTED_MODULE_4__.Loop.createPolygon(points));
181139
181239
  }, includeConvexSetFaces, includeRangeFaces, ignoreInvisiblePlanes);
181140
181240
  }
181141
181241
  return result;
@@ -181147,7 +181247,7 @@ class ClipUtilities {
181147
181247
  * @param range range to intersect
181148
181248
  */
181149
181249
  static rangeOfConvexClipPlaneSetIntersectionWithRange(convexSet, range) {
181150
- const result = _geometry3d_Range__WEBPACK_IMPORTED_MODULE_4__.Range3d.createNull();
181250
+ const result = _geometry3d_Range__WEBPACK_IMPORTED_MODULE_13__.Range3d.createNull();
181151
181251
  this.announceLoopsOfConvexClipPlaneSetIntersectRange(convexSet, range, (points) => {
181152
181252
  if (points.length > 0)
181153
181253
  result.extendArray(points);
@@ -181170,22 +181270,22 @@ class ClipUtilities {
181170
181270
  static rangeOfClipperIntersectionWithRange(clipper, range, observeInvisibleFlag = true) {
181171
181271
  if (clipper === undefined)
181172
181272
  return range.clone();
181173
- if (clipper instanceof _ConvexClipPlaneSet__WEBPACK_IMPORTED_MODULE_3__.ConvexClipPlaneSet)
181273
+ if (clipper instanceof _ConvexClipPlaneSet__WEBPACK_IMPORTED_MODULE_12__.ConvexClipPlaneSet)
181174
181274
  return this.rangeOfConvexClipPlaneSetIntersectionWithRange(clipper, range);
181175
- if (clipper instanceof _UnionOfConvexClipPlaneSets__WEBPACK_IMPORTED_MODULE_6__.UnionOfConvexClipPlaneSets) {
181176
- const rangeUnion = _geometry3d_Range__WEBPACK_IMPORTED_MODULE_4__.Range3d.createNull();
181275
+ if (clipper instanceof _UnionOfConvexClipPlaneSets__WEBPACK_IMPORTED_MODULE_14__.UnionOfConvexClipPlaneSets) {
181276
+ const rangeUnion = _geometry3d_Range__WEBPACK_IMPORTED_MODULE_13__.Range3d.createNull();
181177
181277
  for (const c of clipper.convexSets) {
181178
181278
  const rangeC = this.rangeOfConvexClipPlaneSetIntersectionWithRange(c, range);
181179
181279
  rangeUnion.extendRange(rangeC);
181180
181280
  }
181181
181281
  return rangeUnion;
181182
181282
  }
181183
- if (clipper instanceof _ClipPrimitive__WEBPACK_IMPORTED_MODULE_9__.ClipPrimitive) {
181283
+ if (clipper instanceof _ClipPrimitive__WEBPACK_IMPORTED_MODULE_16__.ClipPrimitive) {
181184
181284
  if (observeInvisibleFlag && clipper.invisible)
181185
181285
  return range.clone();
181186
181286
  return this.rangeOfClipperIntersectionWithRange(clipper.fetchClipPlanesRef(), range);
181187
181287
  }
181188
- if (clipper instanceof _ClipVector__WEBPACK_IMPORTED_MODULE_10__.ClipVector) {
181288
+ if (clipper instanceof _ClipVector__WEBPACK_IMPORTED_MODULE_17__.ClipVector) {
181189
181289
  const rangeIntersection = range.clone();
181190
181290
  for (const c of clipper.clips) {
181191
181291
  if (observeInvisibleFlag && c.invisible) {
@@ -181217,21 +181317,21 @@ class ClipUtilities {
181217
181317
  static doesClipperIntersectRange(clipper, range, observeInvisibleFlag = true) {
181218
181318
  if (clipper === undefined)
181219
181319
  return true;
181220
- if (clipper instanceof _ConvexClipPlaneSet__WEBPACK_IMPORTED_MODULE_3__.ConvexClipPlaneSet)
181320
+ if (clipper instanceof _ConvexClipPlaneSet__WEBPACK_IMPORTED_MODULE_12__.ConvexClipPlaneSet)
181221
181321
  return this.doesConvexClipPlaneSetIntersectRange(clipper, range);
181222
- if (clipper instanceof _UnionOfConvexClipPlaneSets__WEBPACK_IMPORTED_MODULE_6__.UnionOfConvexClipPlaneSets) {
181322
+ if (clipper instanceof _UnionOfConvexClipPlaneSets__WEBPACK_IMPORTED_MODULE_14__.UnionOfConvexClipPlaneSets) {
181223
181323
  for (const c of clipper.convexSets) {
181224
181324
  if (this.doesConvexClipPlaneSetIntersectRange(c, range))
181225
181325
  return true;
181226
181326
  }
181227
181327
  return false;
181228
181328
  }
181229
- if (clipper instanceof _ClipPrimitive__WEBPACK_IMPORTED_MODULE_9__.ClipPrimitive) {
181329
+ if (clipper instanceof _ClipPrimitive__WEBPACK_IMPORTED_MODULE_16__.ClipPrimitive) {
181230
181330
  if (observeInvisibleFlag && clipper.invisible) // um is there an easy way to detect range-completely-inside?
181231
181331
  return true;
181232
181332
  return this.doesClipperIntersectRange(clipper.fetchClipPlanesRef(), range);
181233
181333
  }
181234
- if (clipper instanceof _ClipVector__WEBPACK_IMPORTED_MODULE_10__.ClipVector) {
181334
+ if (clipper instanceof _ClipVector__WEBPACK_IMPORTED_MODULE_17__.ClipVector) {
181235
181335
  const rangeIntersection = range.clone();
181236
181336
  for (const c of clipper.clips) {
181237
181337
  if (observeInvisibleFlag && c.invisible) {
@@ -181256,7 +181356,7 @@ class ClipUtilities {
181256
181356
  * @param ignoreInvisiblePlanes if true, do NOT compute a facet for convex set faces marked invisible.
181257
181357
  */
181258
181358
  static doesConvexClipPlaneSetIntersectRange(convexSet, range, includeConvexSetFaces = true, includeRangeFaces = true, ignoreInvisiblePlanes = false) {
181259
- const work = new _geometry3d_GrowableXYZArray__WEBPACK_IMPORTED_MODULE_2__.GrowableXYZArray();
181359
+ const work = new _geometry3d_GrowableXYZArray__WEBPACK_IMPORTED_MODULE_11__.GrowableXYZArray();
181260
181360
  if (includeConvexSetFaces) {
181261
181361
  // Clip convexSet planes to the range and to the rest of the convexSet . .
181262
181362
  for (const plane of convexSet.planes) {
@@ -181264,7 +181364,7 @@ class ClipUtilities {
181264
181364
  continue;
181265
181365
  const pointsClippedToRange = plane.intersectRange(range, true);
181266
181366
  if (pointsClippedToRange) {
181267
- const finalPoints = new _geometry3d_GrowableXYZArray__WEBPACK_IMPORTED_MODULE_2__.GrowableXYZArray();
181367
+ const finalPoints = new _geometry3d_GrowableXYZArray__WEBPACK_IMPORTED_MODULE_11__.GrowableXYZArray();
181268
181368
  convexSet.polygonClip(pointsClippedToRange, finalPoints, work, plane);
181269
181369
  if (finalPoints.length > 0)
181270
181370
  return true;
@@ -181275,9 +181375,9 @@ class ClipUtilities {
181275
181375
  // clip range faces to the convex set . . .
181276
181376
  const corners = range.corners();
181277
181377
  for (let i = 0; i < 6; i++) {
181278
- const indices = _geometry3d_Range__WEBPACK_IMPORTED_MODULE_4__.Range3d.faceCornerIndices(i);
181279
- const finalPoints = new _geometry3d_GrowableXYZArray__WEBPACK_IMPORTED_MODULE_2__.GrowableXYZArray();
181280
- const lineString = _curve_LineString3d__WEBPACK_IMPORTED_MODULE_5__.LineString3d.createIndexedPoints(corners, indices);
181378
+ const indices = _geometry3d_Range__WEBPACK_IMPORTED_MODULE_13__.Range3d.faceCornerIndices(i);
181379
+ const finalPoints = new _geometry3d_GrowableXYZArray__WEBPACK_IMPORTED_MODULE_11__.GrowableXYZArray();
181380
+ const lineString = _curve_LineString3d__WEBPACK_IMPORTED_MODULE_2__.LineString3d.createIndexedPoints(corners, indices);
181281
181381
  convexSet.polygonClip(lineString.packedPoints, finalPoints, work);
181282
181382
  if (finalPoints.length > 0)
181283
181383
  return true;
@@ -181306,10 +181406,10 @@ class ClipUtilities {
181306
181406
  }
181307
181407
  // convert range0 into a clipper in local1 coordinates, then intersect with range1
181308
181408
  const local0ToLocal1 = worldToLocal1.multiplyTransformTransform(local0ToWorld, worldToLocal1);
181309
- const builder = _polyface_PolyfaceBuilder__WEBPACK_IMPORTED_MODULE_11__.PolyfaceBuilder.create();
181409
+ const builder = _polyface_PolyfaceBuilder__WEBPACK_IMPORTED_MODULE_18__.PolyfaceBuilder.create();
181310
181410
  builder.addTransformedRangeMesh(local0ToLocal1, range0);
181311
181411
  const mesh0 = builder.claimPolyface();
181312
- const clipper = ClipUtilities._workClipper = _ConvexClipPlaneSet__WEBPACK_IMPORTED_MODULE_3__.ConvexClipPlaneSet.createConvexPolyface(mesh0, ClipUtilities._workClipper).clipper;
181412
+ const clipper = ClipUtilities._workClipper = _ConvexClipPlaneSet__WEBPACK_IMPORTED_MODULE_12__.ConvexClipPlaneSet.createConvexPolyface(mesh0, ClipUtilities._workClipper).clipper;
181313
181413
  return ClipUtilities.doesClipperIntersectRange(clipper, myRange1);
181314
181414
  }
181315
181415
  /**
@@ -181361,9 +181461,9 @@ class ClipUtilities {
181361
181461
  */
181362
181462
  static createXYOffsetClipFromLineString(points, leftOffset, rightOffset, z0, z1) {
181363
181463
  if (Array.isArray(points)) {
181364
- return _internalContexts_LineStringOffsetClipperContext__WEBPACK_IMPORTED_MODULE_12__.LineStringOffsetClipperContext.createClipBetweenOffsets(new _geometry3d_Point3dArrayCarrier__WEBPACK_IMPORTED_MODULE_13__.Point3dArrayCarrier(points), leftOffset, rightOffset, z0, z1);
181464
+ return _internalContexts_LineStringOffsetClipperContext__WEBPACK_IMPORTED_MODULE_19__.LineStringOffsetClipperContext.createClipBetweenOffsets(new _geometry3d_Point3dArrayCarrier__WEBPACK_IMPORTED_MODULE_20__.Point3dArrayCarrier(points), leftOffset, rightOffset, z0, z1);
181365
181465
  }
181366
- return _internalContexts_LineStringOffsetClipperContext__WEBPACK_IMPORTED_MODULE_12__.LineStringOffsetClipperContext.createClipBetweenOffsets(points, leftOffset, rightOffset, z0, z1);
181466
+ return _internalContexts_LineStringOffsetClipperContext__WEBPACK_IMPORTED_MODULE_19__.LineStringOffsetClipperContext.createClipBetweenOffsets(points, leftOffset, rightOffset, z0, z1);
181367
181467
  }
181368
181468
  /** If data.length >= minLength threshold, push it to destination; if smaller drop it back to the cache. */
181369
181469
  static captureOrDrop(data, minLength, destination, cache) {
@@ -181553,7 +181653,7 @@ class ClipUtilities {
181553
181653
  */
181554
181654
  static doPolygonClipSequence(xyz, clippers, acceptedIn, acceptedOut, finalCandidates, inAction, outAction, finalFragmentAction, arrayCache) {
181555
181655
  if (arrayCache === undefined)
181556
- arrayCache = new _geometry3d_ReusableObjectCache__WEBPACK_IMPORTED_MODULE_14__.GrowableXYZArrayCache();
181656
+ arrayCache = new _geometry3d_ReusableObjectCache__WEBPACK_IMPORTED_MODULE_3__.GrowableXYZArrayCache();
181557
181657
  let candidates = [arrayCache.grabAndFill(xyz)];
181558
181658
  let nextCandidates = [];
181559
181659
  const intermediateIn = [];
@@ -181590,7 +181690,7 @@ class ClipUtilities {
181590
181690
  /** Pass polygon `xyz` through a sequence of PolygonClip steps with "parity" rules */
181591
181691
  static doPolygonClipParitySequence(xyz, clippers, acceptedIn, acceptedOut, arrayCache) {
181592
181692
  if (arrayCache === undefined)
181593
- arrayCache = new _geometry3d_ReusableObjectCache__WEBPACK_IMPORTED_MODULE_14__.GrowableXYZArrayCache();
181693
+ arrayCache = new _geometry3d_ReusableObjectCache__WEBPACK_IMPORTED_MODULE_3__.GrowableXYZArrayCache();
181594
181694
  let candidatesOut = [arrayCache.grabAndFill(xyz)];
181595
181695
  let candidatesIn = [];
181596
181696
  let nextCandidatesIn = [];
@@ -181642,22 +181742,22 @@ class ClipUtilities {
181642
181742
  */
181643
181743
  static createComplementaryClips(clipper) {
181644
181744
  const planes = clipper.planes;
181645
- const interval = _geometry3d_Range__WEBPACK_IMPORTED_MODULE_4__.Range1d.createNull();
181745
+ const interval = _geometry3d_Range__WEBPACK_IMPORTED_MODULE_13__.Range1d.createNull();
181646
181746
  const n = planes.length;
181647
181747
  const newClippers = [];
181648
181748
  for (const p of planes) {
181649
- const outerSet = _ConvexClipPlaneSet__WEBPACK_IMPORTED_MODULE_3__.ConvexClipPlaneSet.createEmpty();
181749
+ const outerSet = _ConvexClipPlaneSet__WEBPACK_IMPORTED_MODULE_12__.ConvexClipPlaneSet.createEmpty();
181650
181750
  outerSet.addPlaneToConvexSet(p.cloneNegated());
181651
181751
  newClippers.push(outerSet);
181652
181752
  }
181653
181753
  for (let i = 0; i < n; i++) {
181654
181754
  for (let j = i + 1; j < n; j++) {
181655
- const ray = _curve_CurveFactory__WEBPACK_IMPORTED_MODULE_15__.CurveFactory.planePlaneIntersectionRay(planes[i], planes[j]);
181755
+ const ray = _curve_CurveFactory__WEBPACK_IMPORTED_MODULE_21__.CurveFactory.planePlaneIntersectionRay(planes[i], planes[j]);
181656
181756
  if (ray) {
181657
181757
  if (clipper.hasIntersectionWithRay(ray, interval)) {
181658
181758
  // the normal-to-normal vector is bisector (or close to bisector?)
181659
181759
  const newNormal = planes[j].inwardNormalRef.minus(planes[i].inwardNormalRef);
181660
- const plane1 = _ClipPlane__WEBPACK_IMPORTED_MODULE_8__.ClipPlane.createNormalAndPoint(newNormal, ray.origin);
181760
+ const plane1 = _ClipPlane__WEBPACK_IMPORTED_MODULE_15__.ClipPlane.createNormalAndPoint(newNormal, ray.origin);
181661
181761
  if (plane1) {
181662
181762
  const plane2 = plane1.cloneNegated();
181663
181763
  newClippers[i].addPlaneToConvexSet(plane1);
@@ -181667,10 +181767,10 @@ class ClipUtilities {
181667
181767
  }
181668
181768
  }
181669
181769
  }
181670
- return _UnionOfConvexClipPlaneSets__WEBPACK_IMPORTED_MODULE_6__.UnionOfConvexClipPlaneSets.createConvexSets(newClippers);
181770
+ return _UnionOfConvexClipPlaneSets__WEBPACK_IMPORTED_MODULE_14__.UnionOfConvexClipPlaneSets.createConvexSets(newClippers);
181671
181771
  }
181672
181772
  }
181673
- ClipUtilities._selectIntervals01TestPoint = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_1__.Point3d.create();
181773
+ ClipUtilities._selectIntervals01TestPoint = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_10__.Point3d.create();
181674
181774
 
181675
181775
  function moveFragments(fragments, destination, arrayCache) {
181676
181776
  if (destination === undefined)
@@ -182330,6 +182430,7 @@ class ConvexClipPlaneSet {
182330
182430
  * Create a convex clip plane set that clips to `x0 <= x <= x1` and `y0 <= y <= y1`.
182331
182431
  * * Note that there is no test for the usual ordering `x0 <= x1` or `y0 <= y1`.
182332
182432
  * * if the usual ordering is violated, the convex set is an empty set.
182433
+ * * More details can be found at docs/learning/geometry/Clipping.md
182333
182434
  */
182334
182435
  static createXYBox(x0, y0, x1, y1, result) {
182335
182436
  result = result ? result : new ConvexClipPlaneSet();
@@ -182775,7 +182876,7 @@ class ConvexClipPlaneSet {
182775
182876
  * valid clip in a parity sense.
182776
182877
  * * The containingPlane parameter allows callers within ConvexClipPlane set to bypass planes known to contain
182777
182878
  * the polygon.
182778
- * @param input input polygon, usually convex.
182879
+ * @param input polygon, usually convex.
182779
182880
  * @param output output polygon
182780
182881
  * @param work work array.
182781
182882
  * @param containingPlane if this plane is found in the convex set, it is NOT applied.
@@ -182908,7 +183009,7 @@ class ConvexClipPlaneSet {
182908
183009
  }
182909
183010
  /**
182910
183011
  * Implement appendPolygonClip, as defined in interface PolygonClipper.
182911
- * @param xyz input polygon. This is not changed.
183012
+ * @param xyz convex polygon. This is not changed.
182912
183013
  * @param insideFragments Array to receive "inside" fragments. Each fragment is a GrowableXYZArray grabbed from
182913
183014
  * the cache. This is NOT cleared.
182914
183015
  * @param outsideFragments Array to receive "outside" fragments. Each fragment is a GrowableXYZArray grabbed from
@@ -183285,8 +183386,8 @@ class UnionOfConvexClipPlaneSets {
183285
183386
  }
183286
183387
  }
183287
183388
  /**
183288
- *
183289
- * @param xyz input polygon. This is not changed.
183389
+ * Implement appendPolygonClip, as defined in interface PolygonClipper.
183390
+ * @param xyz convex polygon. This is not changed.
183290
183391
  * @param insideFragments Array to receive "inside" fragments. Each fragment is a GrowableXYZArray grabbed from
183291
183392
  * the cache. This is NOT cleared.
183292
183393
  * @param outsideFragments Array to receive "outside" fragments. Each fragment is a GrowableXYZArray grabbed from
@@ -185318,7 +185419,8 @@ __webpack_require__.r(__webpack_exports__);
185318
185419
 
185319
185420
 
185320
185421
 
185321
- /** A Coordinate is a Point3d with supporting methods from the GeometryQuery abstraction.
185422
+ /**
185423
+ * A Coordinate is a Point3d with supporting methods from the GeometryQuery abstraction.
185322
185424
  * @public
185323
185425
  */
185324
185426
  class CoordinateXYZ extends _GeometryQuery__WEBPACK_IMPORTED_MODULE_0__.GeometryQuery {
@@ -185341,9 +185443,9 @@ class CoordinateXYZ extends _GeometryQuery__WEBPACK_IMPORTED_MODULE_0__.Geometry
185341
185443
  static createXYZ(x = 0, y = 0, z = 0) {
185342
185444
  return new CoordinateXYZ(_geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_1__.Point3d.create(x, y, z));
185343
185445
  }
185344
- /** return the range of the point */
185446
+ /** Return the range of the point */
185345
185447
  range() { return _geometry3d_Range__WEBPACK_IMPORTED_MODULE_2__.Range3d.create(this._xyz); }
185346
- /** extend `rangeToExtend` to include this point (optionally transformed) */
185448
+ /** Extend `rangeToExtend` to include this point (optionally transformed) */
185347
185449
  extendRange(rangeToExtend, transform) {
185348
185450
  if (transform)
185349
185451
  rangeToExtend.extendTransformedXYZ(transform, this._xyz.x, this._xyz.y, this._xyz.z);
@@ -185355,31 +185457,30 @@ class CoordinateXYZ extends _GeometryQuery__WEBPACK_IMPORTED_MODULE_0__.Geometry
185355
185457
  transform.multiplyPoint3d(this._xyz, this._xyz);
185356
185458
  return true;
185357
185459
  }
185358
- /** return a transformed clone.
185359
- */
185460
+ /** Return a transformed clone */
185360
185461
  cloneTransformed(transform) {
185361
185462
  const result = new CoordinateXYZ(this._xyz.clone());
185362
185463
  result.tryTransformInPlace(transform);
185363
185464
  return result;
185364
185465
  }
185365
- /** return a clone */
185466
+ /** Return a clone */
185366
185467
  clone() {
185367
185468
  return new CoordinateXYZ(this._xyz.clone());
185368
185469
  }
185369
- /** return GeometryQuery children for recursive queries.
185370
- *
185371
- * * leaf classes do not need to implement.
185470
+ /**
185471
+ * Return GeometryQuery children for recursive queries.
185472
+ * * Leaf classes do not need to implement.
185372
185473
  */
185373
- /** test if (other instanceof Coordinate). */
185474
+ /** Test if (other instanceof Coordinate). */
185374
185475
  isSameGeometryClass(other) {
185375
185476
  return other instanceof CoordinateXYZ;
185376
185477
  }
185377
- /** test for exact structure and nearly identical geometry.
185378
- *
185478
+ /**
185479
+ * Test for exact structure and nearly identical geometry.
185379
185480
  * * Leaf classes must implement !!!
185380
- * * base class implementation recurses through children.
185381
- * * base implementation is complete for classes with children and no properties.
185382
- * * classes with both children and properties must implement for properties, call super for children.
185481
+ * * Base class implementation recurses through children.
185482
+ * * Base implementation is complete for classes with children and no properties.
185483
+ * * Classes with both children and properties must implement for properties, call super for children.
185383
185484
  */
185384
185485
  isAlmostEqual(other) {
185385
185486
  return (other instanceof CoordinateXYZ) && this._xyz.isAlmostEqual(other._xyz);
@@ -186447,7 +186548,7 @@ class CurveChain extends CurveCollection {
186447
186548
  /**
186448
186549
  * Return the index where target is found in the array of children.
186449
186550
  * @param alsoSearchProxies whether to also check proxy curves of the children
186450
- */
186551
+ */
186451
186552
  childIndex(target, alsoSearchProxies) {
186452
186553
  for (let i = 0; i < this._curves.length; i++) {
186453
186554
  if (this._curves[i] === target)
@@ -186789,7 +186890,7 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
186789
186890
  resetGeometry(geometryB) {
186790
186891
  this.setGeometryB(geometryB);
186791
186892
  }
186792
- /** @returns whether the `fraction` is in [0,1] within tolerance */
186893
+ /** returns true if `fraction` is in [0,1] within tolerance */
186793
186894
  acceptFraction(fraction, fractionTol = 1.0e-12) {
186794
186895
  if (fraction < -fractionTol)
186795
186896
  return false;
@@ -186831,8 +186932,9 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
186831
186932
  cpB, fractionB0, fractionB1, reversed, intervalDetails) {
186832
186933
  let globalFractionA, globalFractionB;
186833
186934
  let globalFractionA1, globalFractionB1;
186834
- const isInterval = (intervalDetails !== undefined) &&
186835
- intervalDetails.detailA.hasFraction1 && intervalDetails.detailB.hasFraction1;
186935
+ const isInterval = intervalDetails !== undefined &&
186936
+ intervalDetails.detailA.hasFraction1 &&
186937
+ intervalDetails.detailB.hasFraction1;
186836
186938
  if (isInterval) {
186837
186939
  globalFractionA = _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.interpolate(fractionA0, intervalDetails.detailA.fraction, fractionA1);
186838
186940
  globalFractionB = _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.interpolate(fractionB0, intervalDetails.detailB.fraction, fractionB1);
@@ -186966,8 +187068,8 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
186966
187068
  * @param a1 end point of line a
186967
187069
  * @param b0 start point of line b
186968
187070
  * @param b1 end point of line b
186969
- * @param result point to receive fractional coordinates of intersection. result.x is fraction on line a.
186970
- * result.y is fraction on line b.
187071
+ * @param result point to receive fractional coordinates of intersection. result.x is fraction on line a. result.y
187072
+ * is fraction on line b.
186971
187073
  */
186972
187074
  static segmentSegmentBoundedApproach(a0, a1, b0, b1, minDistanceSquared) {
186973
187075
  const ux = a1.x - a0.x;
@@ -187005,6 +187107,17 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
187005
187107
  closestApproach = this.updatePointToSegmentDistance(1, a1, b0, b1, -_Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.dotProductXYXY(vx, vy, e10x, e10y) / vv, minDistanceSquared, closestApproach);
187006
187108
  return closestApproach;
187007
187109
  }
187110
+ /**
187111
+ * Return fractions of close approach within minDistance between two line segments( a0,a1) and (b0, b1)
187112
+ * * minDistance is assumed positive
187113
+ * Return the fractional (not xy) coordinates in result.x, result.y
187114
+ * @param a0 start point of line a
187115
+ * @param a1 end point of line a
187116
+ * @param b0 start point of line b
187117
+ * @param b1 end point of line b
187118
+ * @param result point to receive fractional coordinates of intersection. result.x is fraction on line a. result.y
187119
+ * is fraction on line b.
187120
+ */
187008
187121
  testAndRecordFractionalPairApproach(cpA, fA0, fA1, testProjectionOnA, cpB, fB0, fB1, testProjectionOnB, reversed) {
187009
187122
  const pointA0 = cpA.fractionToPoint(fA0);
187010
187123
  const pointA1 = cpA.fractionToPoint(fA1);
@@ -187593,7 +187706,8 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
187593
187706
  let globalFractionA, globalFractionB;
187594
187707
  let globalFractionA1, globalFractionB1;
187595
187708
  const isInterval = intervalDetails !== undefined &&
187596
- intervalDetails.detailA.hasFraction1 && intervalDetails.detailB.hasFraction1;
187709
+ intervalDetails.detailA.hasFraction1 &&
187710
+ intervalDetails.detailB.hasFraction1;
187597
187711
  if (isInterval) {
187598
187712
  globalFractionA = _Geometry__WEBPACK_IMPORTED_MODULE_3__.Geometry.interpolate(fractionA0, intervalDetails.detailA.fraction, fractionA1);
187599
187713
  globalFractionB = _Geometry__WEBPACK_IMPORTED_MODULE_3__.Geometry.interpolate(fractionB0, intervalDetails.detailB.fraction, fractionB1);
@@ -187667,8 +187781,8 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
187667
187781
  this.recordPointWithLocalFractions(overlap.detailA.fraction, cpA, fractionA0, fractionA1, overlap.detailB.fraction, cpB, fractionB0, fractionB1, reversed, overlap);
187668
187782
  }
187669
187783
  else if (_numerics_Polynomials__WEBPACK_IMPORTED_MODULE_6__.SmallSystem.lineSegment3dXYTransverseIntersectionUnbounded(pointA0, pointA1, pointB0, pointB1, uv)) {
187670
- if (this.acceptFractionOnLine(extendA0, uv.x, extendA1, pointA0, pointA1, this._coincidentGeometryContext.tolerance)
187671
- && this.acceptFractionOnLine(extendB0, uv.y, extendB1, pointB0, pointB1, this._coincidentGeometryContext.tolerance)) {
187784
+ if (this.acceptFractionOnLine(extendA0, uv.x, extendA1, pointA0, pointA1, this._coincidentGeometryContext.tolerance) &&
187785
+ this.acceptFractionOnLine(extendB0, uv.y, extendB1, pointB0, pointB1, this._coincidentGeometryContext.tolerance)) {
187672
187786
  this.recordPointWithLocalFractions(uv.x, cpA, fractionA0, fractionA1, uv.y, cpB, fractionB0, fractionB1, reversed);
187673
187787
  }
187674
187788
  }
@@ -187711,8 +187825,8 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
187711
187825
  }
187712
187826
  }
187713
187827
  // Caller accesses data from a linestring or segment and passes it here.
187714
- // (The line segment in question might be (a) a full line segment or (b) a fragment within a linestring. The fraction and extend parameters
187715
- // allow all combinations to be passed in)
187828
+ // (The line segment in question might be (a) a full line segment or (b) a fragment within a linestring.
187829
+ // The fraction and extend parameters allow all combinations to be passed in)
187716
187830
  dispatchSegmentArc(cpA, extendA0, pointA0, fractionA0, pointA1, fractionA1, extendA1, arc, extendB0, extendB1, reversed) {
187717
187831
  // Arc: X = C + cU + sV
187718
187832
  // Line: contains points A0,A1
@@ -187737,7 +187851,8 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
187737
187851
  const arcPoint = data.center.plus2Scaled(data.vector0, cosines.atUncheckedIndex(i), data.vector90, sines.atUncheckedIndex(i));
187738
187852
  const arcFraction = data.sweep.radiansToSignedPeriodicFraction(radians.atUncheckedIndex(i));
187739
187853
  const lineFraction = _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_6__.SmallSystem.lineSegment3dHXYClosestPointUnbounded(pointA0H, pointA1H, arcPoint);
187740
- if (lineFraction !== undefined && this.acceptFraction(extendA0, lineFraction, extendA1) &&
187854
+ if (lineFraction !== undefined &&
187855
+ this.acceptFraction(extendA0, lineFraction, extendA1) &&
187741
187856
  this.acceptFraction(extendB0, arcFraction, extendB1)) {
187742
187857
  this.recordPointWithLocalFractions(lineFraction, cpA, fractionA0, fractionA1, arcFraction, arc, 0, 1, reversed);
187743
187858
  }
@@ -187764,8 +187879,9 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
187764
187879
  const arcPoint = data.center.plus2Scaled(data.vector0, cosines.atUncheckedIndex(i), data.vector90, sines.atUncheckedIndex(i));
187765
187880
  const arcFraction = data.sweep.radiansToSignedPeriodicFraction(radians.atUncheckedIndex(i));
187766
187881
  const lineFraction = _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_6__.SmallSystem.lineSegment3dXYClosestPointUnbounded(pointA0Local, pointA1Local, arcPoint);
187767
- if (lineFraction !== undefined && this.acceptFraction(extendA0, lineFraction, extendA1, lineFractionTol)
187768
- && this.acceptFraction(extendB0, arcFraction, extendB1, arcFractionTol)) {
187882
+ if (lineFraction !== undefined &&
187883
+ this.acceptFraction(extendA0, lineFraction, extendA1, lineFractionTol) &&
187884
+ this.acceptFraction(extendB0, arcFraction, extendB1, arcFractionTol)) {
187769
187885
  this.recordPointWithLocalFractions(lineFraction, cpA, fractionA0, fractionA1, arcFraction, arc, 0, 1, reversed);
187770
187886
  }
187771
187887
  }
@@ -188090,8 +188206,7 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
188090
188206
  const curvePoint = detail.point;
188091
188207
  const curvePointH = this.projectPoint(curvePoint);
188092
188208
  const lineFraction = _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_6__.SmallSystem.lineSegment3dHXYClosestPointUnbounded(pointA0H, pointA1H, curvePointH);
188093
- if (lineFraction !== undefined &&
188094
- this.acceptFraction(extendA0, lineFraction, extendA1) &&
188209
+ if (lineFraction !== undefined && this.acceptFraction(extendA0, lineFraction, extendA1) &&
188095
188210
  this.acceptFraction(extendB, fractionB, extendB)) {
188096
188211
  this.recordPointWithLocalFractions(lineFraction, cpA, fractionA0, fractionA1, fractionB, bcurve, 0, 1, reversed);
188097
188212
  }
@@ -193694,7 +193809,7 @@ class Path extends _CurveCollection__WEBPACK_IMPORTED_MODULE_0__.CurveChain {
193694
193809
  curve.emitStrokes(strokes, options);
193695
193810
  return Path.create(strokes);
193696
193811
  }
193697
- /** Return the boundary type (1) of a corresponding MicroStation CurveVector */
193812
+ /** Return the boundary type (1) of a corresponding MicroStation CurveVector */
193698
193813
  dgnBoundaryType() {
193699
193814
  return 1;
193700
193815
  }
@@ -197388,7 +197503,7 @@ class UnionRegion extends _CurveCollection__WEBPACK_IMPORTED_MODULE_0__.CurveCol
197388
197503
  * * Returns false if the `AnyCurve` child is not a region type.
197389
197504
  */
197390
197505
  tryAddChild(child) {
197391
- if (child && child instanceof _ParityRegion__WEBPACK_IMPORTED_MODULE_1__.ParityRegion || child instanceof _Loop__WEBPACK_IMPORTED_MODULE_2__.Loop) {
197506
+ if (child && (child instanceof _ParityRegion__WEBPACK_IMPORTED_MODULE_1__.ParityRegion || child instanceof _Loop__WEBPACK_IMPORTED_MODULE_2__.Loop)) {
197392
197507
  this._children.push(child);
197393
197508
  return true;
197394
197509
  }
@@ -205420,7 +205535,6 @@ __webpack_require__.r(__webpack_exports__);
205420
205535
 
205421
205536
 
205422
205537
 
205423
- /* eslint-disable @typescript-eslint/naming-convention, no-empty */
205424
205538
 
205425
205539
 
205426
205540
 
@@ -205428,6 +205542,7 @@ __webpack_require__.r(__webpack_exports__);
205428
205542
 
205429
205543
 
205430
205544
 
205545
+ /* eslint-disable @typescript-eslint/naming-convention, no-empty */
205431
205546
  /**
205432
205547
  * Helper class to accumulate points and vectors until there is enough data to define a coordinate system.
205433
205548
  *
@@ -205435,10 +205550,10 @@ __webpack_require__.r(__webpack_exports__);
205435
205550
  * * create the FrameBuilder and make calls to announcePoint and announceVector.
205436
205551
  * * the frame will be fully determined by an origin and two vectors.
205437
205552
  * * the first call to announcePoint will set the origin.
205438
- * * additional calls to announcePoint will produce announceVector call with the vector from the origin.
205439
- * * After each announcement, call getValidatedFrame(false)
205553
+ * * additional calls to announcePoint will produce announceVector call with the vector from the origin.
205554
+ * * after each announcement, call getValidatedFrame(false)
205440
205555
  * * getValidatedFrame will succeed when it has two independent vectors.
205441
- * * to build a left handed frame,
205556
+ * * To build a left handed frame,
205442
205557
  * * an origin and 3 independent vectors are required.
205443
205558
  * * announce as above, but query with getValidatedFrame (true).
205444
205559
  * * this will use the third vector to select right or left handed frame.
@@ -205453,11 +205568,18 @@ class FrameBuilder {
205453
205568
  }
205454
205569
  return false;
205455
205570
  }
205456
- /** clear all accumulated point and vector data */
205457
- clear() { this._origin = undefined; this._vector0 = undefined; this._vector1 = undefined; this._vector2 = undefined; }
205458
- constructor() { this.clear(); }
205459
- /** Try to assemble the data into a non-singular transform.
205460
- *
205571
+ /** Clear all accumulated point and vector data */
205572
+ clear() {
205573
+ this._origin = undefined;
205574
+ this._vector0 = undefined;
205575
+ this._vector1 = undefined;
205576
+ this._vector2 = undefined;
205577
+ }
205578
+ constructor() {
205579
+ this.clear();
205580
+ }
205581
+ /**
205582
+ * Try to assemble the data into a non-singular transform.
205461
205583
  * * If allowLeftHanded is false, vector0 and vector1 determine a right handed coordinate system.
205462
205584
  * * if allowLeftHanded is true, the z vector of the right handed system can be flipped to agree with vector2 direction.
205463
205585
  */
@@ -205492,8 +205614,11 @@ class FrameBuilder {
205492
205614
  }
205493
205615
  }
205494
205616
  /** Ask if there is a defined origin for the evolving frame */
205495
- get hasOrigin() { return this._origin !== undefined; }
205496
- /** Return the number of vectors saved. Because the save process checks numerics, this should be the rank of the system.
205617
+ get hasOrigin() {
205618
+ return this._origin !== undefined;
205619
+ }
205620
+ /**
205621
+ * Return the number of vectors saved. Because the save process checks numerics, this should be the rank of the system.
205497
205622
  */
205498
205623
  savedVectorCount() {
205499
205624
  if (!this._vector0)
@@ -205504,7 +205629,9 @@ class FrameBuilder {
205504
205629
  return 2;
205505
205630
  return 3;
205506
205631
  }
205507
- /** announce a new point. If this point is different from the origin, also compute and announce the vector from the origin.*/
205632
+ /**
205633
+ * Announce a new point. If this point is different from the origin, also compute and announce the vector from the origin.
205634
+ */
205508
205635
  announcePoint(point) {
205509
205636
  if (!this._origin) {
205510
205637
  this._origin = point.clone();
@@ -205515,7 +205642,7 @@ class FrameBuilder {
205515
205642
  return this.savedVectorCount();
205516
205643
  return this.announceVector(this._origin.vectorTo(point));
205517
205644
  }
205518
- /** announce a new vector. */
205645
+ /** Announce a new vector. */
205519
205646
  announceVector(vector) {
205520
205647
  if (vector.isAlmostZero)
205521
205648
  return this.savedVectorCount();
@@ -205542,8 +205669,9 @@ class FrameBuilder {
205542
205669
  // fall through if prior vectors are all there -- no need for the new one.
205543
205670
  return 3;
205544
205671
  }
205545
- /** Inspect the content of the data. Announce points and vectors. Return when savedVectorCount becomes
205546
- * sufficient for a coordinate system.
205672
+ /**
205673
+ * Inspect the content of the data. Announce points and vectors. Return when savedVectorCount becomes sufficient
205674
+ * for a coordinate system.
205547
205675
  */
205548
205676
  announce(data) {
205549
205677
  if (this.savedVectorCount() > 1)
@@ -205624,11 +205752,11 @@ class FrameBuilder {
205624
205752
  }
205625
205753
  }
205626
205754
  }
205627
- /** create a localToWorld frame for the given data.
205628
- *
205629
- * * origin is at first point
205630
- * * x axis in direction of first nonzero vector present or implied by the input.
205631
- * * y axis is perpendicular to x and contains (in positive side) the next vector present or implied by the input.
205755
+ /**
205756
+ * Create a localToWorld frame for the given data.
205757
+ * * origin is at first point.
205758
+ * * x axis in direction of first nonzero vector present or implied by the input.
205759
+ * * y axis is perpendicular to x and contains (in positive side) the next vector present or implied by the input.
205632
205760
  */
205633
205761
  static createRightHandedFrame(defaultUpVector, ...params) {
205634
205762
  const builder = new FrameBuilder();
@@ -205663,10 +205791,11 @@ class FrameBuilder {
205663
205791
  }
205664
205792
  return undefined;
205665
205793
  }
205666
- /** create a transform containing points or vectors in the given data.
205794
+ /**
205795
+ * Create a transform containing points or vectors in the given data.
205667
205796
  * * The xy columns of the transform contain the first points or vectors of the data.
205668
205797
  * * The z column is perpendicular to that xy plane.
205669
- * * The calculation favors the first points found. It does not try to get a "best" plane.
205798
+ * * The calculation favors the first points found. It does not try to get a "best" plane.
205670
205799
  */
205671
205800
  static createRightHandedLocalToWorld(...params) {
205672
205801
  const builder = new FrameBuilder();
@@ -205679,10 +205808,9 @@ class FrameBuilder {
205679
205808
  return undefined;
205680
205809
  }
205681
205810
  /**
205682
- * try to create a frame whose xy plane is through points.
205683
- *
205684
- * * if 3 or more distinct points are present, the x axis is from the first point to the most distance, and y direction is toward the
205685
- * point most distant from that line.
205811
+ * Try to create a frame whose xy plane is through points.
205812
+ * * If 3 or more distinct points are present, the x axis is from the first point to the most distant, and y
205813
+ * direction is toward the point most distant from that line.
205686
205814
  * @param points array of points
205687
205815
  */
205688
205816
  static createFrameToDistantPoints(points) {
@@ -205699,10 +205827,10 @@ class FrameBuilder {
205699
205827
  return undefined;
205700
205828
  }
205701
205829
  /**
205702
- * try to create a frame whose xy plane is through points, with the points appearing CCW in the local frame.
205830
+ * Try to create a frame whose xy plane is through points, with the points appearing CCW in the local frame.
205703
205831
  *
205704
- * * if 3 or more distinct points are present, the x axis is from the first point to the most distance, and y direction is toward the
205705
- * point most distant from that line.
205832
+ * * If 3 or more distinct points are present, the x axis is from the first point to the most distant, and y
205833
+ * direction is toward the point most distant from that line.
205706
205834
  * @param points array of points
205707
205835
  */
205708
205836
  static createFrameWithCCWPolygon(points) {
@@ -279629,7 +279757,7 @@ class TestContext {
279629
279757
  this.initializeRpcInterfaces({ title: this.settings.Backend.name, version: this.settings.Backend.version });
279630
279758
  const iModelClient = new imodels_client_management_1.IModelsClient({ api: { baseUrl: `https://${process.env.IMJS_URL_PREFIX ?? ""}api.bentley.com/imodels` } });
279631
279759
  await core_frontend_1.NoRenderApp.startup({
279632
- applicationVersion: "4.2.0-dev.7",
279760
+ applicationVersion: "4.2.0-dev.9",
279633
279761
  applicationId: this.settings.gprid,
279634
279762
  authorizationClient: new frontend_1.TestFrontendAuthorizationClient(this.adminUserAccessToken),
279635
279763
  hubAccess: new imodels_access_frontend_1.FrontendIModelsAccess(iModelClient),
@@ -299063,7 +299191,7 @@ module.exports = JSON.parse('{"name":"axios","version":"0.21.4","description":"P
299063
299191
  /***/ ((module) => {
299064
299192
 
299065
299193
  "use strict";
299066
- module.exports = JSON.parse('{"name":"@itwin/core-frontend","version":"4.2.0-dev.7","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.2.0-dev.7","@itwin/core-bentley":"workspace:^4.2.0-dev.7","@itwin/core-common":"workspace:^4.2.0-dev.7","@itwin/core-geometry":"workspace:^4.2.0-dev.7","@itwin/core-orbitgt":"workspace:^4.2.0-dev.7","@itwin/core-quantity":"workspace:^4.2.0-dev.7"},"//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.1.2","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","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.0.0","@itwin/object-storage-core":"^2.0.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"}}');
299194
+ module.exports = JSON.parse('{"name":"@itwin/core-frontend","version":"4.2.0-dev.9","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.2.0-dev.9","@itwin/core-bentley":"workspace:^4.2.0-dev.9","@itwin/core-common":"workspace:^4.2.0-dev.9","@itwin/core-geometry":"workspace:^4.2.0-dev.9","@itwin/core-orbitgt":"workspace:^4.2.0-dev.9","@itwin/core-quantity":"workspace:^4.2.0-dev.9"},"//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.1.2","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","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"}}');
299067
299195
 
299068
299196
  /***/ }),
299069
299197