@itwin/ecschema-rpcinterface-tests 4.7.4 → 4.7.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/dist/_bea9.bundled-tests.js.map +1 -1
- package/lib/dist/bundled-tests.js +165 -50
- 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 +16 -16
|
@@ -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\\6\\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":""}
|
|
@@ -84788,6 +84788,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
84788
84788
|
/* harmony export */ });
|
|
84789
84789
|
/* harmony import */ var _itwin_core_common__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @itwin/core-common */ "../../core/common/lib/esm/core-common.js");
|
|
84790
84790
|
/* harmony import */ var _render_FeatureSymbology__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./render/FeatureSymbology */ "../../core/frontend/lib/esm/render/FeatureSymbology.js");
|
|
84791
|
+
/* harmony import */ var _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @itwin/core-geometry */ "../../core/geometry/lib/esm/core-geometry.js");
|
|
84791
84792
|
/*---------------------------------------------------------------------------------------------
|
|
84792
84793
|
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
84793
84794
|
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
@@ -84797,6 +84798,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
84797
84798
|
*/
|
|
84798
84799
|
|
|
84799
84800
|
|
|
84801
|
+
|
|
84800
84802
|
/** The State of Planar Clip Mask applied to a reality model or background map.
|
|
84801
84803
|
* Handles loading models and their associated tiles for models that are used by masks but may not be otherwise loaded or displayed.
|
|
84802
84804
|
* @beta
|
|
@@ -84805,6 +84807,7 @@ class PlanarClipMaskState {
|
|
|
84805
84807
|
constructor(settings) {
|
|
84806
84808
|
this._allLoaded = false;
|
|
84807
84809
|
this._usingViewportOverrides = false;
|
|
84810
|
+
this._maskRange = _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_2__.Range3d.createNull();
|
|
84808
84811
|
this.settings = settings;
|
|
84809
84812
|
}
|
|
84810
84813
|
static create(settings) {
|
|
@@ -84819,10 +84822,11 @@ class PlanarClipMaskState {
|
|
|
84819
84822
|
if (this._tileTreeRefs)
|
|
84820
84823
|
this._tileTreeRefs.forEach((treeRef) => treeRef.discloseTileTrees(trees));
|
|
84821
84824
|
}
|
|
84822
|
-
// Returns the TileTreeReferences for the models that need to be drawn to create the planar clip mask.
|
|
84823
|
-
getTileTrees(view, classifiedModelId) {
|
|
84825
|
+
// Returns the TileTreeReferences for the models that need to be drawn to create the planar clip mask, and extend the maskRange if needed.
|
|
84826
|
+
getTileTrees(view, classifiedModelId, maskRange) {
|
|
84824
84827
|
if (this.settings.mode === _itwin_core_common__WEBPACK_IMPORTED_MODULE_0__.PlanarClipMaskMode.Priority) {
|
|
84825
84828
|
// For priority mode we simply want refs for all viewed models if the priority is higher than the mask priority.
|
|
84829
|
+
// For this case, we don't need a maskRange so leave it as null.
|
|
84826
84830
|
const viewTrees = new Array();
|
|
84827
84831
|
const thisPriority = this.settings.priority === undefined ? _itwin_core_common__WEBPACK_IMPORTED_MODULE_0__.PlanarClipMaskPriority.RealityModel : this.settings.priority;
|
|
84828
84832
|
view.forEachTileTreeRef((ref) => {
|
|
@@ -84834,13 +84838,17 @@ class PlanarClipMaskState {
|
|
|
84834
84838
|
}
|
|
84835
84839
|
// For all other modes we need to let the tree refs in the view state decide which refs need to be drawn
|
|
84836
84840
|
// since batched tiles cannot turn on/off individual models just by their tile tree refs.
|
|
84837
|
-
|
|
84841
|
+
// Keep calling this until loaded so that the range is valid.
|
|
84842
|
+
if (!this._allLoaded) {
|
|
84838
84843
|
this._tileTreeRefs = new Array();
|
|
84839
|
-
if (this.settings.modelIds)
|
|
84840
|
-
view.collectMaskRefs(this.settings.modelIds, this._tileTreeRefs);
|
|
84841
|
-
|
|
84842
|
-
if (!this._allLoaded)
|
|
84844
|
+
if (this.settings.modelIds) {
|
|
84845
|
+
view.collectMaskRefs(this.settings.modelIds, this._tileTreeRefs, maskRange);
|
|
84846
|
+
}
|
|
84843
84847
|
this._allLoaded = this._tileTreeRefs.every((treeRef) => treeRef.treeOwner.load() !== undefined);
|
|
84848
|
+
maskRange.clone(this._maskRange);
|
|
84849
|
+
}
|
|
84850
|
+
else // If already loaded, just set the maskRange to the saved maskRange.
|
|
84851
|
+
this._maskRange.clone(maskRange);
|
|
84844
84852
|
return this._allLoaded ? this._tileTreeRefs : undefined;
|
|
84845
84853
|
}
|
|
84846
84854
|
// Returns any potential FeatureSymbology overrides for drawing the planar clip mask.
|
|
@@ -87135,10 +87143,11 @@ class SpatialViewState extends _ViewState__WEBPACK_IMPORTED_MODULE_6__.ViewState
|
|
|
87135
87143
|
/** For getting the [TileTreeReference]s that are in the modelIds, for planar classification.
|
|
87136
87144
|
* @param modelIds modelIds for which to get the TileTreeReferences
|
|
87137
87145
|
* @param maskTreeRefs where to store the TileTreeReferences
|
|
87146
|
+
* @param maskRange range to extend for the maskRefs
|
|
87138
87147
|
* @internal
|
|
87139
87148
|
*/
|
|
87140
|
-
collectMaskRefs(modelIds, maskTreeRefs) {
|
|
87141
|
-
this._treeRefs.collectMaskRefs(modelIds, maskTreeRefs);
|
|
87149
|
+
collectMaskRefs(modelIds, maskTreeRefs, maskRange) {
|
|
87150
|
+
this._treeRefs.collectMaskRefs(modelIds, maskTreeRefs, maskRange);
|
|
87142
87151
|
}
|
|
87143
87152
|
/** For getting a list of modelIds which do not participate in masking for planar classification.
|
|
87144
87153
|
* @param maskModels models which DO participate in planar clip masking
|
|
@@ -103810,6 +103819,10 @@ class GraphicBuilder {
|
|
|
103810
103819
|
addFrustum(frustum) {
|
|
103811
103820
|
this.addRangeBoxFromCorners(frustum.points);
|
|
103812
103821
|
}
|
|
103822
|
+
/** Add Frustum sides. Useful for debugging. */
|
|
103823
|
+
addFrustumSides(frustum) {
|
|
103824
|
+
this.addRangeBoxSidesFromCorners(frustum.points);
|
|
103825
|
+
}
|
|
103813
103826
|
/** Add range edges from corner points */
|
|
103814
103827
|
addRangeBoxFromCorners(p) {
|
|
103815
103828
|
this.addLineString([
|
|
@@ -103828,6 +103841,51 @@ class GraphicBuilder {
|
|
|
103828
103841
|
this.addLineString([p[_itwin_core_common__WEBPACK_IMPORTED_MODULE_2__.Npc.RightTopFront].clone(), p[_itwin_core_common__WEBPACK_IMPORTED_MODULE_2__.Npc.RightTopRear].clone()]);
|
|
103829
103842
|
this.addLineString([p[_itwin_core_common__WEBPACK_IMPORTED_MODULE_2__.Npc.LeftBottomRear].clone(), p[_itwin_core_common__WEBPACK_IMPORTED_MODULE_2__.Npc.RightBottomRear].clone()]);
|
|
103830
103843
|
}
|
|
103844
|
+
/** Add range sides from corner points */
|
|
103845
|
+
addRangeBoxSidesFromCorners(p) {
|
|
103846
|
+
this.addShape([
|
|
103847
|
+
p[_itwin_core_common__WEBPACK_IMPORTED_MODULE_2__.Npc.LeftBottomFront].clone(),
|
|
103848
|
+
p[_itwin_core_common__WEBPACK_IMPORTED_MODULE_2__.Npc.LeftTopFront].clone(),
|
|
103849
|
+
p[_itwin_core_common__WEBPACK_IMPORTED_MODULE_2__.Npc.RightTopFront].clone(),
|
|
103850
|
+
p[_itwin_core_common__WEBPACK_IMPORTED_MODULE_2__.Npc.RightBottomFront].clone(),
|
|
103851
|
+
p[_itwin_core_common__WEBPACK_IMPORTED_MODULE_2__.Npc.LeftBottomFront].clone()
|
|
103852
|
+
]);
|
|
103853
|
+
this.addShape([
|
|
103854
|
+
p[_itwin_core_common__WEBPACK_IMPORTED_MODULE_2__.Npc.RightTopRear].clone(),
|
|
103855
|
+
p[_itwin_core_common__WEBPACK_IMPORTED_MODULE_2__.Npc.LeftTopRear].clone(),
|
|
103856
|
+
p[_itwin_core_common__WEBPACK_IMPORTED_MODULE_2__.Npc.LeftBottomRear].clone(),
|
|
103857
|
+
p[_itwin_core_common__WEBPACK_IMPORTED_MODULE_2__.Npc.RightBottomRear].clone(),
|
|
103858
|
+
p[_itwin_core_common__WEBPACK_IMPORTED_MODULE_2__.Npc.RightTopRear].clone()
|
|
103859
|
+
]);
|
|
103860
|
+
this.addShape([
|
|
103861
|
+
p[_itwin_core_common__WEBPACK_IMPORTED_MODULE_2__.Npc.RightTopRear].clone(),
|
|
103862
|
+
p[_itwin_core_common__WEBPACK_IMPORTED_MODULE_2__.Npc.LeftTopRear].clone(),
|
|
103863
|
+
p[_itwin_core_common__WEBPACK_IMPORTED_MODULE_2__.Npc.LeftTopFront].clone(),
|
|
103864
|
+
p[_itwin_core_common__WEBPACK_IMPORTED_MODULE_2__.Npc.RightTopFront].clone(),
|
|
103865
|
+
p[_itwin_core_common__WEBPACK_IMPORTED_MODULE_2__.Npc.RightTopRear].clone()
|
|
103866
|
+
]);
|
|
103867
|
+
this.addShape([
|
|
103868
|
+
p[_itwin_core_common__WEBPACK_IMPORTED_MODULE_2__.Npc.RightTopRear].clone(),
|
|
103869
|
+
p[_itwin_core_common__WEBPACK_IMPORTED_MODULE_2__.Npc.RightBottomRear].clone(),
|
|
103870
|
+
p[_itwin_core_common__WEBPACK_IMPORTED_MODULE_2__.Npc.RightBottomFront].clone(),
|
|
103871
|
+
p[_itwin_core_common__WEBPACK_IMPORTED_MODULE_2__.Npc.RightTopFront].clone(),
|
|
103872
|
+
p[_itwin_core_common__WEBPACK_IMPORTED_MODULE_2__.Npc.RightTopRear].clone()
|
|
103873
|
+
]);
|
|
103874
|
+
this.addShape([
|
|
103875
|
+
p[_itwin_core_common__WEBPACK_IMPORTED_MODULE_2__.Npc.LeftBottomRear].clone(),
|
|
103876
|
+
p[_itwin_core_common__WEBPACK_IMPORTED_MODULE_2__.Npc.RightBottomRear].clone(),
|
|
103877
|
+
p[_itwin_core_common__WEBPACK_IMPORTED_MODULE_2__.Npc.RightBottomFront].clone(),
|
|
103878
|
+
p[_itwin_core_common__WEBPACK_IMPORTED_MODULE_2__.Npc.LeftBottomFront].clone(),
|
|
103879
|
+
p[_itwin_core_common__WEBPACK_IMPORTED_MODULE_2__.Npc.LeftBottomRear].clone()
|
|
103880
|
+
]);
|
|
103881
|
+
this.addShape([
|
|
103882
|
+
p[_itwin_core_common__WEBPACK_IMPORTED_MODULE_2__.Npc.LeftBottomRear].clone(),
|
|
103883
|
+
p[_itwin_core_common__WEBPACK_IMPORTED_MODULE_2__.Npc.LeftTopRear].clone(),
|
|
103884
|
+
p[_itwin_core_common__WEBPACK_IMPORTED_MODULE_2__.Npc.LeftTopFront].clone(),
|
|
103885
|
+
p[_itwin_core_common__WEBPACK_IMPORTED_MODULE_2__.Npc.LeftBottomFront].clone(),
|
|
103886
|
+
p[_itwin_core_common__WEBPACK_IMPORTED_MODULE_2__.Npc.LeftBottomRear].clone()
|
|
103887
|
+
]);
|
|
103888
|
+
}
|
|
103831
103889
|
/** Sets the current active symbology for this builder. Any new geometry subsequently added will be drawn using the specified symbology.
|
|
103832
103890
|
* @param lineColor The color in which to draw lines.
|
|
103833
103891
|
* @param fillColor The color in which to draw filled regions.
|
|
@@ -109894,7 +109952,7 @@ class BackgroundMapDrape extends _TextureDrape__WEBPACK_IMPORTED_MODULE_13__.Tex
|
|
|
109894
109952
|
if (!targetTree || !args)
|
|
109895
109953
|
return;
|
|
109896
109954
|
const targetTiles = targetTree.selectTiles(args);
|
|
109897
|
-
const projection = _PlanarTextureProjection__WEBPACK_IMPORTED_MODULE_9__.PlanarTextureProjection.computePlanarTextureProjection(this._plane, context, { tiles: targetTiles, location: args.location }, [this._mapTree], viewState, this._width, this._height);
|
|
109955
|
+
const projection = _PlanarTextureProjection__WEBPACK_IMPORTED_MODULE_9__.PlanarTextureProjection.computePlanarTextureProjection(this._plane, context, { tiles: targetTiles, location: args.location }, [this._mapTree], viewState, this._width, this._height, _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_1__.Range3d.createNull());
|
|
109898
109956
|
if (!projection.textureFrustum || !projection.projectionMatrix || !projection.worldToViewMap)
|
|
109899
109957
|
return;
|
|
109900
109958
|
this._frustum = projection.textureFrustum;
|
|
@@ -117229,19 +117287,22 @@ class PlanarClassifier extends _RenderPlanarClassifier__WEBPACK_IMPORTED_MODULE_
|
|
|
117229
117287
|
const viewState = context.viewingSpace.view;
|
|
117230
117288
|
if (!viewState.isSpatialView())
|
|
117231
117289
|
return;
|
|
117232
|
-
|
|
117233
|
-
const
|
|
117290
|
+
this._doDebugFrustum = context.target.debugControl?.displayMaskFrustum ?? false;
|
|
117291
|
+
const maxTextureSize = _System__WEBPACK_IMPORTED_MODULE_15__.System.instance.maxTexSizeAllow;
|
|
117292
|
+
const requiredHeight = maxTextureSize;
|
|
117293
|
+
const requiredWidth = maxTextureSize;
|
|
117234
117294
|
if (requiredWidth !== this._width || requiredHeight !== this._height)
|
|
117235
117295
|
this.dispose();
|
|
117236
117296
|
this._width = requiredWidth;
|
|
117237
117297
|
this._height = requiredHeight;
|
|
117238
|
-
const
|
|
117298
|
+
const maskRange = _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_2__.Range3d.createNull();
|
|
117299
|
+
const maskTrees = this._planarClipMask?.getTileTrees(viewState, target.modelId, maskRange);
|
|
117239
117300
|
if (!maskTrees && !this._classifierTreeRef)
|
|
117240
117301
|
return;
|
|
117241
117302
|
const allTrees = maskTrees ? maskTrees.slice() : new Array();
|
|
117242
117303
|
if (this._classifierTreeRef)
|
|
117243
117304
|
allTrees.push(this._classifierTreeRef);
|
|
117244
|
-
const projection = _PlanarTextureProjection__WEBPACK_IMPORTED_MODULE_11__.PlanarTextureProjection.computePlanarTextureProjection(this._plane, context, target, allTrees, viewState, this._width, this._height);
|
|
117305
|
+
const projection = _PlanarTextureProjection__WEBPACK_IMPORTED_MODULE_11__.PlanarTextureProjection.computePlanarTextureProjection(this._plane, context, target, allTrees, viewState, this._width, this._height, maskRange);
|
|
117245
117306
|
if (!projection.textureFrustum || !projection.projectionMatrix || !projection.worldToViewMap)
|
|
117246
117307
|
return;
|
|
117247
117308
|
this._projectionMatrix = projection.projectionMatrix;
|
|
@@ -117275,13 +117336,20 @@ class PlanarClassifier extends _RenderPlanarClassifier__WEBPACK_IMPORTED_MODULE_
|
|
|
117275
117336
|
if (this._doDebugFrustum) {
|
|
117276
117337
|
this._debugFrustumGraphic = (0,_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.dispose)(this._debugFrustumGraphic);
|
|
117277
117338
|
const builder = context.createSceneGraphicBuilder();
|
|
117278
|
-
builder.setSymbology(_itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.ColorDef.green, _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.ColorDef.green,
|
|
117339
|
+
builder.setSymbology(_itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.ColorDef.green, _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.ColorDef.green, 2);
|
|
117279
117340
|
builder.addFrustum(context.viewingSpace.getFrustum());
|
|
117280
|
-
builder.setSymbology(_itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.ColorDef.red, _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.ColorDef.red,
|
|
117341
|
+
builder.setSymbology(_itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.ColorDef.red, _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.ColorDef.red, 2);
|
|
117281
117342
|
builder.addFrustum(this._debugFrustum);
|
|
117282
|
-
builder.setSymbology(_itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.ColorDef.
|
|
117343
|
+
builder.setSymbology(_itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.ColorDef.blue, _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.ColorDef.blue, 2);
|
|
117283
117344
|
builder.addFrustum(this._frustum);
|
|
117345
|
+
builder.setSymbology(_itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.ColorDef.from(0, 200, 0, 222), _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.ColorDef.from(0, 200, 0, 222), 2);
|
|
117346
|
+
builder.addFrustumSides(context.viewingSpace.getFrustum());
|
|
117347
|
+
builder.setSymbology(_itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.ColorDef.from(200, 0, 0, 222), _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.ColorDef.from(200, 0, 0, 222), 2);
|
|
117348
|
+
builder.addFrustumSides(this._debugFrustum);
|
|
117349
|
+
builder.setSymbology(_itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.ColorDef.from(0, 0, 200, 222), _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.ColorDef.from(0, 0, 200, 222), 2);
|
|
117350
|
+
builder.addFrustumSides(this._frustum);
|
|
117284
117351
|
this._debugFrustumGraphic = builder.finish();
|
|
117352
|
+
context.outputGraphic(this._debugFrustumGraphic);
|
|
117285
117353
|
}
|
|
117286
117354
|
}
|
|
117287
117355
|
draw(target) {
|
|
@@ -117332,8 +117400,6 @@ class PlanarClassifier extends _RenderPlanarClassifier__WEBPACK_IMPORTED_MODULE_
|
|
|
117332
117400
|
this._contentMode = PlanarClassifierContent.ClassifierAndMask;
|
|
117333
117401
|
}
|
|
117334
117402
|
}
|
|
117335
|
-
if (undefined !== this._debugFrustumGraphic)
|
|
117336
|
-
target.graphics.foreground.push(this._debugFrustumGraphic);
|
|
117337
117403
|
// Temporarily override the Target's state.
|
|
117338
117404
|
const system = _System__WEBPACK_IMPORTED_MODULE_15__.System.instance;
|
|
117339
117405
|
const maskViewFlags = {
|
|
@@ -117553,7 +117619,15 @@ const scratchRange = _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_1__.Range3d.c
|
|
|
117553
117619
|
const scratchMap4d = _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_1__.Map4d.createIdentity();
|
|
117554
117620
|
const scratchMatrix4d = _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_1__.Matrix4d.createIdentity();
|
|
117555
117621
|
class PlanarTextureProjection {
|
|
117556
|
-
static
|
|
117622
|
+
static isTileRangeInBounds(tileRange, drapeRange) {
|
|
117623
|
+
// return false if tile is outside of drapeRange, ignoring height (x) for this
|
|
117624
|
+
if (tileRange.low.y > drapeRange.high.y || tileRange.high.y < drapeRange.low.y)
|
|
117625
|
+
return false;
|
|
117626
|
+
if (tileRange.low.z > drapeRange.high.z || tileRange.high.z < drapeRange.low.z)
|
|
117627
|
+
return false;
|
|
117628
|
+
return true;
|
|
117629
|
+
}
|
|
117630
|
+
static computePlanarTextureProjection(texturePlane, sceneContext, target, drapeRefs, viewState, textureWidth, textureHeight, maskRange, _heightRange) {
|
|
117557
117631
|
const textureZ = texturePlane.getNormalRef();
|
|
117558
117632
|
const viewingSpace = sceneContext.viewingSpace;
|
|
117559
117633
|
const viewX = viewingSpace.rotation.rowX();
|
|
@@ -117577,14 +117651,8 @@ class PlanarTextureProjection {
|
|
|
117577
117651
|
const viewFrustum = viewingSpace.getFrustum().transformBy(textureTransform);
|
|
117578
117652
|
const viewPlanes = _itwin_core_common__WEBPACK_IMPORTED_MODULE_0__.FrustumPlanes.fromFrustum(viewFrustum);
|
|
117579
117653
|
const viewClipPlanes = _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_1__.ConvexClipPlaneSet.createPlanes(viewPlanes.planes);
|
|
117580
|
-
|
|
117581
|
-
|
|
117582
|
-
for (const tile of target.tiles) {
|
|
117583
|
-
textureRange.extendRange(tileToTexture.multiplyRange(tile.range, scratchRange));
|
|
117584
|
-
}
|
|
117585
|
-
if (textureRange.isNull)
|
|
117586
|
-
return {};
|
|
117587
|
-
textureRange = _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_1__.ClipUtilities.rangeOfClipperIntersectionWithRange(viewClipPlanes, textureRange);
|
|
117654
|
+
const contentUnBoundedRange = _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_1__.Range1d.createNull();
|
|
117655
|
+
// calculate drapeRange from drapeRefs (mask references or drape reference).
|
|
117588
117656
|
const drapeRange = _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_1__.Range3d.createNull();
|
|
117589
117657
|
for (const drapeRef of drapeRefs) {
|
|
117590
117658
|
const drapeTree = drapeRef.treeOwner.tileTree;
|
|
@@ -117594,14 +117662,37 @@ class PlanarTextureProjection {
|
|
|
117594
117662
|
let heightRange = viewingSpace.getTerrainHeightRange();
|
|
117595
117663
|
if (!heightRange)
|
|
117596
117664
|
heightRange = _ApproximateTerrainHeights__WEBPACK_IMPORTED_MODULE_2__.ApproximateTerrainHeights.instance.globalHeightRange;
|
|
117597
|
-
|
|
117598
|
-
|
|
117665
|
+
contentUnBoundedRange.low = Math.min(contentUnBoundedRange.low, heightRange.low);
|
|
117666
|
+
contentUnBoundedRange.high = Math.max(contentUnBoundedRange.high, heightRange.high);
|
|
117599
117667
|
}
|
|
117600
|
-
else {
|
|
117601
|
-
const
|
|
117668
|
+
else if (maskRange.isNull) {
|
|
117669
|
+
const r = _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_1__.Range3d.createNull();
|
|
117670
|
+
drapeRef.unionFitRange(r);
|
|
117671
|
+
const contentRange = textureTransform.multiplyRange(r);
|
|
117602
117672
|
if (!contentRange.isNull)
|
|
117603
117673
|
drapeRange.extendRange(contentRange);
|
|
117604
117674
|
}
|
|
117675
|
+
else {
|
|
117676
|
+
const contentRange = textureTransform.multiplyRange(maskRange);
|
|
117677
|
+
drapeRange.extendRange(contentRange);
|
|
117678
|
+
}
|
|
117679
|
+
}
|
|
117680
|
+
// get range of only the tiles to be masked or draped onto.
|
|
117681
|
+
let textureRange = _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_1__.Range3d.createNull();
|
|
117682
|
+
const tileToTexture = textureTransform.multiplyTransformTransform(target.location);
|
|
117683
|
+
for (const tile of target.tiles) {
|
|
117684
|
+
tileToTexture.multiplyRange(tile.range, scratchRange);
|
|
117685
|
+
// Skip tile if it is outside of drapeRange because we don't want the extra heights from distant tiles included.
|
|
117686
|
+
if (drapeRange.isNull || PlanarTextureProjection.isTileRangeInBounds(scratchRange, drapeRange))
|
|
117687
|
+
textureRange.extendRange(scratchRange);
|
|
117688
|
+
}
|
|
117689
|
+
if (textureRange.isNull)
|
|
117690
|
+
return {};
|
|
117691
|
+
textureRange = _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_1__.ClipUtilities.rangeOfClipperIntersectionWithRange(viewClipPlanes, textureRange);
|
|
117692
|
+
if (!contentUnBoundedRange.isNull) {
|
|
117693
|
+
// Union of height
|
|
117694
|
+
textureRange.low.x = Math.min(textureRange.low.x, contentUnBoundedRange.low);
|
|
117695
|
+
textureRange.high.x = Math.max(textureRange.high.x, contentUnBoundedRange.high);
|
|
117605
117696
|
}
|
|
117606
117697
|
if (!drapeRange.isNull) {
|
|
117607
117698
|
// Union of height
|
|
@@ -117617,11 +117708,19 @@ class PlanarTextureProjection {
|
|
|
117617
117708
|
textureRange.low.x -= epsilon;
|
|
117618
117709
|
textureRange.high.x += epsilon;
|
|
117619
117710
|
const textureFrustum = _itwin_core_common__WEBPACK_IMPORTED_MODULE_0__.Frustum.fromRange(textureRange);
|
|
117620
|
-
|
|
117711
|
+
let debugFrustum;
|
|
117712
|
+
if (true) // debugFrustum as textureRange.
|
|
117713
|
+
debugFrustum = textureFrustum.clone();
|
|
117714
|
+
else // debugFrustum as drapeRange.
|
|
117715
|
+
{}
|
|
117621
117716
|
textureTransform.multiplyInversePoint3dArray(debugFrustum.points, debugFrustum.points);
|
|
117622
|
-
|
|
117623
|
-
|
|
117624
|
-
|
|
117717
|
+
const viewZVecZ = viewState.getRotation().rowZ().z;
|
|
117718
|
+
// This code attempts to use a projection frustum that aligns to the camera frustum in order to get higher mask resolution closer to the eye.
|
|
117719
|
+
// Limit its use to views that have an eyepoint above the bottom of the frustum and are looking down at a view angle > 5 degrees, otherwise it causes issues.
|
|
117720
|
+
// viewZVecZ is negative when looking up, positive when looking down.
|
|
117721
|
+
if (viewState.isCameraOn && viewState.getEyePoint().z > textureRange.low.x && viewZVecZ > 0.09) {
|
|
117722
|
+
// NB moved the eyePlane from the center to the bottom of the textureRange to solve problems when the eye was below the eyePlane.
|
|
117723
|
+
const eyePlane = _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_1__.Plane3dByOriginAndUnitNormal.create(_itwin_core_geometry__WEBPACK_IMPORTED_MODULE_1__.Point3d.createScale(textureZ, textureRange.low.x), textureZ); // at bottom of range - parallel to texture.
|
|
117625
117724
|
const projectionRay = _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_1__.Ray3d.create(viewState.getEyePoint(), viewZ.crossProduct(textureX).normalize());
|
|
117626
117725
|
let projectionDistance = projectionRay.intersectionWithPlane(eyePlane);
|
|
117627
117726
|
const minNearToFarRatio = .01; // Smaller value allows texture projection to conform tightly to view frustum.
|
|
@@ -117655,6 +117754,7 @@ class PlanarTextureProjection {
|
|
|
117655
117754
|
farRange.high.y = Math.max(farRange.high.y, farY);
|
|
117656
117755
|
});
|
|
117657
117756
|
});
|
|
117757
|
+
// Set NPC from results.
|
|
117658
117758
|
textureFrustum.points[_itwin_core_common__WEBPACK_IMPORTED_MODULE_0__.Npc._000].set(farRange.low.x, farRange.low.y, eyePoint.z - far);
|
|
117659
117759
|
textureFrustum.points[_itwin_core_common__WEBPACK_IMPORTED_MODULE_0__.Npc._100].set(farRange.high.x, farRange.low.y, eyePoint.z - far);
|
|
117660
117760
|
textureFrustum.points[_itwin_core_common__WEBPACK_IMPORTED_MODULE_0__.Npc._010].set(farRange.low.x, farRange.high.y, eyePoint.z - far);
|
|
@@ -117679,7 +117779,7 @@ class PlanarTextureProjection {
|
|
|
117679
117779
|
}
|
|
117680
117780
|
const worldToNpcMap = _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_1__.Map4d.createRefs(worldToNpc, npcToWorld);
|
|
117681
117781
|
const worldToViewMap = npcToView.multiplyMapMap(worldToNpcMap);
|
|
117682
|
-
return { textureFrustum, projectionMatrix: worldToNpc,
|
|
117782
|
+
return { textureFrustum, worldToViewMap, projectionMatrix: worldToNpc, debugFrustum };
|
|
117683
117783
|
}
|
|
117684
117784
|
static getTextureDrawingParams(target) {
|
|
117685
117785
|
const state = new _RenderState__WEBPACK_IMPORTED_MODULE_3__.RenderState();
|
|
@@ -117702,7 +117802,7 @@ class PlanarTextureProjection {
|
|
|
117702
117802
|
return { state, viewFlags };
|
|
117703
117803
|
}
|
|
117704
117804
|
}
|
|
117705
|
-
PlanarTextureProjection._postProjectionMatrixNpc = _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_1__.Matrix4d.createRowValues(/* Row 1 */ 0, 1, 0, 0, /* Row
|
|
117805
|
+
PlanarTextureProjection._postProjectionMatrixNpc = _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_1__.Matrix4d.createRowValues(/* Row 1 */ 0, 1, 0, 0, /* Row 2 */ 0, 0, 1, 0, /* Row 3 */ 1, 0, 0, 0, /* Row 4 */ 0, 0, 0, 1);
|
|
117706
117806
|
|
|
117707
117807
|
|
|
117708
117808
|
/***/ }),
|
|
@@ -123858,7 +123958,7 @@ const shadowMapWidth = 4096; // size of original depth buffer map
|
|
|
123858
123958
|
const shadowMapHeight = shadowMapWidth; // TBD - Adjust for aspect ratio.
|
|
123859
123959
|
const evsmWidth = shadowMapWidth / 2; // EVSM buffer is 1/2 size each direction
|
|
123860
123960
|
const evsmHeight = shadowMapHeight / 2;
|
|
123861
|
-
const postProjectionMatrixNpc = _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_1__.Matrix4d.createRowValues(/* Row 1 */ 0, 1, 0, 0, /* Row
|
|
123961
|
+
const postProjectionMatrixNpc = _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_1__.Matrix4d.createRowValues(/* Row 1 */ 0, 1, 0, 0, /* Row 2 */ 0, 0, 1, 0, /* Row 3 */ 1, 0, 0, 0, /* Row 4 */ 0, 0, 0, 1);
|
|
123862
123962
|
// Bundles up the disposable, create-once-and-reuse members of a SolarShadowMap.
|
|
123863
123963
|
class Bundle {
|
|
123864
123964
|
constructor(depthTexture, shadowMapTexture, fbo, fboSM, evsmGeom, renderCommands) {
|
|
@@ -124054,7 +124154,7 @@ class SolarShadowMap {
|
|
|
124054
124154
|
viewTileRange.clone(shadowRange);
|
|
124055
124155
|
// Expand shadow range to include both the shadowers and shadowed portion of background map.
|
|
124056
124156
|
scratchFrustum.initFromRange(shadowRange);
|
|
124057
|
-
mapToWorld.multiplyPoint3dArrayQuietNormalize(scratchFrustum.points); // This frustum represents the
|
|
124157
|
+
mapToWorld.multiplyPoint3dArrayQuietNormalize(scratchFrustum.points); // This frustum represents the shadowing geometry. Intersect it with background geometry and expand the range depth to include that intersection.
|
|
124058
124158
|
const backgroundMapGeometry = context.viewport.view.displayStyle.getBackgroundMapGeometry();
|
|
124059
124159
|
if (undefined !== backgroundMapGeometry) {
|
|
124060
124160
|
const backgroundDepthRange = backgroundMapGeometry.getFrustumIntersectionDepthRange(this._shadowFrustum, iModel.projectExtents);
|
|
@@ -125529,6 +125629,7 @@ class Target extends _RenderTarget__WEBPACK_IMPORTED_MODULE_8__.RenderTarget {
|
|
|
125529
125629
|
this.drawingBackgroundForReadPixels = false;
|
|
125530
125630
|
this.primitiveVisibility = _RenderTarget__WEBPACK_IMPORTED_MODULE_8__.PrimitiveVisibility.All;
|
|
125531
125631
|
this.displayDrapeFrustum = false;
|
|
125632
|
+
this.displayMaskFrustum = false;
|
|
125532
125633
|
this.displayRealityTilePreload = false;
|
|
125533
125634
|
this.displayRealityTileRanges = false;
|
|
125534
125635
|
this.logRealityTiles = false;
|
|
@@ -143930,15 +144031,20 @@ class SpatialRefs {
|
|
|
143930
144031
|
/** For getting the [TileTreeReference]s that are in the modelIds, for planar classification.
|
|
143931
144032
|
* @param modelIds modelIds for which to get the TileTreeReferences
|
|
143932
144033
|
* @param maskTreeRefs where to store the TileTreeReferences
|
|
144034
|
+
* @param maskRange range to extend for the maskRefs
|
|
143933
144035
|
* @internal
|
|
143934
144036
|
*/
|
|
143935
|
-
collectMaskRefs(modelIds, maskTreeRefs) {
|
|
144037
|
+
collectMaskRefs(modelIds, maskTreeRefs, maskRange) {
|
|
143936
144038
|
for (const modelId of modelIds) {
|
|
143937
144039
|
if (!this._excludedModels?.has(modelId)) {
|
|
143938
144040
|
const model = this._view.iModel.models.getLoaded(modelId);
|
|
143939
144041
|
(0,_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.assert)(model !== undefined); // Models should be loaded by RealityModelTileTree
|
|
143940
|
-
if (model?.asGeometricModel)
|
|
143941
|
-
|
|
144042
|
+
if (model?.asGeometricModel) {
|
|
144043
|
+
const treeRef = createMaskTreeReference(this._view, model.asGeometricModel);
|
|
144044
|
+
maskTreeRefs.push(treeRef);
|
|
144045
|
+
const range = treeRef.computeWorldContentRange();
|
|
144046
|
+
maskRange.extendRange(range);
|
|
144047
|
+
}
|
|
143942
144048
|
}
|
|
143943
144049
|
}
|
|
143944
144050
|
}
|
|
@@ -150304,6 +150410,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
150304
150410
|
var ArcGisErrorCode;
|
|
150305
150411
|
(function (ArcGisErrorCode) {
|
|
150306
150412
|
ArcGisErrorCode[ArcGisErrorCode["InvalidCredentials"] = 401] = "InvalidCredentials";
|
|
150413
|
+
ArcGisErrorCode[ArcGisErrorCode["MissingPermissions"] = 403] = "MissingPermissions";
|
|
150307
150414
|
ArcGisErrorCode[ArcGisErrorCode["InvalidToken"] = 498] = "InvalidToken";
|
|
150308
150415
|
ArcGisErrorCode[ArcGisErrorCode["TokenRequired"] = 499] = "TokenRequired";
|
|
150309
150416
|
ArcGisErrorCode[ArcGisErrorCode["UnknownError"] = 1000] = "UnknownError";
|
|
@@ -150431,7 +150538,9 @@ class ArcGisUtilities {
|
|
|
150431
150538
|
// If we got a 'Token Required' error, lets check what authentification methods this ESRI service offers
|
|
150432
150539
|
// and return information needed to initiate the authentification process... the end-user
|
|
150433
150540
|
// will have to provide his credentials before we can fully validate this source.
|
|
150434
|
-
|
|
150541
|
+
// Note: Some servers will throw a error 403 (You do not have permissions to access this resource or perform this operation),
|
|
150542
|
+
// instead of 499 (TokenRequired)
|
|
150543
|
+
if (json.error.code === ArcGisErrorCode.TokenRequired || json.error.code === ArcGisErrorCode.MissingPermissions) {
|
|
150435
150544
|
return (source.userName || source.password) ? { status: _internal__WEBPACK_IMPORTED_MODULE_1__.MapLayerSourceStatus.InvalidCredentials } : { status: _internal__WEBPACK_IMPORTED_MODULE_1__.MapLayerSourceStatus.RequireAuth };
|
|
150436
150545
|
}
|
|
150437
150546
|
else if (json.error.code === ArcGisErrorCode.InvalidCredentials)
|
|
@@ -150523,8 +150632,7 @@ class ArcGisUtilities {
|
|
|
150523
150632
|
// Append security token when corresponding error code is returned by ArcGIS service
|
|
150524
150633
|
let errorCode = await ArcGisUtilities.checkForResponseErrorCode(response);
|
|
150525
150634
|
if (!accessTokenRequired
|
|
150526
|
-
&& errorCode
|
|
150527
|
-
&& errorCode === ArcGisErrorCode.TokenRequired) {
|
|
150635
|
+
&& (errorCode === ArcGisErrorCode.TokenRequired || errorCode === ArcGisErrorCode.MissingPermissions)) {
|
|
150528
150636
|
accessTokenRequired = true;
|
|
150529
150637
|
// If token required
|
|
150530
150638
|
const accessClient = _IModelApp__WEBPACK_IMPORTED_MODULE_2__.IModelApp.mapLayerFormatRegistry.getAccessClient(formatId);
|
|
@@ -151511,7 +151619,9 @@ class ArcGISImageryProvider extends _internal__WEBPACK_IMPORTED_MODULE_0__.MapLa
|
|
|
151511
151619
|
}
|
|
151512
151620
|
errorCode = await _internal__WEBPACK_IMPORTED_MODULE_0__.ArcGisUtilities.checkForResponseErrorCode(response);
|
|
151513
151621
|
if (errorCode !== undefined &&
|
|
151514
|
-
(errorCode === _internal__WEBPACK_IMPORTED_MODULE_0__.ArcGisErrorCode.TokenRequired
|
|
151622
|
+
(errorCode === _internal__WEBPACK_IMPORTED_MODULE_0__.ArcGisErrorCode.TokenRequired
|
|
151623
|
+
|| errorCode === _internal__WEBPACK_IMPORTED_MODULE_0__.ArcGisErrorCode.InvalidToken
|
|
151624
|
+
|| errorCode === _internal__WEBPACK_IMPORTED_MODULE_0__.ArcGisErrorCode.MissingPermissions)) {
|
|
151515
151625
|
if (this._settings.userName && this._settings.userName.length > 0 && this._lastAccessToken) {
|
|
151516
151626
|
// **** Legacy token ONLY ***
|
|
151517
151627
|
// Token might have expired, make a second attempt by forcing new token.
|
|
@@ -151529,7 +151639,10 @@ class ArcGISImageryProvider extends _internal__WEBPACK_IMPORTED_MODULE_0__.MapLa
|
|
|
151529
151639
|
response = await fetch(urlObj2.toString(), options);
|
|
151530
151640
|
errorCode = await _internal__WEBPACK_IMPORTED_MODULE_0__.ArcGisUtilities.checkForResponseErrorCode(response);
|
|
151531
151641
|
}
|
|
151532
|
-
if (errorCode
|
|
151642
|
+
if (errorCode !== undefined &&
|
|
151643
|
+
(errorCode === _internal__WEBPACK_IMPORTED_MODULE_0__.ArcGisErrorCode.TokenRequired
|
|
151644
|
+
|| errorCode === _internal__WEBPACK_IMPORTED_MODULE_0__.ArcGisErrorCode.InvalidToken
|
|
151645
|
+
|| errorCode === _internal__WEBPACK_IMPORTED_MODULE_0__.ArcGisErrorCode.MissingPermissions)) {
|
|
151533
151646
|
// Looks like the initially generated token has expired.
|
|
151534
151647
|
if (this.status === _internal__WEBPACK_IMPORTED_MODULE_0__.MapLayerImageryProviderStatus.Valid) {
|
|
151535
151648
|
// Only report new status change to avoid spamming the UI
|
|
@@ -151703,7 +151816,9 @@ class ArcGISMapLayerImageryProvider extends _internal__WEBPACK_IMPORTED_MODULE_2
|
|
|
151703
151816
|
if (metadata?.content === undefined)
|
|
151704
151817
|
throw new _itwin_core_common__WEBPACK_IMPORTED_MODULE_0__.ServerError(_itwin_core_common__WEBPACK_IMPORTED_MODULE_0__.IModelStatus.ValidationFailed, "");
|
|
151705
151818
|
const json = metadata.content;
|
|
151706
|
-
if (json?.error?.code === _internal__WEBPACK_IMPORTED_MODULE_2__.ArcGisErrorCode.TokenRequired
|
|
151819
|
+
if (json?.error?.code === _internal__WEBPACK_IMPORTED_MODULE_2__.ArcGisErrorCode.TokenRequired
|
|
151820
|
+
|| json?.error?.code === _internal__WEBPACK_IMPORTED_MODULE_2__.ArcGisErrorCode.InvalidToken
|
|
151821
|
+
|| json?.error?.code === _internal__WEBPACK_IMPORTED_MODULE_2__.ArcGisErrorCode.MissingPermissions) {
|
|
151707
151822
|
// Check again layer status, it might have change during await.
|
|
151708
151823
|
if (this.status === _internal__WEBPACK_IMPORTED_MODULE_2__.MapLayerImageryProviderStatus.Valid) {
|
|
151709
151824
|
this.setStatus(_internal__WEBPACK_IMPORTED_MODULE_2__.MapLayerImageryProviderStatus.RequireAuth);
|
|
@@ -297541,7 +297656,7 @@ var loadLanguages = instance.loadLanguages;
|
|
|
297541
297656
|
/***/ ((module) => {
|
|
297542
297657
|
|
|
297543
297658
|
"use strict";
|
|
297544
|
-
module.exports = JSON.parse('{"name":"@itwin/core-frontend","version":"4.7.
|
|
297659
|
+
module.exports = JSON.parse('{"name":"@itwin/core-frontend","version":"4.7.6","description":"iTwin.js frontend components","main":"lib/cjs/core-frontend.js","module":"lib/esm/core-frontend.js","typings":"lib/cjs/core-frontend","license":"MIT","scripts":{"build":"npm run -s copy:public && npm run -s build:cjs && npm run -s build:esm && 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.7.6","@itwin/core-bentley":"workspace:^4.7.6","@itwin/core-common":"workspace:^4.7.6","@itwin/core-geometry":"workspace:^4.7.6","@itwin/core-orbitgt":"workspace:^4.7.6","@itwin/core-quantity":"workspace:^4.7.6"},"//devDependencies":["NOTE: All peerDependencies should also be listed as devDependencies since peerDependencies are not considered by npm install","NOTE: All tools used by scripts in this package must be listed as devDependencies"],"devDependencies":{"@itwin/appui-abstract":"workspace:*","@itwin/build-tools":"workspace:*","@itwin/core-bentley":"workspace:*","@itwin/core-common":"workspace:*","@itwin/core-geometry":"workspace:*","@itwin/core-orbitgt":"workspace:*","@itwin/core-quantity":"workspace:*","@itwin/certa":"workspace:*","@itwin/eslint-plugin":"^4.0.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"}}');
|
|
297545
297660
|
|
|
297546
297661
|
/***/ })
|
|
297547
297662
|
|