@itwin/rpcinterface-full-stack-tests 4.0.0-dev.50 → 4.0.0-dev.52
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/_d48c.bundled-tests.js.map +1 -1
- package/lib/dist/bundled-tests.js +294 -170
- 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/object-storage.bundled-tests.js.map +1 -1
- package/lib/dist/vendors-common_temp_node_modules_pnpm_itwin_object-storage-azure_1_5_0_node_modules_itwin_obj-e3e81d.bundled-tests.js.map +1 -1
- package/lib/dist/vendors-common_temp_node_modules_pnpm_loaders_gl_draco_3_3_1_node_modules_loaders_gl_draco_di-d3af41.bundled-tests.js.map +1 -1
- package/lib/dist/vendors-common_temp_node_modules_pnpm_reflect-metadata_0_1_13_node_modules_reflect-metadata_R-610cb3.bundled-tests.js.map +1 -1
- package/lib/frontend/Elements.test.js +1 -0
- package/lib/frontend/Elements.test.js.map +1 -1
- package/lib/frontend/workflows/BasicScenarios.test.js +1 -0
- package/lib/frontend/workflows/BasicScenarios.test.js.map +1 -1
- package/package.json +13 -13
|
@@ -40051,7 +40051,9 @@ class ColorDef {
|
|
|
40051
40051
|
static create(val) {
|
|
40052
40052
|
return this.fromTbgr(this.computeTbgr(val));
|
|
40053
40053
|
}
|
|
40054
|
-
/**
|
|
40054
|
+
/** Compute the 0xTTBBGGRR value corresponding to the specified representation of a color.
|
|
40055
|
+
* @see [[fromString]] for a description of valid string representations.
|
|
40056
|
+
*/
|
|
40055
40057
|
static computeTbgr(val) {
|
|
40056
40058
|
switch (typeof val) {
|
|
40057
40059
|
case "number":
|
|
@@ -42184,7 +42186,7 @@ class DisplayStyleSettings {
|
|
|
42184
42186
|
else
|
|
42185
42187
|
this._json.clipStyle = style.toJSON();
|
|
42186
42188
|
}
|
|
42187
|
-
/**
|
|
42189
|
+
/** Convert these settings to their JSON representation. */
|
|
42188
42190
|
toJSON() {
|
|
42189
42191
|
return this._json;
|
|
42190
42192
|
}
|
|
@@ -42363,11 +42365,11 @@ class DisplayStyle3dSettings extends DisplayStyleSettings {
|
|
|
42363
42365
|
}
|
|
42364
42366
|
}
|
|
42365
42367
|
}
|
|
42366
|
-
/**
|
|
42368
|
+
/** Convert these settings to their JSON representation. */
|
|
42367
42369
|
toJSON() {
|
|
42368
42370
|
return this._json3d;
|
|
42369
42371
|
}
|
|
42370
|
-
/**
|
|
42372
|
+
/** See [[DisplayStyleSettings.toOverrides]]. */
|
|
42371
42373
|
toOverrides(options) {
|
|
42372
42374
|
const props = super.toOverrides(options);
|
|
42373
42375
|
if (options?.includeAll)
|
|
@@ -44002,9 +44004,14 @@ class FeatureOverrides {
|
|
|
44002
44004
|
get defaultOverrides() { return this._defaultOverrides; }
|
|
44003
44005
|
/** Whether or not line weights are applied. If false, all lines are drawn with a weight of 1. */
|
|
44004
44006
|
get lineWeights() { return this._lineWeights; }
|
|
44005
|
-
/**
|
|
44007
|
+
/** A set of elements that are always invisible.
|
|
44008
|
+
* @note If an element is present in both `alwaysDrawn` and [[neverDrawn]], it will not be displayed - `neverDrawn` takes precedence.
|
|
44009
|
+
*/
|
|
44006
44010
|
get neverDrawn() { return this._neverDrawn; }
|
|
44007
|
-
/**
|
|
44011
|
+
/** A set of elements that are unconditionally displayed.
|
|
44012
|
+
* @see [[isAlwaysDrawnExclusive]] to specify that *only* elements in this set will be displayed.
|
|
44013
|
+
* @note If an element is present in both `alwaysDrawn` and [[neverDrawn]], it will not be displayed - `neverDrawn` takes precedence.
|
|
44014
|
+
*/
|
|
44008
44015
|
get alwaysDrawn() { return this._alwaysDrawn; }
|
|
44009
44016
|
/** @internal */
|
|
44010
44017
|
isNeverDrawn(elemIdLo, elemIdHi, animationNodeId) {
|
|
@@ -86213,7 +86220,7 @@ class DisplayStyleState extends _EntityState__WEBPACK_IMPORTED_MODULE_6__.Elemen
|
|
|
86213
86220
|
* @see [[overrideSubCategory]]
|
|
86214
86221
|
*/
|
|
86215
86222
|
getSubCategoryOverride(id) { return this.settings.getSubCategoryOverride(id); }
|
|
86216
|
-
/**
|
|
86223
|
+
/** Returns true if solar shadow display is enabled by this display style. */
|
|
86217
86224
|
get wantShadows() {
|
|
86218
86225
|
return this.is3d() && this.viewFlags.shadows && false !== _IModelApp__WEBPACK_IMPORTED_MODULE_7__.IModelApp.renderSystem.options.displaySolarShadows;
|
|
86219
86226
|
}
|
|
@@ -86661,6 +86668,7 @@ class DrawingViewState extends _ViewState__WEBPACK_IMPORTED_MODULE_14__.ViewStat
|
|
|
86661
86668
|
CAST(json_extract(jsonProperties, '$.displaySpatialView') as BOOLEAN) as displaySpatialView
|
|
86662
86669
|
FROM bis.SectionDrawing
|
|
86663
86670
|
WHERE ECInstanceId=${this.baseModelId}`;
|
|
86671
|
+
// eslint-disable-next-line deprecation/deprecation
|
|
86664
86672
|
for await (const row of this.iModel.query(ecsql, undefined, { rowFormat: _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.QueryRowFormat.UseJsPropertyNames })) {
|
|
86665
86673
|
spatialView = _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.Id64.fromJSON(row.spatialView?.id);
|
|
86666
86674
|
displaySpatialView = !!row.displaySpatialView;
|
|
@@ -86712,14 +86720,14 @@ class DrawingViewState extends _ViewState__WEBPACK_IMPORTED_MODULE_14__.ViewStat
|
|
|
86712
86720
|
}
|
|
86713
86721
|
/** @internal */
|
|
86714
86722
|
isDrawingView() { return true; }
|
|
86715
|
-
/**
|
|
86723
|
+
/** See [[ViewState.getOrigin]]. */
|
|
86716
86724
|
getOrigin() {
|
|
86717
86725
|
const origin = super.getOrigin();
|
|
86718
86726
|
if (this._attachment)
|
|
86719
86727
|
origin.z = -this._attachment.zDepth;
|
|
86720
86728
|
return origin;
|
|
86721
86729
|
}
|
|
86722
|
-
/**
|
|
86730
|
+
/** See [[ViewState.getExtents]]. */
|
|
86723
86731
|
getExtents() {
|
|
86724
86732
|
const extents = super.getExtents();
|
|
86725
86733
|
if (this._attachment)
|
|
@@ -90525,7 +90533,7 @@ class IModelConnection extends _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.I
|
|
|
90525
90533
|
/** Allow to execute query and read results along with meta data. The result are streamed.
|
|
90526
90534
|
* @param params The values to bind to the parameters (if the ECSQL has any).
|
|
90527
90535
|
* @param config Allow to specify certain flags which control how query is executed.
|
|
90528
|
-
* @returns Returns
|
|
90536
|
+
* @returns Returns an [ECSqlReader]($common) which helps iterate over the result set and also give access to metadata.
|
|
90529
90537
|
* @beta
|
|
90530
90538
|
* */
|
|
90531
90539
|
createQueryReader(ecsql, params, config) {
|
|
@@ -90559,6 +90567,7 @@ class IModelConnection extends _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.I
|
|
|
90559
90567
|
* @returns Returns the query result as an *AsyncIterableIterator<any>* which lazy load result as needed. The row format is determined by *rowFormat* parameter.
|
|
90560
90568
|
* See [ECSQL row format]($docs/learning/ECSQLRowFormat) for details about the format of the returned rows.
|
|
90561
90569
|
* @throws [IModelError]($common) If there was any error while submitting, preparing or stepping into query
|
|
90570
|
+
* @deprecated in 3.7. Use [[createQueryReader]] instead; it accepts the same parameters.
|
|
90562
90571
|
*/
|
|
90563
90572
|
async *query(ecsql, params, options) {
|
|
90564
90573
|
const builder = new _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.QueryOptionsBuilder(options);
|
|
@@ -90577,8 +90586,10 @@ class IModelConnection extends _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.I
|
|
|
90577
90586
|
* See "[iTwin.js Types used in ECSQL Parameter Bindings]($docs/learning/ECSQLParameterTypes)" for details.
|
|
90578
90587
|
* @returns Return row count.
|
|
90579
90588
|
* @throws [IModelError]($common) If the statement is invalid
|
|
90589
|
+
* @deprecated in 3.7. Count the number of results using `count(*)` where the original query is a subquery instead. E.g., `SELECT count(*) FROM (<query-whose-rows-to-count>)`.
|
|
90580
90590
|
*/
|
|
90581
90591
|
async queryRowCount(ecsql, params) {
|
|
90592
|
+
// eslint-disable-next-line deprecation/deprecation
|
|
90582
90593
|
for await (const row of this.query(`select count(*) from (${ecsql})`, params)) {
|
|
90583
90594
|
return row[0];
|
|
90584
90595
|
}
|
|
@@ -90600,8 +90611,10 @@ class IModelConnection extends _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.I
|
|
|
90600
90611
|
* @returns Returns the query result as an *AsyncIterableIterator<any>* which lazy load result as needed. The row format is determined by *rowFormat* parameter.
|
|
90601
90612
|
* See [ECSQL row format]($docs/learning/ECSQLRowFormat) for details about the format of the returned rows.
|
|
90602
90613
|
* @throws [IModelError]($common) If there was any error while submitting, preparing or stepping into query
|
|
90614
|
+
* @deprecated in 3.7. Use [[createQueryReader]] instead. Pass in the restart token as part of the `config` argument; e.g., `{ restartToken: myToken }` or `new QueryOptionsBuilder().setRestartToken(myToken).getOptions()`.
|
|
90603
90615
|
*/
|
|
90604
90616
|
async *restartQuery(token, ecsql, params, options) {
|
|
90617
|
+
// eslint-disable-next-line deprecation/deprecation
|
|
90605
90618
|
for await (const row of this.query(ecsql, params, new _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.QueryOptionsBuilder(options).setRestartToken(token).getOptions())) {
|
|
90606
90619
|
yield row;
|
|
90607
90620
|
}
|
|
@@ -91144,6 +91157,7 @@ class SnapshotConnection extends IModelConnection {
|
|
|
91144
91157
|
break;
|
|
91145
91158
|
}
|
|
91146
91159
|
const placements = new Array();
|
|
91160
|
+
// eslint-disable-next-line deprecation/deprecation
|
|
91147
91161
|
for await (const row of this._iModel.query(ecsql, undefined, { rowFormat: _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.QueryRowFormat.UseJsPropertyNames })) {
|
|
91148
91162
|
const origin = [row.x, row.y, row.z];
|
|
91149
91163
|
const bbox = {
|
|
@@ -95584,6 +95598,7 @@ class SheetViewState extends _ViewState__WEBPACK_IMPORTED_MODULE_14__.ViewState2
|
|
|
95584
95598
|
async queryAttachmentIds() {
|
|
95585
95599
|
const ecsql = `SELECT ECInstanceId as attachmentId FROM bis.ViewAttachment WHERE model.Id=${this.baseModelId}`;
|
|
95586
95600
|
const ids = [];
|
|
95601
|
+
// eslint-disable-next-line deprecation/deprecation
|
|
95587
95602
|
for await (const row of this.iModel.query(ecsql))
|
|
95588
95603
|
ids.push(row[0]);
|
|
95589
95604
|
return ids;
|
|
@@ -97846,6 +97861,7 @@ class ViewCreator2d {
|
|
|
97846
97861
|
*/
|
|
97847
97862
|
this._executeQuery = async (query) => {
|
|
97848
97863
|
const rows = [];
|
|
97864
|
+
// eslint-disable-next-line deprecation/deprecation
|
|
97849
97865
|
for await (const row of this._imodel.query(query, undefined, { rowFormat: _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.QueryRowFormat.UseJsPropertyNames }))
|
|
97850
97866
|
rows.push(row.id);
|
|
97851
97867
|
return rows;
|
|
@@ -97934,6 +97950,7 @@ class ViewCreator2d {
|
|
|
97934
97950
|
async _addSheetViewProps(modelId, props) {
|
|
97935
97951
|
let width = 0;
|
|
97936
97952
|
let height = 0;
|
|
97953
|
+
// eslint-disable-next-line deprecation/deprecation
|
|
97937
97954
|
for await (const row of this._imodel.query(`SELECT Width, Height FROM bis.Sheet WHERE ECInstanceId = ?`, _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.QueryBinder.from([modelId]), { rowFormat: _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.QueryRowFormat.UseJsPropertyNames })) {
|
|
97938
97955
|
width = row.width;
|
|
97939
97956
|
height = row.height;
|
|
@@ -98061,6 +98078,7 @@ class ViewCreator3d {
|
|
|
98061
98078
|
*/
|
|
98062
98079
|
this._executeQuery = async (query) => {
|
|
98063
98080
|
const rows = [];
|
|
98081
|
+
// eslint-disable-next-line deprecation/deprecation
|
|
98064
98082
|
for await (const row of this._imodel.query(query, undefined, { rowFormat: _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.QueryRowFormat.UseJsPropertyNames }))
|
|
98065
98083
|
rows.push(row.id);
|
|
98066
98084
|
return rows;
|
|
@@ -98719,12 +98737,10 @@ class ViewManager {
|
|
|
98719
98737
|
const msg = await hit.iModel.getToolTipMessage(hit.sourceId); // wait for the locate message(s) from the backend
|
|
98720
98738
|
return _IModelApp__WEBPACK_IMPORTED_MODULE_1__.IModelApp.formatElementToolTip(msg);
|
|
98721
98739
|
}
|
|
98722
|
-
/**
|
|
98723
|
-
* @internal
|
|
98740
|
+
/** Register a new [[ToolTipProvider]] to customize the locate tooltip.
|
|
98724
98741
|
* @param provider The new tooltip provider to add.
|
|
98725
|
-
* @throws Error if provider is already
|
|
98742
|
+
* @throws Error if `provider` is already registered.
|
|
98726
98743
|
* @returns a function that may be called to remove this provider (in lieu of calling [[dropToolTipProvider]].)
|
|
98727
|
-
* @see [[dropToolTipProvider]]
|
|
98728
98744
|
*/
|
|
98729
98745
|
addToolTipProvider(provider) {
|
|
98730
98746
|
if (this.toolTipProviders.includes(provider))
|
|
@@ -98733,8 +98749,7 @@ class ViewManager {
|
|
|
98733
98749
|
return () => this.dropToolTipProvider(provider);
|
|
98734
98750
|
}
|
|
98735
98751
|
/** Drop (remove) a [[ToolTipProvider]] so it is no longer active.
|
|
98736
|
-
* @
|
|
98737
|
-
* @param provider The tooltip to drop.
|
|
98752
|
+
* @param provider The tooltip provider to drop.
|
|
98738
98753
|
* @note Does nothing if provider is not currently active.
|
|
98739
98754
|
*/
|
|
98740
98755
|
dropToolTipProvider(provider) {
|
|
@@ -99464,7 +99479,6 @@ class ViewState extends _EntityState__WEBPACK_IMPORTED_MODULE_5__.ElementState {
|
|
|
99464
99479
|
}
|
|
99465
99480
|
/** Execute a function against each [[TileTreeReference]] associated with this view.
|
|
99466
99481
|
* @note This may include tile trees not associated with any [[GeometricModelState]] - e.g., context reality data.
|
|
99467
|
-
* @internal
|
|
99468
99482
|
*/
|
|
99469
99483
|
forEachTileTreeRef(func) {
|
|
99470
99484
|
this.forEachModelTreeRef(func);
|
|
@@ -100248,7 +100262,7 @@ class ViewState3d extends ViewState {
|
|
|
100248
100262
|
val.camera = this.camera;
|
|
100249
100263
|
return val;
|
|
100250
100264
|
}
|
|
100251
|
-
/**
|
|
100265
|
+
/** See [[ViewState.is3d]]. */
|
|
100252
100266
|
is3d() { return true; }
|
|
100253
100267
|
/** @internal */
|
|
100254
100268
|
isDrawingView() { return false; }
|
|
@@ -100923,7 +100937,7 @@ class ViewState2d extends ViewState {
|
|
|
100923
100937
|
val.baseModelId = this.baseModelId;
|
|
100924
100938
|
return val;
|
|
100925
100939
|
}
|
|
100926
|
-
/**
|
|
100940
|
+
/** See [[ViewState.is3d]]. */
|
|
100927
100941
|
is3d() { return false; }
|
|
100928
100942
|
/** @internal */
|
|
100929
100943
|
isSpatialView() { return false; }
|
|
@@ -101791,7 +101805,7 @@ class Viewport {
|
|
|
101791
101805
|
this._decorationsValid = false;
|
|
101792
101806
|
_IModelApp__WEBPACK_IMPORTED_MODULE_10__.IModelApp.requestNextAnimation();
|
|
101793
101807
|
}
|
|
101794
|
-
/** Mark the viewport's scene as
|
|
101808
|
+
/** Mark the viewport's scene as having changed, so that the next call to [[renderFrame]] will recreate it.
|
|
101795
101809
|
* This method is not typically invoked directly - the scene is automatically invalidated in response to events such as moving the viewing frustum,
|
|
101796
101810
|
* changing the set of viewed models, new tiles being loaded, etc.
|
|
101797
101811
|
*/
|
|
@@ -101800,12 +101814,17 @@ class Viewport {
|
|
|
101800
101814
|
this._timePointValid = false;
|
|
101801
101815
|
this.invalidateDecorations();
|
|
101802
101816
|
}
|
|
101803
|
-
/**
|
|
101817
|
+
/** Mark the viewport's "render plan" as having changed, so that the next call to [[renderFrame]] will recreate it.
|
|
101818
|
+
* This method is not typically invoked directly - the render plan is automatically invalidated in response to events such as changing aspects
|
|
101819
|
+
* of the viewport's [[displayStyle]].
|
|
101820
|
+
*/
|
|
101804
101821
|
invalidateRenderPlan() {
|
|
101805
101822
|
this._renderPlanValid = false;
|
|
101806
101823
|
this.invalidateScene();
|
|
101807
101824
|
}
|
|
101808
|
-
/**
|
|
101825
|
+
/** Mark the viewport's [[ViewState]] as having changed, so that the next call to [[renderFrame]] will invoke [[setupFromView]] to synchronize with the view.
|
|
101826
|
+
* This method is not typically invoked directly - the controller is automatically invalidated in response to events such as a call to [[changeView]].
|
|
101827
|
+
*/
|
|
101809
101828
|
invalidateController() {
|
|
101810
101829
|
this._controllerValid = this._analysisFractionValid = false;
|
|
101811
101830
|
this.invalidateRenderPlan();
|
|
@@ -102503,10 +102522,9 @@ class Viewport {
|
|
|
102503
102522
|
_IModelApp__WEBPACK_IMPORTED_MODULE_10__.IModelApp.requestNextAnimation();
|
|
102504
102523
|
}
|
|
102505
102524
|
}
|
|
102506
|
-
/**
|
|
102507
|
-
*
|
|
102525
|
+
/** A unique integer Id assigned to this Viewport upon construction.
|
|
102526
|
+
* It can be useful for comparing and sorting Viewport objects inside of collections like [SortedArray]($core-bentley).
|
|
102508
102527
|
*/
|
|
102509
|
-
/** A unique integer Id for this viewport that can be used for comparing and sorting Viewport objects inside collections like [SortedArray]($core-bentley)s. */
|
|
102510
102528
|
get viewportId() {
|
|
102511
102529
|
return this._viewportId;
|
|
102512
102530
|
}
|
|
@@ -102683,7 +102701,7 @@ class Viewport {
|
|
|
102683
102701
|
if (this._mapTiledGraphicsProvider)
|
|
102684
102702
|
this._mapTiledGraphicsProvider.forEachTileTreeRef(this, (ref) => func(ref));
|
|
102685
102703
|
}
|
|
102686
|
-
/**
|
|
102704
|
+
/** Apply a function to every [[TileTreeReference]] displayed by this viewport. */
|
|
102687
102705
|
forEachTileTreeRef(func) {
|
|
102688
102706
|
this.view.forEachTileTreeRef(func);
|
|
102689
102707
|
this.forEachTiledGraphicsProviderTree(func);
|
|
@@ -103238,9 +103256,10 @@ class Viewport {
|
|
|
103238
103256
|
// producing a flicker to that frustum during the first frame of animation.
|
|
103239
103257
|
this.animate();
|
|
103240
103258
|
}
|
|
103241
|
-
/**
|
|
103242
|
-
*
|
|
103243
|
-
*
|
|
103259
|
+
/** Replace this viewport's [[ViewState]] **without** triggering events like [[onChangeView]].
|
|
103260
|
+
* This is chiefly useful when you are synchronizing the states of two or more viewports, as in [[TwoWayViewportSync]], to avoid triggering unwanted "echo"
|
|
103261
|
+
* events during synchronization.
|
|
103262
|
+
* In all other scenarios, [[changeView]] is the correct method to use.
|
|
103244
103263
|
*/
|
|
103245
103264
|
applyViewState(val) {
|
|
103246
103265
|
this.updateChangeFlags(val);
|
|
@@ -103691,7 +103710,7 @@ class Viewport {
|
|
|
103691
103710
|
queryVisibleFeatures(options, callback) {
|
|
103692
103711
|
return (0,_render_VisibleFeature__WEBPACK_IMPORTED_MODULE_29__.queryVisibleFeatures)(this, options, callback);
|
|
103693
103712
|
}
|
|
103694
|
-
/**
|
|
103713
|
+
/** Record graphics memory consumed by this viewport. */
|
|
103695
103714
|
collectStatistics(stats) {
|
|
103696
103715
|
const trees = new _tile_internal__WEBPACK_IMPORTED_MODULE_22__.DisclosedTileTreeSet();
|
|
103697
103716
|
this.discloseTileTrees(trees);
|
|
@@ -104171,7 +104190,7 @@ class ScreenViewport extends Viewport {
|
|
|
104171
104190
|
setCursor(cursor = "default") {
|
|
104172
104191
|
this.canvas.style.cursor = cursor;
|
|
104173
104192
|
}
|
|
104174
|
-
/**
|
|
104193
|
+
/** See [[Viewport.synchWithView]]. */
|
|
104175
104194
|
synchWithView(options) {
|
|
104176
104195
|
options = options ?? {};
|
|
104177
104196
|
if (this.view.is3d() && options?.globalAlignment)
|
|
@@ -108972,6 +108991,9 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
108972
108991
|
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
108973
108992
|
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
108974
108993
|
*--------------------------------------------------------------------------------------------*/
|
|
108994
|
+
/** @packageDocumentation
|
|
108995
|
+
* @module Utils
|
|
108996
|
+
*/
|
|
108975
108997
|
|
|
108976
108998
|
|
|
108977
108999
|
|
|
@@ -108989,6 +109011,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
108989
109011
|
* (1) If overriding anything in the implementation supplied herein, pass a SystemFactory function to MockRender.App.systemFactory.
|
|
108990
109012
|
* (2) Call MockRender.App.startup() instead of IModelApp.startup() before tests begin.
|
|
108991
109013
|
* (3) Likewise call MockRender.App.shutdown() when finished. This resets the SystemFactory to its default.
|
|
109014
|
+
* @note The APIs within this namespace are intended *strictly* for use with unit tests.
|
|
108992
109015
|
* @internal
|
|
108993
109016
|
*/
|
|
108994
109017
|
var MockRender;
|
|
@@ -109041,14 +109064,12 @@ var MockRender;
|
|
|
109041
109064
|
}
|
|
109042
109065
|
}
|
|
109043
109066
|
MockRender.Builder = Builder;
|
|
109044
|
-
/** @internal */
|
|
109045
109067
|
class Graphic extends _RenderGraphic__WEBPACK_IMPORTED_MODULE_5__.RenderGraphic {
|
|
109046
109068
|
constructor() { super(); }
|
|
109047
109069
|
dispose() { }
|
|
109048
109070
|
collectStatistics(_stats) { }
|
|
109049
109071
|
}
|
|
109050
109072
|
MockRender.Graphic = Graphic;
|
|
109051
|
-
/** @internal */
|
|
109052
109073
|
class List extends Graphic {
|
|
109053
109074
|
constructor(graphics) {
|
|
109054
109075
|
super();
|
|
@@ -109061,7 +109082,6 @@ var MockRender;
|
|
|
109061
109082
|
}
|
|
109062
109083
|
}
|
|
109063
109084
|
MockRender.List = List;
|
|
109064
|
-
/** @internal */
|
|
109065
109085
|
class Branch extends Graphic {
|
|
109066
109086
|
constructor(branch, transform, options) {
|
|
109067
109087
|
super();
|
|
@@ -109072,7 +109092,6 @@ var MockRender;
|
|
|
109072
109092
|
dispose() { this.branch.dispose(); }
|
|
109073
109093
|
}
|
|
109074
109094
|
MockRender.Branch = Branch;
|
|
109075
|
-
/** @internal */
|
|
109076
109095
|
class Batch extends Graphic {
|
|
109077
109096
|
constructor(graphic, featureTable, range) {
|
|
109078
109097
|
super();
|
|
@@ -109097,14 +109116,16 @@ var MockRender;
|
|
|
109097
109116
|
collectStatistics() { }
|
|
109098
109117
|
}
|
|
109099
109118
|
MockRender.AreaPattern = AreaPattern;
|
|
109100
|
-
/** @internal */
|
|
109101
109119
|
class System extends _RenderSystem__WEBPACK_IMPORTED_MODULE_6__.RenderSystem {
|
|
109102
109120
|
get isValid() { return true; }
|
|
109103
109121
|
dispose() { }
|
|
109104
109122
|
get maxTextureSize() { return 4096; }
|
|
109105
109123
|
constructor() { super(); }
|
|
109124
|
+
/** @internal */
|
|
109106
109125
|
doIdleWork() { return false; }
|
|
109126
|
+
/** @internal */
|
|
109107
109127
|
createTarget(canvas) { return new OnScreenTarget(this, canvas); }
|
|
109128
|
+
/** @internal */
|
|
109108
109129
|
createOffscreenTarget(rect) { return new OffScreenTarget(this, rect); }
|
|
109109
109130
|
createGraphic(options) {
|
|
109110
109131
|
return new Builder(this, options);
|
|
@@ -109112,20 +109133,26 @@ var MockRender;
|
|
|
109112
109133
|
createGraphicList(primitives) { return new List(primitives); }
|
|
109113
109134
|
createGraphicBranch(branch, transform, options) { return new Branch(branch, transform, options); }
|
|
109114
109135
|
createBatch(graphic, features, range) { return new Batch(graphic, features, range); }
|
|
109136
|
+
/** @internal */
|
|
109115
109137
|
createMesh(_params) { return new Graphic(); }
|
|
109138
|
+
/** @internal */
|
|
109116
109139
|
createPolyline(_params) { return new Graphic(); }
|
|
109140
|
+
/** @internal */
|
|
109117
109141
|
createPointString(_params) { return new Graphic(); }
|
|
109142
|
+
/** @internal */
|
|
109118
109143
|
createPointCloud(_args, _imodel) { return new Graphic(); }
|
|
109119
109144
|
createRenderGraphic() { return new Graphic(); }
|
|
109145
|
+
/** @internal */
|
|
109120
109146
|
createMeshGeometry() { return new Geometry(); }
|
|
109147
|
+
/** @internal */
|
|
109121
109148
|
createPolylineGeometry() { return new Geometry(); }
|
|
109149
|
+
/** @internal */
|
|
109122
109150
|
createPointStringGeometry() { return new Geometry(); }
|
|
109151
|
+
/** @internal */
|
|
109123
109152
|
createAreaPattern() { return new AreaPattern(); }
|
|
109124
109153
|
}
|
|
109125
109154
|
MockRender.System = System;
|
|
109126
|
-
/** An implementation of IModelApp which uses a MockRender.System by default.
|
|
109127
|
-
* @internal
|
|
109128
|
-
*/
|
|
109155
|
+
/** An implementation of IModelApp which uses a MockRender.System by default. */
|
|
109129
109156
|
class App {
|
|
109130
109157
|
static async startup(opts) {
|
|
109131
109158
|
opts = opts ? opts : {};
|
|
@@ -109863,8 +109890,9 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
109863
109890
|
/** @packageDocumentation
|
|
109864
109891
|
* @module Rendering
|
|
109865
109892
|
*/
|
|
109866
|
-
/**
|
|
109867
|
-
*
|
|
109893
|
+
/** APIs for querying memory consumed by the [[RenderSystem]].
|
|
109894
|
+
* Use methods like [[Viewport.collectStatistics]] and [[TileTreeReference.collectStatistics]] to query this memory usage.
|
|
109895
|
+
* @public
|
|
109868
109896
|
*/
|
|
109869
109897
|
var RenderMemory;
|
|
109870
109898
|
(function (RenderMemory) {
|
|
@@ -109950,64 +109978,113 @@ var RenderMemory;
|
|
|
109950
109978
|
ConsumerType[ConsumerType["ThematicTextures"] = 9] = "ThematicTextures";
|
|
109951
109979
|
ConsumerType[ConsumerType["COUNT"] = 10] = "COUNT";
|
|
109952
109980
|
})(ConsumerType = RenderMemory.ConsumerType || (RenderMemory.ConsumerType = {}));
|
|
109953
|
-
/**
|
|
109981
|
+
/** Contains statistics about the amount and type of memory consumed by the [[RenderSystem]].
|
|
109982
|
+
* Use methods like [[Viewport.collectStatistics]] and [[TileTreeReference.collectStatistics]] to query this memory usage.
|
|
109983
|
+
* @see [[Statistics.create]] to instantiate an instance of this class.
|
|
109984
|
+
* @public
|
|
109985
|
+
*/
|
|
109954
109986
|
class Statistics {
|
|
109987
|
+
/** @internal */
|
|
109955
109988
|
constructor() {
|
|
109956
109989
|
this._totalBytes = 0;
|
|
109990
|
+
/** @internal */
|
|
109957
109991
|
this.buffers = new Buffers();
|
|
109958
109992
|
this.consumers = [];
|
|
109959
109993
|
for (let i = 0; i < ConsumerType.COUNT; i++)
|
|
109960
109994
|
this.consumers[i] = new Consumers();
|
|
109961
109995
|
}
|
|
109996
|
+
/** Create a new, empty statistics object. */
|
|
109997
|
+
static create() {
|
|
109998
|
+
return new Statistics();
|
|
109999
|
+
}
|
|
110000
|
+
/** The total reported memory consumption, in bytes.
|
|
110001
|
+
* @note A web browser provides no direct access to actual memory used by the host device or its graphics hardware. The reported memory usage
|
|
110002
|
+
* is an estimate based on the number of bytes of data requested via WebGL APIs. It is always an *under-estimate* as each WebGL implementation imposes
|
|
110003
|
+
* its own additional overhead.
|
|
110004
|
+
*/
|
|
109962
110005
|
get totalBytes() { return this._totalBytes; }
|
|
110006
|
+
/** @internal */
|
|
109963
110007
|
get textures() { return this.consumers[ConsumerType.Textures]; }
|
|
110008
|
+
/** @internal */
|
|
109964
110009
|
get vertexTables() { return this.consumers[ConsumerType.VertexTables]; }
|
|
110010
|
+
/** @internal */
|
|
109965
110011
|
get edgeTables() { return this.consumers[ConsumerType.EdgeTables]; }
|
|
110012
|
+
/** @internal */
|
|
109966
110013
|
get featureTables() { return this.consumers[ConsumerType.FeatureTables]; }
|
|
110014
|
+
/** @internal */
|
|
109967
110015
|
get thematicTextures() { return this.consumers[ConsumerType.ThematicTextures]; }
|
|
110016
|
+
/** @internal */
|
|
109968
110017
|
get featureOverrides() { return this.consumers[ConsumerType.FeatureOverrides]; }
|
|
110018
|
+
/** @internal */
|
|
109969
110019
|
get clipVolumes() { return this.consumers[ConsumerType.ClipVolumes]; }
|
|
110020
|
+
/** @internal */
|
|
109970
110021
|
get planarClassifiers() { return this.consumers[ConsumerType.PlanarClassifiers]; }
|
|
110022
|
+
/** @internal */
|
|
109971
110023
|
get shadowMaps() { return this.consumers[ConsumerType.ShadowMaps]; }
|
|
110024
|
+
/** @internal */
|
|
109972
110025
|
get textureAttachments() { return this.consumers[ConsumerType.TextureAttachments]; }
|
|
110026
|
+
/** @internal */
|
|
109973
110027
|
addBuffer(type, numBytes) {
|
|
109974
110028
|
this._totalBytes += numBytes;
|
|
109975
110029
|
this.buffers.addBuffer(type, numBytes);
|
|
109976
110030
|
}
|
|
110031
|
+
/** @internal */
|
|
109977
110032
|
addConsumer(type, numBytes) {
|
|
109978
110033
|
this._totalBytes += numBytes;
|
|
109979
110034
|
this.consumers[type].addConsumer(numBytes);
|
|
109980
110035
|
}
|
|
110036
|
+
/** @internal */
|
|
109981
110037
|
clear() {
|
|
109982
110038
|
this._totalBytes = 0;
|
|
109983
110039
|
this.buffers.clear();
|
|
109984
110040
|
for (const consumer of this.consumers)
|
|
109985
110041
|
consumer.clear();
|
|
109986
110042
|
}
|
|
110043
|
+
/** @internal */
|
|
109987
110044
|
addTexture(numBytes) { this.addConsumer(ConsumerType.Textures, numBytes); }
|
|
110045
|
+
/** @internal */
|
|
109988
110046
|
addVertexTable(numBytes) { this.addConsumer(ConsumerType.VertexTables, numBytes); }
|
|
110047
|
+
/** @internal */
|
|
109989
110048
|
addEdgeTable(numBytes) { this.addConsumer(ConsumerType.EdgeTables, numBytes); }
|
|
110049
|
+
/** @internal */
|
|
109990
110050
|
addFeatureTable(numBytes) { this.addConsumer(ConsumerType.FeatureTables, numBytes); }
|
|
110051
|
+
/** @internal */
|
|
109991
110052
|
addThematicTexture(numBytes) { this.addConsumer(ConsumerType.ThematicTextures, numBytes); }
|
|
110053
|
+
/** @internal */
|
|
109992
110054
|
addFeatureOverrides(numBytes) { this.addConsumer(ConsumerType.FeatureOverrides, numBytes); }
|
|
110055
|
+
/** @internal */
|
|
109993
110056
|
addClipVolume(numBytes) { this.addConsumer(ConsumerType.ClipVolumes, numBytes); }
|
|
110057
|
+
/** @internal */
|
|
109994
110058
|
addPlanarClassifier(numBytes) { this.addConsumer(ConsumerType.PlanarClassifiers, numBytes); }
|
|
110059
|
+
/** @internal */
|
|
109995
110060
|
addShadowMap(numBytes) { this.addConsumer(ConsumerType.ShadowMaps, numBytes); }
|
|
110061
|
+
/** @internal */
|
|
109996
110062
|
addTextureAttachment(numBytes) { this.addConsumer(ConsumerType.TextureAttachments, numBytes); }
|
|
110063
|
+
/** @internal */
|
|
109997
110064
|
addSurface(numBytes) { this.addBuffer(BufferType.Surfaces, numBytes); }
|
|
110065
|
+
/** @internal */
|
|
109998
110066
|
addVisibleEdges(numBytes) { this.addBuffer(BufferType.VisibleEdges, numBytes); }
|
|
110067
|
+
/** @internal */
|
|
109999
110068
|
addIndexedEdges(numBytes) { this.addBuffer(BufferType.IndexedEdges, numBytes); }
|
|
110069
|
+
/** @internal */
|
|
110000
110070
|
addSilhouetteEdges(numBytes) { this.addBuffer(BufferType.SilhouetteEdges, numBytes); }
|
|
110071
|
+
/** @internal */
|
|
110001
110072
|
addPolylineEdges(numBytes) { this.addBuffer(BufferType.PolylineEdges, numBytes); }
|
|
110073
|
+
/** @internal */
|
|
110002
110074
|
addPolyline(numBytes) { this.addBuffer(BufferType.Polylines, numBytes); }
|
|
110075
|
+
/** @internal */
|
|
110003
110076
|
addPointString(numBytes) { this.addBuffer(BufferType.PointStrings, numBytes); }
|
|
110077
|
+
/** @internal */
|
|
110004
110078
|
addPointCloud(numBytes) { this.addBuffer(BufferType.PointClouds, numBytes); }
|
|
110079
|
+
/** @internal */
|
|
110005
110080
|
addTerrain(numBytes) {
|
|
110006
110081
|
this.addBuffer(BufferType.Terrain, numBytes);
|
|
110007
110082
|
}
|
|
110083
|
+
/** @internal */
|
|
110008
110084
|
addRealityMesh(numBytes) {
|
|
110009
110085
|
this.addBuffer(BufferType.RealityMesh, numBytes);
|
|
110010
110086
|
}
|
|
110087
|
+
/** @internal */
|
|
110011
110088
|
addInstances(numBytes) { this.addBuffer(BufferType.Instances, numBytes); }
|
|
110012
110089
|
}
|
|
110013
110090
|
RenderMemory.Statistics = Statistics;
|
|
@@ -153939,7 +154016,7 @@ class TileTreeReference /* implements RenderMemory.Consumer */ {
|
|
|
153939
154016
|
if (!contentRange.isNull)
|
|
153940
154017
|
union.extendRange(contentRange);
|
|
153941
154018
|
}
|
|
153942
|
-
/**
|
|
154019
|
+
/** Record graphics memory consumed by this tile tree reference. */
|
|
153943
154020
|
collectStatistics(stats) {
|
|
153944
154021
|
const tree = this.treeOwner.tileTree;
|
|
153945
154022
|
if (undefined !== tree)
|
|
@@ -165583,6 +165660,7 @@ class ElementSetTool extends _PrimitiveTool__WEBPACK_IMPORTED_MODULE_9__.Primiti
|
|
|
165583
165660
|
ids.add(id);
|
|
165584
165661
|
try {
|
|
165585
165662
|
const ecsql = `SELECT ECInstanceId as id, Parent.Id as parentId FROM BisCore.GeometricElement WHERE Parent.Id IN (SELECT Parent.Id as parentId FROM BisCore.GeometricElement WHERE parent.Id != 0 AND ECInstanceId IN (${id}))`;
|
|
165663
|
+
// eslint-disable-next-line deprecation/deprecation
|
|
165586
165664
|
for await (const row of this.iModel.query(ecsql, undefined, { rowFormat: _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.QueryRowFormat.UseJsPropertyNames })) {
|
|
165587
165665
|
ids.add(row.parentId);
|
|
165588
165666
|
ids.add(row.id);
|
|
@@ -213215,22 +213293,25 @@ class Matrix3d {
|
|
|
213215
213293
|
return result;
|
|
213216
213294
|
}
|
|
213217
213295
|
/**
|
|
213218
|
-
* Multiply `this` Matrix3d (considered
|
|
213296
|
+
* Multiply `this` Matrix3d (considered to be a Transform with 0 `origin`) times `other` Transform.
|
|
213297
|
+
* **Note:** If `other = [B b]`, then we promote `this` matrix to be a Transform [A 0].
|
|
213298
|
+
* Then `this * other` is defined as [A*B Aa]. That's because we create a 4x4 matrix for each Transform
|
|
213299
|
+
* with the 3x3 `matrix` and `origin` as upper 3x4 part of a 4x4 matrix and 0001 as the final row. Then we
|
|
213300
|
+
* multiply those two 4x4 matrixes:
|
|
213219
213301
|
* ```
|
|
213220
213302
|
* equation
|
|
213221
213303
|
* \begin{matrix}
|
|
213222
|
-
* \text{
|
|
213223
|
-
* \text{other
|
|
213304
|
+
* \text{`this` matrix }\bold{A}\text{ promoted to block Transform} & \blockTransform{A}{0} \\
|
|
213305
|
+
* \text{`other` Transform with `matrix` part }\bold{B}\text{ and `origin` part }\bold{b} & \blockTransform{B}{b}\\
|
|
213224
213306
|
* \text{product}& \blockTransform{A}{0}\blockTransform{B}{b}=\blockTransform{AB}{Ab}
|
|
213225
213307
|
* \end{matrix}
|
|
213226
213308
|
* ```
|
|
213227
|
-
* @param other
|
|
213228
|
-
* @param result
|
|
213309
|
+
* @param other the `other` Transform to be multiplied to `this` matrix.
|
|
213310
|
+
* @param result optional preallocated result to reuse.
|
|
213229
213311
|
*/
|
|
213230
213312
|
multiplyMatrixTransform(other, result) {
|
|
213231
213313
|
if (!result)
|
|
213232
213314
|
return _Transform__WEBPACK_IMPORTED_MODULE_5__.Transform.createRefs(this.multiplyXYZ(other.origin.x, other.origin.y, other.origin.z), this.multiplyMatrixMatrix(other.matrix));
|
|
213233
|
-
// be sure to do the point multiplication first before aliasing changes the matrix
|
|
213234
213315
|
this.multiplyXYZtoXYZ(other.origin, result.origin);
|
|
213235
213316
|
this.multiplyMatrixMatrix(other.matrix, result.matrix);
|
|
213236
213317
|
return result;
|
|
@@ -223053,11 +223134,15 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
223053
223134
|
* * The math for a Transform `T` consisting of a Matrix3d `M` and a Point3d `o` on a Vector3d `p` is: `Tp = M*p + o`.
|
|
223054
223135
|
* In other words, `T` is a combination of two operations on `p`: the action of matrix multiplication, followed by a
|
|
223055
223136
|
* translation. `Origin` is a traditional term for `o`, because `T` can be interpreted as a change of basis from the
|
|
223056
|
-
* global axes centered at the global origin, to a new set of axes centered at `o`.
|
|
223057
|
-
* * Beware that for common transformations (e.g. scale about point, rotate around an axis
|
|
223058
|
-
*
|
|
223059
|
-
*
|
|
223060
|
-
*
|
|
223137
|
+
* global axes centered at the global origin, to a new set of axes specified by matrix M columns centered at `o`.
|
|
223138
|
+
* * Beware that for common transformations (e.g. scale about point, rotate around an axis) the `fixed point` that
|
|
223139
|
+
* is used when describing the transform is NOT the `origin` stored in the transform. Setup methods (e.g
|
|
223140
|
+
* createFixedPointAndMatrix, createScaleAboutPoint) take care of determining the appropriate origin coordinates.
|
|
223141
|
+
* * If `T` is a translation, no point is fixed by `T`.
|
|
223142
|
+
* * If `T` is the identity, all points are fixed by `T`.
|
|
223143
|
+
* * If `T` is a scale about a point, one point is fixed by `T`.
|
|
223144
|
+
* * If `T` is a rotation about an axis, a line is fixed by `T`.
|
|
223145
|
+
* * If `T` is a projection to the plane, a plane is fixed by `T`.
|
|
223061
223146
|
* @public
|
|
223062
223147
|
*/
|
|
223063
223148
|
class Transform {
|
|
@@ -223350,22 +223435,32 @@ class Transform {
|
|
|
223350
223435
|
const origin = _Matrix3d__WEBPACK_IMPORTED_MODULE_2__.Matrix3d.xyzMinusMatrixTimesXYZ(fixedPoint, matrix, fixedPoint);
|
|
223351
223436
|
return Transform.createRefs(origin, matrix, result);
|
|
223352
223437
|
}
|
|
223353
|
-
/**
|
|
223438
|
+
/**
|
|
223439
|
+
* Transform the input 2d point (using `Tp = M*p + o`).
|
|
223440
|
+
* Return as a new point or in the pre-allocated result (if result is given).
|
|
223441
|
+
*/
|
|
223354
223442
|
multiplyPoint2d(point, result) {
|
|
223355
|
-
// Tx = Mx + o so we return Mx + o
|
|
223356
223443
|
return _Matrix3d__WEBPACK_IMPORTED_MODULE_2__.Matrix3d.xyPlusMatrixTimesXY(this._origin, this._matrix, point, result);
|
|
223357
223444
|
}
|
|
223358
|
-
/**
|
|
223445
|
+
/**
|
|
223446
|
+
* Transform the input 3d point (using `Tp = M*p + o`).
|
|
223447
|
+
* Return as a new point or in the pre-allocated result (if result is given).
|
|
223448
|
+
*/
|
|
223359
223449
|
multiplyPoint3d(point, result) {
|
|
223360
223450
|
// Tx = Mx + o so we return Mx + o
|
|
223361
223451
|
return _Matrix3d__WEBPACK_IMPORTED_MODULE_2__.Matrix3d.xyzPlusMatrixTimesXYZ(this._origin, this._matrix, point, result);
|
|
223362
223452
|
}
|
|
223363
|
-
/**
|
|
223453
|
+
/**
|
|
223454
|
+
* Transform the input 3d point in place (using `Tp = M*p + o`).
|
|
223455
|
+
* Return as a new point or in the pre-allocated result (if result is given).
|
|
223456
|
+
*/
|
|
223364
223457
|
multiplyXYAndZInPlace(point) {
|
|
223365
|
-
// Tx = Mx + o so we override x by Mx + o
|
|
223366
223458
|
return _Matrix3d__WEBPACK_IMPORTED_MODULE_2__.Matrix3d.xyzPlusMatrixTimesXYZInPlace(this._origin, this._matrix, point);
|
|
223367
223459
|
}
|
|
223368
|
-
/**
|
|
223460
|
+
/**
|
|
223461
|
+
* Transform the input 3d point (using `Tp = M*p + o`).
|
|
223462
|
+
* Return as a new point or in the pre-allocated result (if result is given).
|
|
223463
|
+
*/
|
|
223369
223464
|
multiplyXYZ(x, y, z = 0, result) {
|
|
223370
223465
|
// Tx = Mx + o so we return Mx + o
|
|
223371
223466
|
return _Matrix3d__WEBPACK_IMPORTED_MODULE_2__.Matrix3d.xyzPlusMatrixTimesCoordinates(this._origin, this._matrix, x, y, z, result);
|
|
@@ -223411,7 +223506,7 @@ class Transform {
|
|
|
223411
223506
|
return _Matrix3d__WEBPACK_IMPORTED_MODULE_2__.Matrix3d.xyzPlusMatrixTimesCoordinatesToFloat64Array(this._origin, this._matrix, x, y, z, result);
|
|
223412
223507
|
}
|
|
223413
223508
|
/**
|
|
223414
|
-
* Treat the 3x3 matrix and origin as upper 3x4 part of a 4x4 matrix, with 0001 as the final row. Now multiply
|
|
223509
|
+
* Treat the 3x3 `matrix` and `origin` as upper 3x4 part of a 4x4 matrix, with 0001 as the final row. Now multiply
|
|
223415
223510
|
* the transposed of this 4x4 matrix by Point4d given as xyzw. Return as a new point4d (`M*p` as first 3 elements
|
|
223416
223511
|
* and `o*p + w` as last element where `p = (x,y,z)`) or in the pre-allocated result (if result is given).
|
|
223417
223512
|
*/
|
|
@@ -223420,13 +223515,13 @@ class Transform {
|
|
|
223420
223515
|
const origin = this._origin;
|
|
223421
223516
|
return _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_3__.Point4d.create((x * coffs[0]) + (y * coffs[3]) + (z * coffs[6]), (x * coffs[1]) + (y * coffs[4]) + (z * coffs[7]), (x * coffs[2]) + (y * coffs[5]) + (z * coffs[8]), (x * origin.x) + (y * origin.y) + (z * origin.z) + w, result);
|
|
223422
223517
|
}
|
|
223423
|
-
/** For each point in the array, replace point by the transformed point (
|
|
223518
|
+
/** For each point in the array, replace point by the transformed point (using `Tp = M*p + o`) */
|
|
223424
223519
|
multiplyPoint3dArrayInPlace(points) {
|
|
223425
223520
|
let point;
|
|
223426
223521
|
for (point of points)
|
|
223427
223522
|
_Matrix3d__WEBPACK_IMPORTED_MODULE_2__.Matrix3d.xyzPlusMatrixTimesXYZ(this._origin, this._matrix, point, point);
|
|
223428
223523
|
}
|
|
223429
|
-
/** For each point in the 2d array, replace point by the transformed point (
|
|
223524
|
+
/** For each point in the 2d array, replace point by the transformed point (using `Tp = M*p + o`) */
|
|
223430
223525
|
multiplyPoint3dArrayArrayInPlace(chains) {
|
|
223431
223526
|
for (const chain of chains)
|
|
223432
223527
|
this.multiplyPoint3dArrayInPlace(chain);
|
|
@@ -223463,58 +223558,23 @@ class Transform {
|
|
|
223463
223558
|
return this._matrix.multiplyInverseXYZAsPoint3d(x - this._origin.x, y - this._origin.y, z - this._origin.z, result);
|
|
223464
223559
|
}
|
|
223465
223560
|
/**
|
|
223466
|
-
* *
|
|
223467
|
-
*
|
|
223468
|
-
* * if result is not given, return a new array.
|
|
223469
|
-
*/
|
|
223470
|
-
multiplyInversePoint3dArray(source, result) {
|
|
223471
|
-
if (!this._matrix.computeCachedInverse(true))
|
|
223472
|
-
return undefined;
|
|
223473
|
-
const originX = this.origin.x;
|
|
223474
|
-
const originY = this.origin.y;
|
|
223475
|
-
const originZ = this.origin.z;
|
|
223476
|
-
if (result) {
|
|
223477
|
-
const n = Transform.matchArrayLengths(source, result, _Point3dVector3d__WEBPACK_IMPORTED_MODULE_1__.Point3d.createZero);
|
|
223478
|
-
for (let i = 0; i < n; i++)
|
|
223479
|
-
this._matrix.multiplyInverseXYZAsPoint3d(source[i].x - originX, source[i].y - originY, source[i].z - originZ, result[i]);
|
|
223480
|
-
}
|
|
223481
|
-
result = [];
|
|
223482
|
-
for (const p of source)
|
|
223483
|
-
result.push(this._matrix.multiplyInverseXYZAsPoint3d(p.x - originX, p.y - originY, p.z - originZ));
|
|
223484
|
-
return result;
|
|
223485
|
-
}
|
|
223486
|
-
/**
|
|
223487
|
-
* * For each point in source: multiply transformInverse * point in place in the point.
|
|
223488
|
-
* * Return false if not invertible.
|
|
223489
|
-
*/
|
|
223490
|
-
multiplyInversePoint3dArrayInPlace(source) {
|
|
223491
|
-
if (!this._matrix.computeCachedInverse(true))
|
|
223492
|
-
return false;
|
|
223493
|
-
const originX = this.origin.x;
|
|
223494
|
-
const originY = this.origin.y;
|
|
223495
|
-
const originZ = this.origin.z;
|
|
223496
|
-
const n = source.length;
|
|
223497
|
-
for (let i = 0; i < n; i++)
|
|
223498
|
-
this._matrix.multiplyInverseXYZAsPoint3d(source[i].x - originX, source[i].y - originY, source[i].z - originZ, source[i]);
|
|
223499
|
-
return true;
|
|
223500
|
-
}
|
|
223501
|
-
/**
|
|
223502
|
-
* * Compute (if needed) the inverse of the matrix part, thereby ensuring inverse operations can complete.
|
|
223503
|
-
* * Return true if matrix inverse completes.
|
|
223561
|
+
* * Compute (if needed) the inverse of the `matrix` part of the Transform, thereby ensuring inverse
|
|
223562
|
+
* operations can complete.
|
|
223504
223563
|
* @param useCached If true, accept prior cached inverse if available.
|
|
223564
|
+
* @returns `true` if matrix inverse completes, `false` otherwise.
|
|
223505
223565
|
*/
|
|
223506
223566
|
computeCachedInverse(useCached = true) {
|
|
223507
223567
|
return this._matrix.computeCachedInverse(useCached);
|
|
223508
223568
|
}
|
|
223509
223569
|
/**
|
|
223510
|
-
*
|
|
223511
|
-
* * If destination has
|
|
223512
|
-
*
|
|
223513
|
-
*
|
|
223514
|
-
* @param
|
|
223570
|
+
* Match the length of destination array with the length of source array
|
|
223571
|
+
* * If destination has more elements than source, remove the extra elements.
|
|
223572
|
+
* * If destination has fewer elements than source, use `constructionFunction` to create new elements.
|
|
223573
|
+
* *
|
|
223574
|
+
* @param source the source array
|
|
223575
|
+
* @param dest the destination array
|
|
223576
|
+
* @param constructionFunction function to call to create new elements.
|
|
223515
223577
|
*/
|
|
223516
|
-
// modify destination so it has non-null points for the same length as the source.
|
|
223517
|
-
// (ASSUME existing elements of dest are non-null, and that parameters are given as either Point2d or Point3d arrays)
|
|
223518
223578
|
static matchArrayLengths(source, dest, constructionFunction) {
|
|
223519
223579
|
const numSource = source.length;
|
|
223520
223580
|
const numDest = dest.length;
|
|
@@ -223529,72 +223589,125 @@ class Transform {
|
|
|
223529
223589
|
return numSource;
|
|
223530
223590
|
}
|
|
223531
223591
|
/**
|
|
223532
|
-
*
|
|
223533
|
-
* *
|
|
223534
|
-
*
|
|
223592
|
+
* If for each point `p` we have `Tp = M*p + o = point` (where `point` is the transformed point), then
|
|
223593
|
+
* `p = MInverse * (point - o)`. This function returns the array of original points `p[]` if `points`
|
|
223594
|
+
* is the array of transformed point (`Tp = point` for each `p` and `point`).
|
|
223595
|
+
* * If `results` is given, resize it to match the input `points` array and update it with original points `p[]`.
|
|
223596
|
+
* * If `results` is not given, return a new array.
|
|
223597
|
+
* * Returns `undefined` if the `matrix` part if this Transform is singular.
|
|
223598
|
+
*/
|
|
223599
|
+
multiplyInversePoint3dArray(points, results) {
|
|
223600
|
+
if (!this._matrix.computeCachedInverse(true))
|
|
223601
|
+
return undefined;
|
|
223602
|
+
const originX = this.origin.x;
|
|
223603
|
+
const originY = this.origin.y;
|
|
223604
|
+
const originZ = this.origin.z;
|
|
223605
|
+
if (results) {
|
|
223606
|
+
const n = Transform.matchArrayLengths(points, results, _Point3dVector3d__WEBPACK_IMPORTED_MODULE_1__.Point3d.createZero);
|
|
223607
|
+
for (let i = 0; i < n; i++)
|
|
223608
|
+
this._matrix.multiplyInverseXYZAsPoint3d(points[i].x - originX, points[i].y - originY, points[i].z - originZ, results[i]);
|
|
223609
|
+
}
|
|
223610
|
+
results = [];
|
|
223611
|
+
for (const point of points)
|
|
223612
|
+
results.push(this._matrix.multiplyInverseXYZAsPoint3d(point.x - originX, point.y - originY, point.z - originZ));
|
|
223613
|
+
return results;
|
|
223614
|
+
}
|
|
223615
|
+
/**
|
|
223616
|
+
* If for each point `p` we have `Tp = M*p + o = point` (where `point` is the transformed point), then
|
|
223617
|
+
* `p = MInverse * (point - o)`. This function calculates the array of original points `p[]` if `points`
|
|
223618
|
+
* is the array of transformed point (`Tp = point` for each `p` and `point`) and replaces `points`
|
|
223619
|
+
* with the array of original points.
|
|
223620
|
+
* * Returns `true` if the `matrix` part if this Transform is invertible and `false if singular.
|
|
223535
223621
|
*/
|
|
223536
|
-
|
|
223622
|
+
multiplyInversePoint3dArrayInPlace(points) {
|
|
223623
|
+
if (!this._matrix.computeCachedInverse(true))
|
|
223624
|
+
return false;
|
|
223625
|
+
for (const point of points)
|
|
223626
|
+
this._matrix.multiplyInverseXYZAsPoint3d(point.x - this.origin.x, point.y - this.origin.y, point.z - this.origin.z, point);
|
|
223627
|
+
return true;
|
|
223628
|
+
}
|
|
223629
|
+
/**
|
|
223630
|
+
* Transform the input 2d point array (using `Tp = M*p + o`).
|
|
223631
|
+
* * If `result` is given, resize it to match the input `points` array and update it with transformed points.
|
|
223632
|
+
* * If `result` is not given, return a new array.
|
|
223633
|
+
*/
|
|
223634
|
+
multiplyPoint2dArray(points, result) {
|
|
223537
223635
|
if (result) {
|
|
223538
|
-
const n = Transform.matchArrayLengths(
|
|
223636
|
+
const n = Transform.matchArrayLengths(points, result, _Point2dVector2d__WEBPACK_IMPORTED_MODULE_4__.Point2d.createZero);
|
|
223539
223637
|
for (let i = 0; i < n; i++)
|
|
223540
|
-
_Matrix3d__WEBPACK_IMPORTED_MODULE_2__.Matrix3d.xyPlusMatrixTimesXY(this._origin, this._matrix,
|
|
223638
|
+
_Matrix3d__WEBPACK_IMPORTED_MODULE_2__.Matrix3d.xyPlusMatrixTimesXY(this._origin, this._matrix, points[i], result[i]);
|
|
223541
223639
|
return result;
|
|
223542
223640
|
}
|
|
223543
223641
|
result = [];
|
|
223544
|
-
for (const p of
|
|
223642
|
+
for (const p of points)
|
|
223545
223643
|
result.push(_Matrix3d__WEBPACK_IMPORTED_MODULE_2__.Matrix3d.xyPlusMatrixTimesXY(this._origin, this._matrix, p));
|
|
223546
223644
|
return result;
|
|
223547
223645
|
}
|
|
223548
223646
|
/**
|
|
223549
|
-
*
|
|
223550
|
-
* * If result is given, resize to match
|
|
223551
|
-
* * If result is not given, return a new array.
|
|
223647
|
+
* Transform the input 3d point array (using `Tp = M*p + o`).
|
|
223648
|
+
* * If `result` is given, resize it to match the input `points` array and update it with transformed points.
|
|
223649
|
+
* * If `result` is not given, return a new array.
|
|
223552
223650
|
*/
|
|
223553
|
-
multiplyPoint3dArray(
|
|
223651
|
+
multiplyPoint3dArray(points, result) {
|
|
223554
223652
|
if (result) {
|
|
223555
|
-
const n = Transform.matchArrayLengths(
|
|
223653
|
+
const n = Transform.matchArrayLengths(points, result, _Point3dVector3d__WEBPACK_IMPORTED_MODULE_1__.Point3d.createZero);
|
|
223556
223654
|
for (let i = 0; i < n; i++)
|
|
223557
|
-
_Matrix3d__WEBPACK_IMPORTED_MODULE_2__.Matrix3d.xyzPlusMatrixTimesXYZ(this._origin, this._matrix,
|
|
223655
|
+
_Matrix3d__WEBPACK_IMPORTED_MODULE_2__.Matrix3d.xyzPlusMatrixTimesXYZ(this._origin, this._matrix, points[i], result[i]);
|
|
223558
223656
|
return result;
|
|
223559
223657
|
}
|
|
223560
223658
|
result = [];
|
|
223561
|
-
for (const p of
|
|
223659
|
+
for (const p of points)
|
|
223562
223660
|
result.push(_Matrix3d__WEBPACK_IMPORTED_MODULE_2__.Matrix3d.xyzPlusMatrixTimesXYZ(this._origin, this._matrix, p));
|
|
223563
223661
|
return result;
|
|
223564
223662
|
}
|
|
223565
223663
|
/**
|
|
223566
|
-
* Multiply the vector by the
|
|
223567
|
-
* * The
|
|
223568
|
-
* *
|
|
223664
|
+
* Multiply the vector by the `matrix` part of the Transform.
|
|
223665
|
+
* * The `origin` part of Transform is not used.
|
|
223666
|
+
* * If `result` is given, update it with the multiplication. Otherwise, create a new Vector3d.
|
|
223569
223667
|
*/
|
|
223570
223668
|
multiplyVector(vector, result) {
|
|
223571
223669
|
return this._matrix.multiplyVector(vector, result);
|
|
223572
223670
|
}
|
|
223573
223671
|
/**
|
|
223574
|
-
* Multiply the vector
|
|
223575
|
-
* * The
|
|
223672
|
+
* Multiply the vector by the `matrix` part of the Transform in place.
|
|
223673
|
+
* * The `origin` part of Transform is not used.
|
|
223576
223674
|
*/
|
|
223577
223675
|
multiplyVectorInPlace(vector) {
|
|
223578
223676
|
this._matrix.multiplyVectorInPlace(vector);
|
|
223579
223677
|
}
|
|
223580
223678
|
/**
|
|
223581
|
-
* Multiply the vector (x,y,z) by the
|
|
223582
|
-
* * The
|
|
223583
|
-
* *
|
|
223679
|
+
* Multiply the vector (x,y,z) by the `matrix` part of the Transform.
|
|
223680
|
+
* * The `origin` part of Transform is not used.
|
|
223681
|
+
* * If `result` is given, update it with the multiplication. Otherwise, create a new Vector3d.
|
|
223584
223682
|
*/
|
|
223585
223683
|
multiplyVectorXYZ(x, y, z, result) {
|
|
223586
223684
|
return this._matrix.multiplyXYZ(x, y, z, result);
|
|
223587
223685
|
}
|
|
223588
|
-
/**
|
|
223686
|
+
/**
|
|
223687
|
+
* Calculate `transformA * transformB` and store it into the calling instance (`this`).
|
|
223688
|
+
* * **Note:** If `transformA = [A a]` and `transformB = [B b]` then `transformA * transformB` is defined as
|
|
223689
|
+
* `[A*B Ab+a]`. See `multiplyTransformTransform` doc for math details.
|
|
223690
|
+
* @param transformA first operand
|
|
223691
|
+
* @param transformB second operand
|
|
223692
|
+
*/
|
|
223693
|
+
setMultiplyTransformTransform(transformA, transformB) {
|
|
223694
|
+
_Matrix3d__WEBPACK_IMPORTED_MODULE_2__.Matrix3d.xyzPlusMatrixTimesXYZ(transformA._origin, transformA._matrix, transformB._origin, this._origin);
|
|
223695
|
+
transformA._matrix.multiplyMatrixMatrix(transformB._matrix, this._matrix);
|
|
223696
|
+
}
|
|
223697
|
+
/**
|
|
223698
|
+
* Multiply `this` Transform times `other` Transform.
|
|
223699
|
+
* **Note:** If `this = [A a]` and `other = [B b]` then `this * other` is defined as [A*B Ab+a].
|
|
223700
|
+
* That's because we create a 4x4 matrix for each Transform with the 3x3 `matrix` and `origin`
|
|
223701
|
+
* as upper 3x4 part of a 4x4 matrix and 0001 as the final row. Then we multiply those two 4x4 matrixes:
|
|
223589
223702
|
* ```
|
|
223590
223703
|
* equation
|
|
223591
223704
|
* \begin{matrix}
|
|
223592
|
-
* \text{`this`
|
|
223593
|
-
* \text{`other`
|
|
223705
|
+
* \text{`this` Transform with `matrix` part }\bold{A}\text{ and `origin` part }\bold{a} & \blockTransform{A}{a}\\
|
|
223706
|
+
* \text{`other` Transform with `matrix` part }\bold{B}\text{ and `origin` part }\bold{b} & \blockTransform{B}{b} \\
|
|
223594
223707
|
* \text{product}& \blockTransform{A}{a}\blockTransform{B}{b}=\blockTransform{AB}{Ab + a}
|
|
223595
223708
|
* \end{matrix}
|
|
223596
223709
|
* ```
|
|
223597
|
-
* @param other
|
|
223710
|
+
* @param other the 'other` Transform to be multiplied to `this` Transform.
|
|
223598
223711
|
* @param result optional preallocated result to reuse.
|
|
223599
223712
|
*/
|
|
223600
223713
|
multiplyTransformTransform(other, result) {
|
|
@@ -223604,30 +223717,20 @@ class Transform {
|
|
|
223604
223717
|
return result;
|
|
223605
223718
|
}
|
|
223606
223719
|
/**
|
|
223607
|
-
* Multiply
|
|
223608
|
-
*
|
|
223609
|
-
*
|
|
223610
|
-
|
|
223611
|
-
|
|
223612
|
-
if (Transform._scratchPoint === undefined)
|
|
223613
|
-
Transform._scratchPoint = _Point3dVector3d__WEBPACK_IMPORTED_MODULE_1__.Point3d.create();
|
|
223614
|
-
_Matrix3d__WEBPACK_IMPORTED_MODULE_2__.Matrix3d.xyzPlusMatrixTimesXYZ(transformA._origin, transformA._matrix, transformB._origin, Transform._scratchPoint);
|
|
223615
|
-
this._origin.setFrom(Transform._scratchPoint);
|
|
223616
|
-
transformA._matrix.multiplyMatrixMatrix(transformB._matrix, this._matrix);
|
|
223617
|
-
}
|
|
223618
|
-
// [Q A][R 0] = [QR A]
|
|
223619
|
-
// [0 1][0 1] [0 1]
|
|
223620
|
-
/**
|
|
223621
|
-
* Multiply this Transform times other Matrix3d, with other considered to be a Transform with 0 translation.
|
|
223720
|
+
* Multiply `this` Transform times `other` Matrix3d (considered to be a Transform with 0 `origin`).
|
|
223721
|
+
* **Note:** If `this = [A a]`, then we promote `other` matrix to be a Transform [B 0].
|
|
223722
|
+
* Then `this * other` is defined as [A*B a]. That's because we create a 4x4 matrix for each Transform
|
|
223723
|
+
* with the 3x3 `matrix` and `origin` as upper 3x4 part of a 4x4 matrix and 0001 as the final row. Then we
|
|
223724
|
+
* multiply those two 4x4 matrixes:
|
|
223622
223725
|
* ```
|
|
223623
223726
|
* equation
|
|
223624
223727
|
* \begin{matrix}
|
|
223625
|
-
* \text{`this`
|
|
223626
|
-
* \text{`other` matrix }\bold{B}\text{ promoted to block
|
|
223728
|
+
* \text{`this` Transform with `matrix` part }\bold{A}\text{ and `origin` part }\bold{a} & \blockTransform{A}{a}\\
|
|
223729
|
+
* \text{`other` matrix }\bold{B}\text{ promoted to block Transform} & \blockTransform{B}{0} \\
|
|
223627
223730
|
* \text{product}& \blockTransform{A}{a}\blockTransform{B}{0}=\blockTransform{AB}{a}
|
|
223628
223731
|
* \end{matrix}
|
|
223629
223732
|
* ```
|
|
223630
|
-
* @param other
|
|
223733
|
+
* @param other the `other` Matrix3d to be multiplied to `this` Transform.
|
|
223631
223734
|
* @param result optional preallocated result to reuse.
|
|
223632
223735
|
*/
|
|
223633
223736
|
multiplyTransformMatrix3d(other, result) {
|
|
@@ -223638,15 +223741,17 @@ class Transform {
|
|
|
223638
223741
|
return result;
|
|
223639
223742
|
}
|
|
223640
223743
|
/**
|
|
223641
|
-
* Return the
|
|
223744
|
+
* Return the Range of the transformed corners.
|
|
223642
223745
|
* * The 8 corners are transformed individually.
|
|
223643
|
-
* * Note
|
|
223644
|
-
*
|
|
223746
|
+
* * **Note:** Suppose you have a geometry, a range box around that geometry, and your Transform is a rotation.
|
|
223747
|
+
* If you rotate the range box and recompute a new range box around the rotated range box, then the new range
|
|
223748
|
+
* box will have a larger volume than the original range box. However, if you rotate the geometry itself and
|
|
223749
|
+
* then recompute the range box, it will be a tighter range box around the rotated geometry. `multiplyRange`
|
|
223750
|
+
* function creates the larger range box because it only has access to the range box and the geometry itself.
|
|
223645
223751
|
*/
|
|
223646
223752
|
multiplyRange(range, result) {
|
|
223647
223753
|
if (range.isNull)
|
|
223648
223754
|
return range.clone(result);
|
|
223649
|
-
// snag current values to allow aliasing.
|
|
223650
223755
|
const lowX = range.low.x;
|
|
223651
223756
|
const lowY = range.low.y;
|
|
223652
223757
|
const lowZ = range.low.z;
|
|
@@ -223665,9 +223770,9 @@ class Transform {
|
|
|
223665
223770
|
return result;
|
|
223666
223771
|
}
|
|
223667
223772
|
/**
|
|
223668
|
-
*
|
|
223669
|
-
*
|
|
223670
|
-
*
|
|
223773
|
+
* Return a Transform which is the inverse of `this` Transform.
|
|
223774
|
+
* * If `transform = [M o]` then `transformInverse = [MInverse MInverse*-o]`
|
|
223775
|
+
* * Return `undefined` if this Transform's matrix is singular.
|
|
223671
223776
|
*/
|
|
223672
223777
|
inverse(result) {
|
|
223673
223778
|
const matrixInverse = this._matrix.inverse(result ? result._matrix : undefined);
|
|
@@ -223681,15 +223786,15 @@ class Transform {
|
|
|
223681
223786
|
return Transform.createRefs(matrixInverse.multiplyXYZ(-this._origin.x, -this._origin.y, -this._origin.z), matrixInverse);
|
|
223682
223787
|
}
|
|
223683
223788
|
/**
|
|
223684
|
-
* Initialize
|
|
223685
|
-
*
|
|
223686
|
-
*
|
|
223687
|
-
*
|
|
223688
|
-
*
|
|
223689
|
-
*
|
|
223690
|
-
* @param
|
|
223691
|
-
*
|
|
223692
|
-
*
|
|
223789
|
+
* Initialize 2 Transforms: First Transform maps a box (axis aligned) specified by `min` and `max` to
|
|
223790
|
+
* the unit box specified by 000 and 111 and inverse of it. Second Transform is the reverse of first.
|
|
223791
|
+
* @param min the min corner of the box
|
|
223792
|
+
* @param max the max corner of the box
|
|
223793
|
+
* @param npcToGlobal maps global (the unit box specified by 000 and 111) to NPC (a box specified by `min`
|
|
223794
|
+
* and `max`). Object created by caller, re-initialized here.
|
|
223795
|
+
* @param globalToNpc maps NPC (a box specified by `min` and `max`) to global (the unit box specified by
|
|
223796
|
+
* 000 and 111). Object created by caller, re-initialized here.
|
|
223797
|
+
* * NPC stands for `Normalized Projection Coordinate`
|
|
223693
223798
|
*/
|
|
223694
223799
|
static initFromRange(min, max, npcToGlobal, globalToNpc) {
|
|
223695
223800
|
const diag = max.minus(min);
|
|
@@ -223700,10 +223805,26 @@ class Transform {
|
|
|
223700
223805
|
if (diag.z === 0.0)
|
|
223701
223806
|
diag.z = 1.0;
|
|
223702
223807
|
const rMatrix = new _Matrix3d__WEBPACK_IMPORTED_MODULE_2__.Matrix3d();
|
|
223808
|
+
/**
|
|
223809
|
+
* [diag.x 0 0 min.x]
|
|
223810
|
+
* npcToGlobal = [ 0 diag.y 0 min.y]
|
|
223811
|
+
* [ 0 0 diag.y min.z]
|
|
223812
|
+
*
|
|
223813
|
+
* npcToGlobal * 0 = min
|
|
223814
|
+
* npcToGlobal * 1 = diag + min = max
|
|
223815
|
+
*/
|
|
223703
223816
|
if (npcToGlobal) {
|
|
223704
223817
|
_Matrix3d__WEBPACK_IMPORTED_MODULE_2__.Matrix3d.createScale(diag.x, diag.y, diag.z, rMatrix);
|
|
223705
223818
|
Transform.createOriginAndMatrix(min, rMatrix, npcToGlobal);
|
|
223706
223819
|
}
|
|
223820
|
+
/**
|
|
223821
|
+
* [1/diag.x 0 0 -min.x/diag.x]
|
|
223822
|
+
* globalToNpc = [ 0 1/diag.y 0 -min.y/diag.y]
|
|
223823
|
+
* [ 0 0 1/diag.y -min.z/diag.z]
|
|
223824
|
+
*
|
|
223825
|
+
* globalToNpc * min = min/diag - min/diag = 0
|
|
223826
|
+
* globalToNpc * max = max/diag - min/diag = diag/diag = 1
|
|
223827
|
+
*/
|
|
223707
223828
|
if (globalToNpc) {
|
|
223708
223829
|
const origin = new _Point3dVector3d__WEBPACK_IMPORTED_MODULE_1__.Point3d(-min.x / diag.x, -min.y / diag.y, -min.z / diag.z);
|
|
223709
223830
|
_Matrix3d__WEBPACK_IMPORTED_MODULE_2__.Matrix3d.createScale(1.0 / diag.x, 1.0 / diag.y, 1.0 / diag.z, rMatrix);
|
|
@@ -280639,7 +280760,7 @@ class TestContext {
|
|
|
280639
280760
|
this.initializeRpcInterfaces({ title: this.settings.Backend.name, version: this.settings.Backend.version });
|
|
280640
280761
|
const iModelClient = new imodels_client_management_1.IModelsClient({ api: { baseUrl: `https://${process.env.IMJS_URL_PREFIX ?? ""}api.bentley.com/imodels` } });
|
|
280641
280762
|
await core_frontend_1.NoRenderApp.startup({
|
|
280642
|
-
applicationVersion: "4.0.0-dev.
|
|
280763
|
+
applicationVersion: "4.0.0-dev.52",
|
|
280643
280764
|
applicationId: this.settings.gprid,
|
|
280644
280765
|
authorizationClient: new frontend_1.TestFrontendAuthorizationClient(this.adminUserAccessToken),
|
|
280645
280766
|
hubAccess: new imodels_access_frontend_1.FrontendIModelsAccess(iModelClient),
|
|
@@ -288232,6 +288353,7 @@ class FavoritePropertiesManager {
|
|
|
288232
288353
|
INNER JOIN ECDbMeta.ECClassDef baseClass ON baseClass.ECInstanceId = baseClassRels.TargetECInstanceId
|
|
288233
288354
|
INNER JOIN ECDbMeta.ECSchemaDef baseSchema ON baseSchema.ECInstanceId = baseClass.Schema.Id
|
|
288234
288355
|
WHERE (derivedSchema.Name || ':' || derivedClass.Name) IN (${[...missingClasses].map((className) => `'${className}'`).join(",")})`;
|
|
288356
|
+
// eslint-disable-next-line deprecation/deprecation
|
|
288235
288357
|
for await (const row of imodel.query(query, undefined, { rowFormat: _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.QueryRowFormat.UseJsPropertyNames })) {
|
|
288236
288358
|
if (!(row.classFullName in baseClasses))
|
|
288237
288359
|
baseClasses[row.classFullName] = [];
|
|
@@ -300197,7 +300319,7 @@ module.exports = JSON.parse('{"name":"axios","version":"0.21.4","description":"P
|
|
|
300197
300319
|
/***/ ((module) => {
|
|
300198
300320
|
|
|
300199
300321
|
"use strict";
|
|
300200
|
-
module.exports = JSON.parse('{"name":"@itwin/core-frontend","version":"4.0.0-dev.
|
|
300322
|
+
module.exports = JSON.parse('{"name":"@itwin/core-frontend","version":"4.0.0-dev.52","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","build:ci":"npm run -s build && npm run -s build:esm","build:cjs":"npm run -s copy:js:cjs && tsc 1>&2 --outDir lib/cjs","build:esm":"npm run -s copy:js:esm && tsc 1>&2 --module ES2020 --outDir lib/esm","clean":"rimraf lib .rush/temp/package-deps*.json","copy:public":"cpx \\"./src/public/**/*\\" ./lib/public","copy:js:cjs":"cpx \\"./src/**/*.js\\" ./lib/cjs","copy:js:esm":"cpx \\"./src/**/*.js\\" ./lib/esm","docs":"betools docs --includes=../../generated-docs/extract --json=../../generated-docs/core/core-frontend/file.json --tsIndexFile=./core-frontend.ts --onlyJson --excludes=webgl/**/*,**/primitives,**/map/*.d.ts,**/tile/*.d.ts,**/*-css.ts","extract-api":"betools extract-api --entry=core-frontend && npm run extract-extension-api","extract-extension-api":"eslint --no-eslintrc -c \\"./node_modules/@itwin/eslint-plugin/dist/configs/extension-exports-config.js\\" \\"./src/**/*.ts\\" 1>&2","lint":"eslint -f visualstudio \\"./src/**/*.ts\\" 1>&2","pseudolocalize":"betools pseudolocalize --englishDir ./src/public/locales/en --out ./public/locales/en-PSEUDO","test":"npm run -s webpackTests && certa -r chrome","cover":"npm -s test","test:debug":"certa -r chrome --debug","webpackTests":"webpack --config ./src/test/utils/webpack.config.js 1>&2"},"repository":{"type":"git","url":"https://github.com/iTwin/itwinjs-core/tree/master/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.0.0-dev.52","@itwin/core-bentley":"workspace:^4.0.0-dev.52","@itwin/core-common":"workspace:^4.0.0-dev.52","@itwin/core-geometry":"workspace:^4.0.0-dev.52","@itwin/core-orbitgt":"workspace:^4.0.0-dev.52","@itwin/core-quantity":"workspace:^4.0.0-dev.52"},"//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":"nightly","@itwin/webgl-compatibility":"workspace:*","@types/chai":"4.3.1","@types/chai-as-promised":"^7","@types/deep-assign":"^0.1.0","@types/mocha":"^8.2.2","@types/node":"^18.11.5","@types/qs":"^6.5.0","@types/semver":"7.3.10","@types/superagent":"^4.1.14","@types/sinon":"^9.0.0","babel-loader":"~8.2.5","babel-plugin-istanbul":"~6.1.1","chai":"^4.1.2","chai-as-promised":"^7","cpx2":"^3.0.0","eslint":"^7.11.0","glob":"^7.1.2","mocha":"^10.0.0","nyc":"^15.1.0","rimraf":"^3.0.2","sinon":"^9.0.2","source-map-loader":"^4.0.0","typescript":"~4.4.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/object-storage-azure":"^1.5.0","@itwin/cloud-agnostic-core":"^1.5.0","@itwin/object-storage-core":"^1.5.0","@itwin/core-i18n":"workspace:*","@itwin/core-telemetry":"workspace:*","@itwin/webgl-compatibility":"workspace:*","@loaders.gl/core":"^3.1.6","@loaders.gl/draco":"^3.1.6","deep-assign":"^2.0.0","fuse.js":"^3.3.0","qs":"^6.5.3","semver":"^7.3.5","superagent":"^7.1.5","wms-capabilities":"0.4.0","reflect-metadata":"0.1.13"},"nyc":{"extends":"./node_modules/@itwin/build-tools/.nycrc"},"eslintConfig":{"plugins":["@itwin"],"extends":"plugin:@itwin/itwinjs-recommended","rules":{"@itwin/no-internal-barrel-imports":["error",{"required-barrel-modules":["./src/tile/internal.ts"]}],"@itwin/public-extension-exports":["error",{"releaseTags":["public","preview"],"outputApiFile":false}]},"overrides":[{"files":["*.test.ts","*.test.tsx","**/test/**/*.ts"],"rules":{"@itwin/no-internal-barrel-imports":"off"}}]}}');
|
|
300201
300323
|
|
|
300202
300324
|
/***/ }),
|
|
300203
300325
|
|
|
@@ -300668,6 +300790,7 @@ describe("Operational: Execute Query", () => {
|
|
|
300668
300790
|
const iModel = await testContext.iModelWithChangesets.getConnection();
|
|
300669
300791
|
const query = "select count(*) nRows from(SELECT ECInstanceId FROM Bis.Element LIMIT 50)";
|
|
300670
300792
|
const rows = [];
|
|
300793
|
+
// eslint-disable-next-line deprecation/deprecation
|
|
300671
300794
|
for await (const row of iModel.query(query, undefined, { rowFormat: core_common_1.QueryRowFormat.UseJsPropertyNames }))
|
|
300672
300795
|
rows.push(row);
|
|
300673
300796
|
expect(rows).to.be.not.empty;
|
|
@@ -301383,6 +301506,7 @@ describe("Basic Scenarios", async () => {
|
|
|
301383
301506
|
it("should open iModel and Execute Query TestCase:819343", async () => {
|
|
301384
301507
|
const iModel = await testContext.iModelWithChangesets.getConnection();
|
|
301385
301508
|
const rows = [];
|
|
301509
|
+
// eslint-disable-next-line deprecation/deprecation
|
|
301386
301510
|
for await (const row of iModel.query("SELECT ECInstanceId AS id FROM BisCore.Element", undefined, { rowFormat: core_common_1.QueryRowFormat.UseJsPropertyNames, limit: { count: 10 } }))
|
|
301387
301511
|
rows.push(row);
|
|
301388
301512
|
expect(rows).not.to.be.empty;
|