@itwin/rpcinterface-full-stack-tests 4.8.0-dev.20 → 4.8.0-dev.23

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -71429,10 +71429,16 @@ __webpack_require__.r(__webpack_exports__);
71429
71429
  * @beta
71430
71430
  */
71431
71431
  class CustomAttributeClass extends _Class__WEBPACK_IMPORTED_MODULE_2__.ECClass {
71432
+ /**
71433
+ * @deprecated in 4.8 use [[appliesTo]]
71434
+ * */
71432
71435
  get containerType() {
71433
- if (undefined === this._containerType)
71436
+ return this.appliesTo;
71437
+ }
71438
+ get appliesTo() {
71439
+ if (undefined === this._appliesTo)
71434
71440
  throw new _Exception__WEBPACK_IMPORTED_MODULE_1__.ECObjectsError(_Exception__WEBPACK_IMPORTED_MODULE_1__.ECObjectsStatus.InvalidContainerType, `The CustomAttributeClass ${this.name} does not have a CustomAttributeContainerType.`);
71435
- return this._containerType;
71441
+ return this._appliesTo;
71436
71442
  }
71437
71443
  constructor(schema, name, modifier) {
71438
71444
  super(schema, name, modifier);
@@ -71445,21 +71451,21 @@ class CustomAttributeClass extends _Class__WEBPACK_IMPORTED_MODULE_2__.ECClass {
71445
71451
  */
71446
71452
  toJSON(standalone = false, includeSchemaVersion = false) {
71447
71453
  const schemaJson = super.toJSON(standalone, includeSchemaVersion);
71448
- schemaJson.appliesTo = (0,_ECObjects__WEBPACK_IMPORTED_MODULE_0__.containerTypeToString)(this.containerType);
71454
+ schemaJson.appliesTo = (0,_ECObjects__WEBPACK_IMPORTED_MODULE_0__.containerTypeToString)(this.appliesTo);
71449
71455
  return schemaJson;
71450
71456
  }
71451
71457
  /** @internal */
71452
71458
  async toXml(schemaXml) {
71453
71459
  const itemElement = await super.toXml(schemaXml);
71454
- itemElement.setAttribute("appliesTo", (0,_ECObjects__WEBPACK_IMPORTED_MODULE_0__.containerTypeToString)(this.containerType));
71460
+ itemElement.setAttribute("appliesTo", (0,_ECObjects__WEBPACK_IMPORTED_MODULE_0__.containerTypeToString)(this.appliesTo));
71455
71461
  return itemElement;
71456
71462
  }
71457
71463
  fromJSONSync(customAttributeProps) {
71458
71464
  super.fromJSONSync(customAttributeProps);
71459
- const containerType = (0,_ECObjects__WEBPACK_IMPORTED_MODULE_0__.parseCustomAttributeContainerType)(customAttributeProps.appliesTo);
71460
- if (undefined === containerType)
71461
- throw new _Exception__WEBPACK_IMPORTED_MODULE_1__.ECObjectsError(_Exception__WEBPACK_IMPORTED_MODULE_1__.ECObjectsStatus.InvalidContainerType, `${containerType} is not a valid CustomAttributeContainerType.`);
71462
- this._containerType = containerType;
71465
+ const appliesTo = (0,_ECObjects__WEBPACK_IMPORTED_MODULE_0__.parseCustomAttributeContainerType)(customAttributeProps.appliesTo);
71466
+ if (undefined === appliesTo)
71467
+ throw new _Exception__WEBPACK_IMPORTED_MODULE_1__.ECObjectsError(_Exception__WEBPACK_IMPORTED_MODULE_1__.ECObjectsStatus.InvalidContainerType, `${appliesTo} is not a valid CustomAttributeContainerType.`);
71468
+ this._appliesTo = appliesTo;
71463
71469
  }
71464
71470
  async fromJSON(customAttributeProps) {
71465
71471
  this.fromJSONSync(customAttributeProps);
@@ -71467,8 +71473,8 @@ class CustomAttributeClass extends _Class__WEBPACK_IMPORTED_MODULE_2__.ECClass {
71467
71473
  /**
71468
71474
  * @alpha Used in schema editing.
71469
71475
  */
71470
- setContainerType(containerType) {
71471
- this._containerType = containerType;
71476
+ setAppliesTo(containerType) {
71477
+ this._appliesTo = containerType;
71472
71478
  }
71473
71479
  }
71474
71480
  /**
@@ -80179,6 +80185,8 @@ class AccuSnap {
80179
80185
  showElemInfo(viewPt, vp, hit, delay) {
80180
80186
  if (!_IModelApp__WEBPACK_IMPORTED_MODULE_4__.IModelApp.viewManager.doesHostHaveFocus || undefined !== this._toolTipPromise)
80181
80187
  return;
80188
+ if (!_IModelApp__WEBPACK_IMPORTED_MODULE_4__.IModelApp.toolAdmin.wantToolTip(hit))
80189
+ return;
80182
80190
  const promise = this._toolTipPromise = delay.executeAfter(async () => {
80183
80191
  if (promise !== this._toolTipPromise)
80184
80192
  return; // we abandoned this request during delay
@@ -163613,7 +163621,7 @@ class MapTileTreeReference extends _internal__WEBPACK_IMPORTED_MODULE_7__.TileTr
163613
163621
  return {
163614
163622
  isBaseLayer,
163615
163623
  index: isBaseLayer ? undefined : { isOverlay: this.isOverlay, index: this._baseImageryLayerIncluded ? tree.layerIndex - 1 : tree.layerIndex },
163616
- settings: tree.layerSettings, provider: tree.imageryProvider
163624
+ settings: tree.layerSettings, provider: tree.imageryProvider,
163617
163625
  };
163618
163626
  });
163619
163627
  }
@@ -163675,7 +163683,7 @@ class MapTileTreeReference extends _internal__WEBPACK_IMPORTED_MODULE_7__.TileTr
163675
163683
  let carto;
163676
163684
  const strings = [];
163677
163685
  const getTooltipFunc = async (imageryTreeRef, quadId, cartoGraphic, imageryTree) => {
163678
- strings.push(`Imagery Layer: ${imageryTreeRef.layerSettings.name}`);
163686
+ strings.push(`${_IModelApp__WEBPACK_IMPORTED_MODULE_4__.IModelApp.localization.getLocalizedString("iModelJs:MapLayers.ImageryLayer")}: ${imageryTreeRef.layerSettings.name}`);
163679
163687
  carto = cartoGraphic;
163680
163688
  await imageryTree.imageryLoader.getToolTip(strings, quadId, cartoGraphic, imageryTree);
163681
163689
  };
@@ -163686,11 +163694,11 @@ class MapTileTreeReference extends _internal__WEBPACK_IMPORTED_MODULE_7__.TileTr
163686
163694
  // No results added
163687
163695
  }
163688
163696
  if (carto) {
163689
- strings.push(`Latitude: ${carto.latitudeDegrees.toFixed(4)}`);
163690
- strings.push(`Longitude: ${carto.longitudeDegrees.toFixed(4)}`);
163697
+ strings.push(`${_IModelApp__WEBPACK_IMPORTED_MODULE_4__.IModelApp.localization.getLocalizedString("iModelJs:MapLayers.Latitude")}: ${carto.latitudeDegrees.toFixed(4)}`);
163698
+ strings.push(`${_IModelApp__WEBPACK_IMPORTED_MODULE_4__.IModelApp.localization.getLocalizedString("iModelJs:MapLayers.Longitude")}: ${carto.longitudeDegrees.toFixed(4)}`);
163691
163699
  if (this.settings.applyTerrain && tree.terrainExaggeration !== 0.0) {
163692
163700
  const geodeticHeight = (carto.height - tree.bimElevationBias) / tree.terrainExaggeration;
163693
- strings.push(`Height (Meters) Geodetic: ${geodeticHeight.toFixed(1)} Sea Level: ${(geodeticHeight - tree.geodeticOffset).toFixed(1)}`);
163701
+ strings.push(`${_IModelApp__WEBPACK_IMPORTED_MODULE_4__.IModelApp.localization.getLocalizedString("iModelJs:MapLayers.Height")}: ${geodeticHeight.toFixed(1)} ${_IModelApp__WEBPACK_IMPORTED_MODULE_4__.IModelApp.localization.getLocalizedString("iModelJs:MapLayers.SeaLevel")}: ${(geodeticHeight - tree.geodeticOffset).toFixed(1)}`);
163694
163702
  }
163695
163703
  }
163696
163704
  const div = document.createElement("div");
@@ -173609,6 +173617,8 @@ class ToolAdmin {
173609
173617
  }
173610
173618
  /** The current tool. May be ViewTool, InputCollector, PrimitiveTool, or IdleTool - in that priority order. */
173611
173619
  get currentTool() { return this.activeTool ? this.activeTool : this.idleTool; }
173620
+ /** Allow applications to inhibit specific tooltips, such as for maps. */
173621
+ wantToolTip(_hit) { return true; }
173612
173622
  /** Ask the current tool to provide tooltip contents for the supplied HitDetail. */
173613
173623
  async getToolTip(hit) { return this.currentTool.getToolTip(hit); }
173614
173624
  async onMouseEnter(event) {
@@ -241816,10 +241826,10 @@ __webpack_require__.r(__webpack_exports__);
241816
241826
 
241817
241827
 
241818
241828
  /**
241819
- * A FacetSector
241820
- * * initially holds coordinate data for a place where xyz and sectionDerivative are known
241821
- * * normal is computed as a deferred step using an edge to adjacent place on ruled surface
241822
- * * indices are set up even later.
241829
+ * A FacetSector.
241830
+ * * Initially holds coordinate data for a place where xyz and sectionDerivative are known.
241831
+ * * Normal is computed as a deferred step using an edge to adjacent place on ruled surface.
241832
+ * * Indices are set up even later.
241823
241833
  */
241824
241834
  class FacetSector {
241825
241835
  constructor(needNormal = false, needUV = false, needSectionDerivative = false) {
@@ -241838,8 +241848,9 @@ class FacetSector {
241838
241848
  this.sectionDerivative = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_0__.Vector3d.create();
241839
241849
  }
241840
241850
  }
241841
- /** copy contents (not pointers) from source
241842
- * * ASSUME all fields defined in this are defined int the source (undefined check only needed on this)
241851
+ /**
241852
+ * Copy contents (not pointers) from `other`.
241853
+ * * ASSUME all fields defined in the instance are defined in `other`.
241843
241854
  */
241844
241855
  copyContentsFrom(other) {
241845
241856
  this.xyz.setFromPoint3d(other.xyz);
@@ -241853,10 +241864,11 @@ class FacetSector {
241853
241864
  if (this.sectionDerivative)
241854
241865
  this.sectionDerivative.setFrom(other.sectionDerivative);
241855
241866
  }
241856
- /** access xyz, derivative from given arrays.
241857
- * * ASSUME corresponding defined conditions
241867
+ /**
241868
+ * Access xyz, derivative from given arrays.
241869
+ * * ASSUME corresponding defined conditions.
241858
241870
  * * xyz and derivative are set.
241859
- * * index fields for updated data are cleared to -1.
241871
+ * * Index fields for updated data are cleared to -1.
241860
241872
  */
241861
241873
  loadIndexedPointAndDerivativeCoordinatesFromPackedArrays(i, packedXYZ, packedDerivatives, fractions, v) {
241862
241874
  packedXYZ.getPoint3dAtCheckedPointIndex(i, this.xyz);
@@ -241878,16 +241890,14 @@ class FacetSector {
241878
241890
  uvw.z = 0.0;
241879
241891
  }
241880
241892
  /**
241881
- * given two sectors with xyz and sectionDerivative (u derivative)
241882
- * use the edge from A to B as v direction in-surface derivative.
241883
- * compute cross products (and normalize)
241884
- * @param sectorA "lower" sector
241885
- * @param sectorB "upper" sector
241886
- *
241893
+ * Given two sectors with xyz and sectionDerivative (u derivative), use the edge from A to B as v direction
241894
+ * in-surface derivative. Compute cross products (and normalize).
241895
+ * @param sectorA "lower" sector.
241896
+ * @param sectorB "upper" sector.
241887
241897
  */
241888
241898
  static computeNormalsAlongRuleLine(sectorA, sectorB) {
241889
- // We expect that if sectionDerivative is defined so is normal.
241890
- // (If not, the cross product calls will generate normals that are never used .. not good, garbage collector will clean up.)
241899
+ // We expect that if a sector's sectionDerivative is defined, then so is its normal. If a normal is undefined, the
241900
+ // crossProduct returns an object that goes unused---not good, but the garbage collector will clean it up.
241891
241901
  if (sectorA.sectionDerivative && sectorB.sectionDerivative) {
241892
241902
  const vectorAB = FacetSector._edgeVector;
241893
241903
  _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_0__.Vector3d.createStartEnd(sectorA.xyz, sectorB.xyz, vectorAB);
@@ -241902,12 +241912,10 @@ class FacetSector {
241902
241912
  }
241903
241913
  FacetSector._edgeVector = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_0__.Vector3d.create();
241904
241914
  /**
241905
- *
241906
241915
  * * Simple construction for strongly typed GeometryQuery objects:
241907
241916
  *
241908
241917
  * * Create a builder with `builder = PolyfaceBuilder.create()`
241909
241918
  * * Add GeometryQuery objects:
241910
- *
241911
241919
  * * `builder.addGeometryQuery(g: GeometryQuery)`
241912
241920
  * * `builder.addCone(cone: Cone)`
241913
241921
  * * `builder.addTorusPipe(surface: TorusPipe)`
@@ -241918,7 +241926,7 @@ FacetSector._edgeVector = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_0
241918
241926
  * * `builder.addSphere(sphere: Sphere)`
241919
241927
  * * `builder.addBox(box: Box)`
241920
241928
  * * `builder.addIndexedPolyface(polyface)`
241921
- * * Extract with `builder.claimPolyface(true)`
241929
+ * * Extract with `builder.claimPolyface(true)`
241922
241930
  *
241923
241931
  * * Simple construction for ephemeral constructive data:
241924
241932
  *
@@ -241934,9 +241942,10 @@ FacetSector._edgeVector = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_0
241934
241942
  * * `builder.addTrianglesInUncheckedConvexPolygon(linestring, toggle)`
241935
241943
  * * `builder.addUVGridBody(surface,numU, numV, createFanInCaps)`
241936
241944
  * * `builder.addGraph(Graph, acceptFaceFunction)`
241937
- * * Extract with `builder.claimPolyface(true)`
241945
+ * * Extract with `builder.claimPolyface(true)`
241946
+ *
241947
+ * * Low-level detail construction -- direct use of indices:
241938
241948
  *
241939
- * * Low-level detail construction -- direct use of indices
241940
241949
  * * Create a builder with `builder = PolyfaceBuilder.create()`
241941
241950
  * * Add GeometryQuery objects
241942
241951
  * * `builder.addPoint(point)`
@@ -241944,17 +241953,21 @@ FacetSector._edgeVector = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_0
241944
241953
  * * `builder.addPointXYZ(x,y,z)`
241945
241954
  * * `builder.addTriangleFacet(points)`
241946
241955
  * * `builder.addQuadFacet(points)`
241947
- * @public
241956
+ * @public
241948
241957
  */
241949
241958
  class PolyfaceBuilder extends _geometry3d_GeometryHandler__WEBPACK_IMPORTED_MODULE_3__.NullGeometryHandler {
241950
- /** return (pointer to) the `StrokeOptions` in use by the builder. */
241951
- get options() { return this._options; }
241959
+ /** Return (pointer to) the `StrokeOptions` in use by the builder. */
241960
+ get options() {
241961
+ return this._options;
241962
+ }
241952
241963
  /** Ask if this builder is reversing vertex order as loops are received. */
241953
- get reversedFlag() { return this._reversed; }
241964
+ get reversedFlag() {
241965
+ return this._reversed;
241966
+ }
241954
241967
  /**
241955
241968
  * Extract the polyface.
241956
- * @param compress whether to cluster vertices (default true)
241957
- * @param tolerance compression tolerance (default Geometry.smallMetricDistance)
241969
+ * @param compress whether to cluster vertices (default `true`).
241970
+ * @param tolerance compression tolerance (default `Geometry.smallMetricDistance`).
241958
241971
  */
241959
241972
  claimPolyface(compress = true, tolerance = _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.smallMetricDistance) {
241960
241973
  if (compress)
@@ -241962,7 +241975,9 @@ class PolyfaceBuilder extends _geometry3d_GeometryHandler__WEBPACK_IMPORTED_MODU
241962
241975
  return this._polyface;
241963
241976
  }
241964
241977
  /** Toggle (reverse) the flag controlling orientation flips for newly added facets. */
241965
- toggleReversedFacetFlag() { this._reversed = !this._reversed; }
241978
+ toggleReversedFacetFlag() {
241979
+ this._reversed = !this._reversed;
241980
+ }
241966
241981
  constructor(options) {
241967
241982
  super();
241968
241983
  this._options = options ? options : _curve_StrokeOptions__WEBPACK_IMPORTED_MODULE_4__.StrokeOptions.createForFacets();
@@ -241970,25 +241985,27 @@ class PolyfaceBuilder extends _geometry3d_GeometryHandler__WEBPACK_IMPORTED_MODU
241970
241985
  this._reversed = false;
241971
241986
  }
241972
241987
  /**
241973
- * Create a builder with given StrokeOptions
241974
- * @param options StrokeOptions (captured)
241988
+ * Create a builder with given StrokeOptions.
241989
+ * @param options StrokeOptions (captured).
241975
241990
  */
241976
241991
  static create(options) {
241977
241992
  return new PolyfaceBuilder(options);
241978
241993
  }
241979
- /** add facets for a transformed unit box. */
241994
+ /** Add facets for a transformed unit box. */
241980
241995
  addTransformedUnitBox(transform) {
241981
241996
  this.addTransformedRangeMesh(transform, _geometry3d_Range__WEBPACK_IMPORTED_MODULE_6__.Range3d.createXYZXYZ(0, 0, 0, 1, 1, 1));
241982
241997
  }
241983
- /** Add facets for a transformed range box.
241998
+ /**
241999
+ * Add facets for a transformed range box.
241984
242000
  * * For best results, the transformed range corners should define a nonzero volume or area.
241985
- * @param transform applied to the range points before adding to the polyface
241986
- * @param range sides become 6 quad polyface facets
241987
- * @param faceSelector for each face in the order of BoxTopology.cornerIndexCCW, faceSelector[i]===false skips that facet.
242001
+ * @param transform applied to the range points before adding to the polyface.
242002
+ * @param range sides become 6 quad polyface facets.
242003
+ * @param faceSelector for each face in the order of `BoxTopology.cornerIndexCCW`, `faceSelector[i] === false` skips
242004
+ * that facet.
241988
242005
  */
241989
242006
  addTransformedRangeMesh(transform, range, faceSelector) {
241990
242007
  const pointIndex0 = this._polyface.data.pointCount;
241991
- // these will have sequential indices starting at pointIndex0 . . .
242008
+ // these will have sequential indices starting at pointIndex0
241992
242009
  const points = range.corners();
241993
242010
  for (const p of points)
241994
242011
  this._polyface.addPoint(transform.multiplyPoint3d(p));
@@ -242010,9 +242027,11 @@ class PolyfaceBuilder extends _geometry3d_GeometryHandler__WEBPACK_IMPORTED_MODU
242010
242027
  faceCounter++;
242011
242028
  }
242012
242029
  }
242013
- /** Add triangles from points[0] to each far edge.
242014
- * @param ls linestring with point coordinates
242015
- * @param toggle if true, wrap the triangle creation in toggleReversedFacetFlag.
242030
+ /**
242031
+ * Add triangles from `conePoint` to each far edge.
242032
+ * @param conePoint the common vertex of all triangles.
242033
+ * @param ls linestring with point coordinates.
242034
+ * @param toggle if `true`, wrap the triangle creation in toggleReversedFacetFlag.
242016
242035
  */
242017
242036
  addTriangleFan(conePoint, ls, toggle) {
242018
242037
  const n = ls.numPoints();
@@ -242031,12 +242050,11 @@ class PolyfaceBuilder extends _geometry3d_GeometryHandler__WEBPACK_IMPORTED_MODU
242031
242050
  this.toggleReversedFacetFlag();
242032
242051
  }
242033
242052
  }
242034
- /** Add triangles from points[0] to each far edge
242035
- * * Assume the polygon is convex.
242036
- * * i.e. simple triangulation from point0
242037
- * * i.e. simple cross products give a good normal.
242038
- * @param ls linestring with point coordinates
242039
- * @param reverse if true, wrap the triangle creation in toggleReversedFacetFlag.
242053
+ /**
242054
+ * Add triangles from the first point of the linestring to the subsequent edges of the linestring.
242055
+ * * No checks are made for polygon convexity or edge collinearity, conditions which would ensure positive area triangles.
242056
+ * @param ls linestring with point coordinates.
242057
+ * @param reverse if `true`, wrap the triangle creation in toggleReversedFacetFlag.
242040
242058
  */
242041
242059
  addTrianglesInUncheckedConvexPolygon(ls, toggle) {
242042
242060
  const n = ls.numPoints();
@@ -242081,36 +242099,36 @@ class PolyfaceBuilder extends _geometry3d_GeometryHandler__WEBPACK_IMPORTED_MODU
242081
242099
  this.toggleReversedFacetFlag();
242082
242100
  }
242083
242101
  }
242084
- /**
242085
- * Announce point coordinates.
242086
- */
242102
+ /** Add a point to the polyface. */
242087
242103
  addPoint(xyz) {
242088
242104
  return this._polyface.addPoint(xyz);
242089
242105
  }
242090
242106
  /**
242091
- * Announce point coordinates.
242107
+ * Add a point to the polyface.
242092
242108
  * @deprecated in 3.x. Use addPoint instead.
242093
242109
  */
242094
242110
  findOrAddPoint(xyz) {
242095
242111
  return this.addPoint(xyz);
242096
242112
  }
242097
- /**
242098
- * Announce uv parameter coordinates.
242099
- */
242113
+ /** Add a uv parameter to the polyface. */
242100
242114
  addParamXY(x, y) {
242101
242115
  return this._polyface.addParamUV(x, y);
242102
242116
  }
242103
242117
  /**
242104
- * Announce uv parameter coordinates.
242118
+ * Add a uv parameter to the polyface.
242105
242119
  * @deprecated in 3.x. Use addParamXY instead.
242106
242120
  */
242107
242121
  findOrAddParamXY(x, y) {
242108
242122
  return this.addParamXY(x, y);
242109
242123
  }
242110
242124
  /**
242111
- * Announce point coordinates. The implementation is free to either create a new point or (if known) return index of a prior point with the same coordinates.
242112
- * @returns Returns the point index in the Polyface.
242113
- * @param index Index of the point in the linestring.
242125
+ * Add a point to the polyface. The implementation is free to either create a new point or return the index of a
242126
+ * prior point with the same coordinates.
242127
+ * @param ls the linestring.
242128
+ * @param index index of the point in the linestring.
242129
+ * @param transform (optional) transform to be applied.
242130
+ * @param priorIndex (optional) index of a prior point to check for possible duplicate value.
242131
+ * @returns the point index in the polyface.
242114
242132
  */
242115
242133
  findOrAddPointInLineString(ls, index, transform, priorIndex) {
242116
242134
  const q = ls.pointAt(index, PolyfaceBuilder._workPointFindOrAddA);
@@ -242122,9 +242140,13 @@ class PolyfaceBuilder extends _geometry3d_GeometryHandler__WEBPACK_IMPORTED_MODU
242122
242140
  return undefined;
242123
242141
  }
242124
242142
  /**
242125
- * Announce point coordinates. The implementation is free to either create a new point or (if known) return index of a prior point with the same coordinates.
242126
- * @returns Returns the point index in the Polyface.
242127
- * @param index Index of the point in the linestring.
242143
+ * Add a point to the polyface. The implementation is free to either create a new point or return the index of a
242144
+ * prior point with the same coordinates.
242145
+ * @param xyz the array of points.
242146
+ * @param index index of the point in the array.
242147
+ * @param transform (optional) transform to be applied.
242148
+ * @param priorIndex (optional) index of a prior point to check for possible duplicate value.
242149
+ * @returns the point index in the polyface.
242128
242150
  */
242129
242151
  findOrAddPointInGrowableXYZArray(xyz, index, transform, priorIndex) {
242130
242152
  const q = xyz.getPoint3dAtCheckedPointIndex(index, PolyfaceBuilder._workPointFindOrAddA);
@@ -242136,9 +242158,13 @@ class PolyfaceBuilder extends _geometry3d_GeometryHandler__WEBPACK_IMPORTED_MODU
242136
242158
  return undefined;
242137
242159
  }
242138
242160
  /**
242139
- * Announce point coordinates. The implementation is free to either create a new point or (if known) return index of a prior point with the same coordinates.
242140
- * @returns Returns the point index in the Polyface.
242141
- * @param index Index of the point in the linestring.
242161
+ * Add a normal to the polyface. The implementation is free to either create a new normal or return the index of a
242162
+ * prior normal with the same coordinates.
242163
+ * @param xyz the array of normals.
242164
+ * @param index index of the normal in the array.
242165
+ * @param transform (optional) transform to be applied.
242166
+ * @param priorIndex (optional) index of a prior point to check for possible duplicate value.
242167
+ * @returns the normal index in the polyface.
242142
242168
  */
242143
242169
  findOrAddNormalInGrowableXYZArray(xyz, index, transform, priorIndex) {
242144
242170
  const q = xyz.getVector3dAtCheckedVectorIndex(index, PolyfaceBuilder._workVectorFindOrAdd);
@@ -242150,40 +242176,49 @@ class PolyfaceBuilder extends _geometry3d_GeometryHandler__WEBPACK_IMPORTED_MODU
242150
242176
  return undefined;
242151
242177
  }
242152
242178
  /**
242153
- * Announce uv parameter coordinates.
242154
- * @returns Returns the uv parameter index in the Polyface.
242155
- * @param index Index of the param in the linestring.
242179
+ * Add a uv parameter to the polyface.
242180
+ * @param data the array of uv data.
242181
+ * @param index index of the param in the array.
242182
+ * @returns the uv parameter index in the polyface.
242156
242183
  */
242157
242184
  addParamInGrowableXYArray(data, index) {
242158
242185
  if (!data)
242159
242186
  return undefined;
242160
242187
  const q = data.getPoint2dAtCheckedPointIndex(index, PolyfaceBuilder._workUVFindOrAdd);
242161
- if (q) {
242188
+ if (q)
242162
242189
  return this._polyface.addParam(q);
242163
- }
242164
242190
  return undefined;
242165
242191
  }
242166
242192
  /**
242167
- * Announce uv parameter coordinates.
242193
+ * Add a uv parameter to the polyface.
242168
242194
  * @deprecated in 3.x. Use addParamInGrowableXYArray instead.
242169
242195
  */
242170
242196
  findOrAddParamInGrowableXYArray(data, index) {
242171
242197
  return this.addParamInGrowableXYArray(data, index);
242172
242198
  }
242173
242199
  /**
242174
- * Announce param coordinates, taking u from ls.fractions and v from parameter. The implementation is free to either create a new param or (if known) return index of a prior point with the same coordinates.
242175
- * @returns Returns the point index in the Polyface.
242176
- * @param index Index of the point in the linestring.
242200
+ * Add a uv parameter to the polyface, taking `u` from `ls.fractions` and `v` from input. The implementation is
242201
+ * free to either create a new param or return the index of a prior param with the same coordinates.
242202
+ * @param ls the linestring.
242203
+ * @param index index of the point in the linestring.
242204
+ * @param v the v parameter.
242205
+ * @param priorIndexA (optional) an index of a prior param to check for possible duplicate value.
242206
+ * @param priorIndexB (optional) another index of a prior param to check for possible duplicate value.
242207
+ * @returns the uv parameter index in the polyface.
242177
242208
  */
242178
242209
  findOrAddParamInLineString(ls, index, v, priorIndexA, priorIndexB) {
242179
- const u = (ls.fractions && index < ls.fractions.length) ? ls.fractions.atUncheckedIndex(index) : index / ls.points.length;
242210
+ const u = (ls.fractions && index < ls.fractions.length) ?
242211
+ ls.fractions.atUncheckedIndex(index) : index / ls.points.length;
242180
242212
  return this._polyface.addParamUV(u, v, priorIndexA, priorIndexB);
242181
242213
  }
242182
242214
  /**
242183
- * Announce normal coordinates found at index in the surfaceNormal array stored on the linestring
242184
- * @returns Returns the point index in the Polyface.
242185
- * @param index Index of the point in the linestring.
242186
- * @param priorIndex possible prior normal index to reuse
242215
+ * Add a normal to the polyface.
242216
+ * @param ls the linestring.
242217
+ * @param index Index of the normal in the linestring's surface normal array.
242218
+ * @param transform (optional) transform to be applied.
242219
+ * @param priorIndexA (optional) an index of a prior normal to check for possible duplicate value.
242220
+ * @param priorIndexB (optional) another index of a prior normal to check for possible duplicate value.
242221
+ * @returns the normal index in the polyface.
242187
242222
  */
242188
242223
  findOrAddNormalInLineString(ls, index, transform, priorIndexA, priorIndexB) {
242189
242224
  const linestringNormals = ls.packedSurfaceNormals;
@@ -242197,14 +242232,12 @@ class PolyfaceBuilder extends _geometry3d_GeometryHandler__WEBPACK_IMPORTED_MODU
242197
242232
  }
242198
242233
  return undefined;
242199
242234
  }
242200
- /**
242201
- * Announce point coordinates.
242202
- */
242235
+ /** Add a point to the polyface. */
242203
242236
  addPointXYZ(x, y, z) {
242204
242237
  return this._polyface.addPointXYZ(x, y, z);
242205
242238
  }
242206
242239
  /**
242207
- * Announce point coordinates.
242240
+ * Add a point to the polyface.
242208
242241
  * @deprecated in 3.x. Use addPointXYZ instead.
242209
242242
  */
242210
242243
  findOrAddPointXYZ(x, y, z) {
@@ -242226,18 +242259,22 @@ class PolyfaceBuilder extends _geometry3d_GeometryHandler__WEBPACK_IMPORTED_MODU
242226
242259
  normal = normal ? normal : _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_0__.Vector3d.create();
242227
242260
  return normal;
242228
242261
  }
242229
- // ###: Consider case where normals will be reversed and point through the other end of the facet
242262
+ // ### TODO: Consider case where normals will be reversed and point through the other end of the facet.
242230
242263
  /**
242231
242264
  * Add a quad to the polyface given its points in order around the edges.
242232
- * @param points array of at least three vertices
242233
- * @param params optional array of at least four uv parameters (if undefined, params are calculated without reference data)
242234
- * @param normals optional array of at least four vectors (if undefined, the quad is assumed to be planar and its normal is calculated)
242235
- * @param colors optional array of at least four colors
242265
+ * @param points array of at least four vertices.
242266
+ * @param params (optional) array of at least four uv parameters (if `undefined`, params are calculated without
242267
+ * reference data).
242268
+ * @param normals (optional) array of at least four vectors (if `undefined`, the quad is assumed to be planar and its
242269
+ * normal is calculated).
242270
+ * @param colors (optional) array of at least four colors.
242236
242271
  */
242237
242272
  addQuadFacet(points, params, normals, colors) {
242238
242273
  if (points instanceof _geometry3d_GrowableXYZArray__WEBPACK_IMPORTED_MODULE_10__.GrowableXYZArray)
242239
242274
  points = points.getPoint3dArray();
242240
- // If params and/or normals are needed, calculate them first
242275
+ if (points.length < 4)
242276
+ return;
242277
+ // if params and/or normals are needed, calculate them first
242241
242278
  const needParams = this.options.needParams;
242242
242279
  const needNormals = this.options.needNormals;
242243
242280
  const needColors = this.options.needColors;
@@ -242287,7 +242324,7 @@ class PolyfaceBuilder extends _geometry3d_GeometryHandler__WEBPACK_IMPORTED_MODU
242287
242324
  }
242288
242325
  }
242289
242326
  if (this._options.shouldTriangulate) {
242290
- // Add as two triangles, with a diagonal along the shortest distance
242327
+ // add as two triangles, with a diagonal along the shortest distance
242291
242328
  const vectorAC = points[0].vectorTo(points[2]);
242292
242329
  const vectorBD = points[1].vectorTo(points[3]);
242293
242330
  // Note: We pass along any values for normals or params that we calculated
@@ -242302,7 +242339,7 @@ class PolyfaceBuilder extends _geometry3d_GeometryHandler__WEBPACK_IMPORTED_MODU
242302
242339
  return;
242303
242340
  }
242304
242341
  let idx0, idx1, idx2, idx3;
242305
- // Add params if needed
242342
+ // add params if needed
242306
242343
  if (needParams) {
242307
242344
  idx0 = this._polyface.addParam(param0);
242308
242345
  idx1 = this._polyface.addParam(param1);
@@ -242310,7 +242347,7 @@ class PolyfaceBuilder extends _geometry3d_GeometryHandler__WEBPACK_IMPORTED_MODU
242310
242347
  idx3 = this._polyface.addParam(param3);
242311
242348
  this.addIndexedQuadParamIndexes(idx0, idx1, idx3, idx2);
242312
242349
  }
242313
- // Add normals if needed
242350
+ // add normals if needed
242314
242351
  if (needNormals) {
242315
242352
  idx0 = this._polyface.addNormal(normal0);
242316
242353
  idx1 = this._polyface.addNormal(normal1);
@@ -242318,7 +242355,7 @@ class PolyfaceBuilder extends _geometry3d_GeometryHandler__WEBPACK_IMPORTED_MODU
242318
242355
  idx3 = this._polyface.addNormal(normal3);
242319
242356
  this.addIndexedQuadNormalIndexes(idx0, idx1, idx3, idx2);
242320
242357
  }
242321
- // Add colors if needed
242358
+ // add colors if needed
242322
242359
  if (needColors) {
242323
242360
  idx0 = this._polyface.addColor(color0);
242324
242361
  idx1 = this._polyface.addColor(color1);
@@ -242326,18 +242363,19 @@ class PolyfaceBuilder extends _geometry3d_GeometryHandler__WEBPACK_IMPORTED_MODU
242326
242363
  idx3 = this._polyface.addColor(color3);
242327
242364
  this.addIndexedQuadColorIndexes(idx0, idx1, idx3, idx2);
242328
242365
  }
242329
- // Add point and point indexes last (terminates the facet)
242366
+ // add point and point indexes last (terminates the facet)
242330
242367
  idx0 = this.addPoint(points[0]);
242331
242368
  idx1 = this.addPoint(points[1]);
242332
242369
  idx2 = this.addPoint(points[2]);
242333
242370
  idx3 = this.addPoint(points[3]);
242334
242371
  this.addIndexedQuadPointIndexes(idx0, idx1, idx3, idx2);
242335
242372
  }
242336
- /** Announce a single quad facet's point indexes.
242373
+ /**
242374
+ * Add a single quad facet from existing points to the polyface.
242337
242375
  * * The actual quad may be reversed or triangulated based on builder setup.
242338
- * * indexA0 and indexA1 are in the forward order at the "A" end of the quad
242339
- * * indexB0 and indexB1 are in the forward order at the "B" end of the quad.
242340
- * * This means ccw/cw ordered vertices v[i] should be passed into this function as i=[0,1,3,2]
242376
+ * * `indexA0` and `indexA1` are in the forward order at the "A" end of the quad
242377
+ * * `indexB0` and `indexB1` are in the forward order at the "B" end of the quad.
242378
+ * * This means ccw/cw ordered vertices v[i] should be passed into this function as i=[0,1,3,2].
242341
242379
  */
242342
242380
  addIndexedQuadPointIndexes(indexA0, indexA1, indexB0, indexB1, terminate = true) {
242343
242381
  if (this._reversed) {
@@ -242400,13 +242438,14 @@ class PolyfaceBuilder extends _geometry3d_GeometryHandler__WEBPACK_IMPORTED_MODU
242400
242438
  this._polyface.addColorIndex(indexB0);
242401
242439
  }
242402
242440
  }
242403
- // ### TODO: Consider case where normals will be reversed and point through the other end of the facet
242441
+ // ### TODO: Consider case where normals will be reversed and point through the other end of the facet.
242404
242442
  /**
242405
242443
  * Add a triangle to the polyface given its points in order around the edges.
242406
- * @param points array of at least three vertices
242407
- * @param params optional array of at least three uv parameters (if undefined, params are calculated without reference data)
242408
- * @param normals optional array of at least three vectors (if undefined, the normal is calculated)
242409
- * @param colors optional array of at least three colors
242444
+ * @param points array of at least three vertices.
242445
+ * @param params (optional) array of at least three uv parameters (if `undefined`, params are calculated without
242446
+ * reference data).
242447
+ * @param normals (optional) array of at least three vectors (if `undefined`, the normal is calculated).
242448
+ * @param colors (optional) array of at least three colors.
242410
242449
  */
242411
242450
  addTriangleFacet(points, params, normals, colors) {
242412
242451
  if (points.length < 3)
@@ -242425,14 +242464,14 @@ class PolyfaceBuilder extends _geometry3d_GeometryHandler__WEBPACK_IMPORTED_MODU
242425
242464
  point1 = points[1];
242426
242465
  point2 = points[2];
242427
242466
  }
242428
- // Add params if needed
242467
+ // add params if needed
242429
242468
  if (this._options.needParams) {
242430
- if (params && params.length >= 3) { // Params were given
242469
+ if (params && params.length >= 3) { // params were given
242431
242470
  idx0 = this._polyface.addParam(params[0]);
242432
242471
  idx1 = this._polyface.addParam(params[1]);
242433
242472
  idx2 = this._polyface.addParam(params[2]);
242434
242473
  }
242435
- else { // Compute params
242474
+ else { // compute params
242436
242475
  const paramTransform = this.getUVTransformForTriangleFacet(point0, point1, point2);
242437
242476
  idx0 = this._polyface.addParam(_geometry3d_Point2dVector2d__WEBPACK_IMPORTED_MODULE_1__.Point2d.createFrom(paramTransform ? paramTransform.multiplyPoint3d(point0) : undefined));
242438
242477
  idx1 = this._polyface.addParam(_geometry3d_Point2dVector2d__WEBPACK_IMPORTED_MODULE_1__.Point2d.createFrom(paramTransform ? paramTransform.multiplyPoint3d(point1) : undefined));
@@ -242440,14 +242479,14 @@ class PolyfaceBuilder extends _geometry3d_GeometryHandler__WEBPACK_IMPORTED_MODU
242440
242479
  }
242441
242480
  this.addIndexedTriangleParamIndexes(idx0, idx1, idx2);
242442
242481
  }
242443
- // Add normals if needed
242482
+ // add normals if needed
242444
242483
  if (this._options.needNormals) {
242445
- if (normals !== undefined && normals.length > 2) { // Normals were given
242484
+ if (normals !== undefined && normals.length > 2) { // normals were given
242446
242485
  idx0 = this._polyface.addNormal(normals[0]);
242447
242486
  idx1 = this._polyface.addNormal(normals[1]);
242448
242487
  idx2 = this._polyface.addNormal(normals[2]);
242449
242488
  }
242450
- else { // Compute normals
242489
+ else { // compute normals
242451
242490
  const normal = this.getNormalForTriangularFacet(point0, point1, point2);
242452
242491
  idx0 = this._polyface.addNormal(normal);
242453
242492
  idx1 = this._polyface.addNormal(normal);
@@ -242455,7 +242494,7 @@ class PolyfaceBuilder extends _geometry3d_GeometryHandler__WEBPACK_IMPORTED_MODU
242455
242494
  }
242456
242495
  this.addIndexedTriangleNormalIndexes(idx0, idx1, idx2);
242457
242496
  }
242458
- // Add colors if needed and provided
242497
+ // add colors if needed and provided
242459
242498
  if (this._options.needColors) {
242460
242499
  if (colors !== undefined && colors.length > 2) {
242461
242500
  idx0 = this._polyface.addColor(colors[0]);
@@ -242464,15 +242503,15 @@ class PolyfaceBuilder extends _geometry3d_GeometryHandler__WEBPACK_IMPORTED_MODU
242464
242503
  this.addIndexedTriangleColorIndexes(idx0, idx1, idx2);
242465
242504
  }
242466
242505
  }
242467
- // Add point and point indexes last (terminates the facet)
242506
+ // add point and point indexes last (terminates the facet)
242468
242507
  idx0 = this.addPoint(point0);
242469
242508
  idx1 = this.addPoint(point1);
242470
242509
  idx2 = this.addPoint(point2);
242471
242510
  this.addIndexedTrianglePointIndexes(idx0, idx1, idx2);
242472
242511
  }
242473
- /** Announce a single triangle facet's point indexes.
242474
- *
242475
- * * The actual quad may be reversed or triangulated based on builder setup.
242512
+ /**
242513
+ * Add a single triangular facet from existing points to the polyface.
242514
+ * * The added triangle may be reversed based on builder setup.
242476
242515
  */
242477
242516
  addIndexedTrianglePointIndexes(indexA, indexB, indexC, terminateFacet = true) {
242478
242517
  if (!this._reversed) {
@@ -242539,7 +242578,7 @@ class PolyfaceBuilder extends _geometry3d_GeometryHandler__WEBPACK_IMPORTED_MODU
242539
242578
  if (sectorA0.xyz.isAlmostEqual(sectorA1.xyz)
242540
242579
  || sectorA1.xyz.isAlmostEqual(sectorA2.xyz)
242541
242580
  || sectorA2.xyz.isAlmostEqual(sectorA0.xyz)) {
242542
- // trivially degenerate triangle !!! skip !!!
242581
+ // trivially degenerate triangle; skip!!!
242543
242582
  }
242544
242583
  else {
242545
242584
  if (this._options.needNormals)
@@ -242551,7 +242590,7 @@ class PolyfaceBuilder extends _geometry3d_GeometryHandler__WEBPACK_IMPORTED_MODU
242551
242590
  }
242552
242591
  addSectorQuadA01B01(sectorA0, sectorA1, sectorB0, sectorB1) {
242553
242592
  if (sectorA0.xyz.isAlmostEqual(sectorA1.xyz) && sectorB0.xyz.isAlmostEqual(sectorB1.xyz)) {
242554
- // ignore null quad !!
242593
+ // ignore null quad
242555
242594
  }
242556
242595
  else if (this._options.shouldTriangulate) {
242557
242596
  this.addSectorTriangle(sectorA0, sectorA1, sectorB1);
@@ -242565,10 +242604,9 @@ class PolyfaceBuilder extends _geometry3d_GeometryHandler__WEBPACK_IMPORTED_MODU
242565
242604
  this.addIndexedQuadPointIndexes(sectorA0.xyzIndex, sectorA1.xyzIndex, sectorB0.xyzIndex, sectorB1.xyzIndex, true);
242566
242605
  }
242567
242606
  }
242568
- /** Add facets between lineStrings with matched point counts.
242569
- * * surface normals are computed from (a) curve tangents in the linestrings and (b)rule line between linestrings.
242570
- * * Facets are announced to addIndexedQuad.
242571
- * * addIndexedQuad is free to apply reversal or triangulation options.
242607
+ /**
242608
+ * Add facets between lineStrings with matched point counts.
242609
+ * * Surface normals are computed from (a) curve tangents in the linestrings and (b) rule line between linestrings.
242572
242610
  */
242573
242611
  addBetweenLineStringsWithRuleEdgeNormals(lineStringA, vA, lineStringB, vB, addClosure = false) {
242574
242612
  const pointA = lineStringA.packedPoints;
@@ -242602,7 +242640,7 @@ class PolyfaceBuilder extends _geometry3d_GeometryHandler__WEBPACK_IMPORTED_MODU
242602
242640
  FacetSector.computeNormalsAlongRuleLine(sectorA1, sectorB1);
242603
242641
  this.setSectorIndices(sectorA1);
242604
242642
  this.setSectorIndices(sectorB1);
242605
- // create the facet ...
242643
+ // create the facet
242606
242644
  this.addSectorQuadA01B01(sectorA0, sectorA1, sectorB0, sectorB1);
242607
242645
  sectorA0.copyContentsFrom(sectorA1);
242608
242646
  sectorB0.copyContentsFrom(sectorB1);
@@ -242610,10 +242648,9 @@ class PolyfaceBuilder extends _geometry3d_GeometryHandler__WEBPACK_IMPORTED_MODU
242610
242648
  if (addClosure)
242611
242649
  this.addSectorQuadA01B01(sectorA0, sectorA00, sectorB0, sectorB00);
242612
242650
  }
242613
- /** Add facets between lineStrings with matched point counts.
242614
- * * point indices pre-stored
242615
- * * normal indices pre-stored
242616
- * * uv indices pre-stored
242651
+ /**
242652
+ * Add facets between lineStrings with matched point counts.
242653
+ * * Indices of points, normals, and uv parameters are pre-stored in the linestrings.
242617
242654
  */
242618
242655
  addBetweenLineStringsWithStoredIndices(lineStringA, lineStringB) {
242619
242656
  const pointA = lineStringA.pointIndices;
@@ -242649,7 +242686,8 @@ class PolyfaceBuilder extends _geometry3d_GeometryHandler__WEBPACK_IMPORTED_MODU
242649
242686
  }
242650
242687
  }
242651
242688
  else {
242652
- if (pointA.atUncheckedIndex(i - 1) !== pointA.atUncheckedIndex(i) || pointB.atUncheckedIndex(i - 1) !== pointB.atUncheckedIndex(i)) {
242689
+ if (pointA.atUncheckedIndex(i - 1) !== pointA.atUncheckedIndex(i) ||
242690
+ pointB.atUncheckedIndex(i - 1) !== pointB.atUncheckedIndex(i)) {
242653
242691
  this.addIndexedQuadPointIndexes(pointA.atUncheckedIndex(i - 1), pointA.atUncheckedIndex(i), pointB.atUncheckedIndex(i - 1), pointB.atUncheckedIndex(i), false);
242654
242692
  if (normalA && normalB)
242655
242693
  this.addIndexedQuadNormalIndexes(normalA.atUncheckedIndex(i - 1), normalA.atUncheckedIndex(i), normalB.atUncheckedIndex(i - 1), normalB.atUncheckedIndex(i));
@@ -242660,8 +242698,8 @@ class PolyfaceBuilder extends _geometry3d_GeometryHandler__WEBPACK_IMPORTED_MODU
242660
242698
  this._polyface.terminateFacet();
242661
242699
  }
242662
242700
  }
242663
- /** Add facets between lineStrings with matched point counts.
242664
- *
242701
+ /**
242702
+ * Add facets between lineStrings with matched point counts.
242665
242703
  * * Facets are announced to addIndexedQuad.
242666
242704
  * * addIndexedQuad is free to apply reversal or triangulation options.
242667
242705
  */
@@ -242687,7 +242725,7 @@ class PolyfaceBuilder extends _geometry3d_GeometryHandler__WEBPACK_IMPORTED_MODU
242687
242725
  }
242688
242726
  else {
242689
242727
  const children = curves.children;
242690
- // just send the children individually -- final s will fix things??
242728
+ // just send the children individually; final compress will fix things??
242691
242729
  if (children)
242692
242730
  for (const c of children) {
242693
242731
  this.addBetweenTransformedLineStrings(c, transformA, transformB);
@@ -242719,11 +242757,9 @@ class PolyfaceBuilder extends _geometry3d_GeometryHandler__WEBPACK_IMPORTED_MODU
242719
242757
  }
242720
242758
  }
242721
242759
  }
242722
- /**
242723
- * Add facets from a Cone
242724
- */
242760
+ /** Add facets from a Cone. */
242725
242761
  addCone(cone) {
242726
- // ensure identical stroke counts at each end . . .
242762
+ // ensure identical stroke counts at each end
242727
242763
  let strokeCount = 16;
242728
242764
  if (this._options)
242729
242765
  strokeCount = this._options.applyTolerancesToArc(cone.getMaxRadius());
@@ -242748,9 +242784,7 @@ class PolyfaceBuilder extends _geometry3d_GeometryHandler__WEBPACK_IMPORTED_MODU
242748
242784
  }
242749
242785
  }
242750
242786
  }
242751
- /**
242752
- * Add facets for a TorusPipe.
242753
- */
242787
+ /** Add facets for a TorusPipe. */
242754
242788
  addTorusPipe(surface, phiStrokeCount, thetaStrokeCount) {
242755
242789
  const thetaFraction = surface.getThetaFraction();
242756
242790
  let numU = _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.clamp(_Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.resolveNumber(phiStrokeCount, 8), 4, 64);
@@ -242794,11 +242828,11 @@ class PolyfaceBuilder extends _geometry3d_GeometryHandler__WEBPACK_IMPORTED_MODU
242794
242828
  }
242795
242829
  /**
242796
242830
  * Add point data (no params, normals) for linestrings.
242797
- * * This recurses through curve chains (loops and paths)
242798
- * * linestrings are swept
242831
+ * * This recurses through curve chains (loops and paths).
242832
+ * * LineStrings are swept.
242799
242833
  * * All other curve types are ignored.
242800
- * @param vector sweep vector
242801
- * @param contour contour which contains only linestrings
242834
+ * @param contour contour which contains only linestrings.
242835
+ * @param vector sweep vector.
242802
242836
  */
242803
242837
  addLinearSweepLineStringsXYZOnly(contour, vector) {
242804
242838
  if (contour instanceof _curve_LineString3d__WEBPACK_IMPORTED_MODULE_11__.LineString3d) {
@@ -242814,22 +242848,18 @@ class PolyfaceBuilder extends _geometry3d_GeometryHandler__WEBPACK_IMPORTED_MODU
242814
242848
  pointB = pointA.plus(vector, pointB);
242815
242849
  indexA1 = this.addPoint(pointA);
242816
242850
  indexB1 = this.addPoint(pointB);
242817
- if (i > 0) {
242851
+ if (i > 0)
242818
242852
  this.addIndexedQuadPointIndexes(indexA0, indexA1, indexB0, indexB1);
242819
- }
242820
242853
  indexA0 = indexA1;
242821
242854
  indexB0 = indexB1;
242822
242855
  }
242823
242856
  }
242824
242857
  else if (contour instanceof _curve_CurveCollection__WEBPACK_IMPORTED_MODULE_13__.CurveChain) {
242825
- for (const ls of contour.children) {
242858
+ for (const ls of contour.children)
242826
242859
  this.addLinearSweepLineStringsXYZOnly(ls, vector);
242827
- }
242828
242860
  }
242829
242861
  }
242830
- /**
242831
- * Construct facets for a rotational sweep.
242832
- */
242862
+ /** Construct facets for a rotational sweep. */
242833
242863
  addRotationalSweep(surface) {
242834
242864
  const contour = surface.getCurves();
242835
242865
  const section0 = _curve_Query_StrokeCountChain__WEBPACK_IMPORTED_MODULE_16__.StrokeCountSection.createForParityRegionOrChain(contour, this._options);
@@ -242852,22 +242882,21 @@ class PolyfaceBuilder extends _geometry3d_GeometryHandler__WEBPACK_IMPORTED_MODU
242852
242882
  const capContour = surface.getSweepContourRef();
242853
242883
  capContour.purgeFacets();
242854
242884
  capContour.emitFacets(this, true, undefined);
242855
- // final loop pass left transformA at end ..
242885
+ // final loop pass left transformA at end
242856
242886
  capContour.emitFacets(this, false, surface.getFractionalRotationTransform(1.0));
242857
242887
  }
242858
242888
  }
242859
- /**
242860
- * Construct facets for any planar region
242861
- */
242889
+ /** Construct facets for any planar region. */
242862
242890
  addTriangulatedRegion(region) {
242863
242891
  const contour = _solid_SweepContour__WEBPACK_IMPORTED_MODULE_18__.SweepContour.createForLinearSweep(region);
242864
242892
  if (contour)
242865
242893
  contour.emitFacets(this, this.reversedFlag, undefined);
242866
242894
  }
242867
242895
  /**
242896
+ * Apply stroke counts to curve primitives.
242868
242897
  * * Recursively visit all children of data.
242869
- * * At each primitive, invoke the computeStrokeCountForOptions method, with options from the builder.
242870
- * @param data
242898
+ * * At each primitive, invoke `computeStrokeCountForOptions` method with options from the builder.
242899
+ * @deprecated in 4.x. This method does nothing and is unneeded.
242871
242900
  */
242872
242901
  applyStrokeCountsToCurvePrimitives(data) {
242873
242902
  const options = this._options;
@@ -242877,9 +242906,9 @@ class PolyfaceBuilder extends _geometry3d_GeometryHandler__WEBPACK_IMPORTED_MODU
242877
242906
  else if (data instanceof _curve_CurveCollection__WEBPACK_IMPORTED_MODULE_13__.CurveCollection) {
242878
242907
  const children = data.children;
242879
242908
  if (children)
242880
- for (const child of children) {
242909
+ for (const child of children)
242910
+ // eslint-disable-next-line deprecation/deprecation
242881
242911
  this.applyStrokeCountsToCurvePrimitives(child);
242882
- }
242883
242912
  }
242884
242913
  }
242885
242914
  addBetweenStrokeSetsWithRuledNormals(stroke0, stroke1, numVEdge) {
@@ -242899,22 +242928,20 @@ class PolyfaceBuilder extends _geometry3d_GeometryHandler__WEBPACK_IMPORTED_MODU
242899
242928
  }
242900
242929
  createIndicesInLineString(ls, vParam, transform) {
242901
242930
  const n = ls.numPoints();
242902
- {
242903
- const pointIndices = ls.ensureEmptyPointIndices();
242904
- const index0 = this.findOrAddPointInLineString(ls, 0, transform);
242905
- pointIndices.push(index0);
242906
- if (n > 1) {
242907
- let indexA = index0;
242908
- let indexB;
242909
- for (let i = 1; i + 1 < n; i++) {
242910
- indexB = this.findOrAddPointInLineString(ls, i, transform, indexA);
242911
- pointIndices.push(indexB);
242912
- indexA = indexB;
242913
- }
242914
- // assume last point can only repeat back to zero ...
242915
- indexB = this.findOrAddPointInLineString(ls, n - 1, transform, index0);
242931
+ const pointIndices = ls.ensureEmptyPointIndices();
242932
+ const index0 = this.findOrAddPointInLineString(ls, 0, transform);
242933
+ pointIndices.push(index0);
242934
+ if (n > 1) {
242935
+ let indexA = index0;
242936
+ let indexB;
242937
+ for (let i = 1; i + 1 < n; i++) {
242938
+ indexB = this.findOrAddPointInLineString(ls, i, transform, indexA);
242916
242939
  pointIndices.push(indexB);
242940
+ indexA = indexB;
242917
242941
  }
242942
+ // assume last point can only repeat back to zero
242943
+ indexB = this.findOrAddPointInLineString(ls, n - 1, transform, index0);
242944
+ pointIndices.push(indexB);
242918
242945
  }
242919
242946
  if (this._options.needNormals && ls.packedSurfaceNormals !== undefined) {
242920
242947
  const normalIndices = ls.ensureEmptyNormalIndices();
@@ -242928,7 +242955,7 @@ class PolyfaceBuilder extends _geometry3d_GeometryHandler__WEBPACK_IMPORTED_MODU
242928
242955
  normalIndices.push(normalIndexB);
242929
242956
  normalIndexA = normalIndexB;
242930
242957
  }
242931
- // assume last point can only repeat back to zero ...
242958
+ // assume last point can only repeat back to zero
242932
242959
  normalIndexB = this.findOrAddNormalInLineString(ls, n - 1, transform, normalIndex0, normalIndexA);
242933
242960
  normalIndices.push(normalIndexB);
242934
242961
  }
@@ -242945,7 +242972,7 @@ class PolyfaceBuilder extends _geometry3d_GeometryHandler__WEBPACK_IMPORTED_MODU
242945
242972
  uvIndices.push(uvIndexB);
242946
242973
  uvIndexA = uvIndexB;
242947
242974
  }
242948
- // assume last point can only repeat back to zero ...
242975
+ // assume last point can only repeat back to zero
242949
242976
  uvIndexB = this.findOrAddParamInLineString(ls, n - 1, vParam, uvIndexA, uvIndex0);
242950
242977
  uvIndices.push(uvIndexB);
242951
242978
  }
@@ -242972,12 +242999,7 @@ class PolyfaceBuilder extends _geometry3d_GeometryHandler__WEBPACK_IMPORTED_MODU
242972
242999
  }
242973
243000
  }
242974
243001
  }
242975
- /**
242976
- *
242977
- * Add facets from
242978
- * * The swept contour
242979
- * * each cap.
242980
- */
243002
+ /** Add facets from the linear sweep. */
242981
243003
  addLinearSweep(surface) {
242982
243004
  const contour = surface.getCurvesRef();
242983
243005
  const section0 = _curve_Query_StrokeCountChain__WEBPACK_IMPORTED_MODULE_16__.StrokeCountSection.createForParityRegionOrChain(contour, this._options);
@@ -242994,17 +243016,14 @@ class PolyfaceBuilder extends _geometry3d_GeometryHandler__WEBPACK_IMPORTED_MODU
242994
243016
  contourA.emitFacets(this, false, sweepTransform);
242995
243017
  }
242996
243018
  }
242997
- /**
242998
- * Add facets from a ruled sweep.
242999
- */
243019
+ /** Add facets from a ruled sweep. */
243000
243020
  addRuledSweep(surface) {
243001
243021
  const contours = surface.sweepContoursRef();
243002
243022
  let stroke0;
243003
243023
  let stroke1;
243004
243024
  const sectionMaps = [];
243005
- for (const contour of contours) {
243025
+ for (const contour of contours)
243006
243026
  sectionMaps.push(_curve_Query_StrokeCountChain__WEBPACK_IMPORTED_MODULE_16__.StrokeCountSection.createForParityRegionOrChain(contour.curves, this._options));
243007
- }
243008
243027
  if (_curve_Query_StrokeCountChain__WEBPACK_IMPORTED_MODULE_16__.StrokeCountSection.enforceStrokeCountCompatibility(sectionMaps)) {
243009
243028
  _curve_Query_StrokeCountChain__WEBPACK_IMPORTED_MODULE_16__.StrokeCountSection.enforceCompatibleDistanceSums(sectionMaps);
243010
243029
  for (let i = 0; i < contours.length; i++) {
@@ -243030,9 +243049,7 @@ class PolyfaceBuilder extends _geometry3d_GeometryHandler__WEBPACK_IMPORTED_MODU
243030
243049
  }
243031
243050
  return true;
243032
243051
  }
243033
- /**
243034
- * Add facets from a Sphere
243035
- */
243052
+ /** Add facets from a sphere. */
243036
243053
  addSphere(sphere, strokeCount) {
243037
243054
  let numStrokeTheta = strokeCount ? strokeCount : this.options.applyTolerancesToArc(sphere.maxAxisRadius());
243038
243055
  if (_Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.isOdd(numStrokeTheta))
@@ -243052,21 +243069,19 @@ class PolyfaceBuilder extends _geometry3d_GeometryHandler__WEBPACK_IMPORTED_MODU
243052
243069
  this.endFace();
243053
243070
  }
243054
243071
  }
243055
- /**
243056
- * Add facets from a Box
243057
- */
243072
+ /** Add facets from a box. */
243058
243073
  addBox(box) {
243059
243074
  const corners = box.getCorners();
243060
243075
  const xLength = _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.maxXY(box.getBaseX(), box.getBaseX());
243061
243076
  const yLength = _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.maxXY(box.getBaseY(), box.getTopY());
243062
243077
  let zLength = 0.0;
243063
- for (let i = 0; i < 4; i++) {
243078
+ for (let i = 0; i < 4; i++)
243064
243079
  zLength = _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.maxXY(zLength, corners[i].distance(corners[i + 4]));
243065
- }
243066
243080
  const numX = this._options.applyMaxEdgeLength(1, xLength);
243067
243081
  const numY = this._options.applyMaxEdgeLength(1, yLength);
243068
243082
  const numZ = this._options.applyMaxEdgeLength(1, zLength);
243069
- // Wrap the 4 out-of-plane faces as a single parameters space with "distance" advancing in x then y then negative x then negative y ...
243083
+ // wrap the 4 out-of-plane faces as a single parameter space with "distance"
243084
+ // advancing in x, then y, then negative x, then negative y
243070
243085
  const uParamRange = _geometry3d_Segment1d__WEBPACK_IMPORTED_MODULE_14__.Segment1d.create(0, xLength);
243071
243086
  const vParamRange = _geometry3d_Segment1d__WEBPACK_IMPORTED_MODULE_14__.Segment1d.create(0, zLength);
243072
243087
  this.addUVGridBody(_geometry3d_BilinearPatch__WEBPACK_IMPORTED_MODULE_21__.BilinearPatch.create(corners[0], corners[1], corners[4], corners[5]), numX, numZ, uParamRange, vParamRange);
@@ -243076,7 +243091,7 @@ class PolyfaceBuilder extends _geometry3d_GeometryHandler__WEBPACK_IMPORTED_MODU
243076
243091
  this.addUVGridBody(_geometry3d_BilinearPatch__WEBPACK_IMPORTED_MODULE_21__.BilinearPatch.create(corners[3], corners[2], corners[7], corners[6]), numX, numZ, uParamRange, vParamRange);
243077
243092
  uParamRange.shift(xLength);
243078
243093
  this.addUVGridBody(_geometry3d_BilinearPatch__WEBPACK_IMPORTED_MODULE_21__.BilinearPatch.create(corners[2], corners[0], corners[6], corners[4]), numY, numZ, uParamRange, vParamRange);
243079
- // finally end that wraparound face !!
243094
+ // finally end that wraparound face
243080
243095
  this.endFace();
243081
243096
  if (box.capped) {
243082
243097
  uParamRange.set(0.0, xLength);
@@ -243089,15 +243104,15 @@ class PolyfaceBuilder extends _geometry3d_GeometryHandler__WEBPACK_IMPORTED_MODU
243089
243104
  this.endFace();
243090
243105
  }
243091
243106
  }
243092
- /** Add a polygon to the evolving facets.
243093
- *
243094
- * * Add points to the polyface
243095
- * * indices are added (in reverse order if indicated by the builder state)
243096
- * @param points array of points. This may contain extra points not to be used in the polygon
243107
+ /**
243108
+ * Add a polygon to the evolving facets.
243109
+ * * Add points to the polyface.
243110
+ * * Indices are added (in reverse order if indicated by the builder state).
243111
+ * @param points array of points. This may contain extra points not to be used in the polygon.
243097
243112
  * @param numPointsToUse number of points to use.
243098
243113
  */
243099
243114
  addPolygon(points, numPointsToUse) {
243100
- // don't use trailing points that match start point.
243115
+ // don't use trailing points that match start point
243101
243116
  if (numPointsToUse === undefined)
243102
243117
  numPointsToUse = points.length;
243103
243118
  while (numPointsToUse > 1 && points[numPointsToUse - 1].isAlmostEqual(points[0]))
@@ -243117,23 +243132,23 @@ class PolyfaceBuilder extends _geometry3d_GeometryHandler__WEBPACK_IMPORTED_MODU
243117
243132
  }
243118
243133
  this._polyface.terminateFacet();
243119
243134
  }
243120
- /** Add a polygon to the evolving facets.
243121
- *
243135
+ /**
243136
+ * Add a polygon to the evolving facets.
243122
243137
  * * Add points to the polyface
243123
- * * indices are added (in reverse order if indicated by the builder state)
243138
+ * * Indices are added (in reverse order if indicated by the builder state).
243124
243139
  * * Arrays with 2 or fewer points are ignored.
243125
243140
  * @param points array of points. Trailing closure points are ignored.
243126
243141
  */
243127
243142
  addPolygonGrowableXYZArray(points) {
243128
- // don't use trailing points that match start point.
243143
+ // don't use trailing points that match start point
243129
243144
  let numPointsToUse = points.length;
243130
243145
  while (numPointsToUse > 2 && _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.isSmallMetricDistance(points.distanceIndexIndex(0, numPointsToUse - 1)))
243131
243146
  numPointsToUse--;
243132
243147
  // strip trailing duplicates
243133
243148
  while (numPointsToUse > 2 && _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.isSmallMetricDistance(points.distanceIndexIndex(numPointsToUse - 2, numPointsToUse - 1)))
243134
243149
  numPointsToUse--;
243135
- // ignore triangles for which the height is less than smallMetricDistance times length
243136
- // sum of edge lengths is twice the perimeter. If it is flat that's twice the largest base dimension.
243150
+ // ignore triangles for which the height is less than smallMetricDistance times length.
243151
+ // sum of edge lengths is twice the perimeter. If it is flat that's twice the largest base dimension.
243137
243152
  // cross product magnitude is twice the area.
243138
243153
  if (numPointsToUse === 3) {
243139
243154
  const cross = points.crossProductIndexIndexIndex(0, 1, 2);
@@ -243159,19 +243174,20 @@ class PolyfaceBuilder extends _geometry3d_GeometryHandler__WEBPACK_IMPORTED_MODU
243159
243174
  this._polyface.terminateFacet();
243160
243175
  }
243161
243176
  }
243162
- /** Add a polygon to the evolving facets.
243163
- * * add points to the polyface
243164
- * * compute each point index as the point is added
243165
- * * all data arrays are parallel to the point array
243166
- * * point indices are added in reverse order if indicated by the builder state
243167
- * @param points array of vertices in order around the facet
243168
- * @param normals optional array of normals, one per vertex
243169
- * @param params optional array of uv-parameters, one per vertex
243170
- * @param colors optional array of colors, one per vertex
243171
- * @param edgeVisible optional array of flags, one per vertex, true iff edge starting at corresponding vertex is visible
243177
+ /**
243178
+ * Add a polygon to the evolving facets.
243179
+ * * Add points to the polyface.
243180
+ * * Compute each point index as the point is added.
243181
+ * * All data arrays are parallel to the point array.
243182
+ * * Point indices are added in reverse order if indicated by the builder state.
243183
+ * @param points array of vertices in order around the facet.
243184
+ * @param normals (optional) array of normals, one per vertex.
243185
+ * @param params (optional) array of uv-parameters, one per vertex.
243186
+ * @param colors (optional) array of colors, one per vertex.
243187
+ * @param edgeVisible (optional) array of flags, one per vertex, true iff edge starting at corresponding vertex is visible.
243172
243188
  */
243173
243189
  addFacetFromGrowableArrays(points, normals, params, colors, edgeVisible) {
243174
- // don't use trailing points that match start point.
243190
+ // don't use trailing points that match start point
243175
243191
  let numPointsToUse = points.length;
243176
243192
  while (numPointsToUse > 1 && _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.isSmallMetricDistance(points.distanceIndexIndex(0, numPointsToUse - 1)))
243177
243193
  numPointsToUse--;
@@ -243222,13 +243238,14 @@ class PolyfaceBuilder extends _geometry3d_GeometryHandler__WEBPACK_IMPORTED_MODU
243222
243238
  }
243223
243239
  this._polyface.terminateFacet();
243224
243240
  }
243225
- /** Add the current visitor facet to the evolving polyface.
243226
- * * indices are added (in reverse order if indicated by the builder state)
243241
+ /**
243242
+ * Add the current visitor facet to the evolving polyface.
243243
+ * * Indices are added (in reverse order if indicated by the builder state).
243227
243244
  */
243228
243245
  addFacetFromVisitor(visitor) {
243229
243246
  this.addFacetFromGrowableArrays(visitor.point, visitor.normal, visitor.param, visitor.color, visitor.edgeVisible);
243230
243247
  }
243231
- /** Add all visitor facets to the evolving polyface (in reverse order if indicated by the builder state) */
243248
+ /** Add all visitor facets to the evolving polyface (in reverse order if indicated by the builder state). */
243232
243249
  addFacetsFromVisitor(visitor) {
243233
243250
  visitor.reset();
243234
243251
  for (; visitor.moveToNextFacet();)
@@ -243237,8 +243254,8 @@ class PolyfaceBuilder extends _geometry3d_GeometryHandler__WEBPACK_IMPORTED_MODU
243237
243254
  /**
243238
243255
  * Add the subset of visitor data indexed by the indices.
243239
243256
  * * Ideally, the subset represents a sub-facet of the visited facet.
243240
- * @param visitor data for the currently visited facet
243241
- * @param indices local indices into the visitor data arrays
243257
+ * @param visitor data for the currently visited facet.
243258
+ * @param indices local indices into the visitor data arrays.
243242
243259
  * @returns whether the data was added successfully. Encountering an invalid index returns false.
243243
243260
  */
243244
243261
  addFacetFromIndexedVisitor(visitor, indices) {
@@ -243266,49 +243283,71 @@ class PolyfaceBuilder extends _geometry3d_GeometryHandler__WEBPACK_IMPORTED_MODU
243266
243283
  this.addFacetFromGrowableArrays(xyz, normal, param, color, visible);
243267
243284
  return true;
243268
243285
  }
243269
- /** Add a polyface, with optional reverse and transform. */
243286
+ /** Add a polyface with optional reverse and transform. */
243270
243287
  addIndexedPolyface(source, reversed = false, transform) {
243271
243288
  this._polyface.addIndexedPolyface(source, reversed, transform);
243272
243289
  }
243273
243290
  /**
243274
243291
  * Produce a new FacetFaceData for all terminated facets since construction of the previous face.
243275
- * Each facet number/index is mapped to the FacetFaceData through the faceToFaceData array.
243276
- * Returns true if successful, and false otherwise.
243292
+ * * Each facet number/index is mapped to the FacetFaceData through the faceToFaceData array.
243293
+ * @returns true if successful, and false otherwise.
243277
243294
  */
243278
243295
  endFace() {
243279
243296
  return this._polyface.setNewFaceData();
243280
243297
  }
243281
- /** Double dispatch handler for Cone */
243282
- handleCone(g) { return this.addCone(g); }
243283
- /** Double dispatch handler for TorusPipe */
243284
- handleTorusPipe(g) { return this.addTorusPipe(g); }
243285
- /** Double dispatch handler for Sphere */
243286
- handleSphere(g) { return this.addSphere(g); }
243287
- /** Double dispatch handler for Box */
243288
- handleBox(g) { return this.addBox(g); }
243289
- /** Double dispatch handler for LinearSweep */
243290
- handleLinearSweep(g) { return this.addLinearSweep(g); }
243291
- /** Double dispatch handler for RotationalSweep */
243292
- handleRotationalSweep(g) { return this.addRotationalSweep(g); }
243293
- /** Double dispatch handler for RuledSweep */
243294
- handleRuledSweep(g) { return this.addRuledSweep(g); }
243295
- /** Double dispatch handler for Loop */
243296
- handleLoop(g) { return this.addTriangulatedRegion(g); }
243297
- /** Double dispatch handler for ParityRegion */
243298
- handleParityRegion(g) { return this.addTriangulatedRegion(g); }
243299
- /** Double dispatch handler for UnionRegion */
243300
- handleUnionRegion(g) { return this.addTriangulatedRegion(g); }
243301
- /** add facets for a GeometryQuery object. This is double dispatch through `dispatchToGeometryHandler(this)` */
243302
- addGeometryQuery(g) { g.dispatchToGeometryHandler(this); }
243298
+ /** Double dispatch handler for Cone. */
243299
+ handleCone(g) {
243300
+ return this.addCone(g);
243301
+ }
243302
+ /** Double dispatch handler for TorusPipe. */
243303
+ handleTorusPipe(g) {
243304
+ return this.addTorusPipe(g);
243305
+ }
243306
+ /** Double dispatch handler for Sphere. */
243307
+ handleSphere(g) {
243308
+ return this.addSphere(g);
243309
+ }
243310
+ /** Double dispatch handler for Box. */
243311
+ handleBox(g) {
243312
+ return this.addBox(g);
243313
+ }
243314
+ /** Double dispatch handler for LinearSweep. */
243315
+ handleLinearSweep(g) {
243316
+ return this.addLinearSweep(g);
243317
+ }
243318
+ /** Double dispatch handler for RotationalSweep. */
243319
+ handleRotationalSweep(g) {
243320
+ return this.addRotationalSweep(g);
243321
+ }
243322
+ /** Double dispatch handler for RuledSweep. */
243323
+ handleRuledSweep(g) {
243324
+ return this.addRuledSweep(g);
243325
+ }
243326
+ /** Double dispatch handler for Loop. */
243327
+ handleLoop(g) {
243328
+ return this.addTriangulatedRegion(g);
243329
+ }
243330
+ /** Double dispatch handler for ParityRegion. */
243331
+ handleParityRegion(g) {
243332
+ return this.addTriangulatedRegion(g);
243333
+ }
243334
+ /** Double dispatch handler for UnionRegion. */
243335
+ handleUnionRegion(g) {
243336
+ return this.addTriangulatedRegion(g);
243337
+ }
243338
+ /** Add facets for a GeometryQuery object. This is double dispatch through `dispatchToGeometryHandler(this)` */
243339
+ addGeometryQuery(g) {
243340
+ g.dispatchToGeometryHandler(this);
243341
+ }
243303
243342
  /**
243304
243343
  * Add a graph to the builder.
243305
- * * Visit one node per face
243306
- * * If `acceptFaceFunction(node)` returns true, pass face coordinates to the builder
243344
+ * * Visit one node per face.
243345
+ * * If `acceptFaceFunction(node)` returns true, pass face coordinates to the builder.
243307
243346
  * * Accepted face edge visibility is determined by `isEdgeVisibleFunction`.
243308
243347
  * * Rely on the builder's compress step to find common vertex coordinates.
243309
- * @param graph faces to add as facets
243310
- * @param acceptFaceFunction optional test for whether to add a given face. Default: ignore exterior faces
243311
- * @param isEdgeVisibleFunction optional test for whether to hide an edge. Default: hide interior edges
243348
+ * @param graph faces to add as facets.
243349
+ * @param acceptFaceFunction optional test for whether to add a given face. Default: ignore exterior faces.
243350
+ * @param isEdgeVisibleFunction optional test for whether to hide an edge. Default: hide interior edges.
243312
243351
  * @internal
243313
243352
  */
243314
243353
  addGraph(graph, acceptFaceFunction = (node) => _topology_Graph__WEBPACK_IMPORTED_MODULE_23__.HalfEdge.testNodeMaskNotExterior(node), isEdgeVisibleFunction = (node) => _topology_Graph__WEBPACK_IMPORTED_MODULE_23__.HalfEdge.testMateMaskExterior(node)) {
@@ -243339,12 +243378,12 @@ class PolyfaceBuilder extends _geometry3d_GeometryHandler__WEBPACK_IMPORTED_MODU
243339
243378
  });
243340
243379
  }
243341
243380
  /**
243342
- *
243343
- * * For each node in `faces`
243344
- * * add all of its vertices to the polyface
243345
- * * add point indices to form a new facet.
243346
- * * (Note: no normal or param indices are added)
243347
- * * terminate the facet
243381
+ * Add a graph's faces to the builder.
243382
+ * * For each node in `faces`:
243383
+ * * Add all of its vertices to the polyface.
243384
+ * * Add point indices to form a new facet.
243385
+ * * (note: no normal or param indices are added)
243386
+ * * Terminate the facet.
243348
243387
  * @internal
243349
243388
  */
243350
243389
  addGraphFaces(faces) {
@@ -243362,9 +243401,10 @@ class PolyfaceBuilder extends _geometry3d_GeometryHandler__WEBPACK_IMPORTED_MODU
243362
243401
  /**
243363
243402
  * Create a polyface containing the faces of a HalfEdgeGraph, with test functions to filter faces and hide edges.
243364
243403
  * * This is a static wrapper of [[addGraph]].
243365
- * @param graph faces to add as facets
243366
- * @param acceptFaceFunction optional test for whether to add a given face. Default: ignore exterior faces
243367
- * @param isEdgeVisibleFunction optional test for whether to hide an edge. Default: hide interior edges
243404
+ * @param graph faces to add as facets.
243405
+ * @param options (optional) options for the polyface.
243406
+ * @param acceptFaceFunction optional test for whether to add a given face. Default: ignore exterior faces.
243407
+ * @param isEdgeVisibleFunction optional test for whether to hide an edge. Default: hide interior edges.
243368
243408
  * @internal
243369
243409
  */
243370
243410
  static graphToPolyface(graph, options, acceptFaceFunction = (node) => _topology_Graph__WEBPACK_IMPORTED_MODULE_23__.HalfEdge.testNodeMaskNotExterior(node), isEdgeVisibleFunction = (node) => _topology_Graph__WEBPACK_IMPORTED_MODULE_23__.HalfEdge.testMateMaskExterior(node)) {
@@ -243373,7 +243413,8 @@ class PolyfaceBuilder extends _geometry3d_GeometryHandler__WEBPACK_IMPORTED_MODU
243373
243413
  builder.endFace();
243374
243414
  return builder.claimPolyface();
243375
243415
  }
243376
- /** Create a polyface containing the faces of a HalfEdgeGraph that are specified by the HalfEdge array.
243416
+ /**
243417
+ * Create a polyface containing the faces of a HalfEdgeGraph that are specified by the HalfEdge array.
243377
243418
  * @internal
243378
243419
  */
243379
243420
  static graphFacesToPolyface(faces) {
@@ -243382,7 +243423,8 @@ class PolyfaceBuilder extends _geometry3d_GeometryHandler__WEBPACK_IMPORTED_MODU
243382
243423
  builder.endFace();
243383
243424
  return builder.claimPolyface();
243384
243425
  }
243385
- /** Create a polyface containing triangles in a (space) polygon.
243426
+ /**
243427
+ * Create a polyface containing triangles in a (space) polygon.
243386
243428
  * * The polyface contains only coordinate data (no params or normals).
243387
243429
  */
243388
243430
  static polygonToTriangulatedPolyface(points, localToWorld) {
@@ -243403,13 +243445,13 @@ class PolyfaceBuilder extends _geometry3d_GeometryHandler__WEBPACK_IMPORTED_MODU
243403
243445
  return undefined;
243404
243446
  }
243405
243447
  /**
243406
- * Given arrays of coordinates for multiple facets.
243407
- * * pointArray[i] is an array of 3 or 4 points
243408
- * * paramArray[i] is an array of matching number of params
243448
+ * Add facets to the builder given arrays of coordinates for multiple facets.
243449
+ * * pointArray[i] is an array of 3 or 4 points.
243450
+ * * paramArray[i] is an array of matching number of params.
243409
243451
  * * normalArray[i] is an array of matching number of normals.
243410
- * @param pointArray array of arrays of point coordinates
243411
- * @param paramArray array of arrays of uv parameters
243412
- * @param normalArray array of arrays of normals
243452
+ * @param pointArray array of arrays of point coordinates.
243453
+ * @param paramArray (optional) array of arrays of uv parameters.
243454
+ * @param normalArray (optional) array of arrays of normals.
243413
243455
  * @param endFace if true, call this.endFace after adding all the facets.
243414
243456
  */
243415
243457
  addCoordinateFacets(pointArray, paramArray, normalArray, endFace = false) {
@@ -243425,15 +243467,16 @@ class PolyfaceBuilder extends _geometry3d_GeometryHandler__WEBPACK_IMPORTED_MODU
243425
243467
  this.endFace();
243426
243468
  }
243427
243469
  /**
243470
+ * Add facets from the parametric surface.
243428
243471
  * * Evaluate `(numU + 1) * (numV + 1)` grid points (in 0..1 in both u and v) on a surface.
243429
243472
  * * Add the facets for `numU * numV` quads.
243430
243473
  * * uv params are the 0..1 fractions.
243431
- * * normals are cross products of u and v direction partial derivatives.
243432
- * @param surface
243433
- * @param numU number of intervals (edges) in the u direction. (Number of points is `numU + 1`)
243434
- * @param numV number of intervals (edges) in the v direction. (Number of points is `numV + 1`)
243435
- * @param uMap optional mapping from u fraction to parameter space (such as texture)
243436
- * @param vMap optional mapping from v fraction to parameter space (such as texture)
243474
+ * * Normals are cross products of u and v direction partial derivatives.
243475
+ * @param surface UV surface to evaluate.
243476
+ * @param numU number of intervals (edges) in the u direction (number of points is `numU + 1`).
243477
+ * @param numV number of intervals (edges) in the v direction (number of points is `numV + 1`).
243478
+ * @param uMap optional mapping from u fraction to parameter space (such as texture).
243479
+ * @param vMap optional mapping from v fraction to parameter space (such as texture).
243437
243480
  */
243438
243481
  addUVGridBody(surface, numU, numV, uMap, vMap) {
243439
243482
  let xyzIndex0 = new _geometry3d_GrowableFloat64Array__WEBPACK_IMPORTED_MODULE_27__.GrowableFloat64Array(numU);
@@ -243462,7 +243505,7 @@ class PolyfaceBuilder extends _geometry3d_GeometryHandler__WEBPACK_IMPORTED_MODU
243462
243505
  const dv = 1.0 / numV;
243463
243506
  const plane = _geometry3d_Plane3dByOriginAndVectors__WEBPACK_IMPORTED_MODULE_28__.Plane3dByOriginAndVectors.createXYPlane();
243464
243507
  for (let v = 0; v <= numV; v++) {
243465
- // evaluate new points ....
243508
+ // evaluate new points
243466
243509
  xyzIndex1.clear();
243467
243510
  if (needNormals)
243468
243511
  normalIndex1.clear();
@@ -243512,23 +243555,26 @@ class PolyfaceBuilder extends _geometry3d_GeometryHandler__WEBPACK_IMPORTED_MODU
243512
243555
  indexSwap = xyzIndex1;
243513
243556
  xyzIndex1 = xyzIndex0;
243514
243557
  xyzIndex0 = indexSwap;
243515
- if (needParams) {
243558
+ if (needParams)
243516
243559
  indexSwap = paramIndex1;
243517
- paramIndex1 = paramIndex0;
243518
- paramIndex0 = indexSwap;
243519
- }
243520
- if (needNormals) {
243560
+ paramIndex1 = paramIndex0;
243561
+ paramIndex0 = indexSwap;
243562
+ if (needNormals)
243521
243563
  indexSwap = normalIndex1;
243522
- normalIndex1 = normalIndex0;
243523
- normalIndex0 = indexSwap;
243524
- }
243564
+ normalIndex1 = normalIndex0;
243565
+ normalIndex0 = indexSwap;
243525
243566
  }
243526
243567
  xyzIndex0.clear();
243527
243568
  xyzIndex1.clear();
243528
243569
  }
243529
243570
  /**
243530
- * Triangulate the points as viewed in xy.
243531
- * @param points
243571
+ * Create a polyface from a triangulation of the points.
243572
+ * * The triangulation is computed as seen in the top view: z-coordinates are ignored.
243573
+ * @param points an array of points.
243574
+ * @param options (optional) stroke options. Currently only two options are supported. If `options.needNormals` is
243575
+ * true, all facets are assigned the single normal 001. If `options.needParams` is true, all facet vertices are
243576
+ * assigned uv-parameters equal to their xy-coordinates. These options are rarely useful.
243577
+ * @returns triangulated polyface or `undefined` if triangulation was not possible.
243532
243578
  */
243533
243579
  static pointsToTriangulatedPolyface(points, options) {
243534
243580
  const graph = _topology_Triangulation__WEBPACK_IMPORTED_MODULE_26__.Triangulator.createTriangulatedGraphFromPoints(points);
@@ -243536,21 +243582,20 @@ class PolyfaceBuilder extends _geometry3d_GeometryHandler__WEBPACK_IMPORTED_MODU
243536
243582
  return PolyfaceBuilder.graphToPolyface(graph, options);
243537
243583
  return undefined;
243538
243584
  }
243539
- /** Create (and add to the builder) triangles that bridge the gap between two linestrings.
243540
- * * Each triangle will have 1 vertex on one of the linestrings and 2 on the other
243585
+ /**
243586
+ * Add triangular facets between two linestrings.
243587
+ * * Each triangle will have 1 vertex on one of the linestrings and 2 on the other.
243541
243588
  * * Choice of triangles is heuristic, hence does not have a unique solution.
243542
- * * Logic to choice among the various possible triangle orders prefers
243543
- * * Make near-coplanar facets
243544
- * * make facets with good aspect ratio.
243589
+ * * Logic for choosing among the various possible triangles prefers:
243590
+ * * Make near-coplanar facets.
243591
+ * * Make facets with good aspect ratio.
243545
243592
  * * This is exercised with a limited number of lookahead points, i.e. greedy to make first-available decision.
243546
243593
  * @param pointsA points of first linestring.
243547
243594
  * @param pointsB points of second linestring.
243548
243595
  */
243549
243596
  addGreedyTriangulationBetweenLineStrings(pointsA, pointsB) {
243550
243597
  const context = _GreedyTriangulationBetweenLineStrings__WEBPACK_IMPORTED_MODULE_29__.GreedyTriangulationBetweenLineStrings.createContext();
243551
- context.emitTriangles(resolveToIndexedXYZCollectionOrCarrier(pointsA), resolveToIndexedXYZCollectionOrCarrier(pointsB), (triangle) => {
243552
- this.addTriangleFacet(triangle.points);
243553
- });
243598
+ context.emitTriangles(resolveToIndexedXYZCollectionOrCarrier(pointsA), resolveToIndexedXYZCollectionOrCarrier(pointsB), (triangle) => { this.addTriangleFacet(triangle.points); });
243554
243599
  }
243555
243600
  addMiteredPipesFromPoints(centerline, sectionData, numFacetAround = 12) {
243556
243601
  const sections = _curve_CurveFactory__WEBPACK_IMPORTED_MODULE_30__.CurveFactory.createMiteredPipeSections(centerline, sectionData);
@@ -243575,13 +243620,14 @@ class PolyfaceBuilder extends _geometry3d_GeometryHandler__WEBPACK_IMPORTED_MODU
243575
243620
  }
243576
243621
  }
243577
243622
  /**
243578
- * * Create (and add to the builder) quad facets for a mitered pipe that follows a centerline curve.
243579
- * * Circular or elliptical pipe cross sections can be specified by supplying either a radius, a pair of semi-axis lengths, or a full Arc3d.
243623
+ * Add quad facets along a mitered pipe that follows a centerline curve.
243624
+ * * Circular or elliptical pipe cross sections can be specified by supplying either a radius, a pair of semi-axis
243625
+ * lengths, or a full Arc3d:
243580
243626
  * * For semi-axis length input, x corresponds to an ellipse local axis nominally situated parallel to the xy-plane.
243581
- * * The center of Arc3d input is translated to the centerline start point to act as initial cross section.
243627
+ * * For Arc3d input, the center is translated to the centerline start point to act as initial cross section.
243582
243628
  * @param centerline centerline of pipe. If curved, it will be stroked using the builder's StrokeOptions.
243583
- * @param sectionData circle radius, ellipse semi-axis lengths, or full Arc3d
243584
- * @param numFacetAround how many equal parameter-space chords around each section
243629
+ * @param sectionData circle radius, ellipse semi-axis lengths, or full Arc3d.
243630
+ * @param numFacetAround how many equal parameter-space chords around each section.
243585
243631
  */
243586
243632
  addMiteredPipes(centerline, sectionData, numFacetAround = 12) {
243587
243633
  if (Array.isArray(centerline)) {
@@ -243602,7 +243648,7 @@ class PolyfaceBuilder extends _geometry3d_GeometryHandler__WEBPACK_IMPORTED_MODU
243602
243648
  this.addMiteredPipesFromPoints(linestring.packedPoints, sectionData, numFacetAround);
243603
243649
  }
243604
243650
  }
243605
- /** Return the polyface index array indices corresponding to the given edge, or undefined if error. */
243651
+ /** Return the polyface index array indices corresponding to the given edge, or `undefined` if error. */
243606
243652
  getEdgeIndices(edge) {
243607
243653
  let indexA = -1;
243608
243654
  let indexB = -1;
@@ -243614,8 +243660,10 @@ class PolyfaceBuilder extends _geometry3d_GeometryHandler__WEBPACK_IMPORTED_MODU
243614
243660
  }
243615
243661
  return (indexA < 0 || indexB < 0) ? undefined : { edgeIndexA: indexA, edgeIndexB: indexB };
243616
243662
  }
243617
- /** Create a side face between base and swept facets along a base boundary edge.
243618
- * * Assumes numBaseFacets base facets were added to this builder, immediately followed by the same number of swept facets with opposite orientation (first index not preserved).
243663
+ /**
243664
+ * Create a side face between base and swept facets along a base boundary edge.
243665
+ * * Assumes numBaseFacets base facets were added to this builder, immediately followed by the same number of swept
243666
+ * facets with opposite orientation (first index not preserved).
243619
243667
  */
243620
243668
  addSweptFace(baseBoundaryEdge, numBaseFacets) {
243621
243669
  const edge = this.getEdgeIndices(baseBoundaryEdge);
@@ -243634,7 +243682,12 @@ class PolyfaceBuilder extends _geometry3d_GeometryHandler__WEBPACK_IMPORTED_MODU
243634
243682
  const edgeIndexOffsetInFaceLoopB = edge.edgeIndexB - baseFacetIndexStart;
243635
243683
  const sweptEdgeIndexOffsetInFaceLoopA = (numBaseFacetEdges - 1) - edgeIndexOffsetInFaceLoopA;
243636
243684
  const sweptEdgeIndexOffsetInFaceLoopB = (numBaseFacetEdges - 1) - edgeIndexOffsetInFaceLoopB;
243637
- const indices = [edge.edgeIndexB, edge.edgeIndexA, sweptFacetIndexStart + sweptEdgeIndexOffsetInFaceLoopA, sweptFacetIndexStart + sweptEdgeIndexOffsetInFaceLoopB];
243685
+ const indices = [
243686
+ edge.edgeIndexB,
243687
+ edge.edgeIndexA,
243688
+ sweptFacetIndexStart + sweptEdgeIndexOffsetInFaceLoopA,
243689
+ sweptFacetIndexStart + sweptEdgeIndexOffsetInFaceLoopB,
243690
+ ];
243638
243691
  const vertices = [];
243639
243692
  let colors; // try to re-use colors; missing normals and params will be computed if needed
243640
243693
  if (undefined !== this.options.needColors && undefined !== this._polyface.data.color && undefined !== this._polyface.data.colorIndex)
@@ -243655,11 +243708,13 @@ class PolyfaceBuilder extends _geometry3d_GeometryHandler__WEBPACK_IMPORTED_MODU
243655
243708
  return true;
243656
243709
  }
243657
243710
  /**
243658
- * Add facets from the source polyface, from its translation along the vector, and from its swept boundary edges, to form a polyface that encloses a volume.
243659
- * @param source the surface mesh to sweep
243660
- * @param sweepVector the direction and length to sweep the surface mesh
243661
- * @param triangulateSides whether to triangulate side facets, or leave as quads
243662
- * @returns whether the added facets comprise a simple sweep. If false, the resulting mesh may have self-intersections, be non-manifold, have inconsistently oriented facets, etc.
243711
+ * Add facets from the source polyface, from its translation along the vector, and from its swept boundary edges,
243712
+ * to form a polyface that encloses a volume.
243713
+ * @param source the surface mesh to sweep.
243714
+ * @param sweepVector the direction and length to sweep the surface mesh.
243715
+ * @param triangulateSides whether to triangulate side facets, or leave as quads.
243716
+ * @returns whether the added facets comprise a simple sweep. If false, the resulting mesh may have self-intersections,
243717
+ * be non-manifold, have inconsistently oriented facets, etc.
243663
243718
  */
243664
243719
  addSweptIndexedPolyface(source, sweepVector, triangulateSides = false) {
243665
243720
  let isSimpleSweep = true;
@@ -291225,7 +291280,7 @@ class TestContext {
291225
291280
  this.initializeRpcInterfaces({ title: this.settings.Backend.name, version: this.settings.Backend.version });
291226
291281
  const iModelClient = new imodels_client_management_1.IModelsClient({ api: { baseUrl: `https://${process.env.IMJS_URL_PREFIX ?? ""}api.bentley.com/imodels` } });
291227
291282
  await core_frontend_1.NoRenderApp.startup({
291228
- applicationVersion: "4.8.0-dev.20",
291283
+ applicationVersion: "4.8.0-dev.23",
291229
291284
  applicationId: this.settings.gprid,
291230
291285
  authorizationClient: new frontend_1.TestFrontendAuthorizationClient(this.adminUserAccessToken),
291231
291286
  hubAccess: new imodels_access_frontend_1.FrontendIModelsAccess(iModelClient),
@@ -294166,6 +294221,7 @@ __webpack_require__.r(__webpack_exports__);
294166
294221
 
294167
294222
 
294168
294223
 
294224
+ const NESTED_CONTENT_DESCRIPTION_SYMBOL = Symbol();
294169
294225
  /**
294170
294226
  * An utility for traversing field hierarchy. Stops traversal as soon as `cb` returns `false`.
294171
294227
  * @public
@@ -294335,7 +294391,8 @@ function traverseContentItemArrayFieldValue(visitor, fieldHierarchy, mergedField
294335
294391
  }
294336
294392
  function traverseContentItemStructFieldValue(visitor, fieldHierarchy, mergedFieldNames, valueType, parentFieldName, rawValues, displayValues) {
294337
294393
  (0,_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.assert)(valueType.valueFormat === _TypeDescription__WEBPACK_IMPORTED_MODULE_4__.PropertyValueFormat.Struct);
294338
- if (!visitor.startStruct({ hierarchy: fieldHierarchy, valueType, parentFieldName, rawValues, displayValues })) {
294394
+ const description = rawValues[NESTED_CONTENT_DESCRIPTION_SYMBOL];
294395
+ if (!visitor.startStruct({ hierarchy: fieldHierarchy, valueType, parentFieldName, rawValues, displayValues, description })) {
294339
294396
  return;
294340
294397
  }
294341
294398
  try {
@@ -294570,6 +294627,7 @@ function convertNestedContentValuesToStructArrayValuesRecursive(fieldHierarchy,
294570
294627
  const values = { ...ncv.values };
294571
294628
  const displayValues = { ...ncv.displayValues };
294572
294629
  const mergedFieldNames = [...ncv.mergedFieldNames];
294630
+ values[NESTED_CONTENT_DESCRIPTION_SYMBOL] = ncv.label;
294573
294631
  fieldHierarchy.childFields.forEach((childFieldHierarchy) => {
294574
294632
  const childFieldName = childFieldHierarchy.field.name;
294575
294633
  if (-1 !== ncv.mergedFieldNames.indexOf(childFieldName)) {
@@ -299462,13 +299520,13 @@ class FavoritePropertiesManager {
299462
299520
  if (missingClasses.size === 0) {
299463
299521
  return baseClasses;
299464
299522
  }
299465
- const query = `
299466
- SELECT (derivedSchema.Name || ':' || derivedClass.Name) AS "ClassFullName", (baseSchema.Name || ':' || baseClass.Name) AS "BaseClassFullName"
299467
- FROM ECDbMeta.ClassHasAllBaseClasses baseClassRels
299468
- INNER JOIN ECDbMeta.ECClassDef derivedClass ON derivedClass.ECInstanceId = baseClassRels.SourceECInstanceId
299469
- INNER JOIN ECDbMeta.ECSchemaDef derivedSchema ON derivedSchema.ECInstanceId = derivedClass.Schema.Id
299470
- INNER JOIN ECDbMeta.ECClassDef baseClass ON baseClass.ECInstanceId = baseClassRels.TargetECInstanceId
299471
- INNER JOIN ECDbMeta.ECSchemaDef baseSchema ON baseSchema.ECInstanceId = baseClass.Schema.Id
299523
+ const query = `
299524
+ SELECT (derivedSchema.Name || ':' || derivedClass.Name) AS "ClassFullName", (baseSchema.Name || ':' || baseClass.Name) AS "BaseClassFullName"
299525
+ FROM ECDbMeta.ClassHasAllBaseClasses baseClassRels
299526
+ INNER JOIN ECDbMeta.ECClassDef derivedClass ON derivedClass.ECInstanceId = baseClassRels.SourceECInstanceId
299527
+ INNER JOIN ECDbMeta.ECSchemaDef derivedSchema ON derivedSchema.ECInstanceId = derivedClass.Schema.Id
299528
+ INNER JOIN ECDbMeta.ECClassDef baseClass ON baseClass.ECInstanceId = baseClassRels.TargetECInstanceId
299529
+ INNER JOIN ECDbMeta.ECSchemaDef baseSchema ON baseSchema.ECInstanceId = baseClass.Schema.Id
299472
299530
  WHERE (derivedSchema.Name || ':' || derivedClass.Name) IN (${[...missingClasses].map((className) => `'${className}'`).join(",")})`;
299473
299531
  const reader = imodel.createQueryReader(query, undefined, { rowFormat: _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.QueryRowFormat.UseJsPropertyNames });
299474
299532
  while (await reader.step()) {
@@ -315218,7 +315276,7 @@ function __disposeResources(env) {
315218
315276
  /***/ ((module) => {
315219
315277
 
315220
315278
  "use strict";
315221
- module.exports = JSON.parse('{"name":"@itwin/core-frontend","version":"4.8.0-dev.20","description":"iTwin.js frontend components","main":"lib/cjs/core-frontend.js","module":"lib/esm/core-frontend.js","typings":"lib/cjs/core-frontend","license":"MIT","scripts":{"build":"npm run -s copy:public && npm run -s build:cjs && npm run -s build:esm && npm run -s webpackWorkers && npm run -s copy:workers","build:cjs":"npm run -s copy:js:cjs && tsc 1>&2 --outDir lib/cjs","build:esm":"npm run -s copy:js:esm && tsc 1>&2 --module ES2020 --outDir lib/esm","clean":"rimraf lib .rush/temp/package-deps*.json","copy:public":"cpx \\"./src/public/**/*\\" ./lib/public","copy:js:cjs":"cpx \\"./src/**/*.js\\" ./lib/cjs","copy:js:esm":"cpx \\"./src/**/*.js\\" ./lib/esm","copy:workers":"cpx \\"./lib/workers/webpack/parse-imdl-worker.js\\" ./lib/public/scripts","docs":"betools docs --includes=../../generated-docs/extract --json=../../generated-docs/core/core-frontend/file.json --tsIndexFile=./core-frontend.ts --onlyJson --excludes=webgl/**/*,**/map/*.d.ts,**/tile/*.d.ts,**/*-css.ts","extract-api":"betools extract-api --entry=core-frontend && npm run extract-extension-api","extract-extension-api":"eslint --no-inline-config -c extraction.eslint.config.js \\"./src/**/*.ts\\" 1>&2","lint":"eslint -f visualstudio \\"./src/**/*.ts\\" 1>&2","lint-fix":"eslint --fix -f visualstudio \\"./src/**/*.ts\\" 1>&2","pseudolocalize":"betools pseudolocalize --englishDir ./src/public/locales/en --out ./public/locales/en-PSEUDO","test":"npm run -s webpackTests && certa -r chrome","cover":"npm -s test","test:debug":"certa -r chrome --debug","webpackTests":"webpack --config ./src/test/utils/webpack.config.js 1>&2 && npm run -s webpackTestWorker","webpackTestWorker":"webpack --config ./src/test/worker/webpack.config.js 1>&2 && cpx \\"./lib/test/test-worker.js\\" ./lib/test","webpackWorkers":"webpack --config ./src/workers/ImdlParser/webpack.config.js 1>&2"},"repository":{"type":"git","url":"https://github.com/iTwin/itwinjs-core.git","directory":"core/frontend"},"keywords":["Bentley","BIM","iModel","digital-twin","iTwin"],"author":{"name":"Bentley Systems, Inc.","url":"http://www.bentley.com"},"peerDependencies":{"@itwin/appui-abstract":"workspace:^4.8.0-dev.20","@itwin/core-bentley":"workspace:^4.8.0-dev.20","@itwin/core-common":"workspace:^4.8.0-dev.20","@itwin/core-geometry":"workspace:^4.8.0-dev.20","@itwin/core-orbitgt":"workspace:^4.8.0-dev.20","@itwin/core-quantity":"workspace:^4.8.0-dev.20"},"//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.2","@types/chai":"4.3.1","@types/chai-as-promised":"^7","@types/mocha":"^10.0.6","@types/sinon":"^17.0.2","babel-loader":"~8.2.5","babel-plugin-istanbul":"~6.1.1","chai":"^4.3.10","chai-as-promised":"^7.1.1","cpx2":"^3.0.0","eslint":"^8.56.0","glob":"^10.3.12","mocha":"^10.2.0","nyc":"^15.1.0","rimraf":"^3.0.2","sinon":"^17.0.1","source-map-loader":"^4.0.0","typescript":"~5.3.3","typemoq":"^2.1.0","webpack":"^5.76.0"},"//dependencies":["NOTE: these dependencies should be only for things that DO NOT APPEAR IN THE API","NOTE: core-frontend should remain UI technology agnostic, so no react/angular dependencies are allowed"],"dependencies":{"@itwin/cloud-agnostic-core":"^2.1.0","@itwin/object-storage-core":"^2.2.2","@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","meshoptimizer":"~0.20.0","wms-capabilities":"0.4.0"},"nyc":{"extends":"./node_modules/@itwin/build-tools/.nycrc"}}');
315279
+ module.exports = JSON.parse('{"name":"@itwin/core-frontend","version":"4.8.0-dev.23","description":"iTwin.js frontend components","main":"lib/cjs/core-frontend.js","module":"lib/esm/core-frontend.js","typings":"lib/cjs/core-frontend","license":"MIT","scripts":{"build":"npm run -s copy:public && npm run -s build:cjs && npm run -s build:esm && npm run -s webpackWorkers && npm run -s copy:workers","build:cjs":"npm run -s copy:js:cjs && tsc 1>&2 --outDir lib/cjs","build:esm":"npm run -s copy:js:esm && tsc 1>&2 --module ES2020 --outDir lib/esm","clean":"rimraf lib .rush/temp/package-deps*.json","copy:public":"cpx \\"./src/public/**/*\\" ./lib/public","copy:js:cjs":"cpx \\"./src/**/*.js\\" ./lib/cjs","copy:js:esm":"cpx \\"./src/**/*.js\\" ./lib/esm","copy:workers":"cpx \\"./lib/workers/webpack/parse-imdl-worker.js\\" ./lib/public/scripts","docs":"betools docs --includes=../../generated-docs/extract --json=../../generated-docs/core/core-frontend/file.json --tsIndexFile=./core-frontend.ts --onlyJson --excludes=webgl/**/*,**/map/*.d.ts,**/tile/*.d.ts,**/*-css.ts","extract-api":"betools extract-api --entry=core-frontend && npm run extract-extension-api","extract-extension-api":"eslint --no-inline-config -c extraction.eslint.config.js \\"./src/**/*.ts\\" 1>&2","lint":"eslint -f visualstudio \\"./src/**/*.ts\\" 1>&2","lint-fix":"eslint --fix -f visualstudio \\"./src/**/*.ts\\" 1>&2","pseudolocalize":"betools pseudolocalize --englishDir ./src/public/locales/en --out ./public/locales/en-PSEUDO","test":"npm run -s webpackTests && certa -r chrome","cover":"npm -s test","test:debug":"certa -r chrome --debug","webpackTests":"webpack --config ./src/test/utils/webpack.config.js 1>&2 && npm run -s webpackTestWorker","webpackTestWorker":"webpack --config ./src/test/worker/webpack.config.js 1>&2 && cpx \\"./lib/test/test-worker.js\\" ./lib/test","webpackWorkers":"webpack --config ./src/workers/ImdlParser/webpack.config.js 1>&2"},"repository":{"type":"git","url":"https://github.com/iTwin/itwinjs-core.git","directory":"core/frontend"},"keywords":["Bentley","BIM","iModel","digital-twin","iTwin"],"author":{"name":"Bentley Systems, Inc.","url":"http://www.bentley.com"},"peerDependencies":{"@itwin/appui-abstract":"workspace:^4.8.0-dev.23","@itwin/core-bentley":"workspace:^4.8.0-dev.23","@itwin/core-common":"workspace:^4.8.0-dev.23","@itwin/core-geometry":"workspace:^4.8.0-dev.23","@itwin/core-orbitgt":"workspace:^4.8.0-dev.23","@itwin/core-quantity":"workspace:^4.8.0-dev.23"},"//devDependencies":["NOTE: All peerDependencies should also be listed as devDependencies since peerDependencies are not considered by npm install","NOTE: All tools used by scripts in this package must be listed as devDependencies"],"devDependencies":{"@itwin/appui-abstract":"workspace:*","@itwin/build-tools":"workspace:*","@itwin/core-bentley":"workspace:*","@itwin/core-common":"workspace:*","@itwin/core-geometry":"workspace:*","@itwin/core-orbitgt":"workspace:*","@itwin/core-quantity":"workspace:*","@itwin/certa":"workspace:*","@itwin/eslint-plugin":"^4.0.2","@types/chai":"4.3.1","@types/chai-as-promised":"^7","@types/mocha":"^10.0.6","@types/sinon":"^17.0.2","babel-loader":"~8.2.5","babel-plugin-istanbul":"~6.1.1","chai":"^4.3.10","chai-as-promised":"^7.1.1","cpx2":"^3.0.0","eslint":"^8.56.0","glob":"^10.3.12","mocha":"^10.2.0","nyc":"^15.1.0","rimraf":"^3.0.2","sinon":"^17.0.1","source-map-loader":"^4.0.0","typescript":"~5.3.3","typemoq":"^2.1.0","webpack":"^5.76.0"},"//dependencies":["NOTE: these dependencies should be only for things that DO NOT APPEAR IN THE API","NOTE: core-frontend should remain UI technology agnostic, so no react/angular dependencies are allowed"],"dependencies":{"@itwin/cloud-agnostic-core":"^2.1.0","@itwin/object-storage-core":"^2.2.2","@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","meshoptimizer":"~0.20.0","wms-capabilities":"0.4.0"},"nyc":{"extends":"./node_modules/@itwin/build-tools/.nycrc"}}');
315222
315280
 
315223
315281
  /***/ }),
315224
315282