@itwin/ecschema-rpcinterface-tests 4.8.0-dev.4 → 4.8.0-dev.5

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.
@@ -1 +1 @@
1
- {"version":3,"file":"_bea9.bundled-tests.js","mappings":";;;;;;;;AAAA","sources":["file:///ignored|D:\\vsts_a\\2\\s\\common\\temp\\node_modules\\.pnpm\\@loaders.gl+worker-utils@3.1.6\\node_modules\\@loaders.gl\\worker-utils\\dist\\esm\\lib\\library-utils|../node/require-utils.node"],"names":[],"sourceRoot":""}
1
+ {"version":3,"file":"_bea9.bundled-tests.js","mappings":";;;;;;;;AAAA","sources":["file:///ignored|D:\\vsts_a\\8\\s\\common\\temp\\node_modules\\.pnpm\\@loaders.gl+worker-utils@3.1.6\\node_modules\\@loaders.gl\\worker-utils\\dist\\esm\\lib\\library-utils|../node/require-utils.node"],"names":[],"sourceRoot":""}
@@ -33600,6 +33600,16 @@ class FeatureOverrides {
33600
33600
  getSubCategoryPriority(idLo, idHi) {
33601
33601
  return this._subCategoryPriorities.get(idLo, idHi) ?? 0;
33602
33602
  }
33603
+ /** Adds all fully transparent elements to the _neverDrawn set. This is used for BatchedModels planar masks.
33604
+ * @internal
33605
+ */
33606
+ addInvisibleElementOverridesToNeverDrawn() {
33607
+ this._elementOverrides.forEach((lo, hi) => {
33608
+ const app = this.getElementOverrides(lo, hi, 0);
33609
+ if (app?.isFullyTransparent)
33610
+ this._neverDrawn.add(lo, hi);
33611
+ });
33612
+ }
33603
33613
  /** Construct a new Overrides that overrides nothing.
33604
33614
  * @see [FeatureSymbology.Overrides]($frontend) to construct overrides based on a [ViewState]($frontend) or [Viewport]($frontend).
33605
33615
  */
@@ -38290,15 +38300,24 @@ var PlanarClipMaskMode;
38290
38300
  /** Mask based on priority. Different types of models have different default priorities as enumerated by [[PlanarClipMaskPriority]].
38291
38301
  * For example, background maps have the lowest priority, so they are masked by all other types, while design models have the highest priority and are therefore never masked.
38292
38302
  * The priority of a reality model can be overridden by [[PlanarClipMaskSettings.priority]]. This is useful to allow one reality model to mask another overlapping one.
38303
+ * Everything visible in the view creates the mask, so turning off models, categories, or elements (via fully transparent overrides) will make things not be in the mask.
38293
38304
  */
38294
38305
  PlanarClipMaskMode[PlanarClipMaskMode["Priority"] = 1] = "Priority";
38295
- /** Indicates that masks should be produced from the geometry in a set of [GeometricModel]($backend)s. */
38306
+ /** Indicates that masks should be produced from the geometry in a set of [GeometricModel]($backend)s, regardless of what model is on or off in the view.
38307
+ * However, things that are off from category settings or element feature overrides in the view will not be in the mask for these models.
38308
+ */
38296
38309
  PlanarClipMaskMode[PlanarClipMaskMode["Models"] = 2] = "Models";
38297
- /** Indicates that masks should be produced from geometry belonging to a set of subcategories. */
38310
+ /** Indicates that masks should be produced from geometry belonging to a set of subcategories.
38311
+ * View settings do not affect what is in the mask, unless [[PlanarClipMaskSettings.subCategoryOrElementIds]] is undefined, in which case it behaves like Models mode.
38312
+ */
38298
38313
  PlanarClipMaskMode[PlanarClipMaskMode["IncludeSubCategories"] = 3] = "IncludeSubCategories";
38299
- /** Indicates that masks should be produced from the geometry of a set of [GeometricElement]($backend)s. */
38314
+ /** Indicates that masks should be produced from the geometry of a set of [GeometricElement]($backend)s.
38315
+ * View settings do not affect what is in the mask, unless [[PlanarClipMaskSettings.subCategoryOrElementIds]] is undefined, in which case it behaves like Models mode.
38316
+ */
38300
38317
  PlanarClipMaskMode[PlanarClipMaskMode["IncludeElements"] = 4] = "IncludeElements";
38301
- /** Indicates that masks should be produced from the geometry of all [GeometricElement]($backend)s in a view, **except** for a specified set of excluded elements. */
38318
+ /** Indicates that masks should be produced from the geometry of all [GeometricElement]($backend)s in a view, **except** for a specified set of excluded elements.
38319
+ * View settings do not affect what is in the mask, unless [[PlanarClipMaskSettings.subCategoryOrElementIds]] is undefined, in which case it behaves like Models mode.
38320
+ */
38302
38321
  PlanarClipMaskMode[PlanarClipMaskMode["ExcludeElements"] = 5] = "ExcludeElements";
38303
38322
  })(PlanarClipMaskMode || (PlanarClipMaskMode = {}));
38304
38323
  /** The default priority values for a [[PlanarClipMaskSettings]], based on model type. Models with a lower priority are masked by models with a higher priority.
@@ -44446,7 +44465,8 @@ class TextAnnotation {
44446
44465
  /** Compute the transform that positions and orients this annotation relative to its anchor point, based on the [[textBlock]]'s computed bounding box.
44447
44466
  * The anchor point is computed as specified by this annotation's [[anchor]] setting. For example, if the text block is anchored
44448
44467
  * at the bottom left, then the transform will be relative to the bottom-left corner of `textBlockExtents`.
44449
- * The text block will be rotated around the fixed anchor point according to [[orientation]], then the anchor point will be translated by [[offset]].
44468
+ * The text block will be rotated around the fixed anchor point according to [[orientation]], then translated by [[offset]].
44469
+ * The anchor point will coincide with (0, 0, 0).
44450
44470
  * @param boundingBox A box fully containing the [[textBlock]].
44451
44471
  * @see [[computeAnchorPoint]] to compute the transform's anchor point.
44452
44472
  */
@@ -44454,7 +44474,7 @@ class TextAnnotation {
44454
44474
  const anchorPt = this.computeAnchorPoint(boundingBox);
44455
44475
  const matrix = this.orientation.toMatrix3d();
44456
44476
  const rotation = _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_0__.Transform.createFixedPointAndMatrix(anchorPt, matrix);
44457
- const translation = _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_0__.Transform.createTranslation(this.offset);
44477
+ const translation = _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_0__.Transform.createTranslation(this.offset.minus(anchorPt));
44458
44478
  return translation.multiplyTransformTransform(rotation, rotation);
44459
44479
  }
44460
44480
  /** Compute the anchor point of this annotation as specified by [[anchor]].
@@ -85081,10 +85101,8 @@ __webpack_require__.r(__webpack_exports__);
85081
85101
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
85082
85102
  /* harmony export */ "PlanarClipMaskState": () => (/* binding */ PlanarClipMaskState)
85083
85103
  /* harmony export */ });
85084
- /* harmony import */ var _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @itwin/core-bentley */ "../../core/bentley/lib/esm/core-bentley.js");
85085
- /* harmony import */ var _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @itwin/core-common */ "../../core/common/lib/esm/core-common.js");
85086
- /* harmony import */ var _render_FeatureSymbology__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./render/FeatureSymbology */ "../../core/frontend/lib/esm/render/FeatureSymbology.js");
85087
- /* harmony import */ var _tile_internal__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./tile/internal */ "../../core/frontend/lib/esm/tile/internal.js");
85104
+ /* harmony import */ var _itwin_core_common__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @itwin/core-common */ "../../core/common/lib/esm/core-common.js");
85105
+ /* harmony import */ var _render_FeatureSymbology__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./render/FeatureSymbology */ "../../core/frontend/lib/esm/render/FeatureSymbology.js");
85088
85106
  /*---------------------------------------------------------------------------------------------
85089
85107
  * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
85090
85108
  * See LICENSE.md in the project root for license terms and full copyright notice.
@@ -85094,8 +85112,6 @@ __webpack_require__.r(__webpack_exports__);
85094
85112
  */
85095
85113
 
85096
85114
 
85097
-
85098
-
85099
85115
  /** The State of Planar Clip Mask applied to a reality model or background map.
85100
85116
  * Handles loading models and their associated tiles for models that are used by masks but may not be otherwise loaded or displayed.
85101
85117
  * @beta
@@ -85109,16 +85125,18 @@ class PlanarClipMaskState {
85109
85125
  return new PlanarClipMaskState(settings);
85110
85126
  }
85111
85127
  static fromJSON(props) {
85112
- return this.create(_itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.PlanarClipMaskSettings.fromJSON(props));
85128
+ return this.create(_itwin_core_common__WEBPACK_IMPORTED_MODULE_0__.PlanarClipMaskSettings.fromJSON(props));
85113
85129
  }
85114
85130
  discloseTileTrees(trees) {
85115
85131
  if (this._tileTreeRefs)
85116
85132
  this._tileTreeRefs.forEach((treeRef) => treeRef.discloseTileTrees(trees));
85117
85133
  }
85134
+ // Returns the TileTreeReferences for the models that need to be drawn to create the planar clip mask.
85118
85135
  getTileTrees(view, classifiedModelId) {
85119
- if (this.settings.mode === _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.PlanarClipMaskMode.Priority) {
85136
+ if (this.settings.mode === _itwin_core_common__WEBPACK_IMPORTED_MODULE_0__.PlanarClipMaskMode.Priority) {
85137
+ // For priority mode we simply want refs for all viewed models if the priority is higher than the mask priority.
85120
85138
  const viewTrees = new Array();
85121
- const thisPriority = this.settings.priority === undefined ? _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.PlanarClipMaskPriority.RealityModel : this.settings.priority;
85139
+ const thisPriority = this.settings.priority === undefined ? _itwin_core_common__WEBPACK_IMPORTED_MODULE_0__.PlanarClipMaskPriority.RealityModel : this.settings.priority;
85122
85140
  view.forEachTileTreeRef((ref) => {
85123
85141
  const tree = ref.treeOwner.load();
85124
85142
  if (tree && tree.modelId !== classifiedModelId && ref.planarclipMaskPriority > thisPriority)
@@ -85126,38 +85144,55 @@ class PlanarClipMaskState {
85126
85144
  });
85127
85145
  return viewTrees;
85128
85146
  }
85147
+ // For all other modes we need to let the tree refs in the view state decide which refs need to be drawn
85148
+ // since batched tiles cannot turn on/off individual models just by their tile tree refs.
85129
85149
  if (!this._tileTreeRefs) {
85130
85150
  this._tileTreeRefs = new Array();
85131
- if (this.settings.modelIds) {
85132
- for (const modelId of this.settings.modelIds) {
85133
- const model = view.iModel.models.getLoaded(modelId);
85134
- (0,_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.assert)(model !== undefined); // Models should be loaded by RealityModelTileTree
85135
- if (model?.asGeometricModel)
85136
- this._tileTreeRefs.push((0,_tile_internal__WEBPACK_IMPORTED_MODULE_3__.createMaskTreeReference)(view, model.asGeometricModel));
85137
- }
85138
- }
85151
+ if (this.settings.modelIds)
85152
+ view.collectMaskRefs(this.settings.modelIds, this._tileTreeRefs);
85139
85153
  }
85140
85154
  if (!this._allLoaded)
85141
85155
  this._allLoaded = this._tileTreeRefs.every((treeRef) => treeRef.treeOwner.load() !== undefined);
85142
85156
  return this._allLoaded ? this._tileTreeRefs : undefined;
85143
85157
  }
85144
- getPlanarClipMaskSymbologyOverrides() {
85145
- if (!this.settings.subCategoryOrElementIds)
85158
+ // Returns any potential FeatureSymbology overrides for drawing the planar clip mask.
85159
+ getPlanarClipMaskSymbologyOverrides(view, context) {
85160
+ // First obtain a list of models that will need to be turned off for drawing the planar clip mask (only used for batched tile trees).
85161
+ const overrideModels = view.getModelsNotInMask(this.settings.modelIds, _itwin_core_common__WEBPACK_IMPORTED_MODULE_0__.PlanarClipMaskMode.Priority === this.settings.mode);
85162
+ const noSubCategoryOrElementIds = !this.settings.subCategoryOrElementIds;
85163
+ if (noSubCategoryOrElementIds && !overrideModels)
85146
85164
  return undefined;
85165
+ const overrides = new _render_FeatureSymbology__WEBPACK_IMPORTED_MODULE_1__.FeatureSymbology.Overrides();
85166
+ if (overrideModels) {
85167
+ // overrideModels is used for batched models. For those, we need to create model overrides to turn off models that are
85168
+ // not wanted in the mask (using transparency) no matter what mask mode is being used.
85169
+ const appOff = _itwin_core_common__WEBPACK_IMPORTED_MODULE_0__.FeatureAppearance.fromTransparency(1.0);
85170
+ // For Priority or Models mode, we need to start with the current overrides and modify them
85171
+ if (_itwin_core_common__WEBPACK_IMPORTED_MODULE_0__.PlanarClipMaskMode.Priority === this.settings.mode || _itwin_core_common__WEBPACK_IMPORTED_MODULE_0__.PlanarClipMaskMode.Models === this.settings.mode || noSubCategoryOrElementIds) {
85172
+ const curOverrides = new _render_FeatureSymbology__WEBPACK_IMPORTED_MODULE_1__.FeatureSymbology.Overrides(context.viewport);
85173
+ curOverrides.addInvisibleElementOverridesToNeverDrawn(); // need this for fully trans element overrides to not participate in mask
85174
+ overrideModels.forEach((modelId) => {
85175
+ curOverrides.override({ modelId, appearance: appOff, onConflict: "replace" });
85176
+ });
85177
+ return curOverrides;
85178
+ }
85179
+ // Otherwise, we just start with a default overrides and modify it.
85180
+ overrideModels.forEach((modelId) => {
85181
+ overrides.override({ modelId, appearance: appOff, onConflict: "replace" });
85182
+ });
85183
+ }
85184
+ // Add overrides to turn things on or off based on the subcategories or elements in the mask settings.
85147
85185
  switch (this.settings.mode) {
85148
- case _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.PlanarClipMaskMode.IncludeElements: {
85149
- const overrides = new _render_FeatureSymbology__WEBPACK_IMPORTED_MODULE_2__.FeatureSymbology.Overrides();
85186
+ case _itwin_core_common__WEBPACK_IMPORTED_MODULE_0__.PlanarClipMaskMode.IncludeElements: {
85150
85187
  overrides.setAlwaysDrawnSet(this.settings.subCategoryOrElementIds, true);
85151
85188
  return overrides;
85152
85189
  }
85153
- case _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.PlanarClipMaskMode.ExcludeElements: {
85154
- const overrides = new _render_FeatureSymbology__WEBPACK_IMPORTED_MODULE_2__.FeatureSymbology.Overrides();
85190
+ case _itwin_core_common__WEBPACK_IMPORTED_MODULE_0__.PlanarClipMaskMode.ExcludeElements: {
85155
85191
  overrides.ignoreSubCategory = true;
85156
85192
  overrides.setNeverDrawnSet(this.settings.subCategoryOrElementIds);
85157
85193
  return overrides;
85158
85194
  }
85159
- case _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.PlanarClipMaskMode.IncludeSubCategories: {
85160
- const overrides = new _render_FeatureSymbology__WEBPACK_IMPORTED_MODULE_2__.FeatureSymbology.Overrides();
85195
+ case _itwin_core_common__WEBPACK_IMPORTED_MODULE_0__.PlanarClipMaskMode.IncludeSubCategories: {
85161
85196
  for (const subCategoryId of this.settings.subCategoryOrElementIds)
85162
85197
  overrides.setVisibleSubCategory(subCategoryId);
85163
85198
  return overrides;
@@ -87407,6 +87442,22 @@ class SpatialViewState extends _ViewState__WEBPACK_IMPORTED_MODULE_6__.ViewState
87407
87442
  setTileTreeReferencesDeactivated(modelIds, deactivated, which) {
87408
87443
  this._treeRefs.setDeactivated(modelIds, deactivated, which);
87409
87444
  }
87445
+ /** For getting the [TileTreeReference]s that are in the modelIds, for planar classification.
87446
+ * @param modelIds modelIds for which to get the TileTreeReferences
87447
+ * @param maskTreeRefs where to store the TileTreeReferences
87448
+ * @internal
87449
+ */
87450
+ collectMaskRefs(modelIds, maskTreeRefs) {
87451
+ this._treeRefs.collectMaskRefs(modelIds, maskTreeRefs);
87452
+ }
87453
+ /** For getting a list of modelIds which do not participate in masking for planar classification.
87454
+ * @param maskModels models which DO participate in planar clip masking
87455
+ * @param useVisible when true, use visible models to set flag
87456
+ * @internal
87457
+ */
87458
+ getModelsNotInMask(maskModels, useVisible) {
87459
+ return this._treeRefs.getModelsNotInMask(maskModels, useVisible);
87460
+ }
87410
87461
  registerModelSelectorListeners() {
87411
87462
  const models = this.modelSelector.observableModels;
87412
87463
  const func = () => {
@@ -117473,7 +117524,7 @@ class PlanarClassifier extends _RenderPlanarClassifier__WEBPACK_IMPORTED_MODULE_
117473
117524
  if (undefined === context.viewingSpace)
117474
117525
  return;
117475
117526
  const viewState = context.viewingSpace.view;
117476
- if (undefined === viewState)
117527
+ if (!viewState.isSpatialView())
117477
117528
  return;
117478
117529
  const requiredHeight = context.target.viewRect.height;
117479
117530
  const requiredWidth = context.target.viewRect.width;
@@ -117493,7 +117544,7 @@ class PlanarClassifier extends _RenderPlanarClassifier__WEBPACK_IMPORTED_MODULE_
117493
117544
  this._projectionMatrix = projection.projectionMatrix;
117494
117545
  this._frustum = projection.textureFrustum;
117495
117546
  this._debugFrustum = projection.debugFrustum;
117496
- this._planarClipMaskOverrides = this._planarClipMask?.getPlanarClipMaskSymbologyOverrides();
117547
+ this._planarClipMaskOverrides = this._planarClipMask?.getPlanarClipMaskSymbologyOverrides(viewState, context);
117497
117548
  const drawTree = (treeRef, graphics) => {
117498
117549
  this._graphics = graphics;
117499
117550
  const frustumPlanes = this._frustum ? _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.FrustumPlanes.fromFrustum(this._frustum) : _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.FrustumPlanes.createEmpty();
@@ -140773,8 +140824,11 @@ class GraphicsCollectorDrawArgs extends _internal__WEBPACK_IMPORTED_MODULE_0__.T
140773
140824
  this._collector.addGraphic(this.context.createBranch(graphics, this.location));
140774
140825
  }
140775
140826
  drawGraphics() {
140776
- if (!this.graphics.isEmpty)
140777
- this._collector.addGraphic(this.context.createBranch(this.graphics, this.location));
140827
+ if (!this.graphics.isEmpty) {
140828
+ const graphics = this.produceGraphics();
140829
+ if (undefined !== graphics)
140830
+ this._collector.addGraphic(graphics);
140831
+ }
140778
140832
  }
140779
140833
  static create(context, collector, ref, planes, worldToViewMap) {
140780
140834
  const args = ref.createDrawArgs(context);
@@ -144160,6 +144214,26 @@ class SpatialRefs {
144160
144214
  for (const modelId of modelIds)
144161
144215
  this._refs.get(modelId)?.setDeactivated(deactivated, refs);
144162
144216
  }
144217
+ /** For getting the [TileTreeReference]s that are in the modelIds, for planar classification.
144218
+ * @param modelIds modelIds for which to get the TileTreeReferences
144219
+ * @param maskTreeRefs where to store the TileTreeReferences
144220
+ * @internal
144221
+ */
144222
+ collectMaskRefs(modelIds, maskTreeRefs) {
144223
+ for (const modelId of modelIds) {
144224
+ if (!this._excludedModels?.has(modelId)) {
144225
+ const model = this._view.iModel.models.getLoaded(modelId);
144226
+ (0,_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.assert)(model !== undefined); // Models should be loaded by RealityModelTileTree
144227
+ if (model?.asGeometricModel)
144228
+ maskTreeRefs.push(createMaskTreeReference(this._view, model.asGeometricModel));
144229
+ }
144230
+ }
144231
+ }
144232
+ /** For getting a list of modelIds which do not participate in masking, for planar classification.
144233
+ * For non-batched tile trees this is not needed, so just return undefined.
144234
+ * @internal
144235
+ */
144236
+ getModelsNotInMask(_maskModels, _useVisible) { return undefined; }
144163
144237
  load() {
144164
144238
  if (!this._allLoaded) {
144165
144239
  this._allLoaded = true;
@@ -190270,11 +190344,11 @@ __webpack_require__.r(__webpack_exports__);
190270
190344
  /* harmony export */ "AnnotatedLineString3d": () => (/* binding */ AnnotatedLineString3d),
190271
190345
  /* harmony export */ "LineString3d": () => (/* binding */ LineString3d)
190272
190346
  /* harmony export */ });
190273
- /* harmony import */ var _Geometry__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../Geometry */ "../../core/geometry/lib/esm/Geometry.js");
190347
+ /* harmony import */ var _Geometry__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Geometry */ "../../core/geometry/lib/esm/Geometry.js");
190274
190348
  /* harmony import */ var _geometry3d_Angle__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../geometry3d/Angle */ "../../core/geometry/lib/esm/geometry3d/Angle.js");
190275
190349
  /* harmony import */ var _geometry3d_GrowableFloat64Array__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../geometry3d/GrowableFloat64Array */ "../../core/geometry/lib/esm/geometry3d/GrowableFloat64Array.js");
190276
190350
  /* harmony import */ var _geometry3d_GrowableXYArray__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../geometry3d/GrowableXYArray */ "../../core/geometry/lib/esm/geometry3d/GrowableXYArray.js");
190277
- /* harmony import */ var _geometry3d_GrowableXYZArray__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../geometry3d/GrowableXYZArray */ "../../core/geometry/lib/esm/geometry3d/GrowableXYZArray.js");
190351
+ /* harmony import */ var _geometry3d_GrowableXYZArray__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../geometry3d/GrowableXYZArray */ "../../core/geometry/lib/esm/geometry3d/GrowableXYZArray.js");
190278
190352
  /* harmony import */ var _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../geometry3d/Matrix3d */ "../../core/geometry/lib/esm/geometry3d/Matrix3d.js");
190279
190353
  /* harmony import */ var _geometry3d_Plane3dByOriginAndVectors__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../geometry3d/Plane3dByOriginAndVectors */ "../../core/geometry/lib/esm/geometry3d/Plane3dByOriginAndVectors.js");
190280
190354
  /* harmony import */ var _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../geometry3d/Point3dVector3d */ "../../core/geometry/lib/esm/geometry3d/Point3dVector3d.js");
@@ -190284,7 +190358,7 @@ __webpack_require__.r(__webpack_exports__);
190284
190358
  /* harmony import */ var _geometry3d_Transform__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../geometry3d/Transform */ "../../core/geometry/lib/esm/geometry3d/Transform.js");
190285
190359
  /* harmony import */ var _CurveExtendMode__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./CurveExtendMode */ "../../core/geometry/lib/esm/curve/CurveExtendMode.js");
190286
190360
  /* harmony import */ var _CurveLocationDetail__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./CurveLocationDetail */ "../../core/geometry/lib/esm/curve/CurveLocationDetail.js");
190287
- /* harmony import */ var _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./CurvePrimitive */ "../../core/geometry/lib/esm/curve/CurvePrimitive.js");
190361
+ /* harmony import */ var _CurvePrimitive__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./CurvePrimitive */ "../../core/geometry/lib/esm/curve/CurvePrimitive.js");
190288
190362
  /* harmony import */ var _internalContexts_PlaneAltitudeRangeContext__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./internalContexts/PlaneAltitudeRangeContext */ "../../core/geometry/lib/esm/curve/internalContexts/PlaneAltitudeRangeContext.js");
190289
190363
  /* harmony import */ var _LineSegment3d__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./LineSegment3d */ "../../core/geometry/lib/esm/curve/LineSegment3d.js");
190290
190364
  /* harmony import */ var _OffsetOptions__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./OffsetOptions */ "../../core/geometry/lib/esm/curve/OffsetOptions.js");
@@ -190309,10 +190383,10 @@ __webpack_require__.r(__webpack_exports__);
190309
190383
 
190310
190384
 
190311
190385
  /**
190312
- * Starting with baseIndex and moving index by stepDirection:
190313
- * If the vector from baseIndex to baseIndex +1 crossed with vectorA can be normalized, accumulate it (scaled) to normal.
190314
- * Return when successful.
190315
- * (Do nothing if everything is parallel through limits of the array)
190386
+ * Starting with the segment at (baseIndex, baseIndex + 1):
190387
+ * * If the segment vector and vectorA determine a normal, accumulate it (scaled) to normal, and return.
190388
+ * * Otherwise move to next/previous segment if stepDirection is positive/negative and repeat.
190389
+ * * Do nothing if everything is parallel through the end of the array.
190316
190390
  */
190317
190391
  function accumulateGoodUnitPerpendicular(points, vectorA, baseIndex, stepDirection, weight, normal, workVector) {
190318
190392
  const n = points.length;
@@ -190322,6 +190396,8 @@ function accumulateGoodUnitPerpendicular(points, vectorA, baseIndex, stepDirecti
190322
190396
  vectorA.crossProduct(workVector, workVector);
190323
190397
  if (workVector.normalizeInPlace()) {
190324
190398
  normal.addScaledInPlace(workVector, weight);
190399
+ if (normal.isAlmostEqualXYZ(0, 0, 0, _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.smallFraction))
190400
+ workVector.scale(-weight, normal); // Concavity changed! Revert to previous
190325
190401
  return true;
190326
190402
  }
190327
190403
  }
@@ -190334,6 +190410,8 @@ function accumulateGoodUnitPerpendicular(points, vectorA, baseIndex, stepDirecti
190334
190410
  workVector.crossProduct(vectorA, workVector);
190335
190411
  if (workVector.normalizeInPlace()) {
190336
190412
  normal.addScaledInPlace(workVector, weight);
190413
+ if (normal.isAlmostEqualXYZ(0, 0, 0, _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.smallFraction))
190414
+ workVector.scale(-weight, normal); // Concavity changed! Revert to previous
190337
190415
  return true;
190338
190416
  }
190339
190417
  }
@@ -190352,7 +190430,7 @@ function accumulateGoodUnitPerpendicular(points, vectorA, baseIndex, stepDirecti
190352
190430
  * * Use `moveSignedDistanceFromFraction` to do true-length evaluations.
190353
190431
  * @public
190354
190432
  */
190355
- class LineString3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePrimitive {
190433
+ class LineString3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_1__.CurvePrimitive {
190356
190434
  /** test if `other` is an instance of `LineString3d` */
190357
190435
  isSameGeometryClass(other) {
190358
190436
  return other instanceof LineString3d;
@@ -190409,7 +190487,7 @@ class LineString3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePri
190409
190487
  if (points)
190410
190488
  this._points = points;
190411
190489
  else
190412
- this._points = new _geometry3d_GrowableXYZArray__WEBPACK_IMPORTED_MODULE_1__.GrowableXYZArray();
190490
+ this._points = new _geometry3d_GrowableXYZArray__WEBPACK_IMPORTED_MODULE_2__.GrowableXYZArray();
190413
190491
  }
190414
190492
  /** Clone this linestring and apply the transform to the clone points. */
190415
190493
  cloneTransformed(transform) {
@@ -190440,7 +190518,7 @@ class LineString3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePri
190440
190518
  if (enforceClosure && points.length > 1) {
190441
190519
  const distance = xyz.distanceIndexIndex(0, xyz.length - 1);
190442
190520
  if (distance !== undefined && distance !== 0.0) {
190443
- if (_Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.isSameCoordinate(0, distance)) {
190521
+ if (_Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.isSameCoordinate(0, distance)) {
190444
190522
  xyz.pop(); // nonzero but small distance -- to be replaced by point 0 exactly.
190445
190523
  const xyzA = xyz.front();
190446
190524
  xyz.push(xyzA);
@@ -190515,7 +190593,7 @@ class LineString3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePri
190515
190593
  ensureEmptySurfaceNormals() {
190516
190594
  const n = this.numPoints();
190517
190595
  if (!this._surfaceNormals) {
190518
- this._surfaceNormals = new _geometry3d_GrowableXYZArray__WEBPACK_IMPORTED_MODULE_1__.GrowableXYZArray(n);
190596
+ this._surfaceNormals = new _geometry3d_GrowableXYZArray__WEBPACK_IMPORTED_MODULE_2__.GrowableXYZArray(n);
190519
190597
  return this._surfaceNormals;
190520
190598
  }
190521
190599
  this._surfaceNormals.clear();
@@ -190526,7 +190604,7 @@ class LineString3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePri
190526
190604
  ensureEmptyDerivatives() {
190527
190605
  const n = this.numPoints();
190528
190606
  if (!this._derivatives) {
190529
- this._derivatives = new _geometry3d_GrowableXYZArray__WEBPACK_IMPORTED_MODULE_1__.GrowableXYZArray(n);
190607
+ this._derivatives = new _geometry3d_GrowableXYZArray__WEBPACK_IMPORTED_MODULE_2__.GrowableXYZArray(n);
190530
190608
  return this._derivatives;
190531
190609
  }
190532
190610
  this._derivatives.clear();
@@ -190590,7 +190668,7 @@ class LineString3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePri
190590
190668
  */
190591
190669
  addDerivative(vector) {
190592
190670
  if (!this._derivatives)
190593
- this._derivatives = new _geometry3d_GrowableXYZArray__WEBPACK_IMPORTED_MODULE_1__.GrowableXYZArray();
190671
+ this._derivatives = new _geometry3d_GrowableXYZArray__WEBPACK_IMPORTED_MODULE_2__.GrowableXYZArray();
190594
190672
  this._derivatives.push(vector);
190595
190673
  }
190596
190674
  /**
@@ -190599,13 +190677,13 @@ class LineString3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePri
190599
190677
  */
190600
190678
  addSurfaceNormal(vector) {
190601
190679
  if (!this._surfaceNormals)
190602
- this._surfaceNormals = new _geometry3d_GrowableXYZArray__WEBPACK_IMPORTED_MODULE_1__.GrowableXYZArray();
190680
+ this._surfaceNormals = new _geometry3d_GrowableXYZArray__WEBPACK_IMPORTED_MODULE_2__.GrowableXYZArray();
190603
190681
  this._surfaceNormals.push(vector);
190604
190682
  }
190605
190683
  /** If the linestring is not already closed, add a closure point. */
190606
190684
  addClosurePoint() {
190607
190685
  const distance = this._points.distanceIndexIndex(0, this._points.length - 1);
190608
- if (distance !== undefined && !_Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.isSameCoordinate(distance, 0))
190686
+ if (distance !== undefined && !_Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.isSameCoordinate(distance, 0))
190609
190687
  this._points.pushWrap(1);
190610
190688
  }
190611
190689
  /** Eliminate (but do not return!!) the final point of the linestring */
@@ -190894,7 +190972,7 @@ class LineString3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePri
190894
190972
  return _geometry3d_Transform__WEBPACK_IMPORTED_MODULE_9__.Transform.createIdentity(result);
190895
190973
  }
190896
190974
  if (n === 2)
190897
- return _geometry3d_Transform__WEBPACK_IMPORTED_MODULE_9__.Transform.createRefs(this._points.interpolate(0, fraction, 1), _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_10__.Matrix3d.createRigidHeadsUp(this._points.vectorIndexIndex(0, 1), _Geometry__WEBPACK_IMPORTED_MODULE_2__.AxisOrder.XYZ));
190975
+ return _geometry3d_Transform__WEBPACK_IMPORTED_MODULE_9__.Transform.createRefs(this._points.interpolate(0, fraction, 1), _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_10__.Matrix3d.createRigidHeadsUp(this._points.vectorIndexIndex(0, 1), _Geometry__WEBPACK_IMPORTED_MODULE_0__.AxisOrder.XYZ));
190898
190976
  /** 3 or more points. */
190899
190977
  const numSegment = n - 1;
190900
190978
  const df = 1.0 / numSegment;
@@ -190927,7 +191005,7 @@ class LineString3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePri
190927
191005
  accumulateGoodUnitPerpendicular(this._points, vectorA, baseIndex - 1, -1, (1.0 - localFraction), normal, workVector);
190928
191006
  accumulateGoodUnitPerpendicular(this._points, vectorA, baseIndex + 1, 1, (localFraction), normal, workVector);
190929
191007
  }
190930
- const matrix = _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_10__.Matrix3d.createRigidFromColumns(normal, vectorA, _Geometry__WEBPACK_IMPORTED_MODULE_2__.AxisOrder.ZXY);
191008
+ const matrix = _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_10__.Matrix3d.createRigidFromColumns(normal, vectorA, _Geometry__WEBPACK_IMPORTED_MODULE_0__.AxisOrder.ZXY);
190931
191009
  if (matrix)
190932
191010
  return _geometry3d_Transform__WEBPACK_IMPORTED_MODULE_9__.Transform.createOriginAndMatrix(origin, matrix, result);
190933
191011
  return _geometry3d_Transform__WEBPACK_IMPORTED_MODULE_9__.Transform.createTranslation(origin, result);
@@ -191062,7 +191140,7 @@ class LineString3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePri
191062
191140
  moveSignedDistanceFromFraction(startFraction, signedDistance, allowExtension, result) {
191063
191141
  const numSegments = this._points.length - 1;
191064
191142
  const scaledFraction = startFraction * numSegments;
191065
- let leftPointIndex = _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.restrictToInterval(Math.floor(scaledFraction), 0, numSegments - 1); // lower point index on active segment.
191143
+ let leftPointIndex = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.restrictToInterval(Math.floor(scaledFraction), 0, numSegments - 1); // lower point index on active segment.
191066
191144
  const localFraction = scaledFraction - leftPointIndex;
191067
191145
  const point0 = this._points.interpolate(leftPointIndex, localFraction, leftPointIndex + 1, LineString3d._workPointA);
191068
191146
  const point1 = LineString3d._workPointB;
@@ -191148,7 +191226,7 @@ class LineString3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePri
191148
191226
  }
191149
191227
  /** Test if all points of the linestring are in a plane. */
191150
191228
  isInPlane(plane) {
191151
- return this._points.isCloseToPlane(plane, _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.smallMetricDistance);
191229
+ return this._points.isCloseToPlane(plane, _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.smallMetricDistance);
191152
191230
  }
191153
191231
  /** Push a hit, fixing up the prior entry if needed. */
191154
191232
  static pushVertexHit(result, counter, cp, fraction, point) {
@@ -191187,7 +191265,7 @@ class LineString3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePri
191187
191265
  let segmentFraction = 0;
191188
191266
  for (let i = 0; i < this._points.length; i++, pointA.setFrom(pointB), hA = hB) {
191189
191267
  this._points.getPoint3dAtUncheckedPointIndex(i, pointB);
191190
- hB = _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.correctSmallMetricDistance(plane.altitude(pointB));
191268
+ hB = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.correctSmallMetricDistance(plane.altitude(pointB));
191191
191269
  if (hB === 0.0)
191192
191270
  LineString3d.pushVertexHit(result, numConsecutiveZero++, this, i / divisor, pointB);
191193
191271
  else {
@@ -191211,7 +191289,7 @@ class LineString3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePri
191211
191289
  isAlmostEqual(other) {
191212
191290
  if (!(other instanceof LineString3d))
191213
191291
  return false;
191214
- if (!_geometry3d_GrowableXYZArray__WEBPACK_IMPORTED_MODULE_1__.GrowableXYZArray.isAlmostEqual(this._points, other._points))
191292
+ if (!_geometry3d_GrowableXYZArray__WEBPACK_IMPORTED_MODULE_2__.GrowableXYZArray.isAlmostEqual(this._points, other._points))
191215
191293
  return false;
191216
191294
  return true;
191217
191295
  }
@@ -191225,7 +191303,7 @@ class LineString3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePri
191225
191303
  let add = true;
191226
191304
  const addFraction = fraction !== undefined && this._fractions !== undefined;
191227
191305
  if (n > 0) {
191228
- if (addFraction && _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.isSameCoordinate(fraction, this._fractions.back()))
191306
+ if (addFraction && _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.isSameCoordinate(fraction, this._fractions.back()))
191229
191307
  add = false;
191230
191308
  if (point.isAlmostEqual(this._points.getPoint3dAtUncheckedPointIndex(n - 1)))
191231
191309
  add = false;
@@ -191237,7 +191315,7 @@ class LineString3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePri
191237
191315
  }
191238
191316
  }
191239
191317
  /** Compress out duplicate points (according to point.isAlmostEqual) */
191240
- removeDuplicatePoints(tolerance = _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.smallMetricDistance) {
191318
+ removeDuplicatePoints(tolerance = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.smallMetricDistance) {
191241
191319
  const n = this._points.length;
191242
191320
  if (n < 2)
191243
191321
  return;
@@ -191311,8 +191389,8 @@ class LineString3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePri
191311
191389
  ls._uvParams = new _geometry3d_GrowableXYArray__WEBPACK_IMPORTED_MODULE_4__.GrowableXYArray(capacity);
191312
191390
  }
191313
191391
  if (options.needNormals) {
191314
- ls._derivatives = new _geometry3d_GrowableXYZArray__WEBPACK_IMPORTED_MODULE_1__.GrowableXYZArray(capacity);
191315
- ls._surfaceNormals = new _geometry3d_GrowableXYZArray__WEBPACK_IMPORTED_MODULE_1__.GrowableXYZArray(capacity);
191392
+ ls._derivatives = new _geometry3d_GrowableXYZArray__WEBPACK_IMPORTED_MODULE_2__.GrowableXYZArray(capacity);
191393
+ ls._surfaceNormals = new _geometry3d_GrowableXYZArray__WEBPACK_IMPORTED_MODULE_2__.GrowableXYZArray(capacity);
191316
191394
  }
191317
191395
  }
191318
191396
  return ls;
@@ -191441,7 +191519,7 @@ class LineString3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePri
191441
191519
  const numStrokeOnSegment = applyOptions ? options.applyMaxEdgeLength(1, segmentLength) : 1;
191442
191520
  myData.addToCountAndLength(numStrokeOnSegment, segmentLength);
191443
191521
  }
191444
- _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePrimitive.installStrokeCountMap(this, myData, parentStrokeMap);
191522
+ _CurvePrimitive__WEBPACK_IMPORTED_MODULE_1__.CurvePrimitive.installStrokeCountMap(this, myData, parentStrokeMap);
191445
191523
  }
191446
191524
  /** Second step of double dispatch: call `handler.handleLineString3d(this)` */
191447
191525
  dispatchToGeometryHandler(handler) {
@@ -191464,7 +191542,7 @@ class LineString3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePri
191464
191542
  let globalFractionB = 1.0;
191465
191543
  const capture = (localFraction0, localFraction1) => {
191466
191544
  if (announce)
191467
- announce(_Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.interpolate(globalFractionA, localFraction0, globalFractionB), _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.interpolate(globalFractionA, localFraction1, globalFractionB), this);
191545
+ announce(_Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.interpolate(globalFractionA, localFraction0, globalFractionB), _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.interpolate(globalFractionA, localFraction1, globalFractionB), this);
191468
191546
  };
191469
191547
  const pointA = LineString3d._workPointA;
191470
191548
  const pointB = LineString3d._workPointB;
@@ -191527,7 +191605,7 @@ class LineString3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePri
191527
191605
  index0 = 1; // first original vertex is not in clone
191528
191606
  }
191529
191607
  else if (0 <= fractionA && fractionA <= 1) {
191530
- index0 = _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.isSmallRelative(1 - localA.fraction) ? localA.index + 2 : localA.index + 1;
191608
+ index0 = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.isSmallRelative(1 - localA.fraction) ? localA.index + 2 : localA.index + 1;
191531
191609
  }
191532
191610
  else { // 1 < fractionA
191533
191611
  index0 = n; // no original vertices in clone
@@ -191536,7 +191614,7 @@ class LineString3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePri
191536
191614
  index1 = -1; // no original vertices in clone
191537
191615
  }
191538
191616
  else if (0 <= fractionB && fractionB <= 1) {
191539
- index1 = _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.isSmallRelative(localB.fraction) ? localB.index - 1 : localB.index;
191617
+ index1 = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.isSmallRelative(localB.fraction) ? localB.index - 1 : localB.index;
191540
191618
  }
191541
191619
  else { // 1 < fractionB
191542
191620
  index1 = n - 2; // last original vertex is not in clone
@@ -191560,7 +191638,7 @@ class LineString3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePri
191560
191638
  }
191561
191639
  /** Returns true if first and last points are within metric tolerance. */
191562
191640
  get isPhysicallyClosed() {
191563
- return this._points.length > 0 && _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.isSmallMetricDistance(this._points.distanceIndexIndex(0, this._points.length - 1));
191641
+ return this._points.length > 0 && _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.isSmallMetricDistance(this._points.distanceIndexIndex(0, this._points.length - 1));
191564
191642
  }
191565
191643
  /**
191566
191644
  * Evaluate strokes at fractions indicated in a StrokeCountMap.
@@ -191646,7 +191724,7 @@ class LineString3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePri
191646
191724
  for (const seg of this.collectCurvePrimitives(undefined, true, true)) {
191647
191725
  const offset = seg.constructOffsetXY(options);
191648
191726
  if (offset !== undefined) {
191649
- if (offset instanceof _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePrimitive)
191727
+ if (offset instanceof _CurvePrimitive__WEBPACK_IMPORTED_MODULE_1__.CurvePrimitive)
191650
191728
  offsets.push(offset);
191651
191729
  else if (Array.isArray(offset))
191652
191730
  offset.forEach((cp) => offsets.push(cp));
@@ -191711,7 +191789,7 @@ class MoveByDistanceContext {
191711
191789
  }
191712
191790
  // Return CurveSearchStatus indicating whether the accumulated distance has reached the target.
191713
191791
  distanceStatus() {
191714
- return _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.isSameCoordinate(this.distance0, this.targetDistance) ?
191792
+ return _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.isSameCoordinate(this.distance0, this.targetDistance) ?
191715
191793
  _CurveLocationDetail__WEBPACK_IMPORTED_MODULE_12__.CurveSearchStatus.success : _CurveLocationDetail__WEBPACK_IMPORTED_MODULE_12__.CurveSearchStatus.stoppedAtBoundary;
191716
191794
  }
191717
191795
  /**
@@ -191730,16 +191808,16 @@ class MoveByDistanceContext {
191730
191808
  announcePoint(point1, fraction1) {
191731
191809
  const a = this.point0.distance(point1);
191732
191810
  const distance1 = this.distance0 + a;
191733
- if (distance1 < this.targetDistance && !_Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.isSameCoordinate(distance1, this.targetDistance)) {
191811
+ if (distance1 < this.targetDistance && !_Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.isSameCoordinate(distance1, this.targetDistance)) {
191734
191812
  this.point0.setFromPoint3d(point1);
191735
191813
  this.distance0 = distance1;
191736
191814
  this.fraction0 = fraction1;
191737
191815
  return false;
191738
191816
  }
191739
191817
  const b = this.targetDistance - this.distance0;
191740
- const intervalFraction = _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.safeDivideFraction(b, a, 0.0);
191818
+ const intervalFraction = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.safeDivideFraction(b, a, 0.0);
191741
191819
  this.point0.interpolate(intervalFraction, point1, this.point0);
191742
- this.fraction0 = _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.interpolate(this.fraction0, intervalFraction, fraction1);
191820
+ this.fraction0 = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.interpolate(this.fraction0, intervalFraction, fraction1);
191743
191821
  this.distance0 = this.targetDistance;
191744
191822
  return true;
191745
191823
  }
@@ -191759,14 +191837,14 @@ class MoveByDistanceContext {
191759
191837
  const d01 = points.distanceIndexIndex(index0, index1);
191760
191838
  if (!d01)
191761
191839
  return false;
191762
- const extensionFraction = _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.conditionalDivideFraction(residual, d01);
191840
+ const extensionFraction = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.conditionalDivideFraction(residual, d01);
191763
191841
  if (extensionFraction === undefined)
191764
191842
  return false;
191765
191843
  // (Remark: indices are swapped and extensionFraction negated to prevent incidental precision
191766
191844
  // loss with the alternative call with (index0, 1 + extensionFraction, index1);
191767
191845
  points.interpolate(index1, -extensionFraction, index0, this.point0);
191768
191846
  this.distance0 = this.targetDistance;
191769
- this.fraction0 = _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.interpolate(fraction1, -extensionFraction, fraction0);
191847
+ this.fraction0 = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.interpolate(fraction1, -extensionFraction, fraction0);
191770
191848
  return true;
191771
191849
  }
191772
191850
  }
@@ -297773,7 +297851,7 @@ var loadLanguages = instance.loadLanguages;
297773
297851
  /***/ ((module) => {
297774
297852
 
297775
297853
  "use strict";
297776
- module.exports = JSON.parse('{"name":"@itwin/core-frontend","version":"4.8.0-dev.4","description":"iTwin.js frontend components","main":"lib/cjs/core-frontend.js","module":"lib/esm/core-frontend.js","typings":"lib/cjs/core-frontend","license":"MIT","scripts":{"build":"npm run -s copy:public && npm run -s build:cjs && npm run -s build:esm && 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.4","@itwin/core-bentley":"workspace:^4.8.0-dev.4","@itwin/core-common":"workspace:^4.8.0-dev.4","@itwin/core-geometry":"workspace:^4.8.0-dev.4","@itwin/core-orbitgt":"workspace:^4.8.0-dev.4","@itwin/core-quantity":"workspace:^4.8.0-dev.4"},"//devDependencies":["NOTE: All peerDependencies should also be listed as devDependencies since peerDependencies are not considered by npm install","NOTE: All tools used by scripts in this package must be listed as devDependencies"],"devDependencies":{"@itwin/appui-abstract":"workspace:*","@itwin/build-tools":"workspace:*","@itwin/core-bentley":"workspace:*","@itwin/core-common":"workspace:*","@itwin/core-geometry":"workspace:*","@itwin/core-orbitgt":"workspace:*","@itwin/core-quantity":"workspace:*","@itwin/certa":"workspace:*","@itwin/eslint-plugin":"^4.0.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"}}');
297854
+ module.exports = JSON.parse('{"name":"@itwin/core-frontend","version":"4.8.0-dev.5","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.5","@itwin/core-bentley":"workspace:^4.8.0-dev.5","@itwin/core-common":"workspace:^4.8.0-dev.5","@itwin/core-geometry":"workspace:^4.8.0-dev.5","@itwin/core-orbitgt":"workspace:^4.8.0-dev.5","@itwin/core-quantity":"workspace:^4.8.0-dev.5"},"//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"}}');
297777
297855
 
297778
297856
  /***/ })
297779
297857