@itwin/ecschema-rpcinterface-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.
@@ -74469,6 +74469,7 @@ class ModelChangeMonitor {
74469
74469
  this.processBuffered();
74470
74470
  };
74471
74471
  this._removals.push(briefcase.txns.onCommitted.addListener(maybeProcess));
74472
+ this._removals.push(briefcase.txns.onReplayedExternalTxns.addListener(maybeProcess));
74472
74473
  this._removals.push(briefcase.txns.onAfterUndoRedo.addListener(maybeProcess));
74473
74474
  this._removals.push(briefcase.txns.onChangesPulled.addListener(maybeProcess));
74474
74475
  }
@@ -74800,6 +74801,14 @@ class BriefcaseTxns extends BriefcaseNotificationHandler {
74800
74801
  * @see [[onCommit]] for the event raised before the operation.
74801
74802
  */
74802
74803
  this.onCommitted = new _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.BeEvent();
74804
+ /** 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.
74805
+ * @see [[onReplayedExternalTxns]] for the event raised after all such changes have been applied.
74806
+ */
74807
+ this.onReplayExternalTxns = new _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.BeEvent();
74808
+ /** 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.
74809
+ * @see [[onReplayExternalTxns]] for the event raised before the changes are applied.
74810
+ */
74811
+ this.onReplayedExternalTxns = new _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.BeEvent();
74803
74812
  /** Event raised after a changeset has been applied to the briefcase.
74804
74813
  * Changesets may be applied as a result of [[BriefcaseConnection.pullChanges]], or by undo/redo operations.
74805
74814
  */
@@ -74935,6 +74944,14 @@ class BriefcaseTxns extends BriefcaseNotificationHandler {
74935
74944
  this.onCommitted.raiseEvent(hasPendingTxns, time);
74936
74945
  }
74937
74946
  /** @internal */
74947
+ notifyReplayExternalTxns() {
74948
+ this.onReplayExternalTxns.raiseEvent();
74949
+ }
74950
+ /** @internal */
74951
+ notifyReplayedExternalTxns() {
74952
+ this.onReplayedExternalTxns.raiseEvent();
74953
+ }
74954
+ /** @internal */
74938
74955
  notifyChangesApplied() {
74939
74956
  this.onChangesApplied.raiseEvent();
74940
74957
  }
@@ -176956,6 +176973,7 @@ __webpack_require__.r(__webpack_exports__);
176956
176973
  /* harmony import */ var _geometry3d_GrowableFloat64Array__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../geometry3d/GrowableFloat64Array */ "../../core/geometry/lib/esm/geometry3d/GrowableFloat64Array.js");
176957
176974
  /* harmony import */ var _geometry3d_GrowableXYZArray__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../geometry3d/GrowableXYZArray */ "../../core/geometry/lib/esm/geometry3d/GrowableXYZArray.js");
176958
176975
  /* harmony import */ var _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../geometry3d/Matrix3d */ "../../core/geometry/lib/esm/geometry3d/Matrix3d.js");
176976
+ /* harmony import */ var _geometry3d_Plane3d__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../geometry3d/Plane3d */ "../../core/geometry/lib/esm/geometry3d/Plane3d.js");
176959
176977
  /* harmony import */ var _geometry3d_Plane3dByOriginAndUnitNormal__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../geometry3d/Plane3dByOriginAndUnitNormal */ "../../core/geometry/lib/esm/geometry3d/Plane3dByOriginAndUnitNormal.js");
176960
176978
  /* harmony import */ var _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../geometry3d/Point3dVector3d */ "../../core/geometry/lib/esm/geometry3d/Point3dVector3d.js");
176961
176979
  /* harmony import */ var _geometry3d_PolygonOps__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../geometry3d/PolygonOps */ "../../core/geometry/lib/esm/geometry3d/PolygonOps.js");
@@ -176964,7 +176982,6 @@ __webpack_require__.r(__webpack_exports__);
176964
176982
  /* harmony import */ var _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../geometry4d/Point4d */ "../../core/geometry/lib/esm/geometry4d/Point4d.js");
176965
176983
  /* harmony import */ var _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../numerics/Polynomials */ "../../core/geometry/lib/esm/numerics/Polynomials.js");
176966
176984
  /* harmony import */ var _ClipUtils__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./ClipUtils */ "../../core/geometry/lib/esm/clipping/ClipUtils.js");
176967
- /* harmony import */ var _geometry3d_Plane3d__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../geometry3d/Plane3d */ "../../core/geometry/lib/esm/geometry3d/Plane3d.js");
176968
176985
  /*---------------------------------------------------------------------------------------------
176969
176986
  * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
176970
176987
  * See LICENSE.md in the project root for license terms and full copyright notice.
@@ -176986,6 +177003,7 @@ __webpack_require__.r(__webpack_exports__);
176986
177003
  * A ClipPlane is a single plane represented as
176987
177004
  * * An inward unit normal (u,v,w)
176988
177005
  * * A signedDistance
177006
+ * More details can be found at docs/learning/geometry/Clipping.md
176989
177007
  *
176990
177008
  * Hence
176991
177009
  * * The halfspace function evaluation for "point" (x,y,z) is `(x,y,z) DOT (u,v,w) - signedDistance`.
@@ -177498,8 +177516,9 @@ class ClipPlane extends _geometry3d_Plane3d__WEBPACK_IMPORTED_MODULE_0__.Plane3d
177498
177516
  xyzOut.pushWrap(1);
177499
177517
  return xyzOut;
177500
177518
  }
177501
- /** Implement appendPolygonClip, as defined in interface PolygonClipper.
177502
- * @param xyz input polygon. This is not changed.
177519
+ /**
177520
+ * Implement appendPolygonClip, as defined in interface PolygonClipper.
177521
+ * @param xyz convex polygon. This is not changed.
177503
177522
  * @param insideFragments Array to receive "inside" fragments. Each fragment is a GrowableXYZArray grabbed
177504
177523
  * from the cache. This is NOT cleared.
177505
177524
  * @param outsideFragments Array to receive "outside" fragments. Each fragment is a GrowableXYZArray grabbed
@@ -178277,22 +178296,28 @@ __webpack_require__.r(__webpack_exports__);
178277
178296
  /* harmony export */ ClipStepAction: () => (/* binding */ ClipStepAction),
178278
178297
  /* harmony export */ ClipUtilities: () => (/* binding */ ClipUtilities)
178279
178298
  /* harmony export */ });
178280
- /* harmony import */ var _curve_CurveFactory__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../curve/CurveFactory */ "../../core/geometry/lib/esm/curve/CurveFactory.js");
178281
- /* harmony import */ var _curve_LineString3d__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../curve/LineString3d */ "../../core/geometry/lib/esm/curve/LineString3d.js");
178282
- /* harmony import */ var _curve_Loop__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../curve/Loop */ "../../core/geometry/lib/esm/curve/Loop.js");
178299
+ /* harmony import */ var _curve_CurveCollection__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../curve/CurveCollection */ "../../core/geometry/lib/esm/curve/CurveCollection.js");
178300
+ /* harmony import */ var _curve_CurveFactory__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ../curve/CurveFactory */ "../../core/geometry/lib/esm/curve/CurveFactory.js");
178301
+ /* harmony import */ var _curve_CurvePrimitive__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../curve/CurvePrimitive */ "../../core/geometry/lib/esm/curve/CurvePrimitive.js");
178302
+ /* harmony import */ var _curve_LineString3d__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../curve/LineString3d */ "../../core/geometry/lib/esm/curve/LineString3d.js");
178303
+ /* harmony import */ var _curve_Loop__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../curve/Loop */ "../../core/geometry/lib/esm/curve/Loop.js");
178304
+ /* harmony import */ var _curve_Path__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../curve/Path */ "../../core/geometry/lib/esm/curve/Path.js");
178305
+ /* harmony import */ var _curve_RegionOps__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../curve/RegionOps */ "../../core/geometry/lib/esm/curve/RegionOps.js");
178306
+ /* harmony import */ var _curve_UnionRegion__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../curve/UnionRegion */ "../../core/geometry/lib/esm/curve/UnionRegion.js");
178283
178307
  /* harmony import */ var _Geometry__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Geometry */ "../../core/geometry/lib/esm/Geometry.js");
178284
- /* harmony import */ var _geometry3d_GrowableXYZArray__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../geometry3d/GrowableXYZArray */ "../../core/geometry/lib/esm/geometry3d/GrowableXYZArray.js");
178285
- /* harmony import */ var _geometry3d_Point3dArrayCarrier__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../geometry3d/Point3dArrayCarrier */ "../../core/geometry/lib/esm/geometry3d/Point3dArrayCarrier.js");
178286
- /* harmony import */ var _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../geometry3d/Point3dVector3d */ "../../core/geometry/lib/esm/geometry3d/Point3dVector3d.js");
178287
- /* harmony import */ var _geometry3d_Range__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../geometry3d/Range */ "../../core/geometry/lib/esm/geometry3d/Range.js");
178288
- /* harmony import */ var _geometry3d_ReusableObjectCache__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../geometry3d/ReusableObjectCache */ "../../core/geometry/lib/esm/geometry3d/ReusableObjectCache.js");
178289
- /* harmony import */ var _polyface_PolyfaceBuilder__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../polyface/PolyfaceBuilder */ "../../core/geometry/lib/esm/polyface/PolyfaceBuilder.js");
178290
- /* harmony import */ var _ClipPlane__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./ClipPlane */ "../../core/geometry/lib/esm/clipping/ClipPlane.js");
178291
- /* harmony import */ var _ClipPrimitive__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./ClipPrimitive */ "../../core/geometry/lib/esm/clipping/ClipPrimitive.js");
178292
- /* harmony import */ var _ClipVector__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./ClipVector */ "../../core/geometry/lib/esm/clipping/ClipVector.js");
178293
- /* harmony import */ var _ConvexClipPlaneSet__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./ConvexClipPlaneSet */ "../../core/geometry/lib/esm/clipping/ConvexClipPlaneSet.js");
178294
- /* harmony import */ var _internalContexts_LineStringOffsetClipperContext__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./internalContexts/LineStringOffsetClipperContext */ "../../core/geometry/lib/esm/clipping/internalContexts/LineStringOffsetClipperContext.js");
178295
- /* harmony import */ var _UnionOfConvexClipPlaneSets__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./UnionOfConvexClipPlaneSets */ "../../core/geometry/lib/esm/clipping/UnionOfConvexClipPlaneSets.js");
178308
+ /* harmony import */ var _geometry3d_FrameBuilder__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../geometry3d/FrameBuilder */ "../../core/geometry/lib/esm/geometry3d/FrameBuilder.js");
178309
+ /* harmony import */ var _geometry3d_GrowableXYZArray__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../geometry3d/GrowableXYZArray */ "../../core/geometry/lib/esm/geometry3d/GrowableXYZArray.js");
178310
+ /* harmony import */ var _geometry3d_Point3dArrayCarrier__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ../geometry3d/Point3dArrayCarrier */ "../../core/geometry/lib/esm/geometry3d/Point3dArrayCarrier.js");
178311
+ /* harmony import */ var _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../geometry3d/Point3dVector3d */ "../../core/geometry/lib/esm/geometry3d/Point3dVector3d.js");
178312
+ /* harmony import */ var _geometry3d_Range__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../geometry3d/Range */ "../../core/geometry/lib/esm/geometry3d/Range.js");
178313
+ /* harmony import */ var _geometry3d_ReusableObjectCache__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../geometry3d/ReusableObjectCache */ "../../core/geometry/lib/esm/geometry3d/ReusableObjectCache.js");
178314
+ /* harmony import */ var _polyface_PolyfaceBuilder__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ../polyface/PolyfaceBuilder */ "../../core/geometry/lib/esm/polyface/PolyfaceBuilder.js");
178315
+ /* harmony import */ var _ClipPlane__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./ClipPlane */ "../../core/geometry/lib/esm/clipping/ClipPlane.js");
178316
+ /* harmony import */ var _ClipPrimitive__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./ClipPrimitive */ "../../core/geometry/lib/esm/clipping/ClipPrimitive.js");
178317
+ /* harmony import */ var _ClipVector__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./ClipVector */ "../../core/geometry/lib/esm/clipping/ClipVector.js");
178318
+ /* harmony import */ var _ConvexClipPlaneSet__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./ConvexClipPlaneSet */ "../../core/geometry/lib/esm/clipping/ConvexClipPlaneSet.js");
178319
+ /* harmony import */ var _internalContexts_LineStringOffsetClipperContext__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./internalContexts/LineStringOffsetClipperContext */ "../../core/geometry/lib/esm/clipping/internalContexts/LineStringOffsetClipperContext.js");
178320
+ /* harmony import */ var _UnionOfConvexClipPlaneSets__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./UnionOfConvexClipPlaneSets */ "../../core/geometry/lib/esm/clipping/UnionOfConvexClipPlaneSets.js");
178296
178321
  /*---------------------------------------------------------------------------------------------
178297
178322
  * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
178298
178323
  * See LICENSE.md in the project root for license terms and full copyright notice.
@@ -178314,6 +178339,12 @@ __webpack_require__.r(__webpack_exports__);
178314
178339
 
178315
178340
 
178316
178341
 
178342
+
178343
+
178344
+
178345
+
178346
+
178347
+
178317
178348
 
178318
178349
 
178319
178350
  /**
@@ -178361,7 +178392,7 @@ var ClipStatus;
178361
178392
  */
178362
178393
  class ClipUtilities {
178363
178394
  /**
178364
- * * Augment the unsortedFractionsArray with 0 and 1
178395
+ * Augment the unsortedFractionsArray with 0 and 1
178365
178396
  * * sort
178366
178397
  * * test the midpoint of each interval with `clipper.isPointOnOrInside`
178367
178398
  * * pass accepted intervals to `announce(f0,f1,curve)`
@@ -178408,7 +178439,7 @@ class ClipUtilities {
178408
178439
  return intervals.length > 0;
178409
178440
  }
178410
178441
  /**
178411
- * Find portions of the curve that are within the clipper.
178442
+ * Find portions of the curve primitive that are within the clipper.
178412
178443
  * Collect them into an array of curve primitives.
178413
178444
  */
178414
178445
  static collectClippedCurves(curve, clipper) {
@@ -178422,6 +178453,75 @@ class ClipUtilities {
178422
178453
  });
178423
178454
  return result;
178424
178455
  }
178456
+ /**
178457
+ * Find portions of the planar region that are within the clipper.
178458
+ * Collect them into a single region to return.
178459
+ */
178460
+ static clipAnyRegion(region, clipper) {
178461
+ let result;
178462
+ // Create "local region" which is the result of rotating region to make
178463
+ // it parallel to the xy-plane and then translating it to the xy-plane.
178464
+ const localToWorld = _geometry3d_FrameBuilder__WEBPACK_IMPORTED_MODULE_1__.FrameBuilder.createRightHandedFrame(undefined, region);
178465
+ if (!localToWorld)
178466
+ return result;
178467
+ const worldToLocal = localToWorld?.inverse();
178468
+ if (!worldToLocal)
178469
+ return result;
178470
+ const localRegion = region.cloneTransformed(worldToLocal);
178471
+ if (!localRegion)
178472
+ return result;
178473
+ // We can only clip convex polygons with our clipper machinery, but the input region doesn't have to be
178474
+ // convex or even a polygon. We get around this limitation by using a Boolean operation, which admits
178475
+ // *any* planar regions, albeit in local coordinates. First, we clip a rectangle that covers the input region
178476
+ // (in world coordinates), then we intersect the resulting fragments with the input region in local coordinates.
178477
+ // Finally, we assemble the results into a UnionRegion back in world coordinates.
178478
+ const localRegionRange = ClipUtilities._workRange = localRegion.range();
178479
+ const xLength = localRegionRange.xLength();
178480
+ const yLength = localRegionRange.yLength();
178481
+ const rectangle = _curve_LineString3d__WEBPACK_IMPORTED_MODULE_2__.LineString3d.createRectangleXY(localRegionRange.low, xLength, yLength, true);
178482
+ rectangle.tryTransformInPlace(localToWorld);
178483
+ // Clip the rectangle to produce fragment(s) which we can Boolean intersect with the input region.
178484
+ const insideFragments = [];
178485
+ const outsideFragments = [];
178486
+ const cache = new _geometry3d_ReusableObjectCache__WEBPACK_IMPORTED_MODULE_3__.GrowableXYZArrayCache();
178487
+ clipper.appendPolygonClip?.(rectangle.packedPoints, insideFragments, outsideFragments, cache);
178488
+ if (insideFragments.length === 0)
178489
+ return result;
178490
+ // Create the "clipped region".
178491
+ for (const fragment of insideFragments) {
178492
+ const loop = _curve_Loop__WEBPACK_IMPORTED_MODULE_4__.Loop.createPolygon(fragment);
178493
+ loop.tryTransformInPlace(worldToLocal);
178494
+ const clippedLocalRegion = _curve_RegionOps__WEBPACK_IMPORTED_MODULE_5__.RegionOps.regionBooleanXY(localRegion, loop, _curve_RegionOps__WEBPACK_IMPORTED_MODULE_5__.RegionBinaryOpType.Intersection);
178495
+ if (clippedLocalRegion) {
178496
+ clippedLocalRegion.tryTransformInPlace(localToWorld);
178497
+ if (!result)
178498
+ result = (clippedLocalRegion instanceof _curve_UnionRegion__WEBPACK_IMPORTED_MODULE_6__.UnionRegion) ? clippedLocalRegion : _curve_UnionRegion__WEBPACK_IMPORTED_MODULE_6__.UnionRegion.create(clippedLocalRegion);
178499
+ else if (!result.tryAddChild(clippedLocalRegion))
178500
+ result.children.push(...clippedLocalRegion.children);
178501
+ }
178502
+ }
178503
+ return result;
178504
+ }
178505
+ /**
178506
+ * Find portions of any curve that are within the clipper.
178507
+ * Collect them into an array of any curves.
178508
+ */
178509
+ static clipAnyCurve(curve, clipper) {
178510
+ if (curve instanceof _curve_CurvePrimitive__WEBPACK_IMPORTED_MODULE_7__.CurvePrimitive)
178511
+ return ClipUtilities.collectClippedCurves(curve, clipper);
178512
+ if (curve.isAnyRegionType) {
178513
+ const ret = ClipUtilities.clipAnyRegion(curve, clipper);
178514
+ return ret ? [ret] : [];
178515
+ }
178516
+ const result = [];
178517
+ if (curve instanceof _curve_Path__WEBPACK_IMPORTED_MODULE_8__.Path || curve instanceof _curve_CurveCollection__WEBPACK_IMPORTED_MODULE_9__.BagOfCurves) {
178518
+ for (const child of curve.children) {
178519
+ const partialClip = ClipUtilities.clipAnyCurve(child, clipper);
178520
+ result.push(...partialClip);
178521
+ }
178522
+ }
178523
+ return result;
178524
+ }
178425
178525
  /**
178426
178526
  * Clip a polygon down to regions defined by each shape of a ClipShape.
178427
178527
  * @return An multidimensional array of points, where each array is the boundary of part of the remaining polygon.
@@ -178460,8 +178560,8 @@ class ClipUtilities {
178460
178560
  for (const plane of convexSet.planes) {
178461
178561
  let numInside = 0, numOutside = 0;
178462
178562
  const planeDistance = plane.distance - tolerance;
178463
- const currPt = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_1__.Point3d.create();
178464
- const currVec = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_1__.Vector3d.create();
178563
+ const currPt = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_10__.Point3d.create();
178564
+ const currVec = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_10__.Vector3d.create();
178465
178565
  for (let i = 0; i < points.length; i++) {
178466
178566
  points.getPoint3dAtUncheckedPointIndex(i, currPt);
178467
178567
  currVec.setFrom(currPt);
@@ -178489,15 +178589,15 @@ class ClipUtilities {
178489
178589
  * @param ignoreInvisiblePlanes if true, do NOT compute a facet for convex set faces marked invisible.
178490
178590
  */
178491
178591
  static announceLoopsOfConvexClipPlaneSetIntersectRange(convexSet, range, loopFunction, includeConvexSetFaces = true, includeRangeFaces = true, ignoreInvisiblePlanes = false) {
178492
- const work = new _geometry3d_GrowableXYZArray__WEBPACK_IMPORTED_MODULE_2__.GrowableXYZArray();
178592
+ const work = new _geometry3d_GrowableXYZArray__WEBPACK_IMPORTED_MODULE_11__.GrowableXYZArray();
178493
178593
  if (includeConvexSetFaces) {
178494
178594
  // Clip convexSet planes to the range and to the rest of the convexSet . .
178495
- if (convexSet instanceof _ConvexClipPlaneSet__WEBPACK_IMPORTED_MODULE_3__.ConvexClipPlaneSet) {
178595
+ if (convexSet instanceof _ConvexClipPlaneSet__WEBPACK_IMPORTED_MODULE_12__.ConvexClipPlaneSet) {
178496
178596
  for (const plane of convexSet.planes) {
178497
178597
  if (ignoreInvisiblePlanes && plane.invisible)
178498
178598
  continue;
178499
178599
  const pointsClippedToRange = plane.intersectRange(range, true);
178500
- const finalPoints = new _geometry3d_GrowableXYZArray__WEBPACK_IMPORTED_MODULE_2__.GrowableXYZArray();
178600
+ const finalPoints = new _geometry3d_GrowableXYZArray__WEBPACK_IMPORTED_MODULE_11__.GrowableXYZArray();
178501
178601
  if (pointsClippedToRange) {
178502
178602
  convexSet.polygonClip(pointsClippedToRange, finalPoints, work, plane);
178503
178603
  if (finalPoints.length > 0)
@@ -178520,10 +178620,10 @@ class ClipUtilities {
178520
178620
  // clip range faces to the convex set . . .
178521
178621
  const corners = range.corners();
178522
178622
  for (let i = 0; i < 6; i++) {
178523
- const indices = _geometry3d_Range__WEBPACK_IMPORTED_MODULE_4__.Range3d.faceCornerIndices(i);
178524
- const finalPoints = new _geometry3d_GrowableXYZArray__WEBPACK_IMPORTED_MODULE_2__.GrowableXYZArray();
178525
- const lineString = _curve_LineString3d__WEBPACK_IMPORTED_MODULE_5__.LineString3d.createIndexedPoints(corners, indices);
178526
- if (convexSet instanceof _ConvexClipPlaneSet__WEBPACK_IMPORTED_MODULE_3__.ConvexClipPlaneSet) {
178623
+ const indices = _geometry3d_Range__WEBPACK_IMPORTED_MODULE_13__.Range3d.faceCornerIndices(i);
178624
+ const finalPoints = new _geometry3d_GrowableXYZArray__WEBPACK_IMPORTED_MODULE_11__.GrowableXYZArray();
178625
+ const lineString = _curve_LineString3d__WEBPACK_IMPORTED_MODULE_2__.LineString3d.createIndexedPoints(corners, indices);
178626
+ if (convexSet instanceof _ConvexClipPlaneSet__WEBPACK_IMPORTED_MODULE_12__.ConvexClipPlaneSet) {
178527
178627
  convexSet.polygonClip(lineString.packedPoints, finalPoints, work);
178528
178628
  if (finalPoints.length > 0)
178529
178629
  loopFunction(finalPoints);
@@ -178548,18 +178648,18 @@ class ClipUtilities {
178548
178648
  */
178549
178649
  static loopsOfConvexClipPlaneIntersectionWithRange(allClippers, range, includeConvexSetFaces = true, includeRangeFaces = true, ignoreInvisiblePlanes = false) {
178550
178650
  const result = [];
178551
- if (allClippers instanceof _UnionOfConvexClipPlaneSets__WEBPACK_IMPORTED_MODULE_6__.UnionOfConvexClipPlaneSets) {
178651
+ if (allClippers instanceof _UnionOfConvexClipPlaneSets__WEBPACK_IMPORTED_MODULE_14__.UnionOfConvexClipPlaneSets) {
178552
178652
  for (const clipper of allClippers.convexSets) {
178553
178653
  this.announceLoopsOfConvexClipPlaneSetIntersectRange(clipper, range, (points) => {
178554
178654
  if (points.length > 0)
178555
- result.push(_curve_Loop__WEBPACK_IMPORTED_MODULE_7__.Loop.createPolygon(points));
178655
+ result.push(_curve_Loop__WEBPACK_IMPORTED_MODULE_4__.Loop.createPolygon(points));
178556
178656
  }, includeConvexSetFaces, includeRangeFaces, ignoreInvisiblePlanes);
178557
178657
  }
178558
178658
  }
178559
- else if (allClippers instanceof _ConvexClipPlaneSet__WEBPACK_IMPORTED_MODULE_3__.ConvexClipPlaneSet || allClippers instanceof _ClipPlane__WEBPACK_IMPORTED_MODULE_8__.ClipPlane) {
178659
+ else if (allClippers instanceof _ConvexClipPlaneSet__WEBPACK_IMPORTED_MODULE_12__.ConvexClipPlaneSet || allClippers instanceof _ClipPlane__WEBPACK_IMPORTED_MODULE_15__.ClipPlane) {
178560
178660
  this.announceLoopsOfConvexClipPlaneSetIntersectRange(allClippers, range, (points) => {
178561
178661
  if (points.length > 0)
178562
- result.push(_curve_Loop__WEBPACK_IMPORTED_MODULE_7__.Loop.createPolygon(points));
178662
+ result.push(_curve_Loop__WEBPACK_IMPORTED_MODULE_4__.Loop.createPolygon(points));
178563
178663
  }, includeConvexSetFaces, includeRangeFaces, ignoreInvisiblePlanes);
178564
178664
  }
178565
178665
  return result;
@@ -178571,7 +178671,7 @@ class ClipUtilities {
178571
178671
  * @param range range to intersect
178572
178672
  */
178573
178673
  static rangeOfConvexClipPlaneSetIntersectionWithRange(convexSet, range) {
178574
- const result = _geometry3d_Range__WEBPACK_IMPORTED_MODULE_4__.Range3d.createNull();
178674
+ const result = _geometry3d_Range__WEBPACK_IMPORTED_MODULE_13__.Range3d.createNull();
178575
178675
  this.announceLoopsOfConvexClipPlaneSetIntersectRange(convexSet, range, (points) => {
178576
178676
  if (points.length > 0)
178577
178677
  result.extendArray(points);
@@ -178594,22 +178694,22 @@ class ClipUtilities {
178594
178694
  static rangeOfClipperIntersectionWithRange(clipper, range, observeInvisibleFlag = true) {
178595
178695
  if (clipper === undefined)
178596
178696
  return range.clone();
178597
- if (clipper instanceof _ConvexClipPlaneSet__WEBPACK_IMPORTED_MODULE_3__.ConvexClipPlaneSet)
178697
+ if (clipper instanceof _ConvexClipPlaneSet__WEBPACK_IMPORTED_MODULE_12__.ConvexClipPlaneSet)
178598
178698
  return this.rangeOfConvexClipPlaneSetIntersectionWithRange(clipper, range);
178599
- if (clipper instanceof _UnionOfConvexClipPlaneSets__WEBPACK_IMPORTED_MODULE_6__.UnionOfConvexClipPlaneSets) {
178600
- const rangeUnion = _geometry3d_Range__WEBPACK_IMPORTED_MODULE_4__.Range3d.createNull();
178699
+ if (clipper instanceof _UnionOfConvexClipPlaneSets__WEBPACK_IMPORTED_MODULE_14__.UnionOfConvexClipPlaneSets) {
178700
+ const rangeUnion = _geometry3d_Range__WEBPACK_IMPORTED_MODULE_13__.Range3d.createNull();
178601
178701
  for (const c of clipper.convexSets) {
178602
178702
  const rangeC = this.rangeOfConvexClipPlaneSetIntersectionWithRange(c, range);
178603
178703
  rangeUnion.extendRange(rangeC);
178604
178704
  }
178605
178705
  return rangeUnion;
178606
178706
  }
178607
- if (clipper instanceof _ClipPrimitive__WEBPACK_IMPORTED_MODULE_9__.ClipPrimitive) {
178707
+ if (clipper instanceof _ClipPrimitive__WEBPACK_IMPORTED_MODULE_16__.ClipPrimitive) {
178608
178708
  if (observeInvisibleFlag && clipper.invisible)
178609
178709
  return range.clone();
178610
178710
  return this.rangeOfClipperIntersectionWithRange(clipper.fetchClipPlanesRef(), range);
178611
178711
  }
178612
- if (clipper instanceof _ClipVector__WEBPACK_IMPORTED_MODULE_10__.ClipVector) {
178712
+ if (clipper instanceof _ClipVector__WEBPACK_IMPORTED_MODULE_17__.ClipVector) {
178613
178713
  const rangeIntersection = range.clone();
178614
178714
  for (const c of clipper.clips) {
178615
178715
  if (observeInvisibleFlag && c.invisible) {
@@ -178641,21 +178741,21 @@ class ClipUtilities {
178641
178741
  static doesClipperIntersectRange(clipper, range, observeInvisibleFlag = true) {
178642
178742
  if (clipper === undefined)
178643
178743
  return true;
178644
- if (clipper instanceof _ConvexClipPlaneSet__WEBPACK_IMPORTED_MODULE_3__.ConvexClipPlaneSet)
178744
+ if (clipper instanceof _ConvexClipPlaneSet__WEBPACK_IMPORTED_MODULE_12__.ConvexClipPlaneSet)
178645
178745
  return this.doesConvexClipPlaneSetIntersectRange(clipper, range);
178646
- if (clipper instanceof _UnionOfConvexClipPlaneSets__WEBPACK_IMPORTED_MODULE_6__.UnionOfConvexClipPlaneSets) {
178746
+ if (clipper instanceof _UnionOfConvexClipPlaneSets__WEBPACK_IMPORTED_MODULE_14__.UnionOfConvexClipPlaneSets) {
178647
178747
  for (const c of clipper.convexSets) {
178648
178748
  if (this.doesConvexClipPlaneSetIntersectRange(c, range))
178649
178749
  return true;
178650
178750
  }
178651
178751
  return false;
178652
178752
  }
178653
- if (clipper instanceof _ClipPrimitive__WEBPACK_IMPORTED_MODULE_9__.ClipPrimitive) {
178753
+ if (clipper instanceof _ClipPrimitive__WEBPACK_IMPORTED_MODULE_16__.ClipPrimitive) {
178654
178754
  if (observeInvisibleFlag && clipper.invisible) // um is there an easy way to detect range-completely-inside?
178655
178755
  return true;
178656
178756
  return this.doesClipperIntersectRange(clipper.fetchClipPlanesRef(), range);
178657
178757
  }
178658
- if (clipper instanceof _ClipVector__WEBPACK_IMPORTED_MODULE_10__.ClipVector) {
178758
+ if (clipper instanceof _ClipVector__WEBPACK_IMPORTED_MODULE_17__.ClipVector) {
178659
178759
  const rangeIntersection = range.clone();
178660
178760
  for (const c of clipper.clips) {
178661
178761
  if (observeInvisibleFlag && c.invisible) {
@@ -178680,7 +178780,7 @@ class ClipUtilities {
178680
178780
  * @param ignoreInvisiblePlanes if true, do NOT compute a facet for convex set faces marked invisible.
178681
178781
  */
178682
178782
  static doesConvexClipPlaneSetIntersectRange(convexSet, range, includeConvexSetFaces = true, includeRangeFaces = true, ignoreInvisiblePlanes = false) {
178683
- const work = new _geometry3d_GrowableXYZArray__WEBPACK_IMPORTED_MODULE_2__.GrowableXYZArray();
178783
+ const work = new _geometry3d_GrowableXYZArray__WEBPACK_IMPORTED_MODULE_11__.GrowableXYZArray();
178684
178784
  if (includeConvexSetFaces) {
178685
178785
  // Clip convexSet planes to the range and to the rest of the convexSet . .
178686
178786
  for (const plane of convexSet.planes) {
@@ -178688,7 +178788,7 @@ class ClipUtilities {
178688
178788
  continue;
178689
178789
  const pointsClippedToRange = plane.intersectRange(range, true);
178690
178790
  if (pointsClippedToRange) {
178691
- const finalPoints = new _geometry3d_GrowableXYZArray__WEBPACK_IMPORTED_MODULE_2__.GrowableXYZArray();
178791
+ const finalPoints = new _geometry3d_GrowableXYZArray__WEBPACK_IMPORTED_MODULE_11__.GrowableXYZArray();
178692
178792
  convexSet.polygonClip(pointsClippedToRange, finalPoints, work, plane);
178693
178793
  if (finalPoints.length > 0)
178694
178794
  return true;
@@ -178699,9 +178799,9 @@ class ClipUtilities {
178699
178799
  // clip range faces to the convex set . . .
178700
178800
  const corners = range.corners();
178701
178801
  for (let i = 0; i < 6; i++) {
178702
- const indices = _geometry3d_Range__WEBPACK_IMPORTED_MODULE_4__.Range3d.faceCornerIndices(i);
178703
- const finalPoints = new _geometry3d_GrowableXYZArray__WEBPACK_IMPORTED_MODULE_2__.GrowableXYZArray();
178704
- const lineString = _curve_LineString3d__WEBPACK_IMPORTED_MODULE_5__.LineString3d.createIndexedPoints(corners, indices);
178802
+ const indices = _geometry3d_Range__WEBPACK_IMPORTED_MODULE_13__.Range3d.faceCornerIndices(i);
178803
+ const finalPoints = new _geometry3d_GrowableXYZArray__WEBPACK_IMPORTED_MODULE_11__.GrowableXYZArray();
178804
+ const lineString = _curve_LineString3d__WEBPACK_IMPORTED_MODULE_2__.LineString3d.createIndexedPoints(corners, indices);
178705
178805
  convexSet.polygonClip(lineString.packedPoints, finalPoints, work);
178706
178806
  if (finalPoints.length > 0)
178707
178807
  return true;
@@ -178730,10 +178830,10 @@ class ClipUtilities {
178730
178830
  }
178731
178831
  // convert range0 into a clipper in local1 coordinates, then intersect with range1
178732
178832
  const local0ToLocal1 = worldToLocal1.multiplyTransformTransform(local0ToWorld, worldToLocal1);
178733
- const builder = _polyface_PolyfaceBuilder__WEBPACK_IMPORTED_MODULE_11__.PolyfaceBuilder.create();
178833
+ const builder = _polyface_PolyfaceBuilder__WEBPACK_IMPORTED_MODULE_18__.PolyfaceBuilder.create();
178734
178834
  builder.addTransformedRangeMesh(local0ToLocal1, range0);
178735
178835
  const mesh0 = builder.claimPolyface();
178736
- const clipper = ClipUtilities._workClipper = _ConvexClipPlaneSet__WEBPACK_IMPORTED_MODULE_3__.ConvexClipPlaneSet.createConvexPolyface(mesh0, ClipUtilities._workClipper).clipper;
178836
+ const clipper = ClipUtilities._workClipper = _ConvexClipPlaneSet__WEBPACK_IMPORTED_MODULE_12__.ConvexClipPlaneSet.createConvexPolyface(mesh0, ClipUtilities._workClipper).clipper;
178737
178837
  return ClipUtilities.doesClipperIntersectRange(clipper, myRange1);
178738
178838
  }
178739
178839
  /**
@@ -178785,9 +178885,9 @@ class ClipUtilities {
178785
178885
  */
178786
178886
  static createXYOffsetClipFromLineString(points, leftOffset, rightOffset, z0, z1) {
178787
178887
  if (Array.isArray(points)) {
178788
- return _internalContexts_LineStringOffsetClipperContext__WEBPACK_IMPORTED_MODULE_12__.LineStringOffsetClipperContext.createClipBetweenOffsets(new _geometry3d_Point3dArrayCarrier__WEBPACK_IMPORTED_MODULE_13__.Point3dArrayCarrier(points), leftOffset, rightOffset, z0, z1);
178888
+ return _internalContexts_LineStringOffsetClipperContext__WEBPACK_IMPORTED_MODULE_19__.LineStringOffsetClipperContext.createClipBetweenOffsets(new _geometry3d_Point3dArrayCarrier__WEBPACK_IMPORTED_MODULE_20__.Point3dArrayCarrier(points), leftOffset, rightOffset, z0, z1);
178789
178889
  }
178790
- return _internalContexts_LineStringOffsetClipperContext__WEBPACK_IMPORTED_MODULE_12__.LineStringOffsetClipperContext.createClipBetweenOffsets(points, leftOffset, rightOffset, z0, z1);
178890
+ return _internalContexts_LineStringOffsetClipperContext__WEBPACK_IMPORTED_MODULE_19__.LineStringOffsetClipperContext.createClipBetweenOffsets(points, leftOffset, rightOffset, z0, z1);
178791
178891
  }
178792
178892
  /** If data.length >= minLength threshold, push it to destination; if smaller drop it back to the cache. */
178793
178893
  static captureOrDrop(data, minLength, destination, cache) {
@@ -178977,7 +179077,7 @@ class ClipUtilities {
178977
179077
  */
178978
179078
  static doPolygonClipSequence(xyz, clippers, acceptedIn, acceptedOut, finalCandidates, inAction, outAction, finalFragmentAction, arrayCache) {
178979
179079
  if (arrayCache === undefined)
178980
- arrayCache = new _geometry3d_ReusableObjectCache__WEBPACK_IMPORTED_MODULE_14__.GrowableXYZArrayCache();
179080
+ arrayCache = new _geometry3d_ReusableObjectCache__WEBPACK_IMPORTED_MODULE_3__.GrowableXYZArrayCache();
178981
179081
  let candidates = [arrayCache.grabAndFill(xyz)];
178982
179082
  let nextCandidates = [];
178983
179083
  const intermediateIn = [];
@@ -179014,7 +179114,7 @@ class ClipUtilities {
179014
179114
  /** Pass polygon `xyz` through a sequence of PolygonClip steps with "parity" rules */
179015
179115
  static doPolygonClipParitySequence(xyz, clippers, acceptedIn, acceptedOut, arrayCache) {
179016
179116
  if (arrayCache === undefined)
179017
- arrayCache = new _geometry3d_ReusableObjectCache__WEBPACK_IMPORTED_MODULE_14__.GrowableXYZArrayCache();
179117
+ arrayCache = new _geometry3d_ReusableObjectCache__WEBPACK_IMPORTED_MODULE_3__.GrowableXYZArrayCache();
179018
179118
  let candidatesOut = [arrayCache.grabAndFill(xyz)];
179019
179119
  let candidatesIn = [];
179020
179120
  let nextCandidatesIn = [];
@@ -179066,22 +179166,22 @@ class ClipUtilities {
179066
179166
  */
179067
179167
  static createComplementaryClips(clipper) {
179068
179168
  const planes = clipper.planes;
179069
- const interval = _geometry3d_Range__WEBPACK_IMPORTED_MODULE_4__.Range1d.createNull();
179169
+ const interval = _geometry3d_Range__WEBPACK_IMPORTED_MODULE_13__.Range1d.createNull();
179070
179170
  const n = planes.length;
179071
179171
  const newClippers = [];
179072
179172
  for (const p of planes) {
179073
- const outerSet = _ConvexClipPlaneSet__WEBPACK_IMPORTED_MODULE_3__.ConvexClipPlaneSet.createEmpty();
179173
+ const outerSet = _ConvexClipPlaneSet__WEBPACK_IMPORTED_MODULE_12__.ConvexClipPlaneSet.createEmpty();
179074
179174
  outerSet.addPlaneToConvexSet(p.cloneNegated());
179075
179175
  newClippers.push(outerSet);
179076
179176
  }
179077
179177
  for (let i = 0; i < n; i++) {
179078
179178
  for (let j = i + 1; j < n; j++) {
179079
- const ray = _curve_CurveFactory__WEBPACK_IMPORTED_MODULE_15__.CurveFactory.planePlaneIntersectionRay(planes[i], planes[j]);
179179
+ const ray = _curve_CurveFactory__WEBPACK_IMPORTED_MODULE_21__.CurveFactory.planePlaneIntersectionRay(planes[i], planes[j]);
179080
179180
  if (ray) {
179081
179181
  if (clipper.hasIntersectionWithRay(ray, interval)) {
179082
179182
  // the normal-to-normal vector is bisector (or close to bisector?)
179083
179183
  const newNormal = planes[j].inwardNormalRef.minus(planes[i].inwardNormalRef);
179084
- const plane1 = _ClipPlane__WEBPACK_IMPORTED_MODULE_8__.ClipPlane.createNormalAndPoint(newNormal, ray.origin);
179184
+ const plane1 = _ClipPlane__WEBPACK_IMPORTED_MODULE_15__.ClipPlane.createNormalAndPoint(newNormal, ray.origin);
179085
179185
  if (plane1) {
179086
179186
  const plane2 = plane1.cloneNegated();
179087
179187
  newClippers[i].addPlaneToConvexSet(plane1);
@@ -179091,10 +179191,10 @@ class ClipUtilities {
179091
179191
  }
179092
179192
  }
179093
179193
  }
179094
- return _UnionOfConvexClipPlaneSets__WEBPACK_IMPORTED_MODULE_6__.UnionOfConvexClipPlaneSets.createConvexSets(newClippers);
179194
+ return _UnionOfConvexClipPlaneSets__WEBPACK_IMPORTED_MODULE_14__.UnionOfConvexClipPlaneSets.createConvexSets(newClippers);
179095
179195
  }
179096
179196
  }
179097
- ClipUtilities._selectIntervals01TestPoint = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_1__.Point3d.create();
179197
+ ClipUtilities._selectIntervals01TestPoint = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_10__.Point3d.create();
179098
179198
 
179099
179199
  function moveFragments(fragments, destination, arrayCache) {
179100
179200
  if (destination === undefined)
@@ -179754,6 +179854,7 @@ class ConvexClipPlaneSet {
179754
179854
  * Create a convex clip plane set that clips to `x0 <= x <= x1` and `y0 <= y <= y1`.
179755
179855
  * * Note that there is no test for the usual ordering `x0 <= x1` or `y0 <= y1`.
179756
179856
  * * if the usual ordering is violated, the convex set is an empty set.
179857
+ * * More details can be found at docs/learning/geometry/Clipping.md
179757
179858
  */
179758
179859
  static createXYBox(x0, y0, x1, y1, result) {
179759
179860
  result = result ? result : new ConvexClipPlaneSet();
@@ -180199,7 +180300,7 @@ class ConvexClipPlaneSet {
180199
180300
  * valid clip in a parity sense.
180200
180301
  * * The containingPlane parameter allows callers within ConvexClipPlane set to bypass planes known to contain
180201
180302
  * the polygon.
180202
- * @param input input polygon, usually convex.
180303
+ * @param input polygon, usually convex.
180203
180304
  * @param output output polygon
180204
180305
  * @param work work array.
180205
180306
  * @param containingPlane if this plane is found in the convex set, it is NOT applied.
@@ -180332,7 +180433,7 @@ class ConvexClipPlaneSet {
180332
180433
  }
180333
180434
  /**
180334
180435
  * Implement appendPolygonClip, as defined in interface PolygonClipper.
180335
- * @param xyz input polygon. This is not changed.
180436
+ * @param xyz convex polygon. This is not changed.
180336
180437
  * @param insideFragments Array to receive "inside" fragments. Each fragment is a GrowableXYZArray grabbed from
180337
180438
  * the cache. This is NOT cleared.
180338
180439
  * @param outsideFragments Array to receive "outside" fragments. Each fragment is a GrowableXYZArray grabbed from
@@ -180709,8 +180810,8 @@ class UnionOfConvexClipPlaneSets {
180709
180810
  }
180710
180811
  }
180711
180812
  /**
180712
- *
180713
- * @param xyz input polygon. This is not changed.
180813
+ * Implement appendPolygonClip, as defined in interface PolygonClipper.
180814
+ * @param xyz convex polygon. This is not changed.
180714
180815
  * @param insideFragments Array to receive "inside" fragments. Each fragment is a GrowableXYZArray grabbed from
180715
180816
  * the cache. This is NOT cleared.
180716
180817
  * @param outsideFragments Array to receive "outside" fragments. Each fragment is a GrowableXYZArray grabbed from
@@ -182742,7 +182843,8 @@ __webpack_require__.r(__webpack_exports__);
182742
182843
 
182743
182844
 
182744
182845
 
182745
- /** A Coordinate is a Point3d with supporting methods from the GeometryQuery abstraction.
182846
+ /**
182847
+ * A Coordinate is a Point3d with supporting methods from the GeometryQuery abstraction.
182746
182848
  * @public
182747
182849
  */
182748
182850
  class CoordinateXYZ extends _GeometryQuery__WEBPACK_IMPORTED_MODULE_0__.GeometryQuery {
@@ -182765,9 +182867,9 @@ class CoordinateXYZ extends _GeometryQuery__WEBPACK_IMPORTED_MODULE_0__.Geometry
182765
182867
  static createXYZ(x = 0, y = 0, z = 0) {
182766
182868
  return new CoordinateXYZ(_geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_1__.Point3d.create(x, y, z));
182767
182869
  }
182768
- /** return the range of the point */
182870
+ /** Return the range of the point */
182769
182871
  range() { return _geometry3d_Range__WEBPACK_IMPORTED_MODULE_2__.Range3d.create(this._xyz); }
182770
- /** extend `rangeToExtend` to include this point (optionally transformed) */
182872
+ /** Extend `rangeToExtend` to include this point (optionally transformed) */
182771
182873
  extendRange(rangeToExtend, transform) {
182772
182874
  if (transform)
182773
182875
  rangeToExtend.extendTransformedXYZ(transform, this._xyz.x, this._xyz.y, this._xyz.z);
@@ -182779,31 +182881,30 @@ class CoordinateXYZ extends _GeometryQuery__WEBPACK_IMPORTED_MODULE_0__.Geometry
182779
182881
  transform.multiplyPoint3d(this._xyz, this._xyz);
182780
182882
  return true;
182781
182883
  }
182782
- /** return a transformed clone.
182783
- */
182884
+ /** Return a transformed clone */
182784
182885
  cloneTransformed(transform) {
182785
182886
  const result = new CoordinateXYZ(this._xyz.clone());
182786
182887
  result.tryTransformInPlace(transform);
182787
182888
  return result;
182788
182889
  }
182789
- /** return a clone */
182890
+ /** Return a clone */
182790
182891
  clone() {
182791
182892
  return new CoordinateXYZ(this._xyz.clone());
182792
182893
  }
182793
- /** return GeometryQuery children for recursive queries.
182794
- *
182795
- * * leaf classes do not need to implement.
182894
+ /**
182895
+ * Return GeometryQuery children for recursive queries.
182896
+ * * Leaf classes do not need to implement.
182796
182897
  */
182797
- /** test if (other instanceof Coordinate). */
182898
+ /** Test if (other instanceof Coordinate). */
182798
182899
  isSameGeometryClass(other) {
182799
182900
  return other instanceof CoordinateXYZ;
182800
182901
  }
182801
- /** test for exact structure and nearly identical geometry.
182802
- *
182902
+ /**
182903
+ * Test for exact structure and nearly identical geometry.
182803
182904
  * * Leaf classes must implement !!!
182804
- * * base class implementation recurses through children.
182805
- * * base implementation is complete for classes with children and no properties.
182806
- * * classes with both children and properties must implement for properties, call super for children.
182905
+ * * Base class implementation recurses through children.
182906
+ * * Base implementation is complete for classes with children and no properties.
182907
+ * * Classes with both children and properties must implement for properties, call super for children.
182807
182908
  */
182808
182909
  isAlmostEqual(other) {
182809
182910
  return (other instanceof CoordinateXYZ) && this._xyz.isAlmostEqual(other._xyz);
@@ -183871,7 +183972,7 @@ class CurveChain extends CurveCollection {
183871
183972
  /**
183872
183973
  * Return the index where target is found in the array of children.
183873
183974
  * @param alsoSearchProxies whether to also check proxy curves of the children
183874
- */
183975
+ */
183875
183976
  childIndex(target, alsoSearchProxies) {
183876
183977
  for (let i = 0; i < this._curves.length; i++) {
183877
183978
  if (this._curves[i] === target)
@@ -184213,7 +184314,7 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
184213
184314
  resetGeometry(geometryB) {
184214
184315
  this.setGeometryB(geometryB);
184215
184316
  }
184216
- /** @returns whether the `fraction` is in [0,1] within tolerance */
184317
+ /** returns true if `fraction` is in [0,1] within tolerance */
184217
184318
  acceptFraction(fraction, fractionTol = 1.0e-12) {
184218
184319
  if (fraction < -fractionTol)
184219
184320
  return false;
@@ -184255,8 +184356,9 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
184255
184356
  cpB, fractionB0, fractionB1, reversed, intervalDetails) {
184256
184357
  let globalFractionA, globalFractionB;
184257
184358
  let globalFractionA1, globalFractionB1;
184258
- const isInterval = (intervalDetails !== undefined) &&
184259
- intervalDetails.detailA.hasFraction1 && intervalDetails.detailB.hasFraction1;
184359
+ const isInterval = intervalDetails !== undefined &&
184360
+ intervalDetails.detailA.hasFraction1 &&
184361
+ intervalDetails.detailB.hasFraction1;
184260
184362
  if (isInterval) {
184261
184363
  globalFractionA = _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.interpolate(fractionA0, intervalDetails.detailA.fraction, fractionA1);
184262
184364
  globalFractionB = _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.interpolate(fractionB0, intervalDetails.detailB.fraction, fractionB1);
@@ -184390,8 +184492,8 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
184390
184492
  * @param a1 end point of line a
184391
184493
  * @param b0 start point of line b
184392
184494
  * @param b1 end point of line b
184393
- * @param result point to receive fractional coordinates of intersection. result.x is fraction on line a.
184394
- * result.y is fraction on line b.
184495
+ * @param result point to receive fractional coordinates of intersection. result.x is fraction on line a. result.y
184496
+ * is fraction on line b.
184395
184497
  */
184396
184498
  static segmentSegmentBoundedApproach(a0, a1, b0, b1, minDistanceSquared) {
184397
184499
  const ux = a1.x - a0.x;
@@ -184429,6 +184531,17 @@ class CurveCurveCloseApproachXY extends _geometry3d_GeometryHandler__WEBPACK_IMP
184429
184531
  closestApproach = this.updatePointToSegmentDistance(1, a1, b0, b1, -_Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.dotProductXYXY(vx, vy, e10x, e10y) / vv, minDistanceSquared, closestApproach);
184430
184532
  return closestApproach;
184431
184533
  }
184534
+ /**
184535
+ * Return fractions of close approach within minDistance between two line segments( a0,a1) and (b0, b1)
184536
+ * * minDistance is assumed positive
184537
+ * Return the fractional (not xy) coordinates in result.x, result.y
184538
+ * @param a0 start point of line a
184539
+ * @param a1 end point of line a
184540
+ * @param b0 start point of line b
184541
+ * @param b1 end point of line b
184542
+ * @param result point to receive fractional coordinates of intersection. result.x is fraction on line a. result.y
184543
+ * is fraction on line b.
184544
+ */
184432
184545
  testAndRecordFractionalPairApproach(cpA, fA0, fA1, testProjectionOnA, cpB, fB0, fB1, testProjectionOnB, reversed) {
184433
184546
  const pointA0 = cpA.fractionToPoint(fA0);
184434
184547
  const pointA1 = cpA.fractionToPoint(fA1);
@@ -185017,7 +185130,8 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
185017
185130
  let globalFractionA, globalFractionB;
185018
185131
  let globalFractionA1, globalFractionB1;
185019
185132
  const isInterval = intervalDetails !== undefined &&
185020
- intervalDetails.detailA.hasFraction1 && intervalDetails.detailB.hasFraction1;
185133
+ intervalDetails.detailA.hasFraction1 &&
185134
+ intervalDetails.detailB.hasFraction1;
185021
185135
  if (isInterval) {
185022
185136
  globalFractionA = _Geometry__WEBPACK_IMPORTED_MODULE_3__.Geometry.interpolate(fractionA0, intervalDetails.detailA.fraction, fractionA1);
185023
185137
  globalFractionB = _Geometry__WEBPACK_IMPORTED_MODULE_3__.Geometry.interpolate(fractionB0, intervalDetails.detailB.fraction, fractionB1);
@@ -185091,8 +185205,8 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
185091
185205
  this.recordPointWithLocalFractions(overlap.detailA.fraction, cpA, fractionA0, fractionA1, overlap.detailB.fraction, cpB, fractionB0, fractionB1, reversed, overlap);
185092
185206
  }
185093
185207
  else if (_numerics_Polynomials__WEBPACK_IMPORTED_MODULE_6__.SmallSystem.lineSegment3dXYTransverseIntersectionUnbounded(pointA0, pointA1, pointB0, pointB1, uv)) {
185094
- if (this.acceptFractionOnLine(extendA0, uv.x, extendA1, pointA0, pointA1, this._coincidentGeometryContext.tolerance)
185095
- && this.acceptFractionOnLine(extendB0, uv.y, extendB1, pointB0, pointB1, this._coincidentGeometryContext.tolerance)) {
185208
+ if (this.acceptFractionOnLine(extendA0, uv.x, extendA1, pointA0, pointA1, this._coincidentGeometryContext.tolerance) &&
185209
+ this.acceptFractionOnLine(extendB0, uv.y, extendB1, pointB0, pointB1, this._coincidentGeometryContext.tolerance)) {
185096
185210
  this.recordPointWithLocalFractions(uv.x, cpA, fractionA0, fractionA1, uv.y, cpB, fractionB0, fractionB1, reversed);
185097
185211
  }
185098
185212
  }
@@ -185135,8 +185249,8 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
185135
185249
  }
185136
185250
  }
185137
185251
  // Caller accesses data from a linestring or segment and passes it here.
185138
- // (The line segment in question might be (a) a full line segment or (b) a fragment within a linestring. The fraction and extend parameters
185139
- // allow all combinations to be passed in)
185252
+ // (The line segment in question might be (a) a full line segment or (b) a fragment within a linestring.
185253
+ // The fraction and extend parameters allow all combinations to be passed in)
185140
185254
  dispatchSegmentArc(cpA, extendA0, pointA0, fractionA0, pointA1, fractionA1, extendA1, arc, extendB0, extendB1, reversed) {
185141
185255
  // Arc: X = C + cU + sV
185142
185256
  // Line: contains points A0,A1
@@ -185161,7 +185275,8 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
185161
185275
  const arcPoint = data.center.plus2Scaled(data.vector0, cosines.atUncheckedIndex(i), data.vector90, sines.atUncheckedIndex(i));
185162
185276
  const arcFraction = data.sweep.radiansToSignedPeriodicFraction(radians.atUncheckedIndex(i));
185163
185277
  const lineFraction = _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_6__.SmallSystem.lineSegment3dHXYClosestPointUnbounded(pointA0H, pointA1H, arcPoint);
185164
- if (lineFraction !== undefined && this.acceptFraction(extendA0, lineFraction, extendA1) &&
185278
+ if (lineFraction !== undefined &&
185279
+ this.acceptFraction(extendA0, lineFraction, extendA1) &&
185165
185280
  this.acceptFraction(extendB0, arcFraction, extendB1)) {
185166
185281
  this.recordPointWithLocalFractions(lineFraction, cpA, fractionA0, fractionA1, arcFraction, arc, 0, 1, reversed);
185167
185282
  }
@@ -185188,8 +185303,9 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
185188
185303
  const arcPoint = data.center.plus2Scaled(data.vector0, cosines.atUncheckedIndex(i), data.vector90, sines.atUncheckedIndex(i));
185189
185304
  const arcFraction = data.sweep.radiansToSignedPeriodicFraction(radians.atUncheckedIndex(i));
185190
185305
  const lineFraction = _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_6__.SmallSystem.lineSegment3dXYClosestPointUnbounded(pointA0Local, pointA1Local, arcPoint);
185191
- if (lineFraction !== undefined && this.acceptFraction(extendA0, lineFraction, extendA1, lineFractionTol)
185192
- && this.acceptFraction(extendB0, arcFraction, extendB1, arcFractionTol)) {
185306
+ if (lineFraction !== undefined &&
185307
+ this.acceptFraction(extendA0, lineFraction, extendA1, lineFractionTol) &&
185308
+ this.acceptFraction(extendB0, arcFraction, extendB1, arcFractionTol)) {
185193
185309
  this.recordPointWithLocalFractions(lineFraction, cpA, fractionA0, fractionA1, arcFraction, arc, 0, 1, reversed);
185194
185310
  }
185195
185311
  }
@@ -185514,8 +185630,7 @@ class CurveCurveIntersectXY extends _geometry3d_GeometryHandler__WEBPACK_IMPORTE
185514
185630
  const curvePoint = detail.point;
185515
185631
  const curvePointH = this.projectPoint(curvePoint);
185516
185632
  const lineFraction = _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_6__.SmallSystem.lineSegment3dHXYClosestPointUnbounded(pointA0H, pointA1H, curvePointH);
185517
- if (lineFraction !== undefined &&
185518
- this.acceptFraction(extendA0, lineFraction, extendA1) &&
185633
+ if (lineFraction !== undefined && this.acceptFraction(extendA0, lineFraction, extendA1) &&
185519
185634
  this.acceptFraction(extendB, fractionB, extendB)) {
185520
185635
  this.recordPointWithLocalFractions(lineFraction, cpA, fractionA0, fractionA1, fractionB, bcurve, 0, 1, reversed);
185521
185636
  }
@@ -191118,7 +191233,7 @@ class Path extends _CurveCollection__WEBPACK_IMPORTED_MODULE_0__.CurveChain {
191118
191233
  curve.emitStrokes(strokes, options);
191119
191234
  return Path.create(strokes);
191120
191235
  }
191121
- /** Return the boundary type (1) of a corresponding MicroStation CurveVector */
191236
+ /** Return the boundary type (1) of a corresponding MicroStation CurveVector */
191122
191237
  dgnBoundaryType() {
191123
191238
  return 1;
191124
191239
  }
@@ -194812,7 +194927,7 @@ class UnionRegion extends _CurveCollection__WEBPACK_IMPORTED_MODULE_0__.CurveCol
194812
194927
  * * Returns false if the `AnyCurve` child is not a region type.
194813
194928
  */
194814
194929
  tryAddChild(child) {
194815
- if (child && child instanceof _ParityRegion__WEBPACK_IMPORTED_MODULE_1__.ParityRegion || child instanceof _Loop__WEBPACK_IMPORTED_MODULE_2__.Loop) {
194930
+ if (child && (child instanceof _ParityRegion__WEBPACK_IMPORTED_MODULE_1__.ParityRegion || child instanceof _Loop__WEBPACK_IMPORTED_MODULE_2__.Loop)) {
194816
194931
  this._children.push(child);
194817
194932
  return true;
194818
194933
  }
@@ -202844,7 +202959,6 @@ __webpack_require__.r(__webpack_exports__);
202844
202959
 
202845
202960
 
202846
202961
 
202847
- /* eslint-disable @typescript-eslint/naming-convention, no-empty */
202848
202962
 
202849
202963
 
202850
202964
 
@@ -202852,6 +202966,7 @@ __webpack_require__.r(__webpack_exports__);
202852
202966
 
202853
202967
 
202854
202968
 
202969
+ /* eslint-disable @typescript-eslint/naming-convention, no-empty */
202855
202970
  /**
202856
202971
  * Helper class to accumulate points and vectors until there is enough data to define a coordinate system.
202857
202972
  *
@@ -202859,10 +202974,10 @@ __webpack_require__.r(__webpack_exports__);
202859
202974
  * * create the FrameBuilder and make calls to announcePoint and announceVector.
202860
202975
  * * the frame will be fully determined by an origin and two vectors.
202861
202976
  * * the first call to announcePoint will set the origin.
202862
- * * additional calls to announcePoint will produce announceVector call with the vector from the origin.
202863
- * * After each announcement, call getValidatedFrame(false)
202977
+ * * additional calls to announcePoint will produce announceVector call with the vector from the origin.
202978
+ * * after each announcement, call getValidatedFrame(false)
202864
202979
  * * getValidatedFrame will succeed when it has two independent vectors.
202865
- * * to build a left handed frame,
202980
+ * * To build a left handed frame,
202866
202981
  * * an origin and 3 independent vectors are required.
202867
202982
  * * announce as above, but query with getValidatedFrame (true).
202868
202983
  * * this will use the third vector to select right or left handed frame.
@@ -202877,11 +202992,18 @@ class FrameBuilder {
202877
202992
  }
202878
202993
  return false;
202879
202994
  }
202880
- /** clear all accumulated point and vector data */
202881
- clear() { this._origin = undefined; this._vector0 = undefined; this._vector1 = undefined; this._vector2 = undefined; }
202882
- constructor() { this.clear(); }
202883
- /** Try to assemble the data into a non-singular transform.
202884
- *
202995
+ /** Clear all accumulated point and vector data */
202996
+ clear() {
202997
+ this._origin = undefined;
202998
+ this._vector0 = undefined;
202999
+ this._vector1 = undefined;
203000
+ this._vector2 = undefined;
203001
+ }
203002
+ constructor() {
203003
+ this.clear();
203004
+ }
203005
+ /**
203006
+ * Try to assemble the data into a non-singular transform.
202885
203007
  * * If allowLeftHanded is false, vector0 and vector1 determine a right handed coordinate system.
202886
203008
  * * if allowLeftHanded is true, the z vector of the right handed system can be flipped to agree with vector2 direction.
202887
203009
  */
@@ -202916,8 +203038,11 @@ class FrameBuilder {
202916
203038
  }
202917
203039
  }
202918
203040
  /** Ask if there is a defined origin for the evolving frame */
202919
- get hasOrigin() { return this._origin !== undefined; }
202920
- /** Return the number of vectors saved. Because the save process checks numerics, this should be the rank of the system.
203041
+ get hasOrigin() {
203042
+ return this._origin !== undefined;
203043
+ }
203044
+ /**
203045
+ * Return the number of vectors saved. Because the save process checks numerics, this should be the rank of the system.
202921
203046
  */
202922
203047
  savedVectorCount() {
202923
203048
  if (!this._vector0)
@@ -202928,7 +203053,9 @@ class FrameBuilder {
202928
203053
  return 2;
202929
203054
  return 3;
202930
203055
  }
202931
- /** announce a new point. If this point is different from the origin, also compute and announce the vector from the origin.*/
203056
+ /**
203057
+ * Announce a new point. If this point is different from the origin, also compute and announce the vector from the origin.
203058
+ */
202932
203059
  announcePoint(point) {
202933
203060
  if (!this._origin) {
202934
203061
  this._origin = point.clone();
@@ -202939,7 +203066,7 @@ class FrameBuilder {
202939
203066
  return this.savedVectorCount();
202940
203067
  return this.announceVector(this._origin.vectorTo(point));
202941
203068
  }
202942
- /** announce a new vector. */
203069
+ /** Announce a new vector. */
202943
203070
  announceVector(vector) {
202944
203071
  if (vector.isAlmostZero)
202945
203072
  return this.savedVectorCount();
@@ -202966,8 +203093,9 @@ class FrameBuilder {
202966
203093
  // fall through if prior vectors are all there -- no need for the new one.
202967
203094
  return 3;
202968
203095
  }
202969
- /** Inspect the content of the data. Announce points and vectors. Return when savedVectorCount becomes
202970
- * sufficient for a coordinate system.
203096
+ /**
203097
+ * Inspect the content of the data. Announce points and vectors. Return when savedVectorCount becomes sufficient
203098
+ * for a coordinate system.
202971
203099
  */
202972
203100
  announce(data) {
202973
203101
  if (this.savedVectorCount() > 1)
@@ -203048,11 +203176,11 @@ class FrameBuilder {
203048
203176
  }
203049
203177
  }
203050
203178
  }
203051
- /** create a localToWorld frame for the given data.
203052
- *
203053
- * * origin is at first point
203054
- * * x axis in direction of first nonzero vector present or implied by the input.
203055
- * * y axis is perpendicular to x and contains (in positive side) the next vector present or implied by the input.
203179
+ /**
203180
+ * Create a localToWorld frame for the given data.
203181
+ * * origin is at first point.
203182
+ * * x axis in direction of first nonzero vector present or implied by the input.
203183
+ * * y axis is perpendicular to x and contains (in positive side) the next vector present or implied by the input.
203056
203184
  */
203057
203185
  static createRightHandedFrame(defaultUpVector, ...params) {
203058
203186
  const builder = new FrameBuilder();
@@ -203087,10 +203215,11 @@ class FrameBuilder {
203087
203215
  }
203088
203216
  return undefined;
203089
203217
  }
203090
- /** create a transform containing points or vectors in the given data.
203218
+ /**
203219
+ * Create a transform containing points or vectors in the given data.
203091
203220
  * * The xy columns of the transform contain the first points or vectors of the data.
203092
203221
  * * The z column is perpendicular to that xy plane.
203093
- * * The calculation favors the first points found. It does not try to get a "best" plane.
203222
+ * * The calculation favors the first points found. It does not try to get a "best" plane.
203094
203223
  */
203095
203224
  static createRightHandedLocalToWorld(...params) {
203096
203225
  const builder = new FrameBuilder();
@@ -203103,10 +203232,9 @@ class FrameBuilder {
203103
203232
  return undefined;
203104
203233
  }
203105
203234
  /**
203106
- * try to create a frame whose xy plane is through points.
203107
- *
203108
- * * 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
203109
- * point most distant from that line.
203235
+ * Try to create a frame whose xy plane is through points.
203236
+ * * If 3 or more distinct points are present, the x axis is from the first point to the most distant, and y
203237
+ * direction is toward the point most distant from that line.
203110
203238
  * @param points array of points
203111
203239
  */
203112
203240
  static createFrameToDistantPoints(points) {
@@ -203123,10 +203251,10 @@ class FrameBuilder {
203123
203251
  return undefined;
203124
203252
  }
203125
203253
  /**
203126
- * try to create a frame whose xy plane is through points, with the points appearing CCW in the local frame.
203254
+ * Try to create a frame whose xy plane is through points, with the points appearing CCW in the local frame.
203127
203255
  *
203128
- * * 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
203129
- * point most distant from that line.
203256
+ * * If 3 or more distinct points are present, the x axis is from the first point to the most distant, and y
203257
+ * direction is toward the point most distant from that line.
203130
203258
  * @param points array of points
203131
203259
  */
203132
203260
  static createFrameWithCCWPolygon(points) {
@@ -287359,7 +287487,7 @@ module.exports = JSON.parse('{"name":"axios","version":"0.21.4","description":"P
287359
287487
  /***/ ((module) => {
287360
287488
 
287361
287489
  "use strict";
287362
- 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"}}');
287490
+ 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"}}');
287363
287491
 
287364
287492
  /***/ })
287365
287493