@itwin/rpcinterface-full-stack-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.
- package/lib/dist/_bea9.bundled-tests.js.map +1 -1
- package/lib/dist/bundled-tests.js +152 -74
- package/lib/dist/bundled-tests.js.map +1 -1
- package/lib/dist/core_frontend_lib_esm_ApproximateTerrainHeightsProps_js.bundled-tests.js.map +1 -1
- package/lib/dist/vendors-common_temp_node_modules_pnpm_loaders_gl_draco_3_1_6_node_modules_loaders_gl_draco_di-0642a6.bundled-tests.js.map +1 -1
- package/lib/dist/vendors-common_temp_node_modules_pnpm_meshoptimizer_0_20_0_node_modules_meshoptimizer_index_m-a5ae61.bundled-tests.js.map +1 -1
- package/package.json +13 -13
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_bea9.bundled-tests.js","mappings":";;;;;;;;AAAA","sources":["file:///ignored|D:\\vsts_a\\
|
|
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":""}
|
|
@@ -39856,6 +39856,16 @@ class FeatureOverrides {
|
|
|
39856
39856
|
getSubCategoryPriority(idLo, idHi) {
|
|
39857
39857
|
return this._subCategoryPriorities.get(idLo, idHi) ?? 0;
|
|
39858
39858
|
}
|
|
39859
|
+
/** Adds all fully transparent elements to the _neverDrawn set. This is used for BatchedModels planar masks.
|
|
39860
|
+
* @internal
|
|
39861
|
+
*/
|
|
39862
|
+
addInvisibleElementOverridesToNeverDrawn() {
|
|
39863
|
+
this._elementOverrides.forEach((lo, hi) => {
|
|
39864
|
+
const app = this.getElementOverrides(lo, hi, 0);
|
|
39865
|
+
if (app?.isFullyTransparent)
|
|
39866
|
+
this._neverDrawn.add(lo, hi);
|
|
39867
|
+
});
|
|
39868
|
+
}
|
|
39859
39869
|
/** Construct a new Overrides that overrides nothing.
|
|
39860
39870
|
* @see [FeatureSymbology.Overrides]($frontend) to construct overrides based on a [ViewState]($frontend) or [Viewport]($frontend).
|
|
39861
39871
|
*/
|
|
@@ -44546,15 +44556,24 @@ var PlanarClipMaskMode;
|
|
|
44546
44556
|
/** Mask based on priority. Different types of models have different default priorities as enumerated by [[PlanarClipMaskPriority]].
|
|
44547
44557
|
* 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.
|
|
44548
44558
|
* 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.
|
|
44559
|
+
* 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.
|
|
44549
44560
|
*/
|
|
44550
44561
|
PlanarClipMaskMode[PlanarClipMaskMode["Priority"] = 1] = "Priority";
|
|
44551
|
-
/** Indicates that masks should be produced from the geometry in a set of [GeometricModel]($backend)s.
|
|
44562
|
+
/** 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.
|
|
44563
|
+
* However, things that are off from category settings or element feature overrides in the view will not be in the mask for these models.
|
|
44564
|
+
*/
|
|
44552
44565
|
PlanarClipMaskMode[PlanarClipMaskMode["Models"] = 2] = "Models";
|
|
44553
|
-
/** Indicates that masks should be produced from geometry belonging to a set of subcategories.
|
|
44566
|
+
/** Indicates that masks should be produced from geometry belonging to a set of subcategories.
|
|
44567
|
+
* View settings do not affect what is in the mask, unless [[PlanarClipMaskSettings.subCategoryOrElementIds]] is undefined, in which case it behaves like Models mode.
|
|
44568
|
+
*/
|
|
44554
44569
|
PlanarClipMaskMode[PlanarClipMaskMode["IncludeSubCategories"] = 3] = "IncludeSubCategories";
|
|
44555
|
-
/** Indicates that masks should be produced from the geometry of a set of [GeometricElement]($backend)s.
|
|
44570
|
+
/** Indicates that masks should be produced from the geometry of a set of [GeometricElement]($backend)s.
|
|
44571
|
+
* View settings do not affect what is in the mask, unless [[PlanarClipMaskSettings.subCategoryOrElementIds]] is undefined, in which case it behaves like Models mode.
|
|
44572
|
+
*/
|
|
44556
44573
|
PlanarClipMaskMode[PlanarClipMaskMode["IncludeElements"] = 4] = "IncludeElements";
|
|
44557
|
-
/** 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.
|
|
44574
|
+
/** 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.
|
|
44575
|
+
* View settings do not affect what is in the mask, unless [[PlanarClipMaskSettings.subCategoryOrElementIds]] is undefined, in which case it behaves like Models mode.
|
|
44576
|
+
*/
|
|
44558
44577
|
PlanarClipMaskMode[PlanarClipMaskMode["ExcludeElements"] = 5] = "ExcludeElements";
|
|
44559
44578
|
})(PlanarClipMaskMode || (PlanarClipMaskMode = {}));
|
|
44560
44579
|
/** The default priority values for a [[PlanarClipMaskSettings]], based on model type. Models with a lower priority are masked by models with a higher priority.
|
|
@@ -50702,7 +50721,8 @@ class TextAnnotation {
|
|
|
50702
50721
|
/** Compute the transform that positions and orients this annotation relative to its anchor point, based on the [[textBlock]]'s computed bounding box.
|
|
50703
50722
|
* The anchor point is computed as specified by this annotation's [[anchor]] setting. For example, if the text block is anchored
|
|
50704
50723
|
* at the bottom left, then the transform will be relative to the bottom-left corner of `textBlockExtents`.
|
|
50705
|
-
* The text block will be rotated around the fixed anchor point according to [[orientation]], then
|
|
50724
|
+
* The text block will be rotated around the fixed anchor point according to [[orientation]], then translated by [[offset]].
|
|
50725
|
+
* The anchor point will coincide with (0, 0, 0).
|
|
50706
50726
|
* @param boundingBox A box fully containing the [[textBlock]].
|
|
50707
50727
|
* @see [[computeAnchorPoint]] to compute the transform's anchor point.
|
|
50708
50728
|
*/
|
|
@@ -50710,7 +50730,7 @@ class TextAnnotation {
|
|
|
50710
50730
|
const anchorPt = this.computeAnchorPoint(boundingBox);
|
|
50711
50731
|
const matrix = this.orientation.toMatrix3d();
|
|
50712
50732
|
const rotation = _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_0__.Transform.createFixedPointAndMatrix(anchorPt, matrix);
|
|
50713
|
-
const translation = _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_0__.Transform.createTranslation(this.offset);
|
|
50733
|
+
const translation = _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_0__.Transform.createTranslation(this.offset.minus(anchorPt));
|
|
50714
50734
|
return translation.multiplyTransformTransform(rotation, rotation);
|
|
50715
50735
|
}
|
|
50716
50736
|
/** Compute the anchor point of this annotation as specified by [[anchor]].
|
|
@@ -91177,10 +91197,8 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
91177
91197
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
91178
91198
|
/* harmony export */ "PlanarClipMaskState": () => (/* binding */ PlanarClipMaskState)
|
|
91179
91199
|
/* harmony export */ });
|
|
91180
|
-
/* harmony import */ var
|
|
91181
|
-
/* harmony import */ var
|
|
91182
|
-
/* harmony import */ var _render_FeatureSymbology__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./render/FeatureSymbology */ "../../core/frontend/lib/esm/render/FeatureSymbology.js");
|
|
91183
|
-
/* harmony import */ var _tile_internal__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./tile/internal */ "../../core/frontend/lib/esm/tile/internal.js");
|
|
91200
|
+
/* harmony import */ var _itwin_core_common__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @itwin/core-common */ "../../core/common/lib/esm/core-common.js");
|
|
91201
|
+
/* harmony import */ var _render_FeatureSymbology__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./render/FeatureSymbology */ "../../core/frontend/lib/esm/render/FeatureSymbology.js");
|
|
91184
91202
|
/*---------------------------------------------------------------------------------------------
|
|
91185
91203
|
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
91186
91204
|
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
@@ -91190,8 +91208,6 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
91190
91208
|
*/
|
|
91191
91209
|
|
|
91192
91210
|
|
|
91193
|
-
|
|
91194
|
-
|
|
91195
91211
|
/** The State of Planar Clip Mask applied to a reality model or background map.
|
|
91196
91212
|
* Handles loading models and their associated tiles for models that are used by masks but may not be otherwise loaded or displayed.
|
|
91197
91213
|
* @beta
|
|
@@ -91205,16 +91221,18 @@ class PlanarClipMaskState {
|
|
|
91205
91221
|
return new PlanarClipMaskState(settings);
|
|
91206
91222
|
}
|
|
91207
91223
|
static fromJSON(props) {
|
|
91208
|
-
return this.create(
|
|
91224
|
+
return this.create(_itwin_core_common__WEBPACK_IMPORTED_MODULE_0__.PlanarClipMaskSettings.fromJSON(props));
|
|
91209
91225
|
}
|
|
91210
91226
|
discloseTileTrees(trees) {
|
|
91211
91227
|
if (this._tileTreeRefs)
|
|
91212
91228
|
this._tileTreeRefs.forEach((treeRef) => treeRef.discloseTileTrees(trees));
|
|
91213
91229
|
}
|
|
91230
|
+
// Returns the TileTreeReferences for the models that need to be drawn to create the planar clip mask.
|
|
91214
91231
|
getTileTrees(view, classifiedModelId) {
|
|
91215
|
-
if (this.settings.mode ===
|
|
91232
|
+
if (this.settings.mode === _itwin_core_common__WEBPACK_IMPORTED_MODULE_0__.PlanarClipMaskMode.Priority) {
|
|
91233
|
+
// For priority mode we simply want refs for all viewed models if the priority is higher than the mask priority.
|
|
91216
91234
|
const viewTrees = new Array();
|
|
91217
|
-
const thisPriority = this.settings.priority === undefined ?
|
|
91235
|
+
const thisPriority = this.settings.priority === undefined ? _itwin_core_common__WEBPACK_IMPORTED_MODULE_0__.PlanarClipMaskPriority.RealityModel : this.settings.priority;
|
|
91218
91236
|
view.forEachTileTreeRef((ref) => {
|
|
91219
91237
|
const tree = ref.treeOwner.load();
|
|
91220
91238
|
if (tree && tree.modelId !== classifiedModelId && ref.planarclipMaskPriority > thisPriority)
|
|
@@ -91222,38 +91240,55 @@ class PlanarClipMaskState {
|
|
|
91222
91240
|
});
|
|
91223
91241
|
return viewTrees;
|
|
91224
91242
|
}
|
|
91243
|
+
// For all other modes we need to let the tree refs in the view state decide which refs need to be drawn
|
|
91244
|
+
// since batched tiles cannot turn on/off individual models just by their tile tree refs.
|
|
91225
91245
|
if (!this._tileTreeRefs) {
|
|
91226
91246
|
this._tileTreeRefs = new Array();
|
|
91227
|
-
if (this.settings.modelIds)
|
|
91228
|
-
|
|
91229
|
-
const model = view.iModel.models.getLoaded(modelId);
|
|
91230
|
-
(0,_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.assert)(model !== undefined); // Models should be loaded by RealityModelTileTree
|
|
91231
|
-
if (model?.asGeometricModel)
|
|
91232
|
-
this._tileTreeRefs.push((0,_tile_internal__WEBPACK_IMPORTED_MODULE_3__.createMaskTreeReference)(view, model.asGeometricModel));
|
|
91233
|
-
}
|
|
91234
|
-
}
|
|
91247
|
+
if (this.settings.modelIds)
|
|
91248
|
+
view.collectMaskRefs(this.settings.modelIds, this._tileTreeRefs);
|
|
91235
91249
|
}
|
|
91236
91250
|
if (!this._allLoaded)
|
|
91237
91251
|
this._allLoaded = this._tileTreeRefs.every((treeRef) => treeRef.treeOwner.load() !== undefined);
|
|
91238
91252
|
return this._allLoaded ? this._tileTreeRefs : undefined;
|
|
91239
91253
|
}
|
|
91240
|
-
|
|
91241
|
-
|
|
91254
|
+
// Returns any potential FeatureSymbology overrides for drawing the planar clip mask.
|
|
91255
|
+
getPlanarClipMaskSymbologyOverrides(view, context) {
|
|
91256
|
+
// 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).
|
|
91257
|
+
const overrideModels = view.getModelsNotInMask(this.settings.modelIds, _itwin_core_common__WEBPACK_IMPORTED_MODULE_0__.PlanarClipMaskMode.Priority === this.settings.mode);
|
|
91258
|
+
const noSubCategoryOrElementIds = !this.settings.subCategoryOrElementIds;
|
|
91259
|
+
if (noSubCategoryOrElementIds && !overrideModels)
|
|
91242
91260
|
return undefined;
|
|
91261
|
+
const overrides = new _render_FeatureSymbology__WEBPACK_IMPORTED_MODULE_1__.FeatureSymbology.Overrides();
|
|
91262
|
+
if (overrideModels) {
|
|
91263
|
+
// overrideModels is used for batched models. For those, we need to create model overrides to turn off models that are
|
|
91264
|
+
// not wanted in the mask (using transparency) no matter what mask mode is being used.
|
|
91265
|
+
const appOff = _itwin_core_common__WEBPACK_IMPORTED_MODULE_0__.FeatureAppearance.fromTransparency(1.0);
|
|
91266
|
+
// For Priority or Models mode, we need to start with the current overrides and modify them
|
|
91267
|
+
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) {
|
|
91268
|
+
const curOverrides = new _render_FeatureSymbology__WEBPACK_IMPORTED_MODULE_1__.FeatureSymbology.Overrides(context.viewport);
|
|
91269
|
+
curOverrides.addInvisibleElementOverridesToNeverDrawn(); // need this for fully trans element overrides to not participate in mask
|
|
91270
|
+
overrideModels.forEach((modelId) => {
|
|
91271
|
+
curOverrides.override({ modelId, appearance: appOff, onConflict: "replace" });
|
|
91272
|
+
});
|
|
91273
|
+
return curOverrides;
|
|
91274
|
+
}
|
|
91275
|
+
// Otherwise, we just start with a default overrides and modify it.
|
|
91276
|
+
overrideModels.forEach((modelId) => {
|
|
91277
|
+
overrides.override({ modelId, appearance: appOff, onConflict: "replace" });
|
|
91278
|
+
});
|
|
91279
|
+
}
|
|
91280
|
+
// Add overrides to turn things on or off based on the subcategories or elements in the mask settings.
|
|
91243
91281
|
switch (this.settings.mode) {
|
|
91244
|
-
case
|
|
91245
|
-
const overrides = new _render_FeatureSymbology__WEBPACK_IMPORTED_MODULE_2__.FeatureSymbology.Overrides();
|
|
91282
|
+
case _itwin_core_common__WEBPACK_IMPORTED_MODULE_0__.PlanarClipMaskMode.IncludeElements: {
|
|
91246
91283
|
overrides.setAlwaysDrawnSet(this.settings.subCategoryOrElementIds, true);
|
|
91247
91284
|
return overrides;
|
|
91248
91285
|
}
|
|
91249
|
-
case
|
|
91250
|
-
const overrides = new _render_FeatureSymbology__WEBPACK_IMPORTED_MODULE_2__.FeatureSymbology.Overrides();
|
|
91286
|
+
case _itwin_core_common__WEBPACK_IMPORTED_MODULE_0__.PlanarClipMaskMode.ExcludeElements: {
|
|
91251
91287
|
overrides.ignoreSubCategory = true;
|
|
91252
91288
|
overrides.setNeverDrawnSet(this.settings.subCategoryOrElementIds);
|
|
91253
91289
|
return overrides;
|
|
91254
91290
|
}
|
|
91255
|
-
case
|
|
91256
|
-
const overrides = new _render_FeatureSymbology__WEBPACK_IMPORTED_MODULE_2__.FeatureSymbology.Overrides();
|
|
91291
|
+
case _itwin_core_common__WEBPACK_IMPORTED_MODULE_0__.PlanarClipMaskMode.IncludeSubCategories: {
|
|
91257
91292
|
for (const subCategoryId of this.settings.subCategoryOrElementIds)
|
|
91258
91293
|
overrides.setVisibleSubCategory(subCategoryId);
|
|
91259
91294
|
return overrides;
|
|
@@ -93503,6 +93538,22 @@ class SpatialViewState extends _ViewState__WEBPACK_IMPORTED_MODULE_6__.ViewState
|
|
|
93503
93538
|
setTileTreeReferencesDeactivated(modelIds, deactivated, which) {
|
|
93504
93539
|
this._treeRefs.setDeactivated(modelIds, deactivated, which);
|
|
93505
93540
|
}
|
|
93541
|
+
/** For getting the [TileTreeReference]s that are in the modelIds, for planar classification.
|
|
93542
|
+
* @param modelIds modelIds for which to get the TileTreeReferences
|
|
93543
|
+
* @param maskTreeRefs where to store the TileTreeReferences
|
|
93544
|
+
* @internal
|
|
93545
|
+
*/
|
|
93546
|
+
collectMaskRefs(modelIds, maskTreeRefs) {
|
|
93547
|
+
this._treeRefs.collectMaskRefs(modelIds, maskTreeRefs);
|
|
93548
|
+
}
|
|
93549
|
+
/** For getting a list of modelIds which do not participate in masking for planar classification.
|
|
93550
|
+
* @param maskModels models which DO participate in planar clip masking
|
|
93551
|
+
* @param useVisible when true, use visible models to set flag
|
|
93552
|
+
* @internal
|
|
93553
|
+
*/
|
|
93554
|
+
getModelsNotInMask(maskModels, useVisible) {
|
|
93555
|
+
return this._treeRefs.getModelsNotInMask(maskModels, useVisible);
|
|
93556
|
+
}
|
|
93506
93557
|
registerModelSelectorListeners() {
|
|
93507
93558
|
const models = this.modelSelector.observableModels;
|
|
93508
93559
|
const func = () => {
|
|
@@ -123569,7 +123620,7 @@ class PlanarClassifier extends _RenderPlanarClassifier__WEBPACK_IMPORTED_MODULE_
|
|
|
123569
123620
|
if (undefined === context.viewingSpace)
|
|
123570
123621
|
return;
|
|
123571
123622
|
const viewState = context.viewingSpace.view;
|
|
123572
|
-
if (
|
|
123623
|
+
if (!viewState.isSpatialView())
|
|
123573
123624
|
return;
|
|
123574
123625
|
const requiredHeight = context.target.viewRect.height;
|
|
123575
123626
|
const requiredWidth = context.target.viewRect.width;
|
|
@@ -123589,7 +123640,7 @@ class PlanarClassifier extends _RenderPlanarClassifier__WEBPACK_IMPORTED_MODULE_
|
|
|
123589
123640
|
this._projectionMatrix = projection.projectionMatrix;
|
|
123590
123641
|
this._frustum = projection.textureFrustum;
|
|
123591
123642
|
this._debugFrustum = projection.debugFrustum;
|
|
123592
|
-
this._planarClipMaskOverrides = this._planarClipMask?.getPlanarClipMaskSymbologyOverrides();
|
|
123643
|
+
this._planarClipMaskOverrides = this._planarClipMask?.getPlanarClipMaskSymbologyOverrides(viewState, context);
|
|
123593
123644
|
const drawTree = (treeRef, graphics) => {
|
|
123594
123645
|
this._graphics = graphics;
|
|
123595
123646
|
const frustumPlanes = this._frustum ? _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.FrustumPlanes.fromFrustum(this._frustum) : _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.FrustumPlanes.createEmpty();
|
|
@@ -146869,8 +146920,11 @@ class GraphicsCollectorDrawArgs extends _internal__WEBPACK_IMPORTED_MODULE_0__.T
|
|
|
146869
146920
|
this._collector.addGraphic(this.context.createBranch(graphics, this.location));
|
|
146870
146921
|
}
|
|
146871
146922
|
drawGraphics() {
|
|
146872
|
-
if (!this.graphics.isEmpty)
|
|
146873
|
-
|
|
146923
|
+
if (!this.graphics.isEmpty) {
|
|
146924
|
+
const graphics = this.produceGraphics();
|
|
146925
|
+
if (undefined !== graphics)
|
|
146926
|
+
this._collector.addGraphic(graphics);
|
|
146927
|
+
}
|
|
146874
146928
|
}
|
|
146875
146929
|
static create(context, collector, ref, planes, worldToViewMap) {
|
|
146876
146930
|
const args = ref.createDrawArgs(context);
|
|
@@ -150256,6 +150310,26 @@ class SpatialRefs {
|
|
|
150256
150310
|
for (const modelId of modelIds)
|
|
150257
150311
|
this._refs.get(modelId)?.setDeactivated(deactivated, refs);
|
|
150258
150312
|
}
|
|
150313
|
+
/** For getting the [TileTreeReference]s that are in the modelIds, for planar classification.
|
|
150314
|
+
* @param modelIds modelIds for which to get the TileTreeReferences
|
|
150315
|
+
* @param maskTreeRefs where to store the TileTreeReferences
|
|
150316
|
+
* @internal
|
|
150317
|
+
*/
|
|
150318
|
+
collectMaskRefs(modelIds, maskTreeRefs) {
|
|
150319
|
+
for (const modelId of modelIds) {
|
|
150320
|
+
if (!this._excludedModels?.has(modelId)) {
|
|
150321
|
+
const model = this._view.iModel.models.getLoaded(modelId);
|
|
150322
|
+
(0,_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.assert)(model !== undefined); // Models should be loaded by RealityModelTileTree
|
|
150323
|
+
if (model?.asGeometricModel)
|
|
150324
|
+
maskTreeRefs.push(createMaskTreeReference(this._view, model.asGeometricModel));
|
|
150325
|
+
}
|
|
150326
|
+
}
|
|
150327
|
+
}
|
|
150328
|
+
/** For getting a list of modelIds which do not participate in masking, for planar classification.
|
|
150329
|
+
* For non-batched tile trees this is not needed, so just return undefined.
|
|
150330
|
+
* @internal
|
|
150331
|
+
*/
|
|
150332
|
+
getModelsNotInMask(_maskModels, _useVisible) { return undefined; }
|
|
150259
150333
|
load() {
|
|
150260
150334
|
if (!this._allLoaded) {
|
|
150261
150335
|
this._allLoaded = true;
|
|
@@ -196366,11 +196440,11 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
196366
196440
|
/* harmony export */ "AnnotatedLineString3d": () => (/* binding */ AnnotatedLineString3d),
|
|
196367
196441
|
/* harmony export */ "LineString3d": () => (/* binding */ LineString3d)
|
|
196368
196442
|
/* harmony export */ });
|
|
196369
|
-
/* harmony import */ var
|
|
196443
|
+
/* harmony import */ var _Geometry__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Geometry */ "../../core/geometry/lib/esm/Geometry.js");
|
|
196370
196444
|
/* harmony import */ var _geometry3d_Angle__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../geometry3d/Angle */ "../../core/geometry/lib/esm/geometry3d/Angle.js");
|
|
196371
196445
|
/* harmony import */ var _geometry3d_GrowableFloat64Array__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../geometry3d/GrowableFloat64Array */ "../../core/geometry/lib/esm/geometry3d/GrowableFloat64Array.js");
|
|
196372
196446
|
/* harmony import */ var _geometry3d_GrowableXYArray__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../geometry3d/GrowableXYArray */ "../../core/geometry/lib/esm/geometry3d/GrowableXYArray.js");
|
|
196373
|
-
/* harmony import */ var
|
|
196447
|
+
/* harmony import */ var _geometry3d_GrowableXYZArray__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../geometry3d/GrowableXYZArray */ "../../core/geometry/lib/esm/geometry3d/GrowableXYZArray.js");
|
|
196374
196448
|
/* harmony import */ var _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../geometry3d/Matrix3d */ "../../core/geometry/lib/esm/geometry3d/Matrix3d.js");
|
|
196375
196449
|
/* harmony import */ var _geometry3d_Plane3dByOriginAndVectors__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../geometry3d/Plane3dByOriginAndVectors */ "../../core/geometry/lib/esm/geometry3d/Plane3dByOriginAndVectors.js");
|
|
196376
196450
|
/* harmony import */ var _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../geometry3d/Point3dVector3d */ "../../core/geometry/lib/esm/geometry3d/Point3dVector3d.js");
|
|
@@ -196380,7 +196454,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
196380
196454
|
/* harmony import */ var _geometry3d_Transform__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../geometry3d/Transform */ "../../core/geometry/lib/esm/geometry3d/Transform.js");
|
|
196381
196455
|
/* harmony import */ var _CurveExtendMode__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./CurveExtendMode */ "../../core/geometry/lib/esm/curve/CurveExtendMode.js");
|
|
196382
196456
|
/* harmony import */ var _CurveLocationDetail__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./CurveLocationDetail */ "../../core/geometry/lib/esm/curve/CurveLocationDetail.js");
|
|
196383
|
-
/* harmony import */ var
|
|
196457
|
+
/* harmony import */ var _CurvePrimitive__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./CurvePrimitive */ "../../core/geometry/lib/esm/curve/CurvePrimitive.js");
|
|
196384
196458
|
/* harmony import */ var _internalContexts_PlaneAltitudeRangeContext__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./internalContexts/PlaneAltitudeRangeContext */ "../../core/geometry/lib/esm/curve/internalContexts/PlaneAltitudeRangeContext.js");
|
|
196385
196459
|
/* harmony import */ var _LineSegment3d__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./LineSegment3d */ "../../core/geometry/lib/esm/curve/LineSegment3d.js");
|
|
196386
196460
|
/* harmony import */ var _OffsetOptions__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./OffsetOptions */ "../../core/geometry/lib/esm/curve/OffsetOptions.js");
|
|
@@ -196405,10 +196479,10 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
196405
196479
|
|
|
196406
196480
|
|
|
196407
196481
|
/**
|
|
196408
|
-
* Starting with
|
|
196409
|
-
* If the vector
|
|
196410
|
-
*
|
|
196411
|
-
*
|
|
196482
|
+
* Starting with the segment at (baseIndex, baseIndex + 1):
|
|
196483
|
+
* * If the segment vector and vectorA determine a normal, accumulate it (scaled) to normal, and return.
|
|
196484
|
+
* * Otherwise move to next/previous segment if stepDirection is positive/negative and repeat.
|
|
196485
|
+
* * Do nothing if everything is parallel through the end of the array.
|
|
196412
196486
|
*/
|
|
196413
196487
|
function accumulateGoodUnitPerpendicular(points, vectorA, baseIndex, stepDirection, weight, normal, workVector) {
|
|
196414
196488
|
const n = points.length;
|
|
@@ -196418,6 +196492,8 @@ function accumulateGoodUnitPerpendicular(points, vectorA, baseIndex, stepDirecti
|
|
|
196418
196492
|
vectorA.crossProduct(workVector, workVector);
|
|
196419
196493
|
if (workVector.normalizeInPlace()) {
|
|
196420
196494
|
normal.addScaledInPlace(workVector, weight);
|
|
196495
|
+
if (normal.isAlmostEqualXYZ(0, 0, 0, _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.smallFraction))
|
|
196496
|
+
workVector.scale(-weight, normal); // Concavity changed! Revert to previous
|
|
196421
196497
|
return true;
|
|
196422
196498
|
}
|
|
196423
196499
|
}
|
|
@@ -196430,6 +196506,8 @@ function accumulateGoodUnitPerpendicular(points, vectorA, baseIndex, stepDirecti
|
|
|
196430
196506
|
workVector.crossProduct(vectorA, workVector);
|
|
196431
196507
|
if (workVector.normalizeInPlace()) {
|
|
196432
196508
|
normal.addScaledInPlace(workVector, weight);
|
|
196509
|
+
if (normal.isAlmostEqualXYZ(0, 0, 0, _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.smallFraction))
|
|
196510
|
+
workVector.scale(-weight, normal); // Concavity changed! Revert to previous
|
|
196433
196511
|
return true;
|
|
196434
196512
|
}
|
|
196435
196513
|
}
|
|
@@ -196448,7 +196526,7 @@ function accumulateGoodUnitPerpendicular(points, vectorA, baseIndex, stepDirecti
|
|
|
196448
196526
|
* * Use `moveSignedDistanceFromFraction` to do true-length evaluations.
|
|
196449
196527
|
* @public
|
|
196450
196528
|
*/
|
|
196451
|
-
class LineString3d extends
|
|
196529
|
+
class LineString3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_1__.CurvePrimitive {
|
|
196452
196530
|
/** test if `other` is an instance of `LineString3d` */
|
|
196453
196531
|
isSameGeometryClass(other) {
|
|
196454
196532
|
return other instanceof LineString3d;
|
|
@@ -196505,7 +196583,7 @@ class LineString3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePri
|
|
|
196505
196583
|
if (points)
|
|
196506
196584
|
this._points = points;
|
|
196507
196585
|
else
|
|
196508
|
-
this._points = new
|
|
196586
|
+
this._points = new _geometry3d_GrowableXYZArray__WEBPACK_IMPORTED_MODULE_2__.GrowableXYZArray();
|
|
196509
196587
|
}
|
|
196510
196588
|
/** Clone this linestring and apply the transform to the clone points. */
|
|
196511
196589
|
cloneTransformed(transform) {
|
|
@@ -196536,7 +196614,7 @@ class LineString3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePri
|
|
|
196536
196614
|
if (enforceClosure && points.length > 1) {
|
|
196537
196615
|
const distance = xyz.distanceIndexIndex(0, xyz.length - 1);
|
|
196538
196616
|
if (distance !== undefined && distance !== 0.0) {
|
|
196539
|
-
if (
|
|
196617
|
+
if (_Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.isSameCoordinate(0, distance)) {
|
|
196540
196618
|
xyz.pop(); // nonzero but small distance -- to be replaced by point 0 exactly.
|
|
196541
196619
|
const xyzA = xyz.front();
|
|
196542
196620
|
xyz.push(xyzA);
|
|
@@ -196611,7 +196689,7 @@ class LineString3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePri
|
|
|
196611
196689
|
ensureEmptySurfaceNormals() {
|
|
196612
196690
|
const n = this.numPoints();
|
|
196613
196691
|
if (!this._surfaceNormals) {
|
|
196614
|
-
this._surfaceNormals = new
|
|
196692
|
+
this._surfaceNormals = new _geometry3d_GrowableXYZArray__WEBPACK_IMPORTED_MODULE_2__.GrowableXYZArray(n);
|
|
196615
196693
|
return this._surfaceNormals;
|
|
196616
196694
|
}
|
|
196617
196695
|
this._surfaceNormals.clear();
|
|
@@ -196622,7 +196700,7 @@ class LineString3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePri
|
|
|
196622
196700
|
ensureEmptyDerivatives() {
|
|
196623
196701
|
const n = this.numPoints();
|
|
196624
196702
|
if (!this._derivatives) {
|
|
196625
|
-
this._derivatives = new
|
|
196703
|
+
this._derivatives = new _geometry3d_GrowableXYZArray__WEBPACK_IMPORTED_MODULE_2__.GrowableXYZArray(n);
|
|
196626
196704
|
return this._derivatives;
|
|
196627
196705
|
}
|
|
196628
196706
|
this._derivatives.clear();
|
|
@@ -196686,7 +196764,7 @@ class LineString3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePri
|
|
|
196686
196764
|
*/
|
|
196687
196765
|
addDerivative(vector) {
|
|
196688
196766
|
if (!this._derivatives)
|
|
196689
|
-
this._derivatives = new
|
|
196767
|
+
this._derivatives = new _geometry3d_GrowableXYZArray__WEBPACK_IMPORTED_MODULE_2__.GrowableXYZArray();
|
|
196690
196768
|
this._derivatives.push(vector);
|
|
196691
196769
|
}
|
|
196692
196770
|
/**
|
|
@@ -196695,13 +196773,13 @@ class LineString3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePri
|
|
|
196695
196773
|
*/
|
|
196696
196774
|
addSurfaceNormal(vector) {
|
|
196697
196775
|
if (!this._surfaceNormals)
|
|
196698
|
-
this._surfaceNormals = new
|
|
196776
|
+
this._surfaceNormals = new _geometry3d_GrowableXYZArray__WEBPACK_IMPORTED_MODULE_2__.GrowableXYZArray();
|
|
196699
196777
|
this._surfaceNormals.push(vector);
|
|
196700
196778
|
}
|
|
196701
196779
|
/** If the linestring is not already closed, add a closure point. */
|
|
196702
196780
|
addClosurePoint() {
|
|
196703
196781
|
const distance = this._points.distanceIndexIndex(0, this._points.length - 1);
|
|
196704
|
-
if (distance !== undefined && !
|
|
196782
|
+
if (distance !== undefined && !_Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.isSameCoordinate(distance, 0))
|
|
196705
196783
|
this._points.pushWrap(1);
|
|
196706
196784
|
}
|
|
196707
196785
|
/** Eliminate (but do not return!!) the final point of the linestring */
|
|
@@ -196990,7 +197068,7 @@ class LineString3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePri
|
|
|
196990
197068
|
return _geometry3d_Transform__WEBPACK_IMPORTED_MODULE_9__.Transform.createIdentity(result);
|
|
196991
197069
|
}
|
|
196992
197070
|
if (n === 2)
|
|
196993
|
-
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),
|
|
197071
|
+
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));
|
|
196994
197072
|
/** 3 or more points. */
|
|
196995
197073
|
const numSegment = n - 1;
|
|
196996
197074
|
const df = 1.0 / numSegment;
|
|
@@ -197023,7 +197101,7 @@ class LineString3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePri
|
|
|
197023
197101
|
accumulateGoodUnitPerpendicular(this._points, vectorA, baseIndex - 1, -1, (1.0 - localFraction), normal, workVector);
|
|
197024
197102
|
accumulateGoodUnitPerpendicular(this._points, vectorA, baseIndex + 1, 1, (localFraction), normal, workVector);
|
|
197025
197103
|
}
|
|
197026
|
-
const matrix = _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_10__.Matrix3d.createRigidFromColumns(normal, vectorA,
|
|
197104
|
+
const matrix = _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_10__.Matrix3d.createRigidFromColumns(normal, vectorA, _Geometry__WEBPACK_IMPORTED_MODULE_0__.AxisOrder.ZXY);
|
|
197027
197105
|
if (matrix)
|
|
197028
197106
|
return _geometry3d_Transform__WEBPACK_IMPORTED_MODULE_9__.Transform.createOriginAndMatrix(origin, matrix, result);
|
|
197029
197107
|
return _geometry3d_Transform__WEBPACK_IMPORTED_MODULE_9__.Transform.createTranslation(origin, result);
|
|
@@ -197158,7 +197236,7 @@ class LineString3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePri
|
|
|
197158
197236
|
moveSignedDistanceFromFraction(startFraction, signedDistance, allowExtension, result) {
|
|
197159
197237
|
const numSegments = this._points.length - 1;
|
|
197160
197238
|
const scaledFraction = startFraction * numSegments;
|
|
197161
|
-
let leftPointIndex =
|
|
197239
|
+
let leftPointIndex = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.restrictToInterval(Math.floor(scaledFraction), 0, numSegments - 1); // lower point index on active segment.
|
|
197162
197240
|
const localFraction = scaledFraction - leftPointIndex;
|
|
197163
197241
|
const point0 = this._points.interpolate(leftPointIndex, localFraction, leftPointIndex + 1, LineString3d._workPointA);
|
|
197164
197242
|
const point1 = LineString3d._workPointB;
|
|
@@ -197244,7 +197322,7 @@ class LineString3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePri
|
|
|
197244
197322
|
}
|
|
197245
197323
|
/** Test if all points of the linestring are in a plane. */
|
|
197246
197324
|
isInPlane(plane) {
|
|
197247
|
-
return this._points.isCloseToPlane(plane,
|
|
197325
|
+
return this._points.isCloseToPlane(plane, _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.smallMetricDistance);
|
|
197248
197326
|
}
|
|
197249
197327
|
/** Push a hit, fixing up the prior entry if needed. */
|
|
197250
197328
|
static pushVertexHit(result, counter, cp, fraction, point) {
|
|
@@ -197283,7 +197361,7 @@ class LineString3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePri
|
|
|
197283
197361
|
let segmentFraction = 0;
|
|
197284
197362
|
for (let i = 0; i < this._points.length; i++, pointA.setFrom(pointB), hA = hB) {
|
|
197285
197363
|
this._points.getPoint3dAtUncheckedPointIndex(i, pointB);
|
|
197286
|
-
hB =
|
|
197364
|
+
hB = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.correctSmallMetricDistance(plane.altitude(pointB));
|
|
197287
197365
|
if (hB === 0.0)
|
|
197288
197366
|
LineString3d.pushVertexHit(result, numConsecutiveZero++, this, i / divisor, pointB);
|
|
197289
197367
|
else {
|
|
@@ -197307,7 +197385,7 @@ class LineString3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePri
|
|
|
197307
197385
|
isAlmostEqual(other) {
|
|
197308
197386
|
if (!(other instanceof LineString3d))
|
|
197309
197387
|
return false;
|
|
197310
|
-
if (!
|
|
197388
|
+
if (!_geometry3d_GrowableXYZArray__WEBPACK_IMPORTED_MODULE_2__.GrowableXYZArray.isAlmostEqual(this._points, other._points))
|
|
197311
197389
|
return false;
|
|
197312
197390
|
return true;
|
|
197313
197391
|
}
|
|
@@ -197321,7 +197399,7 @@ class LineString3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePri
|
|
|
197321
197399
|
let add = true;
|
|
197322
197400
|
const addFraction = fraction !== undefined && this._fractions !== undefined;
|
|
197323
197401
|
if (n > 0) {
|
|
197324
|
-
if (addFraction &&
|
|
197402
|
+
if (addFraction && _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.isSameCoordinate(fraction, this._fractions.back()))
|
|
197325
197403
|
add = false;
|
|
197326
197404
|
if (point.isAlmostEqual(this._points.getPoint3dAtUncheckedPointIndex(n - 1)))
|
|
197327
197405
|
add = false;
|
|
@@ -197333,7 +197411,7 @@ class LineString3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePri
|
|
|
197333
197411
|
}
|
|
197334
197412
|
}
|
|
197335
197413
|
/** Compress out duplicate points (according to point.isAlmostEqual) */
|
|
197336
|
-
removeDuplicatePoints(tolerance =
|
|
197414
|
+
removeDuplicatePoints(tolerance = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.smallMetricDistance) {
|
|
197337
197415
|
const n = this._points.length;
|
|
197338
197416
|
if (n < 2)
|
|
197339
197417
|
return;
|
|
@@ -197407,8 +197485,8 @@ class LineString3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePri
|
|
|
197407
197485
|
ls._uvParams = new _geometry3d_GrowableXYArray__WEBPACK_IMPORTED_MODULE_4__.GrowableXYArray(capacity);
|
|
197408
197486
|
}
|
|
197409
197487
|
if (options.needNormals) {
|
|
197410
|
-
ls._derivatives = new
|
|
197411
|
-
ls._surfaceNormals = new
|
|
197488
|
+
ls._derivatives = new _geometry3d_GrowableXYZArray__WEBPACK_IMPORTED_MODULE_2__.GrowableXYZArray(capacity);
|
|
197489
|
+
ls._surfaceNormals = new _geometry3d_GrowableXYZArray__WEBPACK_IMPORTED_MODULE_2__.GrowableXYZArray(capacity);
|
|
197412
197490
|
}
|
|
197413
197491
|
}
|
|
197414
197492
|
return ls;
|
|
@@ -197537,7 +197615,7 @@ class LineString3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePri
|
|
|
197537
197615
|
const numStrokeOnSegment = applyOptions ? options.applyMaxEdgeLength(1, segmentLength) : 1;
|
|
197538
197616
|
myData.addToCountAndLength(numStrokeOnSegment, segmentLength);
|
|
197539
197617
|
}
|
|
197540
|
-
|
|
197618
|
+
_CurvePrimitive__WEBPACK_IMPORTED_MODULE_1__.CurvePrimitive.installStrokeCountMap(this, myData, parentStrokeMap);
|
|
197541
197619
|
}
|
|
197542
197620
|
/** Second step of double dispatch: call `handler.handleLineString3d(this)` */
|
|
197543
197621
|
dispatchToGeometryHandler(handler) {
|
|
@@ -197560,7 +197638,7 @@ class LineString3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePri
|
|
|
197560
197638
|
let globalFractionB = 1.0;
|
|
197561
197639
|
const capture = (localFraction0, localFraction1) => {
|
|
197562
197640
|
if (announce)
|
|
197563
|
-
announce(
|
|
197641
|
+
announce(_Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.interpolate(globalFractionA, localFraction0, globalFractionB), _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.interpolate(globalFractionA, localFraction1, globalFractionB), this);
|
|
197564
197642
|
};
|
|
197565
197643
|
const pointA = LineString3d._workPointA;
|
|
197566
197644
|
const pointB = LineString3d._workPointB;
|
|
@@ -197623,7 +197701,7 @@ class LineString3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePri
|
|
|
197623
197701
|
index0 = 1; // first original vertex is not in clone
|
|
197624
197702
|
}
|
|
197625
197703
|
else if (0 <= fractionA && fractionA <= 1) {
|
|
197626
|
-
index0 =
|
|
197704
|
+
index0 = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.isSmallRelative(1 - localA.fraction) ? localA.index + 2 : localA.index + 1;
|
|
197627
197705
|
}
|
|
197628
197706
|
else { // 1 < fractionA
|
|
197629
197707
|
index0 = n; // no original vertices in clone
|
|
@@ -197632,7 +197710,7 @@ class LineString3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePri
|
|
|
197632
197710
|
index1 = -1; // no original vertices in clone
|
|
197633
197711
|
}
|
|
197634
197712
|
else if (0 <= fractionB && fractionB <= 1) {
|
|
197635
|
-
index1 =
|
|
197713
|
+
index1 = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.isSmallRelative(localB.fraction) ? localB.index - 1 : localB.index;
|
|
197636
197714
|
}
|
|
197637
197715
|
else { // 1 < fractionB
|
|
197638
197716
|
index1 = n - 2; // last original vertex is not in clone
|
|
@@ -197656,7 +197734,7 @@ class LineString3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePri
|
|
|
197656
197734
|
}
|
|
197657
197735
|
/** Returns true if first and last points are within metric tolerance. */
|
|
197658
197736
|
get isPhysicallyClosed() {
|
|
197659
|
-
return this._points.length > 0 &&
|
|
197737
|
+
return this._points.length > 0 && _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.isSmallMetricDistance(this._points.distanceIndexIndex(0, this._points.length - 1));
|
|
197660
197738
|
}
|
|
197661
197739
|
/**
|
|
197662
197740
|
* Evaluate strokes at fractions indicated in a StrokeCountMap.
|
|
@@ -197742,7 +197820,7 @@ class LineString3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePri
|
|
|
197742
197820
|
for (const seg of this.collectCurvePrimitives(undefined, true, true)) {
|
|
197743
197821
|
const offset = seg.constructOffsetXY(options);
|
|
197744
197822
|
if (offset !== undefined) {
|
|
197745
|
-
if (offset instanceof
|
|
197823
|
+
if (offset instanceof _CurvePrimitive__WEBPACK_IMPORTED_MODULE_1__.CurvePrimitive)
|
|
197746
197824
|
offsets.push(offset);
|
|
197747
197825
|
else if (Array.isArray(offset))
|
|
197748
197826
|
offset.forEach((cp) => offsets.push(cp));
|
|
@@ -197807,7 +197885,7 @@ class MoveByDistanceContext {
|
|
|
197807
197885
|
}
|
|
197808
197886
|
// Return CurveSearchStatus indicating whether the accumulated distance has reached the target.
|
|
197809
197887
|
distanceStatus() {
|
|
197810
|
-
return
|
|
197888
|
+
return _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.isSameCoordinate(this.distance0, this.targetDistance) ?
|
|
197811
197889
|
_CurveLocationDetail__WEBPACK_IMPORTED_MODULE_12__.CurveSearchStatus.success : _CurveLocationDetail__WEBPACK_IMPORTED_MODULE_12__.CurveSearchStatus.stoppedAtBoundary;
|
|
197812
197890
|
}
|
|
197813
197891
|
/**
|
|
@@ -197826,16 +197904,16 @@ class MoveByDistanceContext {
|
|
|
197826
197904
|
announcePoint(point1, fraction1) {
|
|
197827
197905
|
const a = this.point0.distance(point1);
|
|
197828
197906
|
const distance1 = this.distance0 + a;
|
|
197829
|
-
if (distance1 < this.targetDistance && !
|
|
197907
|
+
if (distance1 < this.targetDistance && !_Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.isSameCoordinate(distance1, this.targetDistance)) {
|
|
197830
197908
|
this.point0.setFromPoint3d(point1);
|
|
197831
197909
|
this.distance0 = distance1;
|
|
197832
197910
|
this.fraction0 = fraction1;
|
|
197833
197911
|
return false;
|
|
197834
197912
|
}
|
|
197835
197913
|
const b = this.targetDistance - this.distance0;
|
|
197836
|
-
const intervalFraction =
|
|
197914
|
+
const intervalFraction = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.safeDivideFraction(b, a, 0.0);
|
|
197837
197915
|
this.point0.interpolate(intervalFraction, point1, this.point0);
|
|
197838
|
-
this.fraction0 =
|
|
197916
|
+
this.fraction0 = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.interpolate(this.fraction0, intervalFraction, fraction1);
|
|
197839
197917
|
this.distance0 = this.targetDistance;
|
|
197840
197918
|
return true;
|
|
197841
197919
|
}
|
|
@@ -197855,14 +197933,14 @@ class MoveByDistanceContext {
|
|
|
197855
197933
|
const d01 = points.distanceIndexIndex(index0, index1);
|
|
197856
197934
|
if (!d01)
|
|
197857
197935
|
return false;
|
|
197858
|
-
const extensionFraction =
|
|
197936
|
+
const extensionFraction = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.conditionalDivideFraction(residual, d01);
|
|
197859
197937
|
if (extensionFraction === undefined)
|
|
197860
197938
|
return false;
|
|
197861
197939
|
// (Remark: indices are swapped and extensionFraction negated to prevent incidental precision
|
|
197862
197940
|
// loss with the alternative call with (index0, 1 + extensionFraction, index1);
|
|
197863
197941
|
points.interpolate(index1, -extensionFraction, index0, this.point0);
|
|
197864
197942
|
this.distance0 = this.targetDistance;
|
|
197865
|
-
this.fraction0 =
|
|
197943
|
+
this.fraction0 = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.interpolate(fraction1, -extensionFraction, fraction0);
|
|
197866
197944
|
return true;
|
|
197867
197945
|
}
|
|
197868
197946
|
}
|
|
@@ -290623,7 +290701,7 @@ class TestContext {
|
|
|
290623
290701
|
this.initializeRpcInterfaces({ title: this.settings.Backend.name, version: this.settings.Backend.version });
|
|
290624
290702
|
const iModelClient = new imodels_client_management_1.IModelsClient({ api: { baseUrl: `https://${process.env.IMJS_URL_PREFIX ?? ""}api.bentley.com/imodels` } });
|
|
290625
290703
|
await core_frontend_1.NoRenderApp.startup({
|
|
290626
|
-
applicationVersion: "4.8.0-dev.
|
|
290704
|
+
applicationVersion: "4.8.0-dev.5",
|
|
290627
290705
|
applicationId: this.settings.gprid,
|
|
290628
290706
|
authorizationClient: new frontend_1.TestFrontendAuthorizationClient(this.adminUserAccessToken),
|
|
290629
290707
|
hubAccess: new imodels_access_frontend_1.FrontendIModelsAccess(iModelClient),
|
|
@@ -314616,7 +314694,7 @@ function __disposeResources(env) {
|
|
|
314616
314694
|
/***/ ((module) => {
|
|
314617
314695
|
|
|
314618
314696
|
"use strict";
|
|
314619
|
-
module.exports = JSON.parse('{"name":"@itwin/core-frontend","version":"4.8.0-dev.
|
|
314697
|
+
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"}}');
|
|
314620
314698
|
|
|
314621
314699
|
/***/ }),
|
|
314622
314700
|
|