@itwin/ecschema-rpcinterface-tests 4.1.0-dev.4 → 4.1.0-dev.6

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.
@@ -72792,9 +72792,13 @@ class AccuSnap {
72792
72792
  this.aSnapHits.removeCurrentHit();
72793
72793
  hit = await this.getAccuSnapDetail(this.aSnapHits, out);
72794
72794
  }
72795
+ if (!this._doSnapping)
72796
+ hit = undefined; // Snap no longer requested...
72795
72797
  }
72796
72798
  else if (this.isLocateEnabled) {
72797
72799
  hit = await this.findLocatableHit(ev, false, out); // get next AccuSnap path (or undefined)
72800
+ if (!this.isLocateEnabled)
72801
+ hit = undefined; // Hit no longer requested...
72798
72802
  }
72799
72803
  // set the current hit
72800
72804
  if (hit || this.currHit)
@@ -72815,9 +72819,13 @@ class AccuSnap {
72815
72819
  if (this._doSnapping) {
72816
72820
  out.snapStatus = this.findHits(ev);
72817
72821
  hit = (_ElementLocateManager__WEBPACK_IMPORTED_MODULE_2__.SnapStatus.Success !== out.snapStatus) ? undefined : await this.getAccuSnapDetail(this.aSnapHits, out);
72822
+ if (!this._doSnapping)
72823
+ hit = undefined; // Snap no longer requested...
72818
72824
  }
72819
72825
  else if (this.isLocateEnabled) {
72820
72826
  hit = await this.findLocatableHit(ev, true, out);
72827
+ if (!this.isLocateEnabled)
72828
+ hit = undefined; // Hit no longer requested...
72821
72829
  }
72822
72830
  }
72823
72831
  // set the current hit and display the sprite (based on snap's KeypointType)
@@ -178216,58 +178224,61 @@ __webpack_require__.r(__webpack_exports__);
178216
178224
 
178217
178225
  /**
178218
178226
  * Circular or elliptic arc.
178219
- *
178220
178227
  * * The angle to point equation is:
178221
- *
178222
- * * `X = center + cos(theta) * vector0 + sin(theta) * vector90`
178228
+ * * `X = center + cos(theta) * vector0 + sin(theta) * vector90`
178223
178229
  * * When the two vectors are perpendicular and have equal length, it is a true circle.
178224
178230
  * * Non-perpendicular vectors are always elliptic.
178225
- * * vectors of unequal length are always elliptic.
178231
+ * * Vectors of unequal length are always elliptic.
178226
178232
  * * To create an ellipse in the common "major and minor axis" form of an ellipse:
178227
178233
  * ** vector0 is the vector from the center to the major axis extreme.
178228
178234
  * ** vector90 is the vector from the center to the minor axis extreme.
178229
- * ** note the constructing the vectors to the extreme points makes them perpendicular.
178230
- * * The method toScaledMatrix3d () can be called to convert the unrestricted vector0,vector90 to perpendicular form.
178231
- * * The unrestricted form is much easier to work with for common calculations -- stroking, projection to 2d, intersection with plane.
178235
+ * ** note that constructing the vectors to the extreme points makes them perpendicular.
178236
+ * * The method toScaledMatrix3d() can be called to convert the unrestricted vector0,vector90 to perpendicular form.
178237
+ * * The unrestricted form is much easier to work with for common calculations -- stroking, projection to 2d,
178238
+ * intersection with plane.
178232
178239
  * @public
178233
178240
  */
178234
178241
  class Arc3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePrimitive {
178235
- /**
178236
- * Test if this and other are both instances of Arc3d.
178237
- */
178238
- isSameGeometryClass(other) { return other instanceof Arc3d; }
178239
- /**
178240
- * read property for (clone of) center
178241
- */
178242
- get center() { return this._center.clone(); }
178243
- /**
178244
- * read property for (clone of) vector0
178245
- */
178246
- get vector0() { return this._matrix.columnX(); }
178247
- /**
178248
- * read property for (clone of) vector90
178249
- */
178250
- get vector90() { return this._matrix.columnY(); }
178251
- /**
178252
- * read property for (clone of) plane normal, with arbitrary length.
178253
- */
178254
- get perpendicularVector() { return this._matrix.columnZ(); }
178255
- /**
178256
- * read property for (clone of!) matrix of vector0, vector90, unit normal
178257
- */
178258
- matrixClone() { return this._matrix.clone(); }
178259
- /**
178260
- * read property for (reference to !!) matrix of vector0, vector90, unit normal
178261
- */
178262
- get matrixRef() { return this._matrix; }
178242
+ /** Test if this and other are both instances of Arc3d. */
178243
+ isSameGeometryClass(other) {
178244
+ return other instanceof Arc3d;
178245
+ }
178246
+ /** Read property for (clone of) center */
178247
+ get center() {
178248
+ return this._center.clone();
178249
+ }
178250
+ /** Read property for (clone of) vector0 */
178251
+ get vector0() {
178252
+ return this._matrix.columnX();
178253
+ }
178254
+ /** Read property for (clone of) vector90 */
178255
+ get vector90() {
178256
+ return this._matrix.columnY();
178257
+ }
178258
+ /** Read property for (clone of) plane normal, with arbitrary length. */
178259
+ get perpendicularVector() {
178260
+ return this._matrix.columnZ();
178261
+ }
178262
+ /** Read property for (clone of) matrix of vector0, vector90, unit normal */
178263
+ matrixClone() {
178264
+ return this._matrix.clone();
178265
+ }
178266
+ /** Read property for (reference to) matrix of vector0, vector90, unit normal */
178267
+ get matrixRef() {
178268
+ return this._matrix;
178269
+ }
178263
178270
  /** Sweep of the angle. */
178264
- get sweep() { return this._sweep; }
178265
- set sweep(value) { this._sweep.setFrom(value); }
178266
- /**
178267
- * An Arc3d extends along its complete elliptic arc
178268
- */
178269
- get isExtensibleFractionSpace() { return true; }
178270
- // constructor copies the pointers !!!
178271
+ get sweep() {
178272
+ return this._sweep;
178273
+ }
178274
+ set sweep(value) {
178275
+ this._sweep.setFrom(value);
178276
+ }
178277
+ /** An Arc3d extends along its complete elliptic arc */
178278
+ get isExtensibleFractionSpace() {
178279
+ return true;
178280
+ }
178281
+ // constructor copies the pointers
178271
178282
  constructor(center, matrix, sweep) {
178272
178283
  super();
178273
178284
  /** String name for schema properties */
@@ -178277,7 +178288,7 @@ class Arc3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePrimitive
178277
178288
  this._sweep = sweep;
178278
178289
  }
178279
178290
  /**
178280
- * Return a clone of the arc, with transform applied
178291
+ * Return a clone of the arc, with transform applied
178281
178292
  * @param transform
178282
178293
  */
178283
178294
  cloneTransformed(transform) {
@@ -178305,9 +178316,7 @@ class Arc3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePrimitive
178305
178316
  set(center, matrix, sweep) {
178306
178317
  this.setRefs(center.clone(), matrix.clone(), sweep ? sweep.clone() : _geometry3d_AngleSweep__WEBPACK_IMPORTED_MODULE_1__.AngleSweep.create360());
178307
178318
  }
178308
- /**
178309
- * Copy center, matrix, and sweep from other Arc3d.
178310
- */
178319
+ /** Copy center, matrix, and sweep from other Arc3d */
178311
178320
  setFrom(other) {
178312
178321
  this._center.setFrom(other._center);
178313
178322
  this._matrix.setFrom(other._matrix);
@@ -178365,11 +178374,12 @@ class Arc3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePrimitive
178365
178374
  * @param result optional preallocated result
178366
178375
  */
178367
178376
  static create(center, vector0, vector90, sweep, result) {
178368
- const normal = vector0.unitCrossProductWithDefault(vector90, 0, 0, 0); // normal will be 000 for degenerate case ! !!
178377
+ const normal = vector0.unitCrossProductWithDefault(vector90, 0, 0, 0); // normal will be 000 for degenerate case
178369
178378
  const matrix = _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_2__.Matrix3d.createColumns(vector0, vector90, normal);
178370
178379
  return Arc3d.createRefs(center !== undefined ? center.clone() : _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_3__.Point3d.create(0, 0, 0), matrix, sweep ? sweep.clone() : _geometry3d_AngleSweep__WEBPACK_IMPORTED_MODULE_1__.AngleSweep.create360(), result);
178371
178380
  }
178372
- /** Return a clone of this arc, projected to given z value.
178381
+ /**
178382
+ * Return a clone of this arc, projected to given z value.
178373
178383
  * * If `z` is omitted, the clone is at the z of the center.
178374
178384
  * * Note that projection to fixed z can change circle into ellipse (and (rarely) ellipse to circle)
178375
178385
  */
@@ -178379,7 +178389,8 @@ class Arc3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePrimitive
178379
178389
  return Arc3d.createXYZXYZXYZ(this._center.x, this._center.y, this._center.z, this._matrix.coffs[0], this._matrix.coffs[3], 0, this._matrix.coffs[1], this._matrix.coffs[4], 0, this._sweep);
178380
178390
  }
178381
178391
  /**
178382
- * Create an arc by center (cx,cy,xz) with vectors (ux,uy,uz) and (vx,vy,vz) to points at 0 and 90 degrees in parameter space.
178392
+ * Create an arc by center (cx,cy,xz) with vectors (ux,uy,uz) and (vx,vy,vz) to points at 0 and 90 degrees in
178393
+ * parameter space.
178383
178394
  * @param result optional preallocated result
178384
178395
  */
178385
178396
  static createXYZXYZXYZ(cx, cy, cz, ux, uy, uz, vx, vy, vz, sweep, result) {
@@ -178398,7 +178409,8 @@ class Arc3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePrimitive
178398
178409
  const largeAxis = _Geometry__WEBPACK_IMPORTED_MODULE_4__.Geometry.maxXY(magX, magY);
178399
178410
  return jacobian / (largeAxis * largeAxis);
178400
178411
  }
178401
- /** Create a circular arc defined by start point, any intermediate point, and end point.
178412
+ /**
178413
+ * Create a circular arc defined by start point, any intermediate point, and end point.
178402
178414
  * If the points are colinear, assemble them into a linestring.
178403
178415
  */
178404
178416
  static createCircularStartMiddleEnd(pointA, pointB, pointC, result) {
@@ -178461,7 +178473,8 @@ class Arc3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePrimitive
178461
178473
  result.direction.scaleInPlace(this._sweep.sweepRadians);
178462
178474
  return result;
178463
178475
  }
178464
- /** Construct a plane with
178476
+ /**
178477
+ * Construct a plane with
178465
178478
  * * origin at the fractional position along the arc
178466
178479
  * * x axis is the first derivative, i.e. tangent along the arc
178467
178480
  * * y axis is the second derivative, i.e. in the plane and on the center side of the tangent.
@@ -178539,12 +178552,16 @@ class Arc3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePrimitive
178539
178552
  * Return the start point tof the arc.
178540
178553
  * @param result optional preallocated result
178541
178554
  */
178542
- startPoint(result) { return this.fractionToPoint(0.0, result); }
178555
+ startPoint(result) {
178556
+ return this.fractionToPoint(0.0, result);
178557
+ }
178543
178558
  /**
178544
178559
  * Return the end point tof the arc.
178545
178560
  * @param result optional preallocated result
178546
178561
  */
178547
- endPoint(result) { return this.fractionToPoint(1.0, result); }
178562
+ endPoint(result) {
178563
+ return this.fractionToPoint(1.0, result);
178564
+ }
178548
178565
  /** * If this is a circular arc, return the simple length derived from radius and sweep.
178549
178566
  * * Otherwise (i.e. if this elliptical) fall through to CurvePrimitive base implementation which
178550
178567
  * Uses quadrature.
@@ -178552,7 +178569,8 @@ class Arc3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePrimitive
178552
178569
  curveLength() {
178553
178570
  return this.curveLengthBetweenFractions(0, 1);
178554
178571
  }
178555
- /** * If this is a circular arc, return the simple length derived from radius and sweep.
178572
+ /**
178573
+ * * If this is a circular arc, return the simple length derived from radius and sweep.
178556
178574
  * * Otherwise (i.e. if this elliptical) fall through CurvePrimitive integrator.
178557
178575
  */
178558
178576
  curveLengthBetweenFractions(fraction0, fraction1) {
@@ -178580,9 +178598,9 @@ class Arc3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePrimitive
178580
178598
  /**
178581
178599
  * Return an approximate (but easy to compute) arc length.
178582
178600
  * The estimate is:
178583
- * * Form 8 chords on full circle, proportionally fewer for partials. (But 2 extras if less than half circle.)
178584
- * * sum the chord lengths
178585
- * * For a circle, we know this crude approximation has to be increased by a factor (theta/(2 sin (theta/2)))
178601
+ * * Form 8 chords on full circle, proportionally fewer for partials (but 2 extras if less than half circle).
178602
+ * * Sum the chord lengths.
178603
+ * * For a circle, we know this crude approximation has to be increased by a factor (theta/(2*sin(theta/2))).
178586
178604
  * * Apply that factor.
178587
178605
  * * Experiments confirm that this is within 3 percent for a variety of eccentricities and arc sweeps.
178588
178606
  */
@@ -178647,7 +178665,8 @@ class Arc3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePrimitive
178647
178665
  /**
178648
178666
  * Return details of the closest point on the arc, optionally extending to full ellipse.
178649
178667
  * @param spacePoint search for point closest to this point.
178650
- * @param extend if true, consider projections to the complete ellipse. If false, consider only endpoints and projections within the arc sweep.
178668
+ * @param extend if true, consider projections to the complete ellipse. If false, consider only endpoints and
178669
+ * projections within the arc sweep.
178651
178670
  * @param result optional preallocated result.
178652
178671
  */
178653
178672
  closestPoint(spacePoint, extend, result) {
@@ -178689,8 +178708,11 @@ class Arc3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePrimitive
178689
178708
  return result;
178690
178709
  }
178691
178710
  /** Reverse the sweep of the arc. */
178692
- reverseInPlace() { this._sweep.reverseInPlace(); }
178693
- /** apply a transform to the arc basis vectors.
178711
+ reverseInPlace() {
178712
+ this._sweep.reverseInPlace();
178713
+ }
178714
+ /**
178715
+ * Apply a transform to the arc basis vectors.
178694
178716
  * * nonuniform (i.e. skewing) transforms are allowed.
178695
178717
  * * The transformed vector0 and vector90 are NOT squared up as major minor axes. (This is a good feature!!)
178696
178718
  */
@@ -178712,18 +178734,14 @@ class Arc3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePrimitive
178712
178734
  && _Geometry__WEBPACK_IMPORTED_MODULE_4__.Geometry.isSmallMetricDistance(this._matrix.dotColumnX(normal))
178713
178735
  && _Geometry__WEBPACK_IMPORTED_MODULE_4__.Geometry.isSmallMetricDistance(this._matrix.dotColumnY(normal));
178714
178736
  }
178715
- /**
178716
- * Return true if the vector0 and vector90 are of equal length and perpendicular.
178717
- */
178737
+ /** Return true if the vector0 and vector90 are of equal length and perpendicular. */
178718
178738
  get isCircular() {
178719
178739
  const axx = this._matrix.columnXMagnitudeSquared();
178720
178740
  const ayy = this._matrix.columnYMagnitudeSquared();
178721
178741
  const axy = this._matrix.columnXDotColumnY();
178722
178742
  return _geometry3d_Angle__WEBPACK_IMPORTED_MODULE_6__.Angle.isPerpendicularDotSet(axx, ayy, axy) && _Geometry__WEBPACK_IMPORTED_MODULE_4__.Geometry.isSameCoordinateSquared(axx, ayy);
178723
178743
  }
178724
- /**
178725
- * Return true if the vector0 and vector90 are of equal length and perpendicular.
178726
- */
178744
+ /** Return true if the vector0 and vector90 are of equal length and perpendicular. */
178727
178745
  circularRadiusXY() {
178728
178746
  const ux = this._matrix.at(0, 0);
178729
178747
  const uy = this._matrix.at(1, 0);
@@ -178740,9 +178758,11 @@ class Arc3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePrimitive
178740
178758
  return this.isCircular ? this._matrix.columnXMagnitude() : undefined;
178741
178759
  }
178742
178760
  /** Return the larger of the two defining vectors. */
178743
- maxVectorLength() { return Math.max(this._matrix.columnXMagnitude(), this._matrix.columnYMagnitude()); }
178761
+ maxVectorLength() {
178762
+ return Math.max(this._matrix.columnXMagnitude(), this._matrix.columnYMagnitude());
178763
+ }
178744
178764
  /**
178745
- * compute intersections with a plane.
178765
+ * Compute intersections with a plane.
178746
178766
  * @param plane plane to intersect
178747
178767
  * @param result array of locations on the curve.
178748
178768
  */
@@ -178806,9 +178826,9 @@ class Arc3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePrimitive
178806
178826
  range.extend(highPoint);
178807
178827
  }
178808
178828
  /**
178809
- * Returns a (high accuracy) range of the curve between fractional positions
178810
- * * Default implementation returns teh range of the curve from clonePartialCurve
178811
- */
178829
+ * Returns a (high accuracy) range of the curve between fractional positions
178830
+ * * Default implementation returns teh range of the curve from clonePartialCurve
178831
+ */
178812
178832
  rangeBetweenFractions(fraction0, fraction1, transform) {
178813
178833
  const sweep = _geometry3d_AngleSweep__WEBPACK_IMPORTED_MODULE_1__.AngleSweep.createStartEndRadians(this.sweep.fractionToRadians(fraction0), this.sweep.fractionToRadians(fraction1));
178814
178834
  const range = _geometry3d_Range__WEBPACK_IMPORTED_MODULE_12__.Range3d.create();
@@ -178831,9 +178851,7 @@ class Arc3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePrimitive
178831
178851
  result.set(plane.altitude(this._center), plane.velocityXYZ(this._matrix.coffs[0], this._matrix.coffs[3], this._matrix.coffs[6]), plane.velocityXYZ(this._matrix.coffs[1], this._matrix.coffs[4], this._matrix.coffs[7]));
178832
178852
  return result;
178833
178853
  }
178834
- /**
178835
- * Create a new arc which is a unit circle centered at the origin.
178836
- */
178854
+ /** Create a new arc which is a unit circle centered at the origin. */
178837
178855
  static createUnitCircle() {
178838
178856
  return Arc3d.createRefs(_geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_3__.Point3d.create(0, 0, 0), _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_2__.Matrix3d.createIdentity(), _geometry3d_AngleSweep__WEBPACK_IMPORTED_MODULE_1__.AngleSweep.create360());
178839
178857
  }
@@ -178864,8 +178882,7 @@ class Arc3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePrimitive
178864
178882
  setVector0Vector90(vector0, vector90) {
178865
178883
  this._matrix.setColumns(vector0, vector90, vector0.unitCrossProductWithDefault(vector90, 0, 0, 0));
178866
178884
  }
178867
- /** Return the arc definition with rigid matrix form with axis radii.
178868
- */
178885
+ /** Return the arc definition with rigid matrix form with axis radii */
178869
178886
  toScaledMatrix3d() {
178870
178887
  const angleData = _geometry3d_Angle__WEBPACK_IMPORTED_MODULE_6__.Angle.dotProductsToHalfAngleTrigValues(this._matrix.columnXMagnitudeSquared(), this._matrix.columnYMagnitudeSquared(), this._matrix.columnXDotColumnY(), true);
178871
178888
  const vector0A = this._matrix.multiplyXY(angleData.c, angleData.s);
@@ -178879,8 +178896,7 @@ class Arc3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePrimitive
178879
178896
  sweep: this.sweep.cloneMinusRadians(angleData.radians),
178880
178897
  };
178881
178898
  }
178882
- /** Return the arc definition with center, two vectors, and angle sweep;
178883
- */
178899
+ /** Return the arc definition with center, two vectors, and angle sweep; */
178884
178900
  toVectors() {
178885
178901
  return {
178886
178902
  center: this.center,
@@ -178889,8 +178905,7 @@ class Arc3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePrimitive
178889
178905
  sweep: this.sweep,
178890
178906
  };
178891
178907
  }
178892
- /** Return the arc definition with center, two vectors, and angle sweep, optionally transformed.
178893
- */
178908
+ /** Return the arc definition with center, two vectors, and angle sweep, optionally transformed. */
178894
178909
  toTransformedVectors(transform) {
178895
178910
  return transform ? {
178896
178911
  center: transform.multiplyPoint3d(this._center),
@@ -178905,8 +178920,7 @@ class Arc3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePrimitive
178905
178920
  sweep: this.sweep,
178906
178921
  };
178907
178922
  }
178908
- /** Return the arc definition with center, two vectors, and angle sweep, transformed to 4d points.
178909
- */
178923
+ /** Return the arc definition with center, two vectors, and angle sweep, transformed to 4d points. */
178910
178924
  toTransformedPoint4d(matrix) {
178911
178925
  return {
178912
178926
  center: matrix.multiplyPoint3d(this._center, 1.0),
@@ -178950,9 +178964,7 @@ class Arc3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePrimitive
178950
178964
  vector90: this._matrix.columnY().toJSON(),
178951
178965
  };
178952
178966
  }
178953
- /**
178954
- * Test if this arc is almost equal to another GeometryQuery object
178955
- */
178967
+ /** Test if this arc is almost equal to another GeometryQuery object */
178956
178968
  isAlmostEqual(otherGeometry) {
178957
178969
  if (otherGeometry instanceof Arc3d) {
178958
178970
  const other = otherGeometry;
@@ -178975,7 +178987,7 @@ class Arc3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePrimitive
178975
178987
  handler.endCurvePrimitive(this);
178976
178988
  }
178977
178989
  /**
178978
- * return the stroke count required for given options.
178990
+ * Return the stroke count required for given options.
178979
178991
  * @param options StrokeOptions that determine count
178980
178992
  */
178981
178993
  computeStrokeCountForOptions(options) {
@@ -178993,7 +179005,8 @@ class Arc3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePrimitive
178993
179005
  dispatchToGeometryHandler(handler) {
178994
179006
  return handler.handleArc3d(this);
178995
179007
  }
178996
- /** Return (if possible) an arc which is a portion of this curve.
179008
+ /**
179009
+ * Return (if possible) an arc which is a portion of this curve.
178997
179010
  * @param fractionA [in] start fraction
178998
179011
  * @param fractionB [in] end fraction
178999
179012
  */
@@ -179007,8 +179020,10 @@ class Arc3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePrimitive
179007
179020
  arcB.sweep.setStartEndRadians(this.sweep.fractionToRadians(fractionA), this.sweep.fractionToRadians(fractionB));
179008
179021
  return arcB;
179009
179022
  }
179010
- /** Return an arc whose basis vectors are rotated by given angle within the current basis space.
179011
- * * the result arc will have its zero-degree point (new `vector0`) at the current `vector0 * cos(theta) + vector90 * sin(theta)`
179023
+ /**
179024
+ * Return an arc whose basis vectors are rotated by given angle within the current basis space.
179025
+ * * the result arc will have its zero-degree point (new `vector0`) at the current
179026
+ * `vector0 * cos(theta) + vector90 * sin(theta)`
179012
179027
  * * the result sweep is adjusted so all fractional coordinates (e.g. start and end) evaluate to the same xyz.
179013
179028
  * * Specifically, theta is subtracted from the original start and end angles.
179014
179029
  * @param theta the angle (in the input arc space) which is to become the 0-degree point in the new arc.
@@ -179025,7 +179040,8 @@ class Arc3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePrimitive
179025
179040
  /**
179026
179041
  * Find intervals of this CurvePrimitive that are interior to a clipper
179027
179042
  * @param clipper clip structure (e.g.clip planes)
179028
- * @param announce(optional) function to be called announcing fractional intervals" ` announce(fraction0, fraction1, curvePrimitive)`
179043
+ * @param announce(optional) function to be called announcing fractional intervals"
179044
+ * ` announce(fraction0, fraction1, curvePrimitive)`
179029
179045
  * @returns true if any "in" segments are announced.
179030
179046
  */
179031
179047
  announceClipIntervals(clipper, announce) {
@@ -179046,8 +179062,10 @@ class Arc3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePrimitive
179046
179062
  * * Return the arc along with the fractional positions of the tangency points.
179047
179063
  * * In the returned object:
179048
179064
  * * `arc` is the (bounded) arc
179049
- * * `fraction10` is the tangency point's position as an interpolating fraction of the line segment from `point1` (backwards) to `point0`
179050
- * * `fraction12` is the tangency point's position as an interpolating fraction of the line segment from `point1` (forward) to `point2`
179065
+ * * `fraction10` is the tangency point's position as an interpolating fraction of the line segment from
179066
+ * `point1` (backwards) to `point0`
179067
+ * * `fraction12` is the tangency point's position as an interpolating fraction of the line segment from
179068
+ * `point1` (forward) to `point2`
179051
179069
  * * `point` is the `point1` input.
179052
179070
  * * If unable to construct the arc:
179053
179071
  * * `point` is the `point1` input.
@@ -179121,7 +179139,9 @@ class Arc3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePrimitive
179121
179139
  const r0new = r0 - sign * options.leftOffsetDistance;
179122
179140
  const r90 = this.isCircular ? r0 : arcXY.matrixRef.columnYMagnitude();
179123
179141
  const r90new = this.isCircular ? r0new : r90 - sign * options.leftOffsetDistance;
179124
- if (!_Geometry__WEBPACK_IMPORTED_MODULE_4__.Geometry.isSmallMetricDistance(r0new) && (r0 * r0new > 0.0) && (this.isCircular || (!_Geometry__WEBPACK_IMPORTED_MODULE_4__.Geometry.isSmallMetricDistance(r90new) && (r90 * r90new > 0.0)))) {
179142
+ if (!_Geometry__WEBPACK_IMPORTED_MODULE_4__.Geometry.isSmallMetricDistance(r0new)
179143
+ && (r0 * r0new > 0.0)
179144
+ && (this.isCircular || (!_Geometry__WEBPACK_IMPORTED_MODULE_4__.Geometry.isSmallMetricDistance(r90new) && (r90 * r90new > 0.0)))) {
179125
179145
  const factor0 = r0new / r0;
179126
179146
  const factor90 = this.isCircular ? factor0 : r90new / r90;
179127
179147
  const matrix = arcXY.matrixClone();
@@ -179137,7 +179157,8 @@ class Arc3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePrimitive
179137
179157
  this.emitStrokableParts(handler, options.strokeOptions);
179138
179158
  return handler.claimResult();
179139
179159
  }
179140
- /** Project instance geometry (via dispatch) onto the given ray, and return the extreme fractional parameters of projection.
179160
+ /**
179161
+ * Project instance geometry (via dispatch) onto the given ray, and return the extreme fractional parameters of projection.
179141
179162
  * @param ray ray onto which the instance is projected. A `Vector3d` is treated as a `Ray3d` with zero origin.
179142
179163
  * @param lowHigh optional receiver for output
179143
179164
  * @returns range of fractional projection parameters onto the ray, where 0.0 is start of the ray and 1.0 is the end of the ray.
@@ -179151,9 +179172,9 @@ Arc3d._workPointB = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_3__.Poi
179151
179172
  Arc3d._workPointC = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_3__.Point3d.create();
179152
179173
  Arc3d._workVectorU = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_3__.Vector3d.create();
179153
179174
  Arc3d._workVectorV = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_3__.Vector3d.create();
179154
- // !! misspelled Gauss in the published static !!! Declare it ok.
179175
+ // !! misspelled Gauss in the published static !! Declare it ok.
179155
179176
  // cspell::word Guass
179156
- /** Gauss point quadrature count for evaluating curve length. (The number of intervals is adjusted to the arc sweep) */
179177
+ /** Gauss point quadrature count for evaluating curve length. (The number of intervals is adjusted to the arc sweep) */
179157
179178
  Arc3d.quadratureGuassCount = 5;
179158
179179
  /** In quadrature for arc length, use this interval (divided by quickEccentricity) */
179159
179180
  Arc3d.quadratureIntervalAngleDegrees = 10.0;
@@ -180349,7 +180370,8 @@ __webpack_require__.r(__webpack_exports__);
180349
180370
 
180350
180371
  /**
180351
180372
  * A `CurveCollection` is an abstract (non-instantiable) class for various sets of curves with particular structures:
180352
- * - `CurveChain` is a (non-instantiable) intermediate class for a sequence of `CurvePrimitive ` joining head-to-tail. The two instantiable forms of `CurveChain` are
180373
+ * - `CurveChain` is a (non-instantiable) intermediate class for a sequence of `CurvePrimitive` joining head-to-tail.
180374
+ * The two instantiable forms of `CurveChain` are
180353
180375
  * - `Path` - A chain not required to close, and not enclosing a planar area
180354
180376
  * - `Loop` - A chain required to close from last to first so that a planar area is enclosed.
180355
180377
  * - `ParityRegion` -- a collection of coplanar `Loop`s, with "in/out" classification by parity rules
@@ -180365,11 +180387,13 @@ class CurveCollection extends _GeometryQuery__WEBPACK_IMPORTED_MODULE_0__.Geomet
180365
180387
  /** String name for schema properties */
180366
180388
  this.geometryCategory = "curveCollection";
180367
180389
  /* eslint-disable @typescript-eslint/naming-convention, no-empty */
180368
- /** Flag for inner loop status. Only used by `Loop`. */
180390
+ /** Flag for inner loop status. Only used by `Loop`. */
180369
180391
  this.isInner = false;
180370
180392
  }
180371
180393
  /** Return the sum of the lengths of all contained curves. */
180372
- sumLengths() { return _internalContexts_SumLengthsContext__WEBPACK_IMPORTED_MODULE_1__.SumLengthsContext.sumLengths(this); }
180394
+ sumLengths() {
180395
+ return _internalContexts_SumLengthsContext__WEBPACK_IMPORTED_MODULE_1__.SumLengthsContext.sumLengths(this);
180396
+ }
180373
180397
  /** Return the closest point on the contained curves */
180374
180398
  closestPoint(spacePoint) {
180375
180399
  let detailA;
@@ -180387,17 +180411,24 @@ class CurveCollection extends _GeometryQuery__WEBPACK_IMPORTED_MODULE_0__.Geomet
180387
180411
  }
180388
180412
  return detailA;
180389
180413
  }
180390
- /** return the max gap between adjacent primitives in Path and Loop collections.
180391
- *
180414
+ /**
180415
+ * Return the max gap between adjacent primitives in Path and Loop collections.
180392
180416
  * * In a Path, gaps are computed between consecutive primitives.
180393
180417
  * * In a Loop, gaps are computed between consecutive primitives and between last and first.
180394
- * * gaps are NOT computed between consecutive CurvePrimitives in "unstructured" collections. The type is "unstructured" so gaps should not be semantically meaningful.
180418
+ * * gaps are NOT computed between consecutive CurvePrimitives in "unstructured" collections. The type is
180419
+ * "unstructured" so gaps should not be semantically meaningful.
180395
180420
  */
180396
- maxGap() { return _internalContexts_GapSearchContext__WEBPACK_IMPORTED_MODULE_4__.GapSearchContext.maxGap(this); }
180397
- /** return true if the curve collection has any primitives other than LineSegment3d and LineString3d */
180398
- checkForNonLinearPrimitives() { return _internalContexts_CountLinearPartsSearchContext__WEBPACK_IMPORTED_MODULE_5__.CountLinearPartsSearchContext.hasNonLinearPrimitives(this); }
180421
+ maxGap() {
180422
+ return _internalContexts_GapSearchContext__WEBPACK_IMPORTED_MODULE_4__.GapSearchContext.maxGap(this);
180423
+ }
180424
+ /** Return true if the curve collection has any primitives other than LineSegment3d and LineString3d */
180425
+ checkForNonLinearPrimitives() {
180426
+ return _internalContexts_CountLinearPartsSearchContext__WEBPACK_IMPORTED_MODULE_5__.CountLinearPartsSearchContext.hasNonLinearPrimitives(this);
180427
+ }
180399
180428
  /** Apply transform recursively to children */
180400
- tryTransformInPlace(transform) { return _internalContexts_TransformInPlaceContext__WEBPACK_IMPORTED_MODULE_6__.TransformInPlaceContext.tryTransformInPlace(this, transform); }
180429
+ tryTransformInPlace(transform) {
180430
+ return _internalContexts_TransformInPlaceContext__WEBPACK_IMPORTED_MODULE_6__.TransformInPlaceContext.tryTransformInPlace(this, transform);
180431
+ }
180401
180432
  /** Return a deep copy. */
180402
180433
  clone() {
180403
180434
  return _internalContexts_CloneCurvesContext__WEBPACK_IMPORTED_MODULE_7__.CloneCurvesContext.clone(this);
@@ -180423,15 +180454,18 @@ class CurveCollection extends _GeometryQuery__WEBPACK_IMPORTED_MODULE_0__.Geomet
180423
180454
  }
180424
180455
  /**
180425
180456
  * Return an array containing only the curve primitives.
180426
- * @param collectorArray optional array to receive primitives. If present, new primitives are ADDED (without clearing the array.)
180427
- * @param smallestPossiblePrimitives if false, CurvePrimitiveWithDistanceIndex returns only itself. If true, it recurses to its (otherwise hidden) children.
180457
+ * @param collectorArray optional array to receive primitives. If present, new primitives are ADDED (without
180458
+ * clearing the array.)
180459
+ * @param smallestPossiblePrimitives if false, CurvePrimitiveWithDistanceIndex returns only itself. If true,
180460
+ * it recurses to its (otherwise hidden) children.
180428
180461
  */
180429
180462
  collectCurvePrimitives(collectorArray, smallestPossiblePrimitives = false, explodeLineStrings = false) {
180430
180463
  const results = collectorArray === undefined ? [] : collectorArray;
180431
180464
  this.collectCurvePrimitivesGo(results, smallestPossiblePrimitives, explodeLineStrings);
180432
180465
  return results;
180433
180466
  }
180434
- /** Return true for planar region types:
180467
+ /**
180468
+ * Return true for planar region types:
180435
180469
  * * `Loop`
180436
180470
  * * `ParityRegion`
180437
180471
  * * `UnionRegion`
@@ -180439,12 +180473,12 @@ class CurveCollection extends _GeometryQuery__WEBPACK_IMPORTED_MODULE_0__.Geomet
180439
180473
  get isAnyRegionType() {
180440
180474
  return this.dgnBoundaryType() === 2 || this.dgnBoundaryType() === 5 || this.dgnBoundaryType() === 4;
180441
180475
  }
180442
- /** Return true for a `Path`, i.e. a chain of curves joined head-to-tail
180443
- */
180476
+ /** Return true for a `Path`, i.e. a chain of curves joined head-to-tail */
180444
180477
  get isOpenPath() {
180445
180478
  return this.dgnBoundaryType() === 1;
180446
180479
  }
180447
- /** Return true for a single-loop planar region type, i.e. `Loop`.
180480
+ /**
180481
+ * Return true for a single-loop planar region type, i.e. `Loop`.
180448
180482
  * * This is _not- a test for physical closure of a `Path`
180449
180483
  */
180450
180484
  get isClosedPath() {
@@ -180479,19 +180513,25 @@ class CurveCollection extends _GeometryQuery__WEBPACK_IMPORTED_MODULE_0__.Geomet
180479
180513
  }
180480
180514
  return undefined;
180481
180515
  }
180482
- /** Project instance geometry (via dispatch) onto the given ray, and return the extreme fractional parameters of projection.
180516
+ /**
180517
+ * Project instance geometry (via dispatch) onto the given ray, and return the extreme fractional parameters
180518
+ * of projection.
180483
180519
  * @param ray ray onto which the instance is projected. A `Vector3d` is treated as a `Ray3d` with zero origin.
180484
180520
  * @param lowHigh optional receiver for output
180485
- * @returns range of fractional projection parameters onto the ray, where 0.0 is start of the ray and 1.0 is the end of the ray.
180521
+ * @returns range of fractional projection parameters onto the ray, where 0.0 is start of the ray and 1.0 is the
180522
+ * end of the ray.
180486
180523
  */
180487
180524
  projectedParameterRange(ray, lowHigh) {
180488
180525
  return _internalContexts_PlaneAltitudeRangeContext__WEBPACK_IMPORTED_MODULE_9__.PlaneAltitudeRangeContext.findExtremeFractionsAlongDirection(this, ray, lowHigh);
180489
180526
  }
180490
180527
  }
180491
- /** Shared base class for use by both open and closed paths.
180528
+ /**
180529
+ * Shared base class for use by both open and closed paths.
180492
180530
  * - A `CurveChain` contains only curvePrimitives. No other paths, loops, or regions allowed.
180493
- * - A single entry in the chain can in fact contain multiple curve primitives if the entry itself is (for instance) `CurveChainWithDistanceIndex`
180494
- * which presents itself (through method interface) as a CurvePrimitive with well defined mappings from fraction to xyz, but in fact does all the
180531
+ * - A single entry in the chain can in fact contain multiple curve primitives if the entry itself is (for instance)
180532
+ * `CurveChainWithDistanceIndex`
180533
+ * which presents itself (through method interface) as a CurvePrimitive with well defined mappings from fraction
180534
+ * to xyz, but in fact does all the
180495
180535
  * calculations over multiple primitives.
180496
180536
  * - The specific derived classes are `Path` and `Loop`
180497
180537
  * - `CurveChain` is an intermediate class. It is not instantiable on its own.
@@ -180524,7 +180564,8 @@ class CurveChain extends CurveCollection {
180524
180564
  }
180525
180565
  return undefined;
180526
180566
  }
180527
- /** Stroke the chain into a simple xyz array.
180567
+ /**
180568
+ * Stroke the chain into a simple xyz array.
180528
180569
  * @param options tolerance parameters controlling the stroking.
180529
180570
  */
180530
180571
  getPackedStrokes(options) {
@@ -180549,7 +180590,8 @@ class CurveChain extends CurveCollection {
180549
180590
  return strokes;
180550
180591
  }
180551
180592
  */
180552
- /** add a child curve.
180593
+ /**
180594
+ * Add a child curve.
180553
180595
  * * Returns false if the given child is not a CurvePrimitive.
180554
180596
  */
180555
180597
  tryAddChild(child) {
@@ -180565,7 +180607,7 @@ class CurveChain extends CurveCollection {
180565
180607
  return this._curves[i];
180566
180608
  return undefined;
180567
180609
  }
180568
- /** invoke `curve.extendRange(range, transform)` for each child */
180610
+ /** Invoke `curve.extendRange(range, transform)` for each child */
180569
180611
  extendRange(range, transform) {
180570
180612
  for (const curve of this._curves)
180571
180613
  curve.extendRange(range, transform);
@@ -180579,7 +180621,8 @@ class CurveChain extends CurveCollection {
180579
180621
  curve.reverseInPlace();
180580
180622
  this._curves.reverse();
180581
180623
  }
180582
- /** Return the index where target is found in the array of children
180624
+ /**
180625
+ * Return the index where target is found in the array of children
180583
180626
  * @param alsoSearchProxies whether to also check proxy curves of the children
180584
180627
  */
180585
180628
  childIndex(target, alsoSearchProxies) {
@@ -180598,8 +180641,7 @@ class CurveChain extends CurveCollection {
180598
180641
  }
180599
180642
  return undefined;
180600
180643
  }
180601
- /** Evaluate an indexed curve at a fraction. Return as a CurveLocationDetail that indicates the primitive.
180602
- */
180644
+ /** Evaluate an indexed curve at a fraction. Return as a CurveLocationDetail that indicates the primitive. */
180603
180645
  primitiveIndexAndFractionToCurveLocationDetailPointAndDerivative(index, fraction, cyclic = false, result) {
180604
180646
  const primitive = this.cyclicCurvePrimitive(index, cyclic);
180605
180647
  if (primitive) {
@@ -180614,8 +180656,10 @@ class CurveChain extends CurveCollection {
180614
180656
  * @public
180615
180657
  */
180616
180658
  class BagOfCurves extends CurveCollection {
180617
- /** test if `other` is an instance of `BagOfCurves` */
180618
- isSameGeometryClass(other) { return other instanceof BagOfCurves; }
180659
+ /** Test if `other` is an instance of `BagOfCurves` */
180660
+ isSameGeometryClass(other) {
180661
+ return other instanceof BagOfCurves;
180662
+ }
180619
180663
  /** Construct an empty `BagOfCurves` */
180620
180664
  constructor() {
180621
180665
  super();
@@ -180624,8 +180668,10 @@ class BagOfCurves extends CurveCollection {
180624
180668
  this._children = [];
180625
180669
  }
180626
180670
  /** Return the (reference to) array of children */
180627
- get children() { return this._children; }
180628
- /** create with given curves. */
180671
+ get children() {
180672
+ return this._children;
180673
+ }
180674
+ /** Create with given curves. */
180629
180675
  static create(...data) {
180630
180676
  const result = new BagOfCurves();
180631
180677
  for (const child of data) {
@@ -180634,8 +180680,10 @@ class BagOfCurves extends CurveCollection {
180634
180680
  return result;
180635
180681
  }
180636
180682
  /** Return the boundary type (0) of a corresponding MicroStation CurveVector */
180637
- dgnBoundaryType() { return 0; }
180638
- /** invoke `processor.announceBagOfCurves(this, indexInParent);` */
180683
+ dgnBoundaryType() {
180684
+ return 0;
180685
+ }
180686
+ /** Invoke `processor.announceBagOfCurves(this, indexInParent);` */
180639
180687
  announceToCurveProcessor(processor, indexInParent = -1) {
180640
180688
  return processor.announceBagOfCurves(this, indexInParent);
180641
180689
  }
@@ -180659,7 +180707,9 @@ class BagOfCurves extends CurveCollection {
180659
180707
  return clone;
180660
180708
  }
180661
180709
  /** Return an empty `BagOfCurves` */
180662
- cloneEmptyPeer() { return new BagOfCurves(); }
180710
+ cloneEmptyPeer() {
180711
+ return new BagOfCurves();
180712
+ }
180663
180713
  /** Add a child */
180664
180714
  tryAddChild(child) {
180665
180715
  if (child)
@@ -183846,7 +183896,7 @@ var CurveSearchStatus;
183846
183896
  CurveSearchStatus[CurveSearchStatus["stoppedAtBoundary"] = 2] = "stoppedAtBoundary";
183847
183897
  })(CurveSearchStatus || (CurveSearchStatus = {}));
183848
183898
  /**
183849
- * use to update a vector in case where source and prior result are both possibly undefined.
183899
+ * Use to update a vector in case where source and prior result are both possibly undefined.
183850
183900
  * * Any undefined source returns undefined.
183851
183901
  * * For defined source, reuse optional result if available.
183852
183902
  * @param source optional source
@@ -183865,6 +183915,7 @@ function optionalVectorUpdate(source, result) {
183865
183915
  * @public
183866
183916
  */
183867
183917
  class CurveLocationDetail {
183918
+ /** constructor */
183868
183919
  constructor() {
183869
183920
  this.pointQ = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_0__.Point3d.createZero();
183870
183921
  this.fraction = 0;
@@ -183880,21 +183931,22 @@ class CurveLocationDetail {
183880
183931
  this.fraction1 = fraction1;
183881
183932
  this.point1 = point1;
183882
183933
  }
183883
- /** test if this pair has fraction1 defined */
183934
+ /** Test if this pair has fraction1 defined */
183884
183935
  get hasFraction1() {
183885
183936
  return this.fraction1 !== undefined;
183886
183937
  }
183887
- /** test if this is an isolated point. This is true if intervalRole is any of (undefined, isolated, isolatedAtVertex) */
183938
+ /** Test if this is an isolated point. This is true if intervalRole is any of (undefined, isolated, isolatedAtVertex) */
183888
183939
  get isIsolated() {
183889
183940
  return this.intervalRole === undefined
183890
183941
  || this.intervalRole === CurveIntervalRole.isolated
183891
183942
  || this.intervalRole === CurveIntervalRole.isolatedAtVertex;
183892
183943
  }
183893
- /** return the fraction delta. (0 if no fraction1) */
183944
+ /** Return the fraction delta. (0 if no fraction1) */
183894
183945
  get fractionDelta() {
183895
183946
  return this.fraction1 !== undefined ? this.fraction1 - this.fraction : 0.0;
183896
183947
  }
183897
- /** If (fraction1, point1) are defined, make them the primary (and only) data.
183948
+ /**
183949
+ * If (fraction1, point1) are defined, make them the primary (and only) data.
183898
183950
  * * No action if undefined.
183899
183951
  */
183900
183952
  collapseToEnd() {
@@ -183907,14 +183959,16 @@ class CurveLocationDetail {
183907
183959
  this.point1 = undefined;
183908
183960
  }
183909
183961
  }
183910
- /** make (fraction, point) the primary (and only) data.
183962
+ /**
183963
+ * Make (fraction, point) the primary (and only) data.
183911
183964
  * * No action if undefined.
183912
183965
  */
183913
183966
  collapseToStart() {
183914
183967
  this.fraction1 = undefined;
183915
183968
  this.point1 = undefined;
183916
183969
  }
183917
- /** Return a complete copy, WITH CAVEATS . . .
183970
+ /**
183971
+ * Return a complete copy, WITH CAVEATS . . .
183918
183972
  * * curve member is copied as a reference.
183919
183973
  * * point and vector members are cloned.
183920
183974
  */
@@ -183958,22 +184012,19 @@ class CurveLocationDetail {
183958
184012
  setFR(fraction, ray, a = 0) {
183959
184013
  return this.setFP(fraction, ray.origin, ray.direction, a);
183960
184014
  }
183961
- /** Set the CurvePrimitive pointer, leaving all other properties untouched.
183962
- */
184015
+ /** Set the CurvePrimitive pointer, leaving all other properties untouched. */
183963
184016
  setCurve(curve) { this.curve = curve; }
183964
184017
  /** record the distance from the CurveLocationDetail's point to the parameter point. */
183965
184018
  setDistanceTo(point) {
183966
184019
  this.a = this.point.distance(point);
183967
184020
  }
183968
- /** create with a CurvePrimitive pointer but no coordinate data.
183969
- */
184021
+ /** Create with a CurvePrimitive pointer but no coordinate data. */
183970
184022
  static create(curve, result) {
183971
184023
  result = result ? result : new CurveLocationDetail();
183972
184024
  result.curve = curve;
183973
184025
  return result;
183974
184026
  }
183975
- /** create with CurvePrimitive pointer, fraction, and point coordinates.
183976
- */
184027
+ /** Create with CurvePrimitive pointer, fraction, and point coordinates. */
183977
184028
  static createCurveFractionPoint(curve, fraction, point, result) {
183978
184029
  result = result ? result : new CurveLocationDetail();
183979
184030
  result.curve = curve;
@@ -183984,9 +184035,7 @@ class CurveLocationDetail {
183984
184035
  result.curveSearchStatus = undefined;
183985
184036
  return result;
183986
184037
  }
183987
- /**
183988
- * Create a new detail with only ray, fraction, and point.
183989
- */
184038
+ /** Create a new detail with only ray, fraction, and point. */
183990
184039
  static createRayFractionPoint(ray, fraction, point, result) {
183991
184040
  result = result ? result : new CurveLocationDetail();
183992
184041
  result.fraction = fraction;
@@ -183994,8 +184043,7 @@ class CurveLocationDetail {
183994
184043
  result.point.setFromPoint3d(point);
183995
184044
  return result;
183996
184045
  }
183997
- /** create with CurvePrimitive pointer, fraction, and point coordinates
183998
- */
184046
+ /** Create with CurvePrimitive pointer, fraction, and point coordinates */
183999
184047
  static createCurveFractionPointDistanceCurveSearchStatus(curve, fraction, point, distance, status, result) {
184000
184048
  result = result ? result : new CurveLocationDetail();
184001
184049
  result.curve = curve;
@@ -184006,9 +184054,7 @@ class CurveLocationDetail {
184006
184054
  result.curveSearchStatus = status;
184007
184055
  return result;
184008
184056
  }
184009
- /** create with curveSearchStatus affected by allowExtension.
184010
- * *
184011
- */
184057
+ /** Create with curveSearchStatus affected by allowExtension. */
184012
184058
  static createConditionalMoveSignedDistance(allowExtension, curve, startFraction, endFraction, requestedSignedDistance, result) {
184013
184059
  let a = requestedSignedDistance;
184014
184060
  let status = CurveSearchStatus.success;
@@ -184034,8 +184080,7 @@ class CurveLocationDetail {
184034
184080
  result.curveSearchStatus = status;
184035
184081
  return result;
184036
184082
  }
184037
- /** create with CurvePrimitive pointer and fraction for evaluation.
184038
- */
184083
+ /** Create with CurvePrimitive pointer and fraction for evaluation. */
184039
184084
  static createCurveEvaluatedFraction(curve, fraction, result) {
184040
184085
  result = result ? result : new CurveLocationDetail();
184041
184086
  result.curve = curve;
@@ -184046,8 +184091,7 @@ class CurveLocationDetail {
184046
184091
  result.a = 0.0;
184047
184092
  return result;
184048
184093
  }
184049
- /** create with CurvePrimitive pointer and fraction for evaluation.
184050
- */
184094
+ /** Create with CurvePrimitive pointer and fraction for evaluation. */
184051
184095
  static createCurveEvaluatedFractionPointAndDerivative(curve, fraction, result) {
184052
184096
  result = result ? result : new CurveLocationDetail();
184053
184097
  result.curve = curve;
@@ -184059,8 +184103,7 @@ class CurveLocationDetail {
184059
184103
  result.a = 0.0;
184060
184104
  return result;
184061
184105
  }
184062
- /** create with CurvePrimitive pointer and 2 fractions for evaluation.
184063
- */
184106
+ /** Create with CurvePrimitive pointer and 2 fractions for evaluation. */
184064
184107
  static createCurveEvaluatedFractionFraction(curve, fraction0, fraction1, result) {
184065
184108
  result = result ? result : new CurveLocationDetail();
184066
184109
  result.curve = curve;
@@ -184073,8 +184116,7 @@ class CurveLocationDetail {
184073
184116
  result.a = 0.0;
184074
184117
  return result;
184075
184118
  }
184076
- /** create with CurvePrimitive pointer, fraction, and point coordinates.
184077
- */
184119
+ /** Create with CurvePrimitive pointer, fraction, and point coordinates. */
184078
184120
  static createCurveFractionPointDistance(curve, fraction, point, a, result) {
184079
184121
  result = result ? result : new CurveLocationDetail();
184080
184122
  result.curve = curve;
@@ -184085,7 +184127,8 @@ class CurveLocationDetail {
184085
184127
  result.curveSearchStatus = undefined;
184086
184128
  return result;
184087
184129
  }
184088
- /** update or create if closer than current contents.
184130
+ /**
184131
+ * Update or create if closer than current contents.
184089
184132
  * @param curve candidate curve
184090
184133
  * @param fraction candidate fraction
184091
184134
  * @param point candidate point
@@ -184099,7 +184142,7 @@ class CurveLocationDetail {
184099
184142
  return true;
184100
184143
  }
184101
184144
  /**
184102
- * * Exchange the (fraction,fraction1) and (point, point1) pairs.
184145
+ * Exchange the (fraction,fraction1) and (point, point1) pairs.
184103
184146
  * * (Skip each swap if its "1" value is undefined)
184104
184147
  */
184105
184148
  swapFractionsAndPoints() {
@@ -184115,7 +184158,7 @@ class CurveLocationDetail {
184115
184158
  }
184116
184159
  }
184117
184160
  /**
184118
- * * return the fraction where f falls between fraction and fraction1.
184161
+ * Return the fraction where f falls between fraction and fraction1.
184119
184162
  * * ASSUME fraction1 defined
184120
184163
  */
184121
184164
  inverseInterpolateFraction(f, defaultFraction = 0) {
@@ -184138,7 +184181,8 @@ class CurveLocationDetail {
184138
184181
  return detailB;
184139
184182
  }
184140
184183
  }
184141
- /** Enumeration of configurations for intersections and min/max distance-between-curve
184184
+ /**
184185
+ * Enumeration of configurations for intersections and min/max distance-between-curve
184142
184186
  * @public
184143
184187
  */
184144
184188
  var CurveCurveApproachType;
@@ -184152,7 +184196,8 @@ var CurveCurveApproachType;
184152
184196
  /** Completely parallel geometry. */
184153
184197
  CurveCurveApproachType[CurveCurveApproachType["ParallelGeometry"] = 3] = "ParallelGeometry";
184154
184198
  })(CurveCurveApproachType || (CurveCurveApproachType = {}));
184155
- /** A pair of CurveLocationDetail.
184199
+ /**
184200
+ * A pair of CurveLocationDetail.
184156
184201
  * @public
184157
184202
  */
184158
184203
  class CurveLocationDetailPair {
@@ -184167,7 +184212,8 @@ class CurveLocationDetailPair {
184167
184212
  result.detailB = detailB;
184168
184213
  return result;
184169
184214
  }
184170
- /** Create a curve detail pair using references to two CurveLocationDetails.
184215
+ /**
184216
+ * Create a curve detail pair using references to two CurveLocationDetails.
184171
184217
  * * optionally install in reversed positions
184172
184218
  */
184173
184219
  static createCaptureOptionalReverse(detailA, detailB, reversed, result) {
@@ -184246,20 +184292,21 @@ __webpack_require__.r(__webpack_exports__);
184246
184292
 
184247
184293
 
184248
184294
  /**
184249
- * A curve primitive is bounded
184295
+ * A curve primitive is bounded.
184250
184296
  * A curve primitive maps fractions in 0..1 to points in space.
184251
184297
  * As the fraction proceeds from 0 towards 1, the point moves "forward" along the curve.
184252
184298
  * True distance along the curve is not always strictly proportional to fraction.
184253
- * * LineSegment3d always has proportional fraction and distance
184254
- * * an Arc3d which is true circular has proportional fraction and distance
184255
- * * A LineString3d is not proportional (except for special case of all segments of equal length)
184256
- * * A Spiral3d is proportional
184299
+ * * A LineSegment3d always has proportional fraction and distance.
184300
+ * * An Arc3d which is true circular has proportional fraction and distance.
184301
+ * * A LineString3d is not proportional (except for special case of all segments of equal length).
184302
+ * * A Spiral3d is proportional.
184257
184303
  * * A BsplineCurve3d is only proportional for special cases.
184258
- *
184259
- * For fractions outside 0..1, the curve primitive class may either (a) return the near endpoint or (b) evaluate an extended curve.
184304
+ * For fractions outside 0..1, the curve primitive class may either (a) return the near endpoint or (b) evaluate
184305
+ * an extended curve.
184260
184306
  * @public
184261
184307
  */
184262
184308
  class CurvePrimitive extends _GeometryQuery__WEBPACK_IMPORTED_MODULE_1__.GeometryQuery {
184309
+ /** Constructor */
184263
184310
  constructor() {
184264
184311
  super();
184265
184312
  /** String name for schema properties */
@@ -184287,30 +184334,35 @@ class CurvePrimitive extends _GeometryQuery__WEBPACK_IMPORTED_MODULE_1__.Geometr
184287
184334
  const b = data.vectorU.magnitude();
184288
184335
  return _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.conditionalDivideFraction(a, b * b * b);
184289
184336
  }
184290
- /** Construct a frenet frame:
184337
+ /**
184338
+ * Construct a frenet frame:
184291
184339
  * * origin at the point on the curve
184292
184340
  * * x axis is unit vector along the curve (tangent)
184293
- * * y axis is perpendicular and in the plane of the osculating circle.
184294
- * * z axis perpendicular to those.
184341
+ * * y axis is perpendicular and in the plane of the osculating circle. y axis is called "main normal"
184342
+ * * z axis perpendicular to those. z axis is called "bi-normal"
184295
184343
  */
184296
184344
  fractionToFrenetFrame(fraction, result) {
184297
184345
  const plane = this.fractionToPointAnd2Derivatives(fraction);
184298
184346
  if (!plane)
184299
184347
  return undefined;
184348
+ // first derivative (plane.vectorU) and second derivative (plane.vectorV) are not essentially
184349
+ // perpendicular so we use createRigidFromColumns to make 3 perpendicular vectors.
184300
184350
  let axes = _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_3__.Matrix3d.createRigidFromColumns(plane.vectorU, plane.vectorV, _Geometry__WEBPACK_IMPORTED_MODULE_2__.AxisOrder.XYZ);
184301
184351
  if (axes)
184302
184352
  return _geometry3d_Transform__WEBPACK_IMPORTED_MODULE_4__.Transform.createRefs(plane.origin, axes, result);
184303
- // 2nd derivative not distinct -- do arbitrary headsUP ...
184353
+ // 2nd derivative not distinct. for example if curve is linear at fraction so second derivative is 0.
184354
+ // in this case we find perpendicular vector to plane.vectorU and pass it to createRigidFromColumns.
184304
184355
  const perpVector = _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_3__.Matrix3d.createPerpendicularVectorFavorXYPlane(plane.vectorU, plane.vectorV);
184305
184356
  axes = _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_3__.Matrix3d.createRigidFromColumns(plane.vectorU, perpVector, _Geometry__WEBPACK_IMPORTED_MODULE_2__.AxisOrder.XYZ);
184306
184357
  if (axes)
184307
184358
  return _geometry3d_Transform__WEBPACK_IMPORTED_MODULE_4__.Transform.createRefs(plane.origin, axes, result);
184308
184359
  return undefined;
184309
184360
  }
184310
- /** Construct signed distance from a point on the curve to its center of curvature (in xy only).
184311
- * * Positive is to the left of the xy tangent.
184312
- * * negative is to the right of the xy tangent.
184313
- * * linear curve is 0.
184361
+ /**
184362
+ * Construct signed distance from a point on the planar curve to its center of curvature (in xy only).
184363
+ * * Positive distance means the center is to the left of the curve at fraction.
184364
+ * * Negative distance means the center is to the right of the curve at fraction.
184365
+ * * Zero distance means curve is linear at fraction.
184314
184366
  */
184315
184367
  fractionToSignedXYRadiusOfCurvature(fraction) {
184316
184368
  const plane = this.fractionToPointAnd2Derivatives(fraction);
@@ -184335,7 +184387,7 @@ class CurvePrimitive extends _GeometryQuery__WEBPACK_IMPORTED_MODULE_1__.Geometr
184335
184387
  return ray.fractionToPoint(distance);
184336
184388
  }
184337
184389
  /**
184338
- * return the length of the curve.
184390
+ * Return the length of the curve.
184339
184391
  * * Curve length is always positive.
184340
184392
  */
184341
184393
  curveLength() {
@@ -184344,9 +184396,9 @@ class CurvePrimitive extends _GeometryQuery__WEBPACK_IMPORTED_MODULE_1__.Geometr
184344
184396
  return context.getSum();
184345
184397
  }
184346
184398
  /**
184347
- * Returns a (high accuracy) length of the curve between fractional positions
184399
+ * Returns a (high accuracy) length of the curve between fractional positions.
184348
184400
  * * Curve length is always positive.
184349
- * * Default implementation applies a generic gaussian integration.
184401
+ * * Default implementation applies a generic Gaussian integration.
184350
184402
  * * Most curve classes (certainly LineSegment, LineString, Arc) are expected to provide efficient implementations.
184351
184403
  */
184352
184404
  curveLengthBetweenFractions(fraction0, fraction1) {
@@ -184354,7 +184406,7 @@ class CurvePrimitive extends _GeometryQuery__WEBPACK_IMPORTED_MODULE_1__.Geometr
184354
184406
  return 0.0;
184355
184407
  const scale = this.getFractionToDistanceScale();
184356
184408
  if (scale !== undefined) {
184357
- // We are in luck! simple proportions determine it all !!!
184409
+ // We are in luck! simple proportions determine it all !!!
184358
184410
  // (for example, a LineSegment3d or a circular arc)
184359
184411
  const totalLength = this.curveLength();
184360
184412
  return Math.abs((fraction1 - fraction0) * totalLength);
@@ -184365,14 +184417,14 @@ class CurvePrimitive extends _GeometryQuery__WEBPACK_IMPORTED_MODULE_1__.Geometr
184365
184417
  }
184366
184418
  /**
184367
184419
  * Returns a (high accuracy) range of the curve between fractional positions
184368
- * * Default implementation returns teh range of the curve from clonePartialCurve
184420
+ * * Default implementation returns the range of the curve from clonePartialCurve
184369
184421
  */
184370
184422
  rangeBetweenFractions(fraction0, fraction1, transform) {
184371
184423
  return this.rangeBetweenFractionsByClone(fraction0, fraction1, transform);
184372
184424
  }
184373
184425
  /**
184374
184426
  * Returns a (high accuracy) range of the curve between fractional positions
184375
- * * Default implementation returns teh range of the curve from clonePartialCurve
184427
+ * * Default implementation returns the range of the curve from clonePartialCurve
184376
184428
  */
184377
184429
  rangeBetweenFractionsByClone(fraction0, fraction1, transform) {
184378
184430
  if (fraction0 === fraction1)
@@ -184386,12 +184438,16 @@ class CurvePrimitive extends _GeometryQuery__WEBPACK_IMPORTED_MODULE_1__.Geometr
184386
184438
  * Returns an approximate range based on a fixed number of evaluations
184387
184439
  * * Default implementation returns a range determined by evaluating a specified number of points on the curve.
184388
184440
  * * Optional evaluate again at interval midpoints and extrapolate any increase
184389
- * * For a smooth curve, Richardson extrapolation suggests each subdivision moves 3/4 of the way to final. So extrapolationFactor
184390
- * of 1/3 gets speculatively moves closer to the tight range, and larger multipliers increase confidence in being safely larger.
184441
+ * * For a smooth curve, Richardson extrapolation suggests each subdivision moves 3/4 of the way to final. So
184442
+ * extrapolationFactor of 1/3 gets speculatively moves closer to the tight range, and larger multipliers increase
184443
+ * confidence in being safely larger.
184444
+ * * This function is faster version to compute the range of a portion of a curve (because some curves can be
184445
+ * expensive to compute the partial curve and/or to compute the partial curve's range.
184391
184446
  * @param fraction0 start fraction for evaluation
184392
184447
  * @param fraction1 end fraction for evaluation
184393
184448
  * @param count number of points to evaluate
184394
- * @param extrapolationFactor if positive, evaluate again at interval midpoints and apply this fraction multiplier to any increase in size.
184449
+ * @param extrapolationFactor if positive, evaluate again at interval midpoints and apply this fraction multiplier
184450
+ * to any increase in size.
184395
184451
  */
184396
184452
  rangeBetweenFractionsByCount(fraction0, fraction1, count, transform, extrapolationFactor = 0.0) {
184397
184453
  const range = _geometry3d_Range__WEBPACK_IMPORTED_MODULE_6__.Range3d.createNull();
@@ -184416,8 +184472,8 @@ class CurvePrimitive extends _GeometryQuery__WEBPACK_IMPORTED_MODULE_1__.Geometr
184416
184472
  evaluateSteps(fraction0 + globalFractionStep, globalFractionStep, interiorCount);
184417
184473
  }
184418
184474
  if (extrapolationFactor > 0.0) {
184419
- // Evaluate at midpoints. Where this makes the range larger, apply extrapolationFactor to move it to safer excess value.
184420
- // same interior step, but shift to interval midpoints:.
184475
+ // Evaluate at midpoints. Where this makes the range larger, apply extrapolationFactor to move it to safer
184476
+ // excess value. same interior step, but shift to interval midpoints.
184421
184477
  const baseRange = range.clone();
184422
184478
  const interiorCount1 = interiorCount + 1;
184423
184479
  const localFraction0 = 0.5 / interiorCount1; // we only evaluate at new midpoints.
@@ -184428,13 +184484,13 @@ class CurvePrimitive extends _GeometryQuery__WEBPACK_IMPORTED_MODULE_1__.Geometr
184428
184484
  return range;
184429
184485
  }
184430
184486
  /**
184431
- *
184432
- * * Run an integration (with a default gaussian quadrature) with a fixed fractional step
184487
+ * Run an integration (with a default Gaussian quadrature) with a fixed fractional step
184433
184488
  * * This is typically called by specific curve type implementations of curveLengthBetweenFractions.
184434
- * * For example, in Arc3d implementation of curveLengthBetweenFractions:
184489
+ * * For example, in Arc3d implementation of curveLengthBetweenFractions:
184435
184490
  * * If the Arc3d is true circular, it the arc is true circular, use the direct `arcLength = radius * sweepRadians`
184436
- * * If the Arc3d is not true circular, call this method with an interval count appropriate to eccentricity and sweepRadians.
184437
- * @returns Returns an integral estimated by numerical quadrature between the fractional positions.
184491
+ * * If the Arc3d is not true circular, call this method with an interval count appropriate to eccentricity and
184492
+ * sweepRadians.
184493
+ * @returns Returns the curve length via an integral estimated by numerical quadrature between the fractional positions.
184438
184494
  * @param fraction0 start fraction for integration
184439
184495
  * @param fraction1 end fraction for integration
184440
184496
  * @param numInterval number of quadrature intervals
@@ -184450,33 +184506,39 @@ class CurvePrimitive extends _GeometryQuery__WEBPACK_IMPORTED_MODULE_1__.Geometr
184450
184506
  return Math.abs(context.getSum());
184451
184507
  }
184452
184508
  /**
184453
- *
184454
- * * (Attempt to) find a position on the curve at a signed distance from start fraction.
184509
+ * (Attempt to) find a position on the curve at a signed distance from start fraction.
184455
184510
  * * Return the position as a CurveLocationDetail.
184456
184511
  * * In the `CurveLocationDetail`, record:
184457
184512
  * * `fraction` = fractional position
184458
184513
  * * `point` = coordinates of the point
184459
- * * `a` = (signed!) distance moved. If `allowExtension` is false and the move reached the start or end of the curve, this distance is smaller than the requested signedDistance.
184514
+ * * `a` = (signed!) distance moved. If `allowExtension` is false and the move reached the start or end of the
184515
+ * curve, this distance is smaller than the requested signedDistance.
184460
184516
  * * `curveSearchStatus` indicates one of:
184461
184517
  * * `error` (unusual) computation failed not supported for this curve.
184462
184518
  * * `success` full movement completed
184463
184519
  * * `stoppedAtBoundary` partial movement completed. This can be due to either
184464
184520
  * * `allowExtension` parameter sent as `false`
184465
184521
  * * the curve type (e.g. bspline) does not support extended range.
184466
- * * if `allowExtension` is true, movement may still end at the startPoint or end point for curves that do not support extended geometry (specifically bsplines)
184467
- * * if the curve returns a value (i.e. not `undefined`) for `curve.getFractionToDistanceScale()`, the base class carries out the computation
184522
+ * * if `allowExtension` is true, movement may still end at the startPoint or end point for curves that do not support
184523
+ * extended geometry (specifically bsplines)
184524
+ * * if the curve returns a value (i.e. not `undefined`) for `curve.getFractionToDistanceScale()`, the base class
184525
+ * carries out the computation
184468
184526
  * and returns a final location.
184469
184527
  * * LineSegment3d relies on this.
184470
- * * If the curve does not implement the computation or the curve has zero length, the returned `CurveLocationDetail` has
184528
+ * * If the curve does not implement the computation or the curve has zero length, the returned `CurveLocationDetail`
184529
+ * has
184471
184530
  * * `fraction` = the value of `startFraction`
184472
184531
  * * `point` = result of `curve.fractionToPoint(startFraction)`
184473
184532
  * * `a` = 0
184474
184533
  * * `curveStartState` = `CurveSearchStatus.error`
184475
184534
  * @param startFraction fractional position where the move starts
184476
184535
  * @param signedDistance distance to move. Negative distance is backwards in the fraction space
184477
- * @param allowExtension if true, all the move to go beyond the startPoint or endpoint of the curve. If false, do not allow movement beyond the startPoint or endpoint
184536
+ * @param allowExtension if true, all the move to go beyond the startPoint or endpoint of the curve. If false, do not
184537
+ * allow movement beyond the startPoint or endpoint
184478
184538
  * @param result optional result.
184479
- * @returns A CurveLocationDetail annotated as above. Note that if the curve does not support the calculation, there is still a result which contains the point at the input startFraction, with failure indicated in the `curveStartState` member
184539
+ * @returns A CurveLocationDetail annotated as above. Note that if the curve does not support the calculation, there is
184540
+ * still a result which contains the point at the input startFraction, with failure indicated in the `curveStartState`
184541
+ * member
184480
184542
  */
184481
184543
  moveSignedDistanceFromFraction(startFraction, signedDistance, allowExtension, result) {
184482
184544
  const scale = this.getFractionToDistanceScale();
@@ -184496,13 +184558,14 @@ class CurvePrimitive extends _GeometryQuery__WEBPACK_IMPORTED_MODULE_1__.Geometr
184496
184558
  * Generic algorithm to search for point at signed distance from a fractional startPoint.
184497
184559
  * * This will work for well for smooth curves.
184498
184560
  * * Curves with tangent or other low-order-derivative discontinuities may need to implement specialized algorithms.
184499
- * * We need to find an endFraction which is the end-of-interval (usually upper) limit of integration of the tangent magnitude from startFraction to endFraction
184561
+ * * We need to find an endFraction which is the end-of-interval (usually upper) limit of integration of the tangent
184562
+ * magnitude from startFraction to endFraction
184500
184563
  * * That integral is a function of endFraction.
184501
184564
  * * The derivative of that integral with respect to end fraction is the tangent magnitude at end fraction.
184502
184565
  * * Use that function and (easily evaluated!) derivative for a Newton iteration
184503
- * * TO ALL WHO HAVE FUZZY MEMORIES OF CALCULUS CLASS: "The derivative of the integral wrt upper limit is the value of the integrand there" is the
184504
- * fundamental theorem of integral calculus !!! The fundamental theorem is not just an abstraction !!! It is being used
184505
- * here in its barest possible form !!!
184566
+ * * TO ALL WHO HAVE FUZZY MEMORIES OF CALCULUS CLASS: "The derivative of the integral wrt upper limit is the value
184567
+ * of the integrand there" is the fundamental theorem of integral calculus !!! The fundamental theorem is not just
184568
+ * an abstraction !!! It is being used here in its barest possible form !!!
184506
184569
  * * See https://en.wikipedia.org/wiki/Fundamental_theorem_of_calculus
184507
184570
  * @param startFraction
184508
184571
  * @param signedDistance
@@ -184583,20 +184646,25 @@ class CurvePrimitive extends _GeometryQuery__WEBPACK_IMPORTED_MODULE_1__.Geometr
184583
184646
  return result;
184584
184647
  }
184585
184648
  /**
184586
- * * Returns true if the curve's fraction queries extend beyond 0..1.
184649
+ * * Returns true if the curve can be easily extended past its start/end point (i.e., beyond the usual
184650
+ * fraction space [0,1]). Otherwise, returns false.
184587
184651
  * * Base class default implementation returns false.
184588
- * * These class (and perhaps others in the future) will return true:
184652
+ * * These classes (and perhaps others in the future) will return true:
184589
184653
  * * LineSegment3d
184590
184654
  * * LineString3d
184591
184655
  * * Arc3d
184592
184656
  */
184593
- get isExtensibleFractionSpace() { return false; }
184594
- /** Search for the curve point that is closest to the spacePoint.
184595
- *
184657
+ get isExtensibleFractionSpace() {
184658
+ return false;
184659
+ }
184660
+ /**
184661
+ * Search for a point on the curve that is closest to the spacePoint.
184596
184662
  * * If the space point is exactly on the curve, this is the reverse of fractionToPoint.
184597
- * * Since CurvePrimitive should always have start and end available as candidate points, this method should always succeed
184663
+ * * Since CurvePrimitive should always have start and end available as candidate points, this method should always
184664
+ * succeed
184598
184665
  * @param spacePoint point in space
184599
- * @param extend true to extend the curve (if possible), false for no extend, single CurveExtendOptions (for both directions), or array of distinct CurveExtendOptions for start and end.
184666
+ * @param extend true to extend the curve (if possible), false for no extend, single CurveExtendOptions (for both
184667
+ * directions), or array of distinct CurveExtendOptions for start and end.
184600
184668
  * @returns Returns a CurveLocationDetail structure that holds the details of the close point.
184601
184669
  */
184602
184670
  closestPoint(spacePoint, extend) {
@@ -184607,14 +184675,16 @@ class CurvePrimitive extends _GeometryQuery__WEBPACK_IMPORTED_MODULE_1__.Geometr
184607
184675
  /**
184608
184676
  * Find intervals of this curvePrimitive that are interior to a clipper
184609
184677
  * @param clipper clip structure (e.g. clip planes)
184610
- * @param announce (optional) function to be called announcing fractional intervals" ` announce(fraction0, fraction1, curvePrimitive)`
184678
+ * @param announce (optional) function to be called announcing fractional intervals
184679
+ * `announce(fraction0, fraction1, curvePrimitive)`
184611
184680
  * @returns true if any "in" segments are announced.
184612
184681
  */
184613
184682
  announceClipIntervals(_clipper, _announce) {
184614
184683
  // DEFAULT IMPLEMENTATION -- no interior parts
184615
184684
  return false;
184616
184685
  }
184617
- /** Return (if possible) a curve primitive which is a portion of this curve.
184686
+ /**
184687
+ * Return (if possible) a curve primitive which is a portion of this curve.
184618
184688
  * @param _fractionA [in] start fraction
184619
184689
  * @param _fractionB [in] end fraction
184620
184690
  */
@@ -184622,8 +184692,8 @@ class CurvePrimitive extends _GeometryQuery__WEBPACK_IMPORTED_MODULE_1__.Geometr
184622
184692
  return undefined;
184623
184693
  }
184624
184694
  /**
184625
- * * If the curve primitive has distance-along-curve strictly proportional to curve fraction, return the scale factor.
184626
- * * If distance-along-the-curve is not proportional, return undefined.
184695
+ * If the curve primitive has distance-along-curve strictly proportional to curve fraction, return the scale factor.
184696
+ * If distance-along-the-curve is not proportional, return undefined.
184627
184697
  * * When defined, the scale factor is always the length of the curve.
184628
184698
  * * This scale factor is typically available for these curve types:
184629
184699
  * * * All `LineSegment3d`
@@ -184634,12 +184704,14 @@ class CurvePrimitive extends _GeometryQuery__WEBPACK_IMPORTED_MODULE_1__.Geometr
184634
184704
  * * * bspline and bezier curves
184635
184705
  * @returns scale factor or undefined
184636
184706
  */
184637
- getFractionToDistanceScale() { return undefined; }
184707
+ getFractionToDistanceScale() {
184708
+ return undefined;
184709
+ }
184638
184710
  /**
184639
- * Compute intersections with a plane.
184711
+ * Compute intersections of the curve with a plane.
184640
184712
  * * The intersections are appended to the result array.
184641
- * * The base class implementation emits strokes to an AppendPlaneIntersectionStrokeHandler object, which uses a Newton iteration to get
184642
- * high-accuracy intersection points within strokes.
184713
+ * * The base class implementation emits strokes to an AppendPlaneIntersectionStrokeHandler object, which uses a
184714
+ * Newton iteration to get high-accuracy intersection points within strokes.
184643
184715
  * * Derived classes should override this default implementation if there are easy analytic solutions.
184644
184716
  * * Derived classes are free to implement extended intersections (e.g. arc!!!)
184645
184717
  * @param plane The plane to be intersected.
@@ -184656,8 +184728,8 @@ class CurvePrimitive extends _GeometryQuery__WEBPACK_IMPORTED_MODULE_1__.Geometr
184656
184728
  * Examine contents of an array of CurveLocationDetail.
184657
184729
  * Filter the intersections according to the parameters.
184658
184730
  * @param allowExtend if false, remove points on the extension.
184659
- * @param applySnappedCoordinates if true, change the stored fractions and coordinates to exact end values. Otherwise
184660
- * use the exact values only for purpose of updating the curveIntervalRole.
184731
+ * @param applySnappedCoordinates if true, change the stored fractions and coordinates to exact end values.
184732
+ * Otherwise use the exact values only for purpose of updating the curveIntervalRole.
184661
184733
  * @param startEndFractionTolerance if nonzero, adjust fraction to 0 or 1 with this tolerance.
184662
184734
  * @param startEndXYZTolerance if nonzero, adjust to endpoint with this tolerance.
184663
184735
  * @internal
@@ -184720,12 +184792,16 @@ class CurvePrimitive extends _GeometryQuery__WEBPACK_IMPORTED_MODULE_1__.Geometr
184720
184792
  if (acceptIndex < n0)
184721
184793
  details.length = acceptIndex;
184722
184794
  }
184723
- /** return the startPoint of the primitive. The default implementation returns fractionToPoint (0.0) */
184724
- startPoint(result) { return this.fractionToPoint(0.0, result); }
184725
- /** return the end point of the primitive. The default implementation returns fractionToPoint(1.0) */
184726
- endPoint(result) { return this.fractionToPoint(1.0, result); }
184795
+ /** Return the startPoint of the primitive. The default implementation returns fractionToPoint(0.0) */
184796
+ startPoint(result) {
184797
+ return this.fractionToPoint(0.0, result);
184798
+ }
184799
+ /** Return the end point of the primitive. The default implementation returns fractionToPoint(1.0) */
184800
+ endPoint(result) {
184801
+ return this.fractionToPoint(1.0, result);
184802
+ }
184727
184803
  /**
184728
- * attach StrokeCountMap structure to this primitive (and recursively to any children)
184804
+ * Attach StrokeCountMap structure to this primitive (and recursively to any children)
184729
184805
  * * Base class implementation (here) gets the simple count from computeStrokeCountForOptions and attaches it.
184730
184806
  * * LineString3d, arc3d, BezierCurve3d, BezierCurve3dH accept that default.
184731
184807
  * * Subdivided primitives (linestring, bspline curve) implement themselves and attach a StrokeCountMap containing the
@@ -184733,7 +184809,8 @@ class CurvePrimitive extends _GeometryQuery__WEBPACK_IMPORTED_MODULE_1__.Geometr
184733
184809
  * * For CurvePrimitiveWithDistanceIndex, the top level gets (only) a total count, and each child gets
184734
184810
  * its own StrokeCountMap with appropriate structure.
184735
184811
  * @param options StrokeOptions that determine count
184736
- * @param parentStrokeMap optional map from parent. Its count, curveLength, and a1 values are increased with count and distance from this primitive.
184812
+ * @param parentStrokeMap optional map from parent. Its count, curveLength, and a1 values are increased with count
184813
+ * and distance from this primitive.
184737
184814
  * @return sum of `a0+this.curveLength()`, for use as `a0` of successor in chain.
184738
184815
  */
184739
184816
  computeAndAttachRecursiveStrokeCounts(options, parentMap) {
@@ -184742,8 +184819,9 @@ class CurvePrimitive extends _GeometryQuery__WEBPACK_IMPORTED_MODULE_1__.Geometr
184742
184819
  CurvePrimitive.installStrokeCountMap(this, _curve_Query_StrokeCountMap__WEBPACK_IMPORTED_MODULE_12__.StrokeCountMap.createWithCurvePrimitive(this, n, a, 0, a), parentMap);
184743
184820
  }
184744
184821
  /**
184745
- * * evaluate strokes at fractions indicated in a StrokeCountMap.
184746
- * * Base class implementation (here) gets the simple count from computeStrokeCountForOptions and strokes at uniform fractions.
184822
+ * Evaluate strokes at fractions indicated in a StrokeCountMap.
184823
+ * * Base class implementation (here) gets the simple count from computeStrokeCountForOptions and strokes at
184824
+ * uniform fractions.
184747
184825
  * * LineString3d, arc3d, BezierCurve3d, BezierCurve3dH accept that default.
184748
184826
  * * Subdivided primitives (linestring, bspline curve) implement themselves and evaluate within components.
184749
184827
  * * CurvePrimitiveWithDistanceIndex recurses to its children.
@@ -184763,7 +184841,7 @@ class CurvePrimitive extends _GeometryQuery__WEBPACK_IMPORTED_MODULE_1__.Geometr
184763
184841
  return linestring.numPoints() - numPoint0;
184764
184842
  }
184765
184843
  /**
184766
- * final install step to save curveMap in curve. If parentMap is given, update its length, count, and a1 fields
184844
+ * Final install step to save curveMap in curve. If parentMap is given, update its length, count, and a1 fields
184767
184845
  * @param curve curve to receive the annotation
184768
184846
  * @param map
184769
184847
  * @param parentMap
@@ -184777,8 +184855,10 @@ class CurvePrimitive extends _GeometryQuery__WEBPACK_IMPORTED_MODULE_1__.Geometr
184777
184855
  * Return an array containing only the curve primitives.
184778
184856
  * * This DEFAULT implementation simply pushes `this` to the collectorArray.
184779
184857
  * @param collectorArray array to receive primitives (pushed -- the array is not cleared)
184780
- * @param smallestPossiblePrimitives if true, a [[CurvePrimitiveWithDistanceIndex]] recurses on its (otherwise hidden) children. If false, it returns only itself.
184781
- * @param explodeLinestrings if true, push a [[LineSegment3d]] for each segment of a [[LineString3d]]. If false, push only the [[LineString3d]].
184858
+ * @param smallestPossiblePrimitives if true, a [[CurvePrimitiveWithDistanceIndex]] recurses on its (otherwise hidden)
184859
+ * children. If false, it returns only itself.
184860
+ * @param explodeLinestrings if true, push a [[LineSegment3d]] for each segment of a [[LineString3d]]. If false,
184861
+ * push only the [[LineString3d]].
184782
184862
  */
184783
184863
  collectCurvePrimitivesGo(collectorArray, _smallestPossiblePrimitives, _explodeLinestrings = false) {
184784
184864
  collectorArray.push(this);
@@ -184786,18 +184866,23 @@ class CurvePrimitive extends _GeometryQuery__WEBPACK_IMPORTED_MODULE_1__.Geometr
184786
184866
  /**
184787
184867
  * Return an array containing only the curve primitives.
184788
184868
  * * This DEFAULT implementation captures the optional collector and calls [[collectCurvePrimitivesGo]].
184789
- * @param collectorArray optional array to receive primitives. If present, new primitives are ADDED (without clearing the array.)
184790
- * @param smallestPossiblePrimitives if false, CurvePrimitiveWithDistanceIndex returns only itself. If true, it recurses to its (otherwise hidden) children.
184869
+ * @param collectorArray optional array to receive primitives. If present, new primitives are ADDED (without
184870
+ * clearing the array.)
184871
+ * @param smallestPossiblePrimitives if false, CurvePrimitiveWithDistanceIndex returns only itself. If true,
184872
+ * it recurses to its (otherwise hidden) children.
184791
184873
  */
184792
184874
  collectCurvePrimitives(collectorArray, smallestPossiblePrimitives = false, explodeLinestrings = false) {
184793
184875
  const results = collectorArray === undefined ? [] : collectorArray;
184794
184876
  this.collectCurvePrimitivesGo(results, smallestPossiblePrimitives, explodeLinestrings);
184795
184877
  return results;
184796
184878
  }
184797
- /** Project instance geometry (via dispatch) onto the given ray, and return the extreme fractional parameters of projection.
184879
+ /**
184880
+ * Project instance geometry (via dispatch) onto the line of the given ray, and return the extreme fractional
184881
+ * parameters of projection.
184798
184882
  * @param ray ray onto which the instance is projected. A `Vector3d` is treated as a `Ray3d` with zero origin.
184799
184883
  * @param lowHigh optional receiver for output
184800
- * @returns range of fractional projection parameters onto the ray, where 0.0 is start of the ray and 1.0 is the end of the ray.
184884
+ * @returns range of fractional projection parameters onto the ray, where 0.0 is start of the ray and 1.0 is the
184885
+ * end of the ray.
184801
184886
  */
184802
184887
  projectedParameterRange(_ray, _lowHigh) {
184803
184888
  return undefined; // common implementation delegated to subclasses to avoid circular dependency
@@ -185044,13 +185129,14 @@ __webpack_require__.r(__webpack_exports__);
185044
185129
  /* harmony import */ var _geometry3d_Transform__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../geometry3d/Transform */ "../../core/geometry/lib/esm/geometry3d/Transform.js");
185045
185130
 
185046
185131
 
185047
- /** Queries to be supported by Curve, Surface, and Solid objects */
185048
185132
  /**
185049
- * * `GeometryQuery` is an abstract base class with (abstract) methods for querying curve, solid primitive, mesh, and bspline surfaces
185133
+ * Queries to be supported by Curve, Surface, and Solid objects
185134
+ * * `GeometryQuery` is an abstract base class with (abstract) methods for querying curve, solid primitive, mesh,
185135
+ * and bspline surfaces
185050
185136
  * @public
185051
185137
  */
185052
185138
  class GeometryQuery {
185053
- /** return the range of the entire (tree) GeometryQuery */
185139
+ /** Return the range of the entire (tree) GeometryQuery */
185054
185140
  range(transform, result) {
185055
185141
  if (result)
185056
185142
  result.setNull();
@@ -185058,17 +185144,17 @@ class GeometryQuery {
185058
185144
  this.extendRange(range, transform);
185059
185145
  return range;
185060
185146
  }
185061
- /** try to move the geometry by dx,dy,dz */
185147
+ /** Try to move the geometry by dx,dy,dz */
185062
185148
  tryTranslateInPlace(dx, dy = 0.0, dz = 0.0) {
185063
185149
  return this.tryTransformInPlace(_geometry3d_Transform__WEBPACK_IMPORTED_MODULE_1__.Transform.createTranslationXYZ(dx, dy, dz));
185064
185150
  }
185065
- /** return GeometryQuery children for recursive queries.
185066
- *
185151
+ /**
185152
+ * Return GeometryQuery children for recursive queries.
185067
185153
  * * leaf classes do not need to implement.
185068
185154
  */
185069
185155
  get children() { return undefined; }
185070
- /** test for exact structure and nearly identical geometry.
185071
- *
185156
+ /**
185157
+ * Test for exact structure and nearly identical geometry.
185072
185158
  * * Leaf classes must implement !!!
185073
185159
  * * base class implementation recurses through children.
185074
185160
  * * base implementation is complete for classes with children and no properties.
@@ -185097,7 +185183,8 @@ class GeometryQuery {
185097
185183
  }
185098
185184
  return false;
185099
185185
  }
185100
- /** apply instance method isAlmostEqual if both are defined.
185186
+ /**
185187
+ * Apply instance method isAlmostEqual if both are defined.
185101
185188
  * * both undefined returns true
185102
185189
  * * single defined returns false
185103
185190
  */
@@ -185153,33 +185240,41 @@ __webpack_require__.r(__webpack_exports__);
185153
185240
  /* eslint-disable @typescript-eslint/naming-convention, no-empty */
185154
185241
  /**
185155
185242
  * A LineSegment3d is:
185156
- *
185157
185243
  * * A 3d line segment represented by its start and end coordinates
185158
185244
  * * startPoint
185159
185245
  * * endPoint
185160
- * * The segment is parameterized with fraction 0 at the start and fraction 1 at the end, i.e. either of these equivalent forms to map fraction `f` to a point `X(f)`
185246
+ * * The segment is parameterized with fraction 0 at the start and fraction 1 at the end, i.e. either of these
185247
+ * equivalent forms to map fraction `f` to a point `X(f)`
185161
185248
  * ```
185162
185249
  * equation
185163
- * X(f) = P_0 + f * (P_1 - P_0)\newline
185164
- * X(f) = (1-f)*P_0 + f * P_0
185250
+ * X(f) = P_0 + f*(P_1 - P_0)\newline
185251
+ * X(f) = (1-f)*P_0 + f*P_1
185165
185252
  * ```
185166
185253
  * @public
185167
185254
  */
185168
185255
  class LineSegment3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePrimitive {
185169
- /** test if `other` is of class `LineSegment3d` */
185170
- isSameGeometryClass(other) { return other instanceof LineSegment3d; }
185171
- /** Return REFERENCE to the start point of this segment.
185172
- * * (This is distinct from the `CurvePrimitive` abstract method `endPoint()` which creates a returned point
185173
- */
185174
- get point0Ref() { return this._point0; }
185175
- /** Return REFERENCE to the end point of this segment.
185256
+ /** Test if `other` is of class `LineSegment3d` */
185257
+ isSameGeometryClass(other) {
185258
+ return other instanceof LineSegment3d;
185259
+ }
185260
+ /**
185261
+ * Return REFERENCE to the start point of this segment.
185176
185262
  * * (This is distinct from the `CurvePrimitive` abstract method `endPoint()` which creates a returned point
185177
185263
  */
185178
- get point1Ref() { return this._point1; }
185264
+ get point0Ref() {
185265
+ return this._point0;
185266
+ }
185179
185267
  /**
185180
- * A LineSegment3d extends along its infinite line.
185268
+ * Return REFERENCE to the end point of this segment.
185269
+ * * (This is distinct from the `CurvePrimitive` abstract method `endPoint()` which creates a returned point
185181
185270
  */
185182
- get isExtensibleFractionSpace() { return true; }
185271
+ get point1Ref() {
185272
+ return this._point1;
185273
+ }
185274
+ /** A LineSegment3d extends along its infinite line. */
185275
+ get isExtensibleFractionSpace() {
185276
+ return true;
185277
+ }
185183
185278
  /**
185184
185279
  * CAPTURE point references as a `LineSegment3d`
185185
185280
  * @param point0
@@ -185193,12 +185288,21 @@ class LineSegment3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePr
185193
185288
  this._point1 = point1;
185194
185289
  }
185195
185290
  /** Set the start and endpoints by capturing input references. */
185196
- setRefs(point0, point1) { this._point0 = point0; this._point1 = point1; }
185291
+ setRefs(point0, point1) {
185292
+ this._point0 = point0;
185293
+ this._point1 = point1;
185294
+ }
185197
185295
  /** Set the start and endpoints by cloning the input parameters. */
185198
- set(point0, point1) { this._point0 = point0.clone(); this._point1 = point1.clone(); }
185199
- /** copy (clone) data from other */
185200
- setFrom(other) { this._point0.setFrom(other._point0); this._point1.setFrom(other._point1); }
185201
- /** Return a (clone of) the start point. (This is NOT a reference to the stored start point) */
185296
+ set(point0, point1) {
185297
+ this._point0 = point0.clone();
185298
+ this._point1 = point1.clone();
185299
+ }
185300
+ /** Copy (clone) data from other */
185301
+ setFrom(other) {
185302
+ this._point0.setFrom(other._point0);
185303
+ this._point1.setFrom(other._point1);
185304
+ }
185305
+ /** Return a (clone of) the start point (This is NOT a reference to the stored start point) */
185202
185306
  startPoint(result) {
185203
185307
  if (result) {
185204
185308
  result.setFrom(this._point0);
@@ -185206,7 +185310,7 @@ class LineSegment3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePr
185206
185310
  }
185207
185311
  return this._point0.clone();
185208
185312
  }
185209
- /** Return a (clone of) the end point. (This is NOT a reference to the stored end point) */
185313
+ /** Return a (clone of) the end point (This is NOT a reference to the stored end point) */
185210
185314
  endPoint(result) {
185211
185315
  if (result) {
185212
185316
  result.setFrom(this._point1);
@@ -185221,7 +185325,8 @@ class LineSegment3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePr
185221
185325
  this._point0.interpolate(fraction, this._point1, result.origin);
185222
185326
  return result;
185223
185327
  }
185224
- /** Construct a plane with
185328
+ /**
185329
+ * Construct a plane with
185225
185330
  * * origin at the fractional position along the line segment
185226
185331
  * * x axis is the first derivative, i.e. along the line segment
185227
185332
  * * y axis is the second derivative, i.e. 000
@@ -185234,7 +185339,9 @@ class LineSegment3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePr
185234
185339
  return result;
185235
185340
  }
185236
185341
  /** Clone the LineSegment3d */
185237
- clone() { return LineSegment3d.create(this._point0, this._point1); }
185342
+ clone() {
185343
+ return LineSegment3d.create(this._point0, this._point1);
185344
+ }
185238
185345
  /** Clone and apply transform to the clone. */
185239
185346
  cloneTransformed(transform) {
185240
185347
  const c = this.clone();
@@ -185253,7 +185360,8 @@ class LineSegment3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePr
185253
185360
  static createCapture(point0, point1) {
185254
185361
  return new LineSegment3d(point0, point1);
185255
185362
  }
185256
- /** create a LineSegment3d from xy coordinates of start and end, with common z.
185363
+ /**
185364
+ * Create a LineSegment3d from xy coordinates of start and end, with common z.
185257
185365
  * @param x0 start point x coordinate.
185258
185366
  * @param y0 start point y coordinate.
185259
185367
  * @param x1 end point x coordinate.
@@ -185269,7 +185377,8 @@ class LineSegment3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePr
185269
185377
  }
185270
185378
  return new LineSegment3d(_geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_3__.Point3d.create(x0, y0, z), _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_3__.Point3d.create(x1, y1, z));
185271
185379
  }
185272
- /** create a LineSegment3d from xy coordinates of start and end, with common z.
185380
+ /**
185381
+ * Create a LineSegment3d from xy coordinates of start and end, with common z.
185273
185382
  * @param x0 start point x coordinate.
185274
185383
  * @param y0 start point y coordinate.
185275
185384
  * @param x1 end point x coordinate.
@@ -185286,19 +185395,26 @@ class LineSegment3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePr
185286
185395
  return new LineSegment3d(_geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_3__.Point3d.create(x0, y0, z0), _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_3__.Point3d.create(x1, y1, z1));
185287
185396
  }
185288
185397
  /** Return the point at fractional position along the line segment. */
185289
- fractionToPoint(fraction, result) { return this._point0.interpolate(fraction, this._point1, result); }
185398
+ fractionToPoint(fraction, result) {
185399
+ return this._point0.interpolate(fraction, this._point1, result);
185400
+ }
185290
185401
  /** Return the length of the segment. */
185291
- curveLength() { return this._point0.distance(this._point1); }
185402
+ curveLength() {
185403
+ return this._point0.distance(this._point1);
185404
+ }
185292
185405
  /** Return the length of the partial segment between fractions. */
185293
185406
  curveLengthBetweenFractions(fraction0, fraction1) {
185294
185407
  return Math.abs(fraction1 - fraction0) * this._point0.distance(this._point1);
185295
185408
  }
185296
185409
  /** Return the length of the segment. */
185297
- quickLength() { return this.curveLength(); }
185410
+ quickLength() {
185411
+ return this.curveLength();
185412
+ }
185298
185413
  /**
185299
185414
  * Returns a curve location detail with both xyz and fractional coordinates of the closest point.
185300
185415
  * @param spacePoint point in space
185301
- * @param extend if false, only return points within the bounded line segment. If true, allow the point to be on the unbounded line that contains the bounded segment.
185416
+ * @param extend if false, only return points within the bounded line segment. If true, allow the point to be on
185417
+ * the unbounded line that contains the bounded segment.
185302
185418
  */
185303
185419
  closestPoint(spacePoint, extend, result) {
185304
185420
  let fraction = spacePoint.fractionOfProjectionToLine(this._point0, this._point1, 0.0);
@@ -185312,7 +185428,7 @@ class LineSegment3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePr
185312
185428
  result.a = result.point.distance(spacePoint);
185313
185429
  return result;
185314
185430
  }
185315
- /** swap the endpoint references. */
185431
+ /** Swap the endpoint references. */
185316
185432
  reverseInPlace() {
185317
185433
  const a = this._point0;
185318
185434
  this._point0 = this._point1;
@@ -185329,7 +185445,8 @@ class LineSegment3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePr
185329
185445
  return _Geometry__WEBPACK_IMPORTED_MODULE_6__.Geometry.isSmallMetricDistance(plane.altitude(this._point0))
185330
185446
  && _Geometry__WEBPACK_IMPORTED_MODULE_6__.Geometry.isSmallMetricDistance(plane.altitude(this._point1));
185331
185447
  }
185332
- /** Compute points of simple (transverse) with a plane.
185448
+ /**
185449
+ * Compute points of simple (transverse) with a plane.
185333
185450
  * * Use isInPlane to test if the line segment is completely in the plane.
185334
185451
  */
185335
185452
  appendPlaneIntersectionPoints(plane, result) {
@@ -185387,12 +185504,16 @@ class LineSegment3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePr
185387
185504
  }
185388
185505
  }
185389
185506
  /** A simple line segment's fraction and distance are proportional. */
185390
- getFractionToDistanceScale() { return this.curveLength(); }
185507
+ getFractionToDistanceScale() {
185508
+ return this.curveLength();
185509
+ }
185391
185510
  /**
185392
185511
  * Place the lineSegment3d start and points in a json object
185393
185512
  * @return {*} [[x,y,z],[x,y,z]]
185394
185513
  */
185395
- toJSON() { return [this._point0.toJSON(), this._point1.toJSON()]; }
185514
+ toJSON() {
185515
+ return [this._point0.toJSON(), this._point1.toJSON()];
185516
+ }
185396
185517
  /** Create a new `LineSegment3d` with coordinates from json object. See `setFromJSON` for object layout description. */
185397
185518
  static fromJSON(json) {
185398
185519
  const result = new LineSegment3d(_geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_3__.Point3d.createZero(), _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_3__.Point3d.create());
@@ -185420,7 +185541,7 @@ class LineSegment3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePr
185420
185541
  handler.endCurvePrimitive(this);
185421
185542
  }
185422
185543
  /**
185423
- * return the stroke count required for given options.
185544
+ * Return the stroke count required for given options.
185424
185545
  * @param options StrokeOptions that determine count
185425
185546
  */
185426
185547
  computeStrokeCountForOptions(options) {
@@ -185432,19 +185553,20 @@ class LineSegment3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePr
185432
185553
  }
185433
185554
  return numStroke;
185434
185555
  }
185435
- /** Second step of double dispatch: call `handler.handleLineSegment3d(this)` */
185556
+ /** Second step of double dispatch: call `handler.handleLineSegment3d(this)` */
185436
185557
  dispatchToGeometryHandler(handler) {
185437
185558
  return handler.handleLineSegment3d(this);
185438
185559
  }
185439
185560
  /**
185440
185561
  * Find intervals of this curve primitive that are interior to a clipper
185441
185562
  * @param clipper clip structure (e.g. clip planes)
185442
- * @param announce function to be called announcing fractional intervals" ` announce(fraction0, fraction1, curvePrimitive)`
185563
+ * @param announce function to be called announcing fractional intervals `announce(fraction0, fraction1, curvePrimitive)`
185443
185564
  */
185444
185565
  announceClipIntervals(clipper, announce) {
185445
185566
  return clipper.announceClippedSegmentIntervals(0.0, 1.0, this._point0, this._point1, announce ? (fraction0, fraction1) => announce(fraction0, fraction1, this) : undefined);
185446
185567
  }
185447
- /** Return (if possible) a curve primitive which is a portion of this curve.
185568
+ /**
185569
+ * Return (if possible) a curve primitive which is a portion of this curve.
185448
185570
  * @param fractionA [in] start fraction
185449
185571
  * @param fractionB [in] end fraction
185450
185572
  */
@@ -185484,10 +185606,13 @@ class LineSegment3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePr
185484
185606
  }
185485
185607
  return undefined;
185486
185608
  }
185487
- /** Project instance geometry (via dispatch) onto the given ray, and return the extreme fractional parameters of projection.
185609
+ /**
185610
+ * Project instance geometry (via dispatch) onto the given ray, and return the extreme fractional parameters of
185611
+ * projection.
185488
185612
  * @param ray ray onto which the instance is projected. A `Vector3d` is treated as a `Ray3d` with zero origin.
185489
185613
  * @param lowHigh optional receiver for output
185490
- * @returns range of fractional projection parameters onto the ray, where 0.0 is start of the ray and 1.0 is the end of the ray.
185614
+ * @returns range of fractional projection parameters onto the ray, where 0.0 is start of the ray and 1.0 is the
185615
+ * end of the ray.
185491
185616
  */
185492
185617
  projectedParameterRange(ray, lowHigh) {
185493
185618
  return _internalContexts_PlaneAltitudeRangeContext__WEBPACK_IMPORTED_MODULE_10__.PlaneAltitudeRangeContext.findExtremeFractionsAlongDirection(this, ray, lowHigh);
@@ -185548,11 +185673,12 @@ __webpack_require__.r(__webpack_exports__);
185548
185673
 
185549
185674
 
185550
185675
  /* eslint-disable @typescript-eslint/naming-convention, no-empty */
185551
- /* Starting with baseIndex and moving index by stepDirection:
185552
- If the vector from baseIndex to baseIndex +1 crossed with vectorA can be normalized, accumulate it (scaled) to normal.
185553
- Return when successful.
185554
- (Do nothing if everything is parallel through limits of the array)
185555
- */
185676
+ /**
185677
+ * Starting with baseIndex and moving index by stepDirection:
185678
+ * If the vector from baseIndex to baseIndex +1 crossed with vectorA can be normalized, accumulate it (scaled) to normal.
185679
+ * Return when successful.
185680
+ * (Do nothing if everything is parallel through limits of the array)
185681
+ */
185556
185682
  function accumulateGoodUnitPerpendicular(points, vectorA, baseIndex, stepDirection, weight, normal, workVector) {
185557
185683
  const n = points.length;
185558
185684
  if (stepDirection > 0) {
@@ -185580,43 +185706,67 @@ function accumulateGoodUnitPerpendicular(points, vectorA, baseIndex, stepDirecti
185580
185706
  return false;
185581
185707
  }
185582
185708
  /**
185583
- * * A LineString3d (sometimes called a PolyLine) is a sequence of xyz coordinates that are to be joined by line segments.
185584
- * * The point coordinates are stored in a GrowableXYZArray, not as full point objects
185709
+ * * A LineString3d (sometimes called a PolyLine) is a sequence of xyz coordinates that are to be joined by line
185710
+ * segments.
185711
+ * * The point coordinates are stored in a GrowableXYZArray, not as full point objects.
185585
185712
  * * The parameterization of "fraction along" is
185586
- * * In a linestring with `N` segments (i.e. `N+1` points), each segment (regardless of physical length) occupies the same fraction (1/N) of the 0-to-1 fraction space.
185713
+ * * In a linestring with `N` segments (i.e. `N+1` points), each segment (regardless of physical length) occupies
185714
+ * the same fraction (1/N) of the 0-to-1 fraction space.
185587
185715
  * * Within segment `i`, the fraction interval `i/N` to `(i+1)/N` is mapped proportionally to the segment
185588
185716
  * * Note that this `fraction` is therefore NOT fraction of true distance along.
185589
- * * Use `moveSignedDistanceFromFraction` to do true-length evaluations.
185717
+ * * Use `moveSignedDistanceFromFraction` to do true-length evaluations.
185590
185718
  * @public
185591
185719
  */
185592
185720
  class LineString3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePrimitive {
185593
185721
  /** test if `other` is an instance of `LineString3d` */
185594
- isSameGeometryClass(other) { return other instanceof LineString3d; }
185595
- /**
185596
- * A LineString3d extends along its first and final segments.
185597
- */
185598
- get isExtensibleFractionSpace() { return true; }
185599
- /** return the points array (cloned). */
185600
- get points() { return this._points.getPoint3dArray(); }
185722
+ isSameGeometryClass(other) {
185723
+ return other instanceof LineString3d;
185724
+ }
185725
+ /** A LineString3d extends along its first and final segments. */
185726
+ get isExtensibleFractionSpace() {
185727
+ return true;
185728
+ }
185729
+ /** Return the points array (cloned). */
185730
+ get points() {
185731
+ return this._points.getPoint3dArray();
185732
+ }
185601
185733
  /** Return (reference to) point data in packed GrowableXYZArray. */
185602
- get packedPoints() { return this._points; }
185603
- /** Return array of fraction parameters.
185734
+ get packedPoints() {
185735
+ return this._points;
185736
+ }
185737
+ /**
185738
+ * Return array of fraction parameters.
185604
185739
  * * These Are only present during certain constructions such as faceting.
185605
- * * When present, these fractions are fractions of some other curve being stroked, and are NOT related to the linestring fraction parameters.
185740
+ * * When present, these fractions are fractions of some other curve being stroked, and are NOT related to the
185741
+ * linestring fraction parameters.
185606
185742
  */
185607
- get fractions() { return this._fractions; }
185743
+ get fractions() {
185744
+ return this._fractions;
185745
+ }
185608
185746
  /** Return the (optional) array of derivatives. These Are only present during certain constructions such as faceting. */
185609
- get packedDerivatives() { return this._derivatives; }
185747
+ get packedDerivatives() {
185748
+ return this._derivatives;
185749
+ }
185610
185750
  /** Return the (optional) array of uv params. These Are only present during certain constructions such as faceting. */
185611
- get packedUVParams() { return this._uvParams; }
185751
+ get packedUVParams() {
185752
+ return this._uvParams;
185753
+ }
185612
185754
  /** Return the (optional) array of surface normals. These Are only present during certain constructions such as faceting. */
185613
- get packedSurfaceNormals() { return this._surfaceNormals; }
185755
+ get packedSurfaceNormals() {
185756
+ return this._surfaceNormals;
185757
+ }
185614
185758
  /** Return the (optional) array of normal indices. These Are only present during certain constructions such as faceting. */
185615
- get normalIndices() { return this._normalIndices; }
185759
+ get normalIndices() {
185760
+ return this._normalIndices;
185761
+ }
185616
185762
  /** Return the (optional) array of param indices. These Are only present during certain constructions such as faceting. */
185617
- get paramIndices() { return this._uvIndices; }
185763
+ get paramIndices() {
185764
+ return this._uvIndices;
185765
+ }
185618
185766
  /** Return the (optional) array of point indices. These Are only present during certain constructions such as faceting. */
185619
- get pointIndices() { return this._pointIndices; }
185767
+ get pointIndices() {
185768
+ return this._pointIndices;
185769
+ }
185620
185770
  constructor(points) {
185621
185771
  super();
185622
185772
  /** String name for schema properties */
@@ -185632,7 +185782,8 @@ class LineString3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePri
185632
185782
  c.tryTransformInPlace(transform);
185633
185783
  return c;
185634
185784
  }
185635
- /** Create a linestring, using flex length arg list and any typical combination of points such as
185785
+ /**
185786
+ * Create a linestring, using flex length arg list and any typical combination of points such as
185636
185787
  * Point3d, Point2d, `[1,2,3]', array of any of those, or GrowableXYZArray
185637
185788
  */
185638
185789
  static create(...points) {
@@ -185640,7 +185791,8 @@ class LineString3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePri
185640
185791
  result.addPoints(points);
185641
185792
  return result;
185642
185793
  }
185643
- /** Create a linestring, capturing the given GrowableXYZArray as the points.
185794
+ /**
185795
+ * Create a linestring, capturing the given GrowableXYZArray as the points.
185644
185796
  * Point3d, Point2d, `[1,2,3]', array of any of those, or GrowableXYZArray
185645
185797
  */
185646
185798
  static createCapture(points) {
@@ -185665,7 +185817,8 @@ class LineString3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePri
185665
185817
  }
185666
185818
  return result;
185667
185819
  }
185668
- /** Add points to the linestring.
185820
+ /**
185821
+ * Add points to the linestring.
185669
185822
  * Valid inputs are:
185670
185823
  * * a Point2d
185671
185824
  * * a point3d
@@ -185817,9 +185970,7 @@ class LineString3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePri
185817
185970
  this._surfaceNormals = new _geometry3d_GrowableXYZArray__WEBPACK_IMPORTED_MODULE_1__.GrowableXYZArray();
185818
185971
  this._surfaceNormals.push(vector);
185819
185972
  }
185820
- /**
185821
- * If the linestring is not already closed, add a closure point.
185822
- */
185973
+ /** If the linestring is not already closed, add a closure point. */
185823
185974
  addClosurePoint() {
185824
185975
  const distance = this._points.distanceIndexIndex(0, this._points.length - 1);
185825
185976
  if (distance !== undefined && !_Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.isSameCoordinate(distance, 0))
@@ -185833,7 +185984,8 @@ class LineString3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePri
185833
185984
  computeUVFromXYZTransform(transform) {
185834
185985
  this._uvParams = _geometry3d_GrowableXYArray__WEBPACK_IMPORTED_MODULE_4__.GrowableXYArray.createFromGrowableXYZArray(this._points, transform);
185835
185986
  }
185836
- /** Create the linestring for a rectangle parallel to the xy plane.
185987
+ /**
185988
+ * Create the linestring for a rectangle parallel to the xy plane.
185837
185989
  * * The z coordinate from `point0` is used for all points.
185838
185990
  * * `ax` and `ay` are signed.
185839
185991
  * * The point sequence is:
@@ -185864,7 +186016,8 @@ class LineString3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePri
185864
186016
  * @param center center of the polygon.
185865
186017
  * @param edgeCount number of edges.
185866
186018
  * @param radius distance to vertex or edge (see `radiusToVertices`)
185867
- * @param radiusToVertices true if polygon is inscribed in circle (radius measured to vertices); false if polygon is outside circle (radius to edges)
186019
+ * @param radiusToVertices true if polygon is inscribed in circle (radius measured to vertices); false if polygon
186020
+ * is outside circle (radius to edges)
185868
186021
  */
185869
186022
  static createRegularPolygonXY(center, edgeCount, radius, radiusToVertices = true) {
185870
186023
  if (edgeCount < 3)
@@ -185946,7 +186099,8 @@ class LineString3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePri
185946
186099
  retVal.setFrom(this);
185947
186100
  return retVal;
185948
186101
  }
185949
- /** Set point coordinates from a json array, e.g. `[[1,2,3],[4,5,6] . . .]`
186102
+ /**
186103
+ * Set point coordinates from a json array, e.g. `[[1,2,3],[4,5,6] . . .]`
185950
186104
  * * The `json` parameter must be an array.
185951
186105
  * * Each member `i` of the array is converted to a point with `Point3d.fromJSON(json[i]`)
185952
186106
  */
@@ -185971,7 +186125,8 @@ class LineString3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePri
185971
186125
  }
185972
186126
  return value;
185973
186127
  }
185974
- /** construct a new linestring.
186128
+ /**
186129
+ * Construct a new linestring.
185975
186130
  * * See `LineString3d.setFromJSON ()` for remarks on `json` structure.
185976
186131
  */
185977
186132
  static fromJSON(json) {
@@ -186061,7 +186216,8 @@ class LineString3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePri
186061
186216
  }
186062
186217
  /**
186063
186218
  * Convert a global fraction to a segment index and local fraction.
186064
- * @param globalFraction a fraction f in [0,1] in the linestring parameterization, where the i_th segment (0 <= i < N) is parameterized by i/N <= f <= (i+1)/N.
186219
+ * @param globalFraction a fraction f in [0,1] in the linestring parameterization, where the i_th segment
186220
+ * (0 <= i < N) is parameterized by i/N <= f <= (i+1)/N.
186065
186221
  */
186066
186222
  globalFractionToSegmentIndexAndLocalFraction(globalFraction) {
186067
186223
  const numSegment = this._points.length - 1;
@@ -186125,7 +186281,7 @@ class LineString3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePri
186125
186281
  return _geometry3d_Transform__WEBPACK_IMPORTED_MODULE_9__.Transform.createOriginAndMatrix(origin, matrix, result);
186126
186282
  return _geometry3d_Transform__WEBPACK_IMPORTED_MODULE_9__.Transform.createTranslation(origin, result);
186127
186283
  }
186128
- /** evaluate the start point of the linestring. */
186284
+ /** Evaluate the start point of the linestring. */
186129
186285
  startPoint() {
186130
186286
  if (this._points.length === 0)
186131
186287
  return _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_6__.Point3d.createZero();
@@ -186137,8 +186293,7 @@ class LineString3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePri
186137
186293
  return this._points.getPoint3dAtUncheckedPointIndex(i, result);
186138
186294
  return undefined;
186139
186295
  }
186140
- /** If i and j are both valid indices, return the vector from point i to point j
186141
- */
186296
+ /** If i and j are both valid indices, return the vector from point i to point j */
186142
186297
  vectorBetween(i, j, result) {
186143
186298
  return this._points.vectorIndexIndex(i, j, result);
186144
186299
  }
@@ -186155,8 +186310,10 @@ class LineString3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePri
186155
186310
  return undefined;
186156
186311
  }
186157
186312
  /** Return the number of points in this linestring. */
186158
- numPoints() { return this._points.length; }
186159
- /** evaluate the end point of the linestring. */
186313
+ numPoints() {
186314
+ return this._points.length;
186315
+ }
186316
+ /** Evaluate the end point of the linestring. */
186160
186317
  endPoint() {
186161
186318
  if (this._points.length === 0)
186162
186319
  return _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_6__.Point3d.createZero();
@@ -186180,7 +186337,9 @@ class LineString3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePri
186180
186337
  return true;
186181
186338
  }
186182
186339
  /** Sum the lengths of segments within the linestring */
186183
- curveLength() { return this._points.sumLengths(); }
186340
+ curveLength() {
186341
+ return this._points.sumLengths();
186342
+ }
186184
186343
  /** Sum the lengths of segments between fractional positions on a linestring. */
186185
186344
  curveLengthBetweenFractions(fraction0, fraction1) {
186186
186345
  const numSegments = this._points.length - 1;
@@ -186279,10 +186438,10 @@ class LineString3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePri
186279
186438
  return _CurveLocationDetail__WEBPACK_IMPORTED_MODULE_12__.CurveLocationDetail.createCurveFractionPointDistanceCurveSearchStatus(this, context.fraction0, context.point0, -context.distance0, context.distanceStatus(), result);
186280
186439
  }
186281
186440
  }
186282
- /** sum lengths of segments in the linestring. (This is a true length.) */
186441
+ /** Sum lengths of segments in the linestring. (This is a true length.) */
186283
186442
  quickLength() { return this.curveLength(); }
186284
186443
  /**
186285
- * compute and normalize cross product among 3 points on the linestring.
186444
+ * Compute and normalize cross product among 3 points on the linestring.
186286
186445
  * * "any" 3 points are acceptable -- no test for positive overall sense.
186287
186446
  * * This is appropriate for polygon known to be convex.
186288
186447
  * * use points spread at index step n/3, hopefully avoiding colinear points.
@@ -186321,7 +186480,8 @@ class LineString3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePri
186321
186480
  if (!extend1 || i < lastIndex)
186322
186481
  segmentFraction = 1.0;
186323
186482
  }
186324
- this._points.getPoint3dAtUncheckedPointIndex(i - 1).interpolate(segmentFraction, this._points.getPoint3dAtUncheckedPointIndex(i), result.pointQ);
186483
+ this._points.getPoint3dAtUncheckedPointIndex(i - 1)
186484
+ .interpolate(segmentFraction, this._points.getPoint3dAtUncheckedPointIndex(i), result.pointQ);
186325
186485
  d = result.pointQ.distance(spacePoint);
186326
186486
  if (d < result.a) {
186327
186487
  result.setFP(this.segmentIndexAndLocalFractionToGlobalFraction(i - 1, segmentFraction), result.pointQ, undefined, d);
@@ -186335,8 +186495,9 @@ class LineString3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePri
186335
186495
  isInPlane(plane) {
186336
186496
  return this._points.isCloseToPlane(plane, _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.smallMetricDistance);
186337
186497
  }
186338
- /** push a hit, fixing up the prior entry if needed.
186339
- * return the incremented counter.
186498
+ /**
186499
+ * Push a hit, fixing up the prior entry if needed.
186500
+ * Return the incremented counter.
186340
186501
  */
186341
186502
  static pushVertexHit(result, counter, cp, fraction, point) {
186342
186503
  const detail = _CurveLocationDetail__WEBPACK_IMPORTED_MODULE_12__.CurveLocationDetail.createCurveFractionPoint(cp, fraction, point);
@@ -186353,7 +186514,8 @@ class LineString3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePri
186353
186514
  detail.setIntervalRole(_CurveLocationDetail__WEBPACK_IMPORTED_MODULE_12__.CurveIntervalRole.intervalEnd);
186354
186515
  }
186355
186516
  }
186356
- /** find intersections with a plane.
186517
+ /**
186518
+ * Find intersections with a plane.
186357
186519
  * Intersections within segments are recorded as CurveIntervalRole.isolated
186358
186520
  * Intersections at isolated "on" vertex are recoded as CurveIntervalRole.isolatedAtVertex.
186359
186521
  */
@@ -186390,7 +186552,9 @@ class LineString3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePri
186390
186552
  return result.length - initialLength;
186391
186553
  }
186392
186554
  /** Extend `rangeToExtend` to include all points of this linestring. */
186393
- extendRange(rangeToExtend, transform) { this._points.extendRange(rangeToExtend, transform); }
186555
+ extendRange(rangeToExtend, transform) {
186556
+ this._points.extendRange(rangeToExtend, transform);
186557
+ }
186394
186558
  /** Test if each point of this linestring isAlmostEqual with corresponding point in `other`. */
186395
186559
  isAlmostEqual(other) {
186396
186560
  if (!(other instanceof LineString3d))
@@ -186399,7 +186563,8 @@ class LineString3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePri
186399
186563
  return false;
186400
186564
  return true;
186401
186565
  }
186402
- /** Append (clone of) one point.
186566
+ /**
186567
+ * Append (clone of) one point.
186403
186568
  * * BUT ... skip if duplicates the tail of prior points.
186404
186569
  * * if fraction is given, "duplicate" considers both point and fraction.
186405
186570
  */
@@ -186419,8 +186584,7 @@ class LineString3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePri
186419
186584
  this.addFraction(fraction);
186420
186585
  }
186421
186586
  }
186422
- /** Compress out duplicate points (according to point.isAlmostEqual)
186423
- */
186587
+ /** Compress out duplicate points (according to point.isAlmostEqual) */
186424
186588
  removeDuplicatePoints(tolerance = _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.smallMetricDistance) {
186425
186589
  const n = this._points.length;
186426
186590
  if (n < 2)
@@ -186443,7 +186607,8 @@ class LineString3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePri
186443
186607
  if (this._derivatives)
186444
186608
  this._derivatives.resize(n1);
186445
186609
  }
186446
- /** Append a suitable evaluation of a curve ..
186610
+ /**
186611
+ * Append a suitable evaluation of a curve ..
186447
186612
  * * always append the curve point
186448
186613
  * * if fraction array is present, append the fraction
186449
186614
  * * if derivative array is present, append the derivative
@@ -186466,7 +186631,7 @@ class LineString3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePri
186466
186631
  }
186467
186632
  }
186468
186633
  /**
186469
- * clear all array data:
186634
+ * Clear all array data:
186470
186635
  * * points
186471
186636
  * * optional fractions.
186472
186637
  * * optional derivatives.
@@ -186500,7 +186665,8 @@ class LineString3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePri
186500
186665
  }
186501
186666
  return ls;
186502
186667
  }
186503
- /** Evaluate a curve at uniform fractions. Append the evaluations to this linestring.
186668
+ /**
186669
+ * Evaluate a curve at uniform fractions. Append the evaluations to this linestring.
186504
186670
  * @param curve primitive to evaluate.
186505
186671
  * @param numStrokes number of strokes (edges).
186506
186672
  * @param fraction0 starting fraction coordinate
@@ -186520,7 +186686,8 @@ class LineString3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePri
186520
186686
  this.appendFractionToPoint(curve, fraction0 + i * df);
186521
186687
  }
186522
186688
  }
186523
- /** Append points constructed as interpolation between two points.
186689
+ /**
186690
+ * Append points constructed as interpolation between two points.
186524
186691
  * @param numStrokes number of strokes.
186525
186692
  * @param point0 first point
186526
186693
  * @param point1 last point
@@ -186566,7 +186733,8 @@ class LineString3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePri
186566
186733
  }
186567
186734
  }
186568
186735
  }
186569
- /** Emit strokable parts of the curve to a caller-supplied handler.
186736
+ /**
186737
+ * Emit strokable parts of the curve to a caller-supplied handler.
186570
186738
  * If the stroke options does not have a maxEdgeLength, one stroke is emitted for each segment of the linestring.
186571
186739
  * If the stroke options has a maxEdgeLength, smaller segments are emitted as needed.
186572
186740
  */
@@ -186593,7 +186761,7 @@ class LineString3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePri
186593
186761
  handler.endCurvePrimitive(this);
186594
186762
  }
186595
186763
  /**
186596
- * return the stroke count required for given options.
186764
+ * Return the stroke count required for given options.
186597
186765
  * @param options StrokeOptions that determine count
186598
186766
  */
186599
186767
  computeStrokeCountForOptions(options) {
@@ -186632,7 +186800,8 @@ class LineString3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePri
186632
186800
  /**
186633
186801
  * Find intervals of this CurvePrimitive that are interior to a clipper
186634
186802
  * @param clipper clip structure (e.g. clip planes)
186635
- * @param announce (optional) function to be called announcing fractional intervals" ` announce(fraction0, fraction1, curvePrimitive)`
186803
+ * @param announce (optional) function to be called announcing fractional intervals"
186804
+ * ` announce(fraction0, fraction1, curvePrimitive)`
186636
186805
  * @returns true if any "in" segments are announced.
186637
186806
  */
186638
186807
  announceClipIntervals(clipper, announce) {
@@ -186676,7 +186845,8 @@ class LineString3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePri
186676
186845
  this._points.interpolate(index, fraction, index + 1, LineString3d._indexPoint);
186677
186846
  dest.push(LineString3d._indexPoint);
186678
186847
  }
186679
- /** Return a LineString which is a portion of this curve.
186848
+ /**
186849
+ * Return a LineString which is a portion of this curve.
186680
186850
  * * Fractions outside [0,1] extend the relevant end segment.
186681
186851
  * @param fractionA [in] start fraction
186682
186852
  * @param fractionB [in] end fraction
@@ -186736,14 +186906,12 @@ class LineString3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePri
186736
186906
  return _LineSegment3d__WEBPACK_IMPORTED_MODULE_15__.LineSegment3d.create(this._points.getPoint3dAtCheckedPointIndex(index), this._points.getPoint3dAtCheckedPointIndex(index + 1));
186737
186907
  return undefined;
186738
186908
  }
186739
- /**
186740
- * Returns true if first and last points are within metric tolerance.
186741
- */
186909
+ /** Returns true if first and last points are within metric tolerance. */
186742
186910
  get isPhysicallyClosed() {
186743
186911
  return this._points.length > 0 && _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.isSmallMetricDistance(this._points.distanceIndexIndex(0, this._points.length - 1));
186744
186912
  }
186745
186913
  /**
186746
- * evaluate strokes at fractions indicated in a StrokeCountMap.
186914
+ * Evaluate strokes at fractions indicated in a StrokeCountMap.
186747
186915
  * * The map must have an array of component counts corresponding to the segment of this linestring.
186748
186916
  * * "fractions" in the output are mapped within a0,a1 of the map.componentData
186749
186917
  * @param map = stroke count data.
@@ -186780,7 +186948,8 @@ class LineString3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePri
186780
186948
  }
186781
186949
  return destLinestring.numPoints() - numPoint0;
186782
186950
  }
186783
- /** convert variant point data to a single level array of linestrings.
186951
+ /**
186952
+ * Convert variant point data to a single level array of linestrings.
186784
186953
  * * The result is always an array of LineString3d.
186785
186954
  * * Single linestring is NOT bubbled out as a special case.
186786
186955
  * * data with no point is an empty array.
@@ -186815,7 +186984,8 @@ class LineString3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePri
186815
186984
  }
186816
186985
  /**
186817
186986
  * Construct an offset of each segment as viewed in the xy-plane (ignoring z).
186818
- * * No attempt is made to join the offset segments. Use RegionOps.constructCurveXYOffset() to return a fully joined offset.
186987
+ * * No attempt is made to join the offset segments. Use RegionOps.constructCurveXYOffset() to return a fully
186988
+ * joined offset.
186819
186989
  * @param offsetDistanceOrOptions offset distance (positive to left of the instance curve), or options object
186820
186990
  */
186821
186991
  constructOffsetXY(offsetDistanceOrOptions) {
@@ -186832,10 +187002,13 @@ class LineString3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePri
186832
187002
  }
186833
187003
  return offsets;
186834
187004
  }
186835
- /** Project instance geometry (via dispatch) onto the given ray, and return the extreme fractional parameters of projection.
187005
+ /**
187006
+ * Project instance geometry (via dispatch) onto the given ray, and return the extreme fractional parameters
187007
+ * of projection.
186836
187008
  * @param ray ray onto which the instance is projected. A `Vector3d` is treated as a `Ray3d` with zero origin.
186837
187009
  * @param lowHigh optional receiver for output
186838
- * @returns range of fractional projection parameters onto the ray, where 0.0 is start of the ray and 1.0 is the end of the ray.
187010
+ * @returns range of fractional projection parameters onto the ray, where 0.0 is start of the ray and 1.0 is
187011
+ * the end of the ray.
186839
187012
  */
186840
187013
  projectedParameterRange(ray, lowHigh) {
186841
187014
  return _internalContexts_PlaneAltitudeRangeContext__WEBPACK_IMPORTED_MODULE_18__.PlaneAltitudeRangeContext.findExtremeFractionsAlongDirection(this, ray, lowHigh);
@@ -186847,14 +187020,15 @@ LineString3d._workPointC = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_
186847
187020
  LineString3d._workRay = _geometry3d_Ray3d__WEBPACK_IMPORTED_MODULE_7__.Ray3d.createXAxis();
186848
187021
  LineString3d._indexPoint = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_6__.Point3d.create(); // private point for addResolvedPoint
186849
187022
 
186850
- /** An AnnotatedLineString3d is a linestring with additional surface-related data attached to each point
187023
+ /**
187024
+ * An AnnotatedLineString3d is a linestring with additional surface-related data attached to each point
186851
187025
  * * This is useful in facet construction.
186852
187026
  * @internal
186853
187027
  */
186854
187028
  class AnnotatedLineString3d {
186855
187029
  }
186856
187030
  /**
186857
- * context to be called to incrementally accumulate distance along line segments.
187031
+ * Context to be called to incrementally accumulate distance along line segments.
186858
187032
  */
186859
187033
  class MoveByDistanceContext {
186860
187034
  /** CAPTURE point0, fraction0, targetDistance */
@@ -188849,15 +189023,15 @@ __webpack_require__.r(__webpack_exports__);
188849
189023
  */
188850
189024
 
188851
189025
  /**
188852
- * data carrier interface for per-primitive stroke counts and distances used by PolyfaceBuilder.
188853
- * * For a simple primitive (Line segment or arc) that is stroked with uniform fraction, the members are:
189026
+ * Data carrier interface for per-primitive stroke counts and distances used by PolyfaceBuilder.
189027
+ * * For a simple primitive (line segment or arc) that is stroked with uniform fraction, the members are:
188854
189028
  * * `numStroke` = total number of strokes
188855
189029
  * * `curveLength` = length of this curve
188856
189030
  * * `a0` = external mapped coordinate for fraction 0 on this primitive or component
188857
189031
  * * `a1` = external mapped coordinate for fraction 1 on this primitive or component
188858
189032
  *
188859
189033
  * * For linestring and bspline curve, those numbers are totals for the overall curve, and breakdown within
188860
- * the components (line segments or bezier spans) is recorded on the optional array `componentData[]`
189034
+ * the components (line segments or bezier spans) is recorded on the optional array `componentData[]`
188861
189035
  * * Members of the array are annotated with componentIndex within the linestring or bspline curve
188862
189036
  * @public
188863
189037
  */
@@ -188907,7 +189081,7 @@ class StrokeCountMap {
188907
189081
  return result;
188908
189082
  }
188909
189083
  /**
188910
- * create a StrokeCountMap, optionally
189084
+ * Create a StrokeCountMap, optionally
188911
189085
  * * (a) use parent a1 as new a0
188912
189086
  * * (b) attach a (usually empty) array for component counts.
188913
189087
  * @param parentMap optional map whose a1 becomes a0 in the new map.
@@ -188935,8 +189109,9 @@ class StrokeCountMap {
188935
189109
  this.curveLength += curveLength;
188936
189110
  this.a1 = a2;
188937
189111
  }
188938
- /** return true if `other` has the same component structure as `this`
188939
- * * testing recurses through corresponding members of componentData arrays.
189112
+ /**
189113
+ * Return true if `other` has the same component structure as `this`
189114
+ * * Testing recurses through corresponding members of componentData arrays.
188940
189115
  */
188941
189116
  isCompatibleComponentStructure(other, enforceCounts) {
188942
189117
  if (enforceCounts && this.numStroke !== other.numStroke)
@@ -188957,7 +189132,7 @@ class StrokeCountMap {
188957
189132
  return false;
188958
189133
  }
188959
189134
  /**
188960
- * * clone all data from root.
189135
+ * Clone all data from root.
188961
189136
  * * clone componentData arrays recursively.
188962
189137
  */
188963
189138
  clone() {
@@ -188970,7 +189145,7 @@ class StrokeCountMap {
188970
189145
  return a;
188971
189146
  }
188972
189147
  /**
188973
- * interpolate in the a0,a1 mapping.
189148
+ * Interpolate in the a0,a1 mapping.
188974
189149
  * @param fraction fractional position between a0 and a1
188975
189150
  */
188976
189151
  fractionToA(fraction) {
@@ -190647,7 +190822,8 @@ __webpack_require__.r(__webpack_exports__);
190647
190822
 
190648
190823
 
190649
190824
  /* eslint-disable @typescript-eslint/naming-convention, no-empty */
190650
- /** tolerance blob for various stroking methods.
190825
+ /**
190826
+ * Tolerance blob for various stroking methods.
190651
190827
  *
190652
190828
  * * Across many applications, the critical concepts are: chordTol, angleTol, maxEdgeLength
190653
190829
  * * Chord error is an distance measured from a curve or facet to its approximating stroke or facet.
@@ -190670,26 +190846,40 @@ __webpack_require__.r(__webpack_exports__);
190670
190846
  */
190671
190847
  class StrokeOptions {
190672
190848
  constructor() {
190673
- /** whether or not to triangulate each added facet */
190849
+ /** Whether or not to triangulate each added facet */
190674
190850
  this.shouldTriangulate = false;
190675
- /** default number of strokes for a circle. */
190851
+ /** Default number of strokes for a circle. */
190676
190852
  this.defaultCircleStrokes = 16;
190677
190853
  }
190678
190854
  /** Whether params are requested. */
190679
- get needParams() { return this._needParams !== undefined ? this._needParams : false; }
190680
- set needParams(value) { this._needParams = value; }
190855
+ get needParams() {
190856
+ return this._needParams !== undefined ? this._needParams : false;
190857
+ }
190858
+ set needParams(value) {
190859
+ this._needParams = value;
190860
+ }
190681
190861
  /** Whether normals are requested */
190682
- get needNormals() { return this._needNormals !== undefined ? this._needNormals : false; }
190862
+ get needNormals() {
190863
+ return this._needNormals !== undefined ? this._needNormals : false;
190864
+ }
190683
190865
  set needNormals(value) { this._needNormals = value; }
190684
190866
  /** Whether twoSided is requested. */
190685
- get needTwoSided() { return this._needTwoSided !== undefined ? this._needTwoSided : false; }
190867
+ get needTwoSided() {
190868
+ return this._needTwoSided !== undefined ? this._needTwoSided : false;
190869
+ }
190686
190870
  set needTwoSided(value) { this._needTwoSided = value; }
190687
- /** ask if angleTol is specified */
190688
- get hasAngleTol() { return this.angleTol !== undefined && Math.abs(this.angleTol.radians) > 0.0; }
190689
- /** ask if chordTol is specified */
190690
- get hasChordTol() { return this.chordTol !== undefined && this.chordTol > 0.0; }
190691
- /** ask if maxEdgeLength is specified */
190692
- get hasMaxEdgeLength() { return this.maxEdgeLength !== undefined && this.maxEdgeLength > 0.0; }
190871
+ /** Ask if angleTol is specified */
190872
+ get hasAngleTol() {
190873
+ return this.angleTol !== undefined && Math.abs(this.angleTol.radians) > 0.0;
190874
+ }
190875
+ /** Ask if chordTol is specified */
190876
+ get hasChordTol() {
190877
+ return this.chordTol !== undefined && this.chordTol > 0.0;
190878
+ }
190879
+ /** Ask if maxEdgeLength is specified */
190880
+ get hasMaxEdgeLength() {
190881
+ return this.maxEdgeLength !== undefined && this.maxEdgeLength > 0.0;
190882
+ }
190693
190883
  /** Return a deep clone */
190694
190884
  clone() {
190695
190885
  const options = new StrokeOptions();
@@ -190706,7 +190896,7 @@ class StrokeOptions {
190706
190896
  options.defaultCircleStrokes = this.defaultCircleStrokes;
190707
190897
  return options;
190708
190898
  }
190709
- /** return stroke count which is the larger of the minCount or count needed for edge length condition. */
190899
+ /** Return stroke count which is the larger of the minCount or count needed for edge length condition. */
190710
190900
  applyMaxEdgeLength(minCount, totalLength) {
190711
190901
  totalLength = Math.abs(totalLength);
190712
190902
  if (this.maxEdgeLength && this.maxEdgeLength > 0.0 && minCount * this.maxEdgeLength < totalLength) {
@@ -190715,14 +190905,16 @@ class StrokeOptions {
190715
190905
  return minCount;
190716
190906
  }
190717
190907
  /**
190718
- * return stroke count which is the larger of the existing count or count needed for angle condition for given sweepRadians
190908
+ * Return stroke count which is the larger of the existing count or count needed for angle condition for given
190909
+ * sweepRadians.
190719
190910
  * * defaultStepRadians is assumed to be larger than zero.
190720
190911
  */
190721
190912
  applyAngleTol(minCount, sweepRadians, defaultStepRadians) {
190722
190913
  return StrokeOptions.applyAngleTol(this, minCount, sweepRadians, defaultStepRadians);
190723
190914
  }
190724
190915
  /**
190725
- * return stroke count which is the larger of minCount and the count required to turn sweepRadians, using tolerance from the options.
190916
+ * Return stroke count which is the larger of minCount and the count required to turn sweepRadians, using tolerance
190917
+ * from the options.
190726
190918
  */
190727
190919
  static applyAngleTol(options, minCount, sweepRadians, defaultStepRadians) {
190728
190920
  sweepRadians = Math.abs(sweepRadians);
@@ -190750,7 +190942,8 @@ class StrokeOptions {
190750
190942
  return minCount;
190751
190943
  }
190752
190944
  /**
190753
- * Determine a stroke count for a (partial) circular arc of given radius. This considers angle, maxEdgeLength, chord, and minimum stroke.
190945
+ * Determine a stroke count for a (partial) circular arc of given radius. This considers angle, maxEdgeLength,
190946
+ * chord, and minimum stroke.
190754
190947
  */
190755
190948
  applyTolerancesToArc(radius, sweepRadians = Math.PI * 2) {
190756
190949
  let numStrokes = 1;
@@ -190760,7 +190953,7 @@ class StrokeOptions {
190760
190953
  numStrokes = this.applyMinStrokesPerPrimitive(numStrokes);
190761
190954
  return numStrokes;
190762
190955
  }
190763
- /** return stroke count which is the larger of existing count or count needed for circular arc chord tolerance condition. */
190956
+ /** Return stroke count which is the larger of existing count or count needed for circular arc chord tolerance condition. */
190764
190957
  applyChordTol(minCount, radius, sweepRadians) {
190765
190958
  if (this.chordTol && this.chordTol > 0.0 && this.chordTol < radius) {
190766
190959
  const a = this.chordTol;
@@ -190769,7 +190962,9 @@ class StrokeOptions {
190769
190962
  }
190770
190963
  return minCount;
190771
190964
  }
190772
- /** return stroke count which is the larger of existing count or count needed for circular arc chord tol with given arc length and radians
190965
+ /**
190966
+ * Return stroke count which is the larger of existing count or count needed for circular arc chord tol with given
190967
+ * arc length and radians
190773
190968
  */
190774
190969
  applyChordTolToLengthAndRadians(minCount, length, sweepRadians) {
190775
190970
  if (this.chordTol && this.chordTol > 0.0) {
@@ -190779,14 +190974,15 @@ class StrokeOptions {
190779
190974
  }
190780
190975
  return minCount;
190781
190976
  }
190782
- /** return stroke count which is the larger of existing count or `this.minStrokesPerPrimitive` */
190977
+ /** Return stroke count which is the larger of existing count or `this.minStrokesPerPrimitive` */
190783
190978
  applyMinStrokesPerPrimitive(minCount) {
190784
190979
  if (this.minStrokesPerPrimitive !== undefined && Number.isFinite(this.minStrokesPerPrimitive)
190785
190980
  && this.minStrokesPerPrimitive > minCount)
190786
190981
  minCount = this.minStrokesPerPrimitive;
190787
190982
  return minCount;
190788
190983
  }
190789
- /** create `StrokeOptions` with defaults appropriate for curves.
190984
+ /**
190985
+ * Create `StrokeOptions` with defaults appropriate for curves.
190790
190986
  * * angle tolerance of 15 degrees.
190791
190987
  * * all others inactive.
190792
190988
  */
@@ -190795,7 +190991,8 @@ class StrokeOptions {
190795
190991
  options.angleTol = _geometry3d_Angle__WEBPACK_IMPORTED_MODULE_1__.Angle.createDegrees(15.0);
190796
190992
  return options;
190797
190993
  }
190798
- /** create `StrokeOptions` with defaults appropriate for surfaces facets
190994
+ /**
190995
+ * Create `StrokeOptions` with defaults appropriate for surfaces facets
190799
190996
  * * angle tolerance of 22.5 degrees.
190800
190997
  * * all others inactive.
190801
190998
  */
@@ -202838,8 +203035,8 @@ class Matrix3d {
202838
203035
  }
202839
203036
  /**
202840
203037
  * Create a matrix from column vectors, shuffled into place per axisOrder
202841
- * For example, if axisOrder = XYZ then it returns [vectorU, vectorV, vectorW]
202842
- * Another example, if axisOrder = YZX then it returns [vectorW, vectorU, vectorV] because
203038
+ * * For example, if axisOrder = XYZ then it returns [vectorU, vectorV, vectorW]
203039
+ * * Another example, if axisOrder = YZX then it returns [vectorW, vectorU, vectorV] because
202843
203040
  * Y is at index 0 so vectorU goes to the column Y (column 2), Z is at index 1 so vectorV goes
202844
203041
  * to the column Z (column 3), and X is at index 2 so vectorW goes to the column X (column 1)
202845
203042
  */
@@ -272237,9 +272434,9 @@ __webpack_require__.r(__webpack_exports__);
272237
272434
  /* harmony export */ "DialogProperty": () => (/* reexport safe */ _appui_abstract_dialogs_DialogItem__WEBPACK_IMPORTED_MODULE_4__.DialogProperty),
272238
272435
  /* harmony export */ "DisplayMessageType": () => (/* reexport safe */ _appui_abstract_notification_MessagePresenter__WEBPACK_IMPORTED_MODULE_14__.DisplayMessageType),
272239
272436
  /* harmony export */ "FunctionKey": () => (/* reexport safe */ _appui_abstract_common_KeyboardKey__WEBPACK_IMPORTED_MODULE_1__.FunctionKey),
272240
- /* harmony export */ "FuzzyScore": () => (/* reexport safe */ _appui_abstract_utils_filter_filters__WEBPACK_IMPORTED_MODULE_34__.FuzzyScore),
272437
+ /* harmony export */ "FuzzyScore": () => (/* reexport safe */ _appui_abstract_utils_filter_filters__WEBPACK_IMPORTED_MODULE_33__.FuzzyScore),
272241
272438
  /* harmony export */ "GenericUiEvent": () => (/* reexport safe */ _appui_abstract_UiAdmin__WEBPACK_IMPORTED_MODULE_0__.GenericUiEvent),
272242
- /* harmony export */ "IconSpecUtilities": () => (/* reexport safe */ _appui_abstract_utils_IconSpecUtilities__WEBPACK_IMPORTED_MODULE_28__.IconSpecUtilities),
272439
+ /* harmony export */ "IconSpecUtilities": () => (/* reexport safe */ _appui_abstract_utils_IconSpecUtilities__WEBPACK_IMPORTED_MODULE_27__.IconSpecUtilities),
272243
272440
  /* harmony export */ "MessageSeverity": () => (/* reexport safe */ _appui_abstract_notification_MessageSeverity__WEBPACK_IMPORTED_MODULE_15__.MessageSeverity),
272244
272441
  /* harmony export */ "PropertyChangeStatus": () => (/* reexport safe */ _appui_abstract_dialogs_UiDataProvider__WEBPACK_IMPORTED_MODULE_6__.PropertyChangeStatus),
272245
272442
  /* harmony export */ "PropertyDescriptionHelper": () => (/* reexport safe */ _appui_abstract_properties_Description__WEBPACK_IMPORTED_MODULE_16__.PropertyDescriptionHelper),
@@ -272256,17 +272453,17 @@ __webpack_require__.r(__webpack_exports__);
272256
272453
  /* harmony export */ "ToolbarItemUtilities": () => (/* reexport safe */ _appui_abstract_toolbars_ToolbarItem__WEBPACK_IMPORTED_MODULE_24__.ToolbarItemUtilities),
272257
272454
  /* harmony export */ "UiAdmin": () => (/* reexport safe */ _appui_abstract_UiAdmin__WEBPACK_IMPORTED_MODULE_0__.UiAdmin),
272258
272455
  /* harmony export */ "UiDataProvider": () => (/* reexport safe */ _appui_abstract_dialogs_UiDataProvider__WEBPACK_IMPORTED_MODULE_6__.UiDataProvider),
272259
- /* harmony export */ "UiError": () => (/* reexport safe */ _appui_abstract_utils_UiError__WEBPACK_IMPORTED_MODULE_30__.UiError),
272260
- /* harmony export */ "UiEvent": () => (/* reexport safe */ _appui_abstract_utils_UiEvent__WEBPACK_IMPORTED_MODULE_32__.UiEvent),
272261
- /* harmony export */ "UiEventDispatcher": () => (/* reexport safe */ _appui_abstract_utils_UiEventDispatcher__WEBPACK_IMPORTED_MODULE_31__.UiEventDispatcher),
272456
+ /* harmony export */ "UiError": () => (/* reexport safe */ _appui_abstract_utils_UiError__WEBPACK_IMPORTED_MODULE_29__.UiError),
272457
+ /* harmony export */ "UiEvent": () => (/* reexport safe */ _appui_abstract_utils_UiEvent__WEBPACK_IMPORTED_MODULE_31__.UiEvent),
272458
+ /* harmony export */ "UiEventDispatcher": () => (/* reexport safe */ _appui_abstract_utils_UiEventDispatcher__WEBPACK_IMPORTED_MODULE_30__.UiEventDispatcher),
272262
272459
  /* harmony export */ "UiLayoutDataProvider": () => (/* reexport safe */ _appui_abstract_dialogs_UiLayoutDataProvider__WEBPACK_IMPORTED_MODULE_5__.UiLayoutDataProvider),
272263
- /* harmony export */ "UiSyncEvent": () => (/* reexport safe */ _appui_abstract_utils_UiEventDispatcher__WEBPACK_IMPORTED_MODULE_31__.UiSyncEvent),
272264
- /* harmony export */ "convertSimple2RegExpPattern": () => (/* reexport safe */ _appui_abstract_utils_filter_strings__WEBPACK_IMPORTED_MODULE_35__.convertSimple2RegExpPattern),
272265
- /* harmony export */ "createMatches": () => (/* reexport safe */ _appui_abstract_utils_filter_filters__WEBPACK_IMPORTED_MODULE_34__.createMatches),
272266
- /* harmony export */ "equalsIgnoreCase": () => (/* reexport safe */ _appui_abstract_utils_filter_strings__WEBPACK_IMPORTED_MODULE_35__.equalsIgnoreCase),
272267
- /* harmony export */ "fuzzyScore": () => (/* reexport safe */ _appui_abstract_utils_filter_filters__WEBPACK_IMPORTED_MODULE_34__.fuzzyScore),
272268
- /* harmony export */ "fuzzyScoreGraceful": () => (/* reexport safe */ _appui_abstract_utils_filter_filters__WEBPACK_IMPORTED_MODULE_34__.fuzzyScoreGraceful),
272269
- /* harmony export */ "fuzzyScoreGracefulAggressive": () => (/* reexport safe */ _appui_abstract_utils_filter_filters__WEBPACK_IMPORTED_MODULE_34__.fuzzyScoreGracefulAggressive),
272460
+ /* harmony export */ "UiSyncEvent": () => (/* reexport safe */ _appui_abstract_utils_UiEventDispatcher__WEBPACK_IMPORTED_MODULE_30__.UiSyncEvent),
272461
+ /* harmony export */ "convertSimple2RegExpPattern": () => (/* reexport safe */ _appui_abstract_utils_filter_strings__WEBPACK_IMPORTED_MODULE_34__.convertSimple2RegExpPattern),
272462
+ /* harmony export */ "createMatches": () => (/* reexport safe */ _appui_abstract_utils_filter_filters__WEBPACK_IMPORTED_MODULE_33__.createMatches),
272463
+ /* harmony export */ "equalsIgnoreCase": () => (/* reexport safe */ _appui_abstract_utils_filter_strings__WEBPACK_IMPORTED_MODULE_34__.equalsIgnoreCase),
272464
+ /* harmony export */ "fuzzyScore": () => (/* reexport safe */ _appui_abstract_utils_filter_filters__WEBPACK_IMPORTED_MODULE_33__.fuzzyScore),
272465
+ /* harmony export */ "fuzzyScoreGraceful": () => (/* reexport safe */ _appui_abstract_utils_filter_filters__WEBPACK_IMPORTED_MODULE_33__.fuzzyScoreGraceful),
272466
+ /* harmony export */ "fuzzyScoreGracefulAggressive": () => (/* reexport safe */ _appui_abstract_utils_filter_filters__WEBPACK_IMPORTED_MODULE_33__.fuzzyScoreGracefulAggressive),
272270
272467
  /* harmony export */ "getClassName": () => (/* reexport safe */ _appui_abstract_utils_misc__WEBPACK_IMPORTED_MODULE_26__.getClassName),
272271
272468
  /* harmony export */ "isArrowKey": () => (/* reexport safe */ _appui_abstract_common_KeyboardKey__WEBPACK_IMPORTED_MODULE_1__.isArrowKey),
272272
272469
  /* harmony export */ "isButtonGroupEditorParams": () => (/* reexport safe */ _appui_abstract_properties_EditorParams__WEBPACK_IMPORTED_MODULE_17__.isButtonGroupEditorParams),
@@ -272274,22 +272471,21 @@ __webpack_require__.r(__webpack_exports__);
272274
272471
  /* harmony export */ "isCustomFormattedNumberParams": () => (/* reexport safe */ _appui_abstract_properties_EditorParams__WEBPACK_IMPORTED_MODULE_17__.isCustomFormattedNumberParams),
272275
272472
  /* harmony export */ "isIconListEditorParams": () => (/* reexport safe */ _appui_abstract_properties_EditorParams__WEBPACK_IMPORTED_MODULE_17__.isIconListEditorParams),
272276
272473
  /* harmony export */ "isInputEditorSizeParams": () => (/* reexport safe */ _appui_abstract_properties_EditorParams__WEBPACK_IMPORTED_MODULE_17__.isInputEditorSizeParams),
272277
- /* harmony export */ "isLetter": () => (/* reexport safe */ _appui_abstract_utils_isLetter__WEBPACK_IMPORTED_MODULE_27__.isLetter),
272278
- /* harmony export */ "isLowerAsciiLetter": () => (/* reexport safe */ _appui_abstract_utils_filter_strings__WEBPACK_IMPORTED_MODULE_35__.isLowerAsciiLetter),
272279
- /* harmony export */ "isPatternInWord": () => (/* reexport safe */ _appui_abstract_utils_filter_filters__WEBPACK_IMPORTED_MODULE_34__.isPatternInWord),
272474
+ /* harmony export */ "isLowerAsciiLetter": () => (/* reexport safe */ _appui_abstract_utils_filter_strings__WEBPACK_IMPORTED_MODULE_34__.isLowerAsciiLetter),
272475
+ /* harmony export */ "isPatternInWord": () => (/* reexport safe */ _appui_abstract_utils_filter_filters__WEBPACK_IMPORTED_MODULE_33__.isPatternInWord),
272280
272476
  /* harmony export */ "isSuppressLabelEditorParams": () => (/* reexport safe */ _appui_abstract_properties_EditorParams__WEBPACK_IMPORTED_MODULE_17__.isSuppressLabelEditorParams),
272281
- /* harmony export */ "isUpperAsciiLetter": () => (/* reexport safe */ _appui_abstract_utils_filter_strings__WEBPACK_IMPORTED_MODULE_35__.isUpperAsciiLetter),
272477
+ /* harmony export */ "isUpperAsciiLetter": () => (/* reexport safe */ _appui_abstract_utils_filter_strings__WEBPACK_IMPORTED_MODULE_34__.isUpperAsciiLetter),
272282
272478
  /* harmony export */ "loggerCategory": () => (/* reexport safe */ _appui_abstract_utils_misc__WEBPACK_IMPORTED_MODULE_26__.loggerCategory),
272283
- /* harmony export */ "matchesCamelCase": () => (/* reexport safe */ _appui_abstract_utils_filter_filters__WEBPACK_IMPORTED_MODULE_34__.matchesCamelCase),
272284
- /* harmony export */ "matchesContiguousSubString": () => (/* reexport safe */ _appui_abstract_utils_filter_filters__WEBPACK_IMPORTED_MODULE_34__.matchesContiguousSubString),
272285
- /* harmony export */ "matchesFuzzy": () => (/* reexport safe */ _appui_abstract_utils_filter_filters__WEBPACK_IMPORTED_MODULE_34__.matchesFuzzy),
272286
- /* harmony export */ "matchesFuzzy2": () => (/* reexport safe */ _appui_abstract_utils_filter_filters__WEBPACK_IMPORTED_MODULE_34__.matchesFuzzy2),
272287
- /* harmony export */ "matchesPrefix": () => (/* reexport safe */ _appui_abstract_utils_filter_filters__WEBPACK_IMPORTED_MODULE_34__.matchesPrefix),
272288
- /* harmony export */ "matchesStrictPrefix": () => (/* reexport safe */ _appui_abstract_utils_filter_filters__WEBPACK_IMPORTED_MODULE_34__.matchesStrictPrefix),
272289
- /* harmony export */ "matchesSubString": () => (/* reexport safe */ _appui_abstract_utils_filter_filters__WEBPACK_IMPORTED_MODULE_34__.matchesSubString),
272290
- /* harmony export */ "matchesWords": () => (/* reexport safe */ _appui_abstract_utils_filter_filters__WEBPACK_IMPORTED_MODULE_34__.matchesWords),
272291
- /* harmony export */ "or": () => (/* reexport safe */ _appui_abstract_utils_filter_filters__WEBPACK_IMPORTED_MODULE_34__.or),
272292
- /* harmony export */ "startsWithIgnoreCase": () => (/* reexport safe */ _appui_abstract_utils_filter_strings__WEBPACK_IMPORTED_MODULE_35__.startsWithIgnoreCase)
272479
+ /* harmony export */ "matchesCamelCase": () => (/* reexport safe */ _appui_abstract_utils_filter_filters__WEBPACK_IMPORTED_MODULE_33__.matchesCamelCase),
272480
+ /* harmony export */ "matchesContiguousSubString": () => (/* reexport safe */ _appui_abstract_utils_filter_filters__WEBPACK_IMPORTED_MODULE_33__.matchesContiguousSubString),
272481
+ /* harmony export */ "matchesFuzzy": () => (/* reexport safe */ _appui_abstract_utils_filter_filters__WEBPACK_IMPORTED_MODULE_33__.matchesFuzzy),
272482
+ /* harmony export */ "matchesFuzzy2": () => (/* reexport safe */ _appui_abstract_utils_filter_filters__WEBPACK_IMPORTED_MODULE_33__.matchesFuzzy2),
272483
+ /* harmony export */ "matchesPrefix": () => (/* reexport safe */ _appui_abstract_utils_filter_filters__WEBPACK_IMPORTED_MODULE_33__.matchesPrefix),
272484
+ /* harmony export */ "matchesStrictPrefix": () => (/* reexport safe */ _appui_abstract_utils_filter_filters__WEBPACK_IMPORTED_MODULE_33__.matchesStrictPrefix),
272485
+ /* harmony export */ "matchesSubString": () => (/* reexport safe */ _appui_abstract_utils_filter_filters__WEBPACK_IMPORTED_MODULE_33__.matchesSubString),
272486
+ /* harmony export */ "matchesWords": () => (/* reexport safe */ _appui_abstract_utils_filter_filters__WEBPACK_IMPORTED_MODULE_33__.matchesWords),
272487
+ /* harmony export */ "or": () => (/* reexport safe */ _appui_abstract_utils_filter_filters__WEBPACK_IMPORTED_MODULE_33__.or),
272488
+ /* harmony export */ "startsWithIgnoreCase": () => (/* reexport safe */ _appui_abstract_utils_filter_strings__WEBPACK_IMPORTED_MODULE_34__.startsWithIgnoreCase)
272293
272489
  /* harmony export */ });
272294
272490
  /* harmony import */ var _appui_abstract_UiAdmin__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./appui-abstract/UiAdmin */ "../../ui/appui-abstract/lib/esm/appui-abstract/UiAdmin.js");
272295
272491
  /* harmony import */ var _appui_abstract_common_KeyboardKey__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./appui-abstract/common/KeyboardKey */ "../../ui/appui-abstract/lib/esm/appui-abstract/common/KeyboardKey.js");
@@ -272318,15 +272514,14 @@ __webpack_require__.r(__webpack_exports__);
272318
272514
  /* harmony import */ var _appui_abstract_toolbars_ToolbarItem__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./appui-abstract/toolbars/ToolbarItem */ "../../ui/appui-abstract/lib/esm/appui-abstract/toolbars/ToolbarItem.js");
272319
272515
  /* harmony import */ var _appui_abstract_utils_callbacks__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ./appui-abstract/utils/callbacks */ "../../ui/appui-abstract/lib/esm/appui-abstract/utils/callbacks.js");
272320
272516
  /* harmony import */ var _appui_abstract_utils_misc__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ./appui-abstract/utils/misc */ "../../ui/appui-abstract/lib/esm/appui-abstract/utils/misc.js");
272321
- /* harmony import */ var _appui_abstract_utils_isLetter__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ./appui-abstract/utils/isLetter */ "../../ui/appui-abstract/lib/esm/appui-abstract/utils/isLetter.js");
272322
- /* harmony import */ var _appui_abstract_utils_IconSpecUtilities__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ./appui-abstract/utils/IconSpecUtilities */ "../../ui/appui-abstract/lib/esm/appui-abstract/utils/IconSpecUtilities.js");
272323
- /* harmony import */ var _appui_abstract_utils_PointProps__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ./appui-abstract/utils/PointProps */ "../../ui/appui-abstract/lib/esm/appui-abstract/utils/PointProps.js");
272324
- /* harmony import */ var _appui_abstract_utils_UiError__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! ./appui-abstract/utils/UiError */ "../../ui/appui-abstract/lib/esm/appui-abstract/utils/UiError.js");
272325
- /* harmony import */ var _appui_abstract_utils_UiEventDispatcher__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! ./appui-abstract/utils/UiEventDispatcher */ "../../ui/appui-abstract/lib/esm/appui-abstract/utils/UiEventDispatcher.js");
272326
- /* harmony import */ var _appui_abstract_utils_UiEvent__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! ./appui-abstract/utils/UiEvent */ "../../ui/appui-abstract/lib/esm/appui-abstract/utils/UiEvent.js");
272327
- /* harmony import */ var _appui_abstract_utils_filter_charCode__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(/*! ./appui-abstract/utils/filter/charCode */ "../../ui/appui-abstract/lib/esm/appui-abstract/utils/filter/charCode.js");
272328
- /* harmony import */ var _appui_abstract_utils_filter_filters__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(/*! ./appui-abstract/utils/filter/filters */ "../../ui/appui-abstract/lib/esm/appui-abstract/utils/filter/filters.js");
272329
- /* harmony import */ var _appui_abstract_utils_filter_strings__WEBPACK_IMPORTED_MODULE_35__ = __webpack_require__(/*! ./appui-abstract/utils/filter/strings */ "../../ui/appui-abstract/lib/esm/appui-abstract/utils/filter/strings.js");
272517
+ /* harmony import */ var _appui_abstract_utils_IconSpecUtilities__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ./appui-abstract/utils/IconSpecUtilities */ "../../ui/appui-abstract/lib/esm/appui-abstract/utils/IconSpecUtilities.js");
272518
+ /* harmony import */ var _appui_abstract_utils_PointProps__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ./appui-abstract/utils/PointProps */ "../../ui/appui-abstract/lib/esm/appui-abstract/utils/PointProps.js");
272519
+ /* harmony import */ var _appui_abstract_utils_UiError__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ./appui-abstract/utils/UiError */ "../../ui/appui-abstract/lib/esm/appui-abstract/utils/UiError.js");
272520
+ /* harmony import */ var _appui_abstract_utils_UiEventDispatcher__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! ./appui-abstract/utils/UiEventDispatcher */ "../../ui/appui-abstract/lib/esm/appui-abstract/utils/UiEventDispatcher.js");
272521
+ /* harmony import */ var _appui_abstract_utils_UiEvent__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! ./appui-abstract/utils/UiEvent */ "../../ui/appui-abstract/lib/esm/appui-abstract/utils/UiEvent.js");
272522
+ /* harmony import */ var _appui_abstract_utils_filter_charCode__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! ./appui-abstract/utils/filter/charCode */ "../../ui/appui-abstract/lib/esm/appui-abstract/utils/filter/charCode.js");
272523
+ /* harmony import */ var _appui_abstract_utils_filter_filters__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(/*! ./appui-abstract/utils/filter/filters */ "../../ui/appui-abstract/lib/esm/appui-abstract/utils/filter/filters.js");
272524
+ /* harmony import */ var _appui_abstract_utils_filter_strings__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(/*! ./appui-abstract/utils/filter/strings */ "../../ui/appui-abstract/lib/esm/appui-abstract/utils/filter/strings.js");
272330
272525
  /*---------------------------------------------------------------------------------------------
272331
272526
  * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
272332
272527
  * See LICENSE.md in the project root for license terms and full copyright notice.
@@ -272364,7 +272559,6 @@ __webpack_require__.r(__webpack_exports__);
272364
272559
 
272365
272560
 
272366
272561
 
272367
-
272368
272562
 
272369
272563
 
272370
272564
  /** @docs-package-description
@@ -275793,36 +275987,6 @@ function startsWithIgnoreCase(str, candidate) {
275793
275987
  }
275794
275988
 
275795
275989
 
275796
- /***/ }),
275797
-
275798
- /***/ "../../ui/appui-abstract/lib/esm/appui-abstract/utils/isLetter.js":
275799
- /*!************************************************************************!*\
275800
- !*** ../../ui/appui-abstract/lib/esm/appui-abstract/utils/isLetter.js ***!
275801
- \************************************************************************/
275802
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
275803
-
275804
- "use strict";
275805
- __webpack_require__.r(__webpack_exports__);
275806
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
275807
- /* harmony export */ "isLetter": () => (/* binding */ isLetter)
275808
- /* harmony export */ });
275809
- /*---------------------------------------------------------------------------------------------
275810
- * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
275811
- * See LICENSE.md in the project root for license terms and full copyright notice.
275812
- *--------------------------------------------------------------------------------------------*/
275813
- /** @packageDocumentation
275814
- * @module Utilities
275815
- */
275816
- /** Uses ECMAScript case transformation (toLowerCase() and toUpperCase()) to check whether or not a given character is a letter.
275817
- * Beyond the English alphabet, this solution will also work for most Greek, Armenian, Cyrillic, and Latin characters.
275818
- * But, it will not work for Chinese or Japanese characters since those languages do not have uppercase and lowercase letters.
275819
- * @alpha
275820
- */
275821
- function isLetter(char) {
275822
- return char.length === 1 && char.toLowerCase() !== char.toUpperCase();
275823
- }
275824
-
275825
-
275826
275990
  /***/ }),
275827
275991
 
275828
275992
  /***/ "../../ui/appui-abstract/lib/esm/appui-abstract/utils/misc.js":
@@ -281214,7 +281378,7 @@ module.exports = JSON.parse('{"name":"axios","version":"0.21.4","description":"P
281214
281378
  /***/ ((module) => {
281215
281379
 
281216
281380
  "use strict";
281217
- module.exports = JSON.parse('{"name":"@itwin/core-frontend","version":"4.1.0-dev.4","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","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","docs":"betools docs --includes=../../generated-docs/extract --json=../../generated-docs/core/core-frontend/file.json --tsIndexFile=./core-frontend.ts --onlyJson --excludes=webgl/**/*,**/primitives,**/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 --no-eslintrc -c \\"./node_modules/@itwin/eslint-plugin/dist/configs/extension-exports-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"},"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.1.0-dev.4","@itwin/core-bentley":"workspace:^4.1.0-dev.4","@itwin/core-common":"workspace:^4.1.0-dev.4","@itwin/core-geometry":"workspace:^4.1.0-dev.4","@itwin/core-orbitgt":"workspace:^4.1.0-dev.4","@itwin/core-quantity":"workspace:^4.1.0-dev.4"},"//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.33","@types/chai":"4.3.1","@types/chai-as-promised":"^7","@types/mocha":"^8.2.2","@types/node":"^18.11.5","@types/sinon":"^9.0.0","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.36.0","glob":"^7.1.2","mocha":"^10.0.0","nyc":"^15.1.0","rimraf":"^3.0.2","sinon":"^9.0.2","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/object-storage-azure":"^1.5.0","@itwin/cloud-agnostic-core":"^1.5.0","@itwin/object-storage-core":"^1.5.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","reflect-metadata":"0.1.13"},"nyc":{"extends":"./node_modules/@itwin/build-tools/.nycrc"},"eslintConfig":{"plugins":["@itwin"],"extends":"plugin:@itwin/itwinjs-recommended","rules":{"@itwin/no-internal-barrel-imports":["error",{"required-barrel-modules":["./src/tile/internal.ts"]}],"@itwin/public-extension-exports":["error",{"releaseTags":["public","preview"],"outputApiFile":false}]},"overrides":[{"files":["*.test.ts","*.test.tsx","**/test/**/*.ts"],"rules":{"@itwin/no-internal-barrel-imports":"off"}}]}}');
281381
+ module.exports = JSON.parse('{"name":"@itwin/core-frontend","version":"4.1.0-dev.6","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","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","docs":"betools docs --includes=../../generated-docs/extract --json=../../generated-docs/core/core-frontend/file.json --tsIndexFile=./core-frontend.ts --onlyJson --excludes=webgl/**/*,**/primitives,**/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 --no-eslintrc -c \\"./node_modules/@itwin/eslint-plugin/dist/configs/extension-exports-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"},"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.1.0-dev.6","@itwin/core-bentley":"workspace:^4.1.0-dev.6","@itwin/core-common":"workspace:^4.1.0-dev.6","@itwin/core-geometry":"workspace:^4.1.0-dev.6","@itwin/core-orbitgt":"workspace:^4.1.0-dev.6","@itwin/core-quantity":"workspace:^4.1.0-dev.6"},"//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.33","@types/chai":"4.3.1","@types/chai-as-promised":"^7","@types/mocha":"^8.2.2","@types/node":"^18.11.5","@types/sinon":"^9.0.0","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.36.0","glob":"^7.1.2","mocha":"^10.0.0","nyc":"^15.1.0","rimraf":"^3.0.2","sinon":"^9.0.2","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/object-storage-azure":"^1.5.0","@itwin/cloud-agnostic-core":"^1.5.0","@itwin/object-storage-core":"^1.5.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","reflect-metadata":"0.1.13"},"nyc":{"extends":"./node_modules/@itwin/build-tools/.nycrc"},"eslintConfig":{"plugins":["@itwin"],"extends":"plugin:@itwin/itwinjs-recommended","rules":{"@itwin/no-internal-barrel-imports":["error",{"required-barrel-modules":["./src/tile/internal.ts"]}],"@itwin/public-extension-exports":["error",{"releaseTags":["public","preview"],"outputApiFile":false}]},"overrides":[{"files":["*.test.ts","*.test.tsx","**/test/**/*.ts"],"rules":{"@itwin/no-internal-barrel-imports":"off"}}]}}');
281218
281382
 
281219
281383
  /***/ })
281220
281384