@itwin/ecschema-rpcinterface-tests 5.1.0-dev.54 → 5.1.0-dev.56
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/backend/BackendInit.js.map +1 -1
- package/lib/common/Settings.js +4 -4
- package/lib/common/Settings.js.map +1 -1
- package/lib/common/SideChannels.js.map +1 -1
- package/lib/dist/bundled-tests.js +439 -36
- package/lib/dist/bundled-tests.js.map +1 -1
- package/lib/frontend/SchemaRpcInterface.test.js.map +1 -1
- package/lib/frontend/setup/IModelSession.js.map +1 -1
- package/lib/frontend/setup/TestContext.js.map +1 -1
- package/package.json +15 -15
|
@@ -38437,6 +38437,10 @@ var RenderSchedule;
|
|
|
38437
38437
|
cuttingPlane;
|
|
38438
38438
|
/** The total time period represented by this timeline. */
|
|
38439
38439
|
duration;
|
|
38440
|
+
/** Indicates whether the schedule editing session has been finalized and is no longer active.
|
|
38441
|
+
* @internal
|
|
38442
|
+
*/
|
|
38443
|
+
isEditingCommitted = false;
|
|
38440
38444
|
constructor(props) {
|
|
38441
38445
|
this.duration = _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_1__.Range1d.createNull();
|
|
38442
38446
|
if (props.visibilityTimeline) {
|
|
@@ -70043,6 +70047,20 @@ class SchemaFormatsProvider {
|
|
|
70043
70047
|
this._formatsRetrieved.clear();
|
|
70044
70048
|
this.onFormatsChanged.raiseEvent({ formatsChanged });
|
|
70045
70049
|
}
|
|
70050
|
+
/** When using a presentation unit from a KindOfQuantity, the label and description should come from the KindOfQuantity */
|
|
70051
|
+
convertToFormatDefinition(format, kindOfQuantity) {
|
|
70052
|
+
// Destructure all properties except 'rest'
|
|
70053
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
70054
|
+
const { name, label, description, $schema, schema, schemaVersion, schemaItemType,
|
|
70055
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
70056
|
+
customAttributes, originalECSpecMajorVersion, originalECSpecMinorVersion, ...rest } = format;
|
|
70057
|
+
return {
|
|
70058
|
+
...rest,
|
|
70059
|
+
name: kindOfQuantity.fullName,
|
|
70060
|
+
label: kindOfQuantity.label ?? format.label,
|
|
70061
|
+
description: kindOfQuantity.description ?? format.description,
|
|
70062
|
+
};
|
|
70063
|
+
}
|
|
70046
70064
|
async getKindOfQuantityFormatFromSchema(itemKey) {
|
|
70047
70065
|
let kindOfQuantity;
|
|
70048
70066
|
try {
|
|
@@ -70068,7 +70086,8 @@ class SchemaFormatsProvider {
|
|
|
70068
70086
|
const currentUnitSystem = await unit.unitSystem;
|
|
70069
70087
|
if (currentUnitSystem && matcher(currentUnitSystem)) {
|
|
70070
70088
|
this._formatsRetrieved.add(itemKey.fullName);
|
|
70071
|
-
|
|
70089
|
+
const props = (0,_Metadata_OverrideFormat__WEBPACK_IMPORTED_MODULE_6__.getFormatProps)(format);
|
|
70090
|
+
return this.convertToFormatDefinition(props, kindOfQuantity);
|
|
70072
70091
|
}
|
|
70073
70092
|
}
|
|
70074
70093
|
}
|
|
@@ -70077,14 +70096,16 @@ class SchemaFormatsProvider {
|
|
|
70077
70096
|
const persistenceUnitSystem = await persistenceUnit?.unitSystem;
|
|
70078
70097
|
if (persistenceUnitSystem && unitSystemMatchers.some((matcher) => matcher(persistenceUnitSystem))) {
|
|
70079
70098
|
this._formatsRetrieved.add(itemKey.fullName);
|
|
70080
|
-
|
|
70099
|
+
const props = getPersistenceUnitFormatProps(persistenceUnit);
|
|
70100
|
+
return this.convertToFormatDefinition(props, kindOfQuantity);
|
|
70081
70101
|
}
|
|
70082
70102
|
const defaultFormat = kindOfQuantity.defaultPresentationFormat;
|
|
70083
70103
|
if (!defaultFormat) {
|
|
70084
70104
|
return undefined;
|
|
70085
70105
|
}
|
|
70086
70106
|
this._formatsRetrieved.add(itemKey.fullName);
|
|
70087
|
-
|
|
70107
|
+
const defaultProps = (0,_Metadata_OverrideFormat__WEBPACK_IMPORTED_MODULE_6__.getFormatProps)(await defaultFormat);
|
|
70108
|
+
return this.convertToFormatDefinition(defaultProps, kindOfQuantity);
|
|
70088
70109
|
}
|
|
70089
70110
|
/**
|
|
70090
70111
|
* Retrieves a Format from a SchemaContext. If the format is part of a KindOfQuantity, the first presentation format in the KindOfQuantity that matches the current unit system will be retrieved.
|
|
@@ -79193,6 +79214,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
79193
79214
|
/* harmony import */ var _PlanarClipMaskState__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./PlanarClipMaskState */ "../../core/frontend/lib/esm/PlanarClipMaskState.js");
|
|
79194
79215
|
/* harmony import */ var _tile_internal__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./tile/internal */ "../../core/frontend/lib/esm/tile/internal.js");
|
|
79195
79216
|
/* harmony import */ var _common_internal_Symbols__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./common/internal/Symbols */ "../../core/frontend/lib/esm/common/internal/Symbols.js");
|
|
79217
|
+
/* harmony import */ var _internal_ScriptUtils__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./internal/ScriptUtils */ "../../core/frontend/lib/esm/internal/ScriptUtils.js");
|
|
79196
79218
|
/*---------------------------------------------------------------------------------------------
|
|
79197
79219
|
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
79198
79220
|
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
@@ -79211,6 +79233,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
79211
79233
|
|
|
79212
79234
|
|
|
79213
79235
|
|
|
79236
|
+
|
|
79214
79237
|
/** @internal */
|
|
79215
79238
|
class TerrainDisplayOverrides {
|
|
79216
79239
|
wantSkirts;
|
|
@@ -79233,6 +79256,14 @@ class DisplayStyleState extends _EntityState__WEBPACK_IMPORTED_MODULE_6__.Elemen
|
|
|
79233
79256
|
*/
|
|
79234
79257
|
[_common_internal_Symbols__WEBPACK_IMPORTED_MODULE_10__._onScheduleScriptReferenceChanged] = new _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.BeEvent();
|
|
79235
79258
|
_scriptReference;
|
|
79259
|
+
/** Event raised when schedule script edits are made, providing changed element IDs and the editing scope.
|
|
79260
|
+
* @beta
|
|
79261
|
+
*/
|
|
79262
|
+
onScheduleEditingChanged = new _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.BeEvent();
|
|
79263
|
+
/** Event raised when schedule script edits are committed (finalized).
|
|
79264
|
+
* @beta
|
|
79265
|
+
*/
|
|
79266
|
+
onScheduleEditingCommitted = new _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.BeEvent();
|
|
79236
79267
|
/** Event raised just before the [[scheduleScript]] property is changed. */
|
|
79237
79268
|
onScheduleScriptChanged = new _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.BeEvent();
|
|
79238
79269
|
/** Event raised just after [[setOSMBuildingDisplay]] changes the enabled state of the OSM buildings. */
|
|
@@ -79435,6 +79466,62 @@ class DisplayStyleState extends _EntityState__WEBPACK_IMPORTED_MODULE_6__.Elemen
|
|
|
79435
79466
|
if (this._queryRenderTimelinePropsPromise)
|
|
79436
79467
|
await this._queryRenderTimelinePropsPromise;
|
|
79437
79468
|
}
|
|
79469
|
+
/**
|
|
79470
|
+
* Begins or updates a schedule script editing session for the current display style.
|
|
79471
|
+
* During an editing session, changes to the schedule script are applied incrementally
|
|
79472
|
+
* using temporary dynamic tiles, allowing for interactive preview of visual changes like color,
|
|
79473
|
+
* transforms, visibility, and cutting planes — without requiring a full tile tree reload.
|
|
79474
|
+
*
|
|
79475
|
+
* Calling this method multiple times will update the current editing session with new script changes.
|
|
79476
|
+
* When all edits are complete, you must invoke [[commitScheduleEditing]] to finalize the session and
|
|
79477
|
+
* trigger a full tile tree refresh with the committed script.
|
|
79478
|
+
*
|
|
79479
|
+
* @note You cannot use schedule script editing while a @see [[GraphicalEditingScope]] is active.
|
|
79480
|
+
*
|
|
79481
|
+
* Example:
|
|
79482
|
+
* ```ts
|
|
79483
|
+
* [[include:ScheduleScript_editingMode]]
|
|
79484
|
+
* ```
|
|
79485
|
+
*
|
|
79486
|
+
* @beta
|
|
79487
|
+
*/
|
|
79488
|
+
setScheduleEditing(newScript) {
|
|
79489
|
+
const prevScript = this.scheduleScript;
|
|
79490
|
+
const changes = [];
|
|
79491
|
+
const globalDelta = (0,_internal_ScriptUtils__WEBPACK_IMPORTED_MODULE_11__.getScriptDelta)(prevScript, newScript);
|
|
79492
|
+
for (const timeline of newScript.modelTimelines) {
|
|
79493
|
+
const ids = new Set();
|
|
79494
|
+
for (const et of timeline.elementTimelines) {
|
|
79495
|
+
for (const id of et.elementIds) {
|
|
79496
|
+
if (globalDelta.has(id))
|
|
79497
|
+
ids.add(id);
|
|
79498
|
+
}
|
|
79499
|
+
}
|
|
79500
|
+
if (ids.size > 0)
|
|
79501
|
+
changes.push({ timeline, elements: ids });
|
|
79502
|
+
}
|
|
79503
|
+
this.scheduleScript = newScript;
|
|
79504
|
+
this.onScheduleEditingChanged.raiseEvent(changes);
|
|
79505
|
+
for (const modelTimeline of this.scheduleScript.modelTimelines) {
|
|
79506
|
+
modelTimeline.isEditingCommitted = false;
|
|
79507
|
+
}
|
|
79508
|
+
}
|
|
79509
|
+
/**
|
|
79510
|
+
* Finalizes a script editing session previously started with [[setScheduleEditing]].
|
|
79511
|
+
* This applies all pending script changes and triggers a full tile tree reload to reflect them in the viewport.
|
|
79512
|
+
* After this call, the schedule script is considered committed and editing mode ends.
|
|
79513
|
+
*
|
|
79514
|
+
* @see [[setScheduleEditing]] to begin a schedule script editing session.
|
|
79515
|
+
* @beta
|
|
79516
|
+
*/
|
|
79517
|
+
commitScheduleEditing() {
|
|
79518
|
+
this.onScheduleEditingCommitted.raiseEvent();
|
|
79519
|
+
if (!this.scheduleScript)
|
|
79520
|
+
return;
|
|
79521
|
+
for (const modelTimeline of this.scheduleScript.modelTimelines) {
|
|
79522
|
+
modelTimeline.isEditingCommitted = true;
|
|
79523
|
+
}
|
|
79524
|
+
}
|
|
79438
79525
|
/** The [RenderSchedule.Script]($common) that animates the contents of the view, if any.
|
|
79439
79526
|
* @see [[changeRenderTimeline]] to change the script.
|
|
79440
79527
|
*/
|
|
@@ -97007,6 +97094,22 @@ class Viewport {
|
|
|
97007
97094
|
};
|
|
97008
97095
|
removals.push(settings.onTimePointChanged.addListener(scheduleChanged));
|
|
97009
97096
|
removals.push(style.onScheduleScriptChanged.addListener(scriptChanged));
|
|
97097
|
+
const scheduleEditingChanged = async (changes) => {
|
|
97098
|
+
for (const ref of this.getTileTreeRefs()) {
|
|
97099
|
+
const tree = ref.treeOwner.tileTree;
|
|
97100
|
+
await tree?.onScheduleEditingChanged(changes);
|
|
97101
|
+
}
|
|
97102
|
+
};
|
|
97103
|
+
const scheduleEditingCommitted = () => {
|
|
97104
|
+
for (const ref of this.getTileTreeRefs()) {
|
|
97105
|
+
const tree = ref.treeOwner.tileTree;
|
|
97106
|
+
tree?.onScheduleEditingCommitted();
|
|
97107
|
+
}
|
|
97108
|
+
};
|
|
97109
|
+
removals.push(style.onScheduleEditingChanged.addListener((changes) => {
|
|
97110
|
+
void scheduleEditingChanged(changes);
|
|
97111
|
+
}));
|
|
97112
|
+
removals.push(style.onScheduleEditingCommitted.addListener(scheduleEditingCommitted));
|
|
97010
97113
|
removals.push(settings.onViewFlagsChanged.addListener((vf) => {
|
|
97011
97114
|
if (vf.backgroundMap !== this.viewFlags.backgroundMap)
|
|
97012
97115
|
this.invalidateController();
|
|
@@ -100099,6 +100202,7 @@ var GltfMeshMode;
|
|
|
100099
100202
|
(function (GltfMeshMode) {
|
|
100100
100203
|
GltfMeshMode[GltfMeshMode["Points"] = 0] = "Points";
|
|
100101
100204
|
GltfMeshMode[GltfMeshMode["Lines"] = 1] = "Lines";
|
|
100205
|
+
GltfMeshMode[GltfMeshMode["LineLoop"] = 2] = "LineLoop";
|
|
100102
100206
|
GltfMeshMode[GltfMeshMode["LineStrip"] = 3] = "LineStrip";
|
|
100103
100207
|
GltfMeshMode[GltfMeshMode["Triangles"] = 4] = "Triangles";
|
|
100104
100208
|
/** Not currently supported. */
|
|
@@ -107977,7 +108081,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
107977
108081
|
/**
|
|
107978
108082
|
* @docs-group-description TileStorage
|
|
107979
108083
|
* Class for working with cloud storage using iTwin/object-storage cloud providers
|
|
107980
|
-
*/
|
|
108084
|
+
*/
|
|
107981
108085
|
|
|
107982
108086
|
|
|
107983
108087
|
/***/ }),
|
|
@@ -108964,6 +109068,137 @@ class RealityDataSourceGoogle3dTilesImpl {
|
|
|
108964
109068
|
}
|
|
108965
109069
|
|
|
108966
109070
|
|
|
109071
|
+
/***/ }),
|
|
109072
|
+
|
|
109073
|
+
/***/ "../../core/frontend/lib/esm/internal/ScriptUtils.js":
|
|
109074
|
+
/*!***********************************************************!*\
|
|
109075
|
+
!*** ../../core/frontend/lib/esm/internal/ScriptUtils.js ***!
|
|
109076
|
+
\***********************************************************/
|
|
109077
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
109078
|
+
|
|
109079
|
+
"use strict";
|
|
109080
|
+
__webpack_require__.r(__webpack_exports__);
|
|
109081
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
109082
|
+
/* harmony export */ getScriptDelta: () => (/* binding */ getScriptDelta)
|
|
109083
|
+
/* harmony export */ });
|
|
109084
|
+
/** @internal */
|
|
109085
|
+
function getScriptDelta(prev, next) {
|
|
109086
|
+
if (!prev || !prev.modelTimelines || prev.modelTimelines.length === 0) {
|
|
109087
|
+
return getAllElementIdsFromScript(next);
|
|
109088
|
+
}
|
|
109089
|
+
const changed = new Set();
|
|
109090
|
+
const prevModels = new Map(prev.modelTimelines.map(m => [m.modelId, m]));
|
|
109091
|
+
const nextModels = new Map(next.modelTimelines.map(m => [m.modelId, m]));
|
|
109092
|
+
for (const modelId of new Set([...prevModels.keys(), ...nextModels.keys()])) {
|
|
109093
|
+
const prevModel = prevModels.get(modelId);
|
|
109094
|
+
const nextModel = nextModels.get(modelId);
|
|
109095
|
+
if (!prevModel || !nextModel) {
|
|
109096
|
+
const timelines = (prevModel ?? nextModel)?.elementTimelines ?? [];
|
|
109097
|
+
for (const timeline of timelines)
|
|
109098
|
+
for (const id of timeline.elementIds)
|
|
109099
|
+
changed.add(id);
|
|
109100
|
+
continue;
|
|
109101
|
+
}
|
|
109102
|
+
const prevTimelineMap = new Map(prevModel.elementTimelines.map(et => [et.batchId, et]));
|
|
109103
|
+
const nextTimelineMap = new Map(nextModel.elementTimelines.map(et => [et.batchId, et]));
|
|
109104
|
+
const allBatchIds = new Set([...prevTimelineMap.keys(), ...nextTimelineMap.keys()]);
|
|
109105
|
+
for (const batchId of allBatchIds) {
|
|
109106
|
+
const prevTimeline = prevTimelineMap.get(batchId);
|
|
109107
|
+
const nextTimeline = nextTimelineMap.get(batchId);
|
|
109108
|
+
if (!prevTimeline || !nextTimeline) {
|
|
109109
|
+
const ids = (prevTimeline ?? nextTimeline)?.elementIds ?? [];
|
|
109110
|
+
for (const id of ids)
|
|
109111
|
+
changed.add(id);
|
|
109112
|
+
continue;
|
|
109113
|
+
}
|
|
109114
|
+
if (!isTimelineEntryEqual(prevTimeline, nextTimeline)) {
|
|
109115
|
+
for (const id of nextTimeline.elementIds)
|
|
109116
|
+
changed.add(id);
|
|
109117
|
+
}
|
|
109118
|
+
}
|
|
109119
|
+
}
|
|
109120
|
+
return changed;
|
|
109121
|
+
}
|
|
109122
|
+
function collectTimelineEntryTimes(timeline) {
|
|
109123
|
+
const result = new Set();
|
|
109124
|
+
if (timeline.cuttingPlane) {
|
|
109125
|
+
for (const entry of timeline.cuttingPlane) {
|
|
109126
|
+
result.add(entry.time);
|
|
109127
|
+
}
|
|
109128
|
+
}
|
|
109129
|
+
if (timeline.visibility) {
|
|
109130
|
+
for (const entry of timeline.visibility) {
|
|
109131
|
+
result.add(entry.time);
|
|
109132
|
+
}
|
|
109133
|
+
}
|
|
109134
|
+
if (timeline.transform) {
|
|
109135
|
+
for (const entry of timeline.transform) {
|
|
109136
|
+
result.add(entry.time);
|
|
109137
|
+
}
|
|
109138
|
+
}
|
|
109139
|
+
if (timeline.color) {
|
|
109140
|
+
for (const entry of timeline.color) {
|
|
109141
|
+
result.add(entry.time);
|
|
109142
|
+
}
|
|
109143
|
+
}
|
|
109144
|
+
return Array.from(result);
|
|
109145
|
+
}
|
|
109146
|
+
function isTimelineEntryEqual(a, b) {
|
|
109147
|
+
const timesSet = new Set([
|
|
109148
|
+
...collectTimelineEntryTimes(a),
|
|
109149
|
+
...collectTimelineEntryTimes(b),
|
|
109150
|
+
]);
|
|
109151
|
+
let times = Array.from(timesSet).sort((x, y) => x - y);
|
|
109152
|
+
if (times.length === 0) {
|
|
109153
|
+
times = [0, 0.25, 0.5, 0.75, 1];
|
|
109154
|
+
}
|
|
109155
|
+
for (const [] of a.elementIds) {
|
|
109156
|
+
for (const t of times) {
|
|
109157
|
+
// Check visibility
|
|
109158
|
+
const v1 = a.getVisibility(t);
|
|
109159
|
+
const v2 = b.getVisibility(t);
|
|
109160
|
+
if (Math.abs(v1 - v2) > 0.01)
|
|
109161
|
+
return false;
|
|
109162
|
+
// Check Transform
|
|
109163
|
+
const tf1 = a.getAnimationTransform(t);
|
|
109164
|
+
const tf2 = b.getAnimationTransform(t);
|
|
109165
|
+
if (!tf1.isAlmostEqual(tf2))
|
|
109166
|
+
return false;
|
|
109167
|
+
// Check Color
|
|
109168
|
+
const c1 = a.getColor(t);
|
|
109169
|
+
const c2 = b.getColor(t);
|
|
109170
|
+
if ((c1 === undefined) !== (c2 === undefined))
|
|
109171
|
+
return false;
|
|
109172
|
+
if (c1 !== undefined && !c1.equals(c2))
|
|
109173
|
+
return false;
|
|
109174
|
+
// Cutting Plane (CLIPPING)
|
|
109175
|
+
const clip1 = a.getCuttingPlane?.(t);
|
|
109176
|
+
const clip2 = b.getCuttingPlane?.(t);
|
|
109177
|
+
const oneUndefined = (clip1 === undefined) !== (clip2 === undefined);
|
|
109178
|
+
if (oneUndefined)
|
|
109179
|
+
return false;
|
|
109180
|
+
if (clip1 && clip2) {
|
|
109181
|
+
if (!clip1.getOriginRef().isAlmostEqual(clip2.getOriginRef(), 1e-6) ||
|
|
109182
|
+
!clip1.getNormalRef().isAlmostEqual(clip2.getNormalRef(), 1e-6)) {
|
|
109183
|
+
return false;
|
|
109184
|
+
}
|
|
109185
|
+
}
|
|
109186
|
+
}
|
|
109187
|
+
}
|
|
109188
|
+
return true;
|
|
109189
|
+
}
|
|
109190
|
+
function getAllElementIdsFromScript(script) {
|
|
109191
|
+
const ids = new Set();
|
|
109192
|
+
for (const modelTimeline of script.modelTimelines) {
|
|
109193
|
+
for (const elementTimeline of modelTimeline.elementTimelines) {
|
|
109194
|
+
for (const id of elementTimeline.elementIds)
|
|
109195
|
+
ids.add(id);
|
|
109196
|
+
}
|
|
109197
|
+
}
|
|
109198
|
+
return ids;
|
|
109199
|
+
}
|
|
109200
|
+
|
|
109201
|
+
|
|
108967
109202
|
/***/ }),
|
|
108968
109203
|
|
|
108969
109204
|
/***/ "../../core/frontend/lib/esm/internal/cross-package.js":
|
|
@@ -142587,6 +142822,19 @@ class DynamicState {
|
|
|
142587
142822
|
};
|
|
142588
142823
|
}
|
|
142589
142824
|
}
|
|
142825
|
+
class ScheduleScriptDynamicState {
|
|
142826
|
+
type = "dynamic";
|
|
142827
|
+
rootTile;
|
|
142828
|
+
_dispose;
|
|
142829
|
+
[Symbol.dispose]() {
|
|
142830
|
+
this._dispose();
|
|
142831
|
+
this.rootTile[Symbol.dispose]();
|
|
142832
|
+
}
|
|
142833
|
+
constructor(root, elemChanges) {
|
|
142834
|
+
this.rootTile = _tile_internal__WEBPACK_IMPORTED_MODULE_6__.DynamicIModelTile.create(root, elemChanges);
|
|
142835
|
+
this._dispose = () => { };
|
|
142836
|
+
}
|
|
142837
|
+
}
|
|
142590
142838
|
/** The tile tree has been disposed. */
|
|
142591
142839
|
class DisposedState {
|
|
142592
142840
|
type = "disposed";
|
|
@@ -142825,6 +143073,51 @@ class IModelTileTree extends _tile_internal__WEBPACK_IMPORTED_MODULE_6__.TileTre
|
|
|
142825
143073
|
get containsTransformNodes() {
|
|
142826
143074
|
return undefined !== this._transformNodeRanges;
|
|
142827
143075
|
}
|
|
143076
|
+
async onScheduleEditingChanged(changes) {
|
|
143077
|
+
const displayStyle = _IModelApp__WEBPACK_IMPORTED_MODULE_3__.IModelApp.viewManager.selectedView?.displayStyle;
|
|
143078
|
+
const newScript = displayStyle?.scheduleScript;
|
|
143079
|
+
const scriptRef = newScript ? new _itwin_core_common__WEBPACK_IMPORTED_MODULE_2__.RenderSchedule.ScriptReference(displayStyle.id, newScript) : undefined;
|
|
143080
|
+
const scriptInfo = _IModelApp__WEBPACK_IMPORTED_MODULE_3__.IModelApp.tileAdmin.getScriptInfoForTreeId(this.modelId, scriptRef);
|
|
143081
|
+
if (scriptInfo?.timeline && this.timeline !== scriptInfo.timeline) {
|
|
143082
|
+
this.decoder = (0,_tile_internal__WEBPACK_IMPORTED_MODULE_6__.acquireImdlDecoder)({
|
|
143083
|
+
type: this.batchType,
|
|
143084
|
+
omitEdges: this.edgeOptions === false,
|
|
143085
|
+
timeline: scriptInfo.timeline,
|
|
143086
|
+
iModel: this.iModel,
|
|
143087
|
+
batchModelId: this.modelId,
|
|
143088
|
+
is3d: this.is3d,
|
|
143089
|
+
containsTransformNodes: this.containsTransformNodes,
|
|
143090
|
+
noWorker: !_IModelApp__WEBPACK_IMPORTED_MODULE_3__.IModelApp.tileAdmin.decodeImdlInWorker,
|
|
143091
|
+
});
|
|
143092
|
+
this._options.timeline = scriptInfo.timeline;
|
|
143093
|
+
}
|
|
143094
|
+
const relevantChange = changes.find((c) => c.timeline.modelId === this.modelId);
|
|
143095
|
+
if (!relevantChange || relevantChange.elements.size === 0)
|
|
143096
|
+
return;
|
|
143097
|
+
const elementIds = Array.from(relevantChange.elements);
|
|
143098
|
+
const placements = await this.iModel.elements.getPlacements(elementIds, {
|
|
143099
|
+
type: this.is3d ? "3d" : "2d",
|
|
143100
|
+
});
|
|
143101
|
+
if (placements.length === 0)
|
|
143102
|
+
return;
|
|
143103
|
+
const changedElements = placements.map((x) => {
|
|
143104
|
+
return {
|
|
143105
|
+
id: x.elementId,
|
|
143106
|
+
type: _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.DbOpcode.Update,
|
|
143107
|
+
range: x.calculateRange(),
|
|
143108
|
+
};
|
|
143109
|
+
});
|
|
143110
|
+
if (changedElements.length === 0)
|
|
143111
|
+
return;
|
|
143112
|
+
if (this._rootTile.tileState.type === "dynamic") {
|
|
143113
|
+
this._rootTile.transition(new StaticState(this._rootTile));
|
|
143114
|
+
}
|
|
143115
|
+
this._rootTile.transition(new ScheduleScriptDynamicState(this._rootTile, changedElements));
|
|
143116
|
+
}
|
|
143117
|
+
onScheduleEditingCommitted() {
|
|
143118
|
+
if (this._rootTile.tileState.type !== "static")
|
|
143119
|
+
this._rootTile.transition(new StaticState(this._rootTile));
|
|
143120
|
+
}
|
|
142828
143121
|
}
|
|
142829
143122
|
|
|
142830
143123
|
|
|
@@ -145204,7 +145497,7 @@ class PrimaryTreeReference extends _tile_internal__WEBPACK_IMPORTED_MODULE_6__.T
|
|
|
145204
145497
|
get treeOwner() {
|
|
145205
145498
|
const newId = this.createTreeId(this.view, this._id.modelId);
|
|
145206
145499
|
const timeline = _IModelApp__WEBPACK_IMPORTED_MODULE_3__.IModelApp.tileAdmin.getScriptInfoForTreeId(this._id.modelId, this.view.displayStyle[_common_internal_Symbols__WEBPACK_IMPORTED_MODULE_7__._scheduleScriptReference])?.timeline;
|
|
145207
|
-
if (0 !== (0,_itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.compareIModelTileTreeIds)(newId, this._id.treeId) || timeline
|
|
145500
|
+
if (0 !== (0,_itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.compareIModelTileTreeIds)(newId, this._id.treeId) || timeline?.isEditingCommitted) {
|
|
145208
145501
|
this._id = {
|
|
145209
145502
|
modelId: this._id.modelId,
|
|
145210
145503
|
is3d: this._id.is3d,
|
|
@@ -155320,6 +155613,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
155320
155613
|
/* harmony export */ GltfMeshData: () => (/* binding */ GltfMeshData),
|
|
155321
155614
|
/* harmony export */ GltfReader: () => (/* binding */ GltfReader),
|
|
155322
155615
|
/* harmony export */ GltfReaderProps: () => (/* binding */ GltfReaderProps),
|
|
155616
|
+
/* harmony export */ getMeshPrimitives: () => (/* binding */ getMeshPrimitives),
|
|
155323
155617
|
/* harmony export */ readGltf: () => (/* binding */ readGltf),
|
|
155324
155618
|
/* harmony export */ readGltfGraphics: () => (/* binding */ readGltfGraphics),
|
|
155325
155619
|
/* harmony export */ readGltfTemplate: () => (/* binding */ readGltfTemplate)
|
|
@@ -155634,6 +155928,48 @@ function compareTextureKeys(lhs, rhs) {
|
|
|
155634
155928
|
}
|
|
155635
155929
|
;
|
|
155636
155930
|
;
|
|
155931
|
+
/** @internal exported strictly for testing */
|
|
155932
|
+
function getMeshPrimitives(mesh) {
|
|
155933
|
+
const ext = mesh?.extensions?.EXT_mesh_primitive_restart;
|
|
155934
|
+
const meshPrimitives = mesh?.primitives;
|
|
155935
|
+
if (!meshPrimitives || meshPrimitives.length === 0 || !ext?.primitiveGroups || ext.primitiveGroups.length === 0) {
|
|
155936
|
+
return meshPrimitives;
|
|
155937
|
+
}
|
|
155938
|
+
// Note: per the spec, any violation of the extension's specification should cause us to fall back to mesh.primitives, if detecting the violation is feasible.
|
|
155939
|
+
// Start with a copy of mesh.primitives. For each group, replace the first primitive in the group with a primitive representing the entire group,
|
|
155940
|
+
// and set the rest of the primitives in the group to `undefined`.
|
|
155941
|
+
// This allows us to identify which remaining primitives do not use primitive restart, and any errors involving a primitive appearing in more than one group.
|
|
155942
|
+
const primitives = [...meshPrimitives];
|
|
155943
|
+
for (const group of ext.primitiveGroups) {
|
|
155944
|
+
// Spec: the group must not be empty and all indices must be valid array indices into mesh.primitives.
|
|
155945
|
+
const firstPrimitiveIndex = group.primitives[0];
|
|
155946
|
+
if (undefined === firstPrimitiveIndex || !meshPrimitives[firstPrimitiveIndex]) {
|
|
155947
|
+
return meshPrimitives;
|
|
155948
|
+
}
|
|
155949
|
+
const primitive = { ...meshPrimitives[firstPrimitiveIndex], indices: group.indices };
|
|
155950
|
+
// Spec: primitive restart only supported for these topologies.
|
|
155951
|
+
switch (primitive.mode) {
|
|
155952
|
+
case _common_gltf_GltfSchema__WEBPACK_IMPORTED_MODULE_12__.GltfMeshMode.TriangleFan:
|
|
155953
|
+
case _common_gltf_GltfSchema__WEBPACK_IMPORTED_MODULE_12__.GltfMeshMode.TriangleStrip:
|
|
155954
|
+
case _common_gltf_GltfSchema__WEBPACK_IMPORTED_MODULE_12__.GltfMeshMode.LineStrip:
|
|
155955
|
+
case _common_gltf_GltfSchema__WEBPACK_IMPORTED_MODULE_12__.GltfMeshMode.LineLoop:
|
|
155956
|
+
break;
|
|
155957
|
+
default:
|
|
155958
|
+
return meshPrimitives;
|
|
155959
|
+
}
|
|
155960
|
+
for (const primitiveIndex of group.primitives) {
|
|
155961
|
+
const thisPrimitive = primitives[primitiveIndex];
|
|
155962
|
+
// Spec: all primitives must use indexed geometry and a given primitive may appear in at most one group.
|
|
155963
|
+
// Spec: all primitives must have same topology.
|
|
155964
|
+
if (undefined === thisPrimitive?.indices || thisPrimitive.mode !== primitive.mode) {
|
|
155965
|
+
return meshPrimitives;
|
|
155966
|
+
}
|
|
155967
|
+
primitives[primitiveIndex] = undefined;
|
|
155968
|
+
}
|
|
155969
|
+
primitives[firstPrimitiveIndex] = primitive;
|
|
155970
|
+
}
|
|
155971
|
+
return primitives.filter((x) => x !== undefined);
|
|
155972
|
+
}
|
|
155637
155973
|
/** Deserializes [glTF](https://www.khronos.org/gltf/).
|
|
155638
155974
|
* @internal
|
|
155639
155975
|
*/
|
|
@@ -156221,8 +156557,9 @@ class GltfReader {
|
|
|
156221
156557
|
const meshes = [];
|
|
156222
156558
|
for (const meshKey of (0,_common_gltf_GltfSchema__WEBPACK_IMPORTED_MODULE_12__.getGltfNodeMeshIds)(node)) {
|
|
156223
156559
|
const nodeMesh = this._meshes[meshKey];
|
|
156224
|
-
|
|
156225
|
-
|
|
156560
|
+
const primitives = getMeshPrimitives(nodeMesh);
|
|
156561
|
+
if (primitives) {
|
|
156562
|
+
for (const primitive of primitives) {
|
|
156226
156563
|
const mesh = this.readMeshPrimitive(primitive, featureTable, thisBias);
|
|
156227
156564
|
if (mesh) {
|
|
156228
156565
|
meshes.push(mesh);
|
|
@@ -156276,6 +156613,7 @@ class GltfReader {
|
|
|
156276
156613
|
let primitiveType = -1;
|
|
156277
156614
|
switch (meshMode) {
|
|
156278
156615
|
case _common_gltf_GltfSchema__WEBPACK_IMPORTED_MODULE_12__.GltfMeshMode.Lines:
|
|
156616
|
+
case _common_gltf_GltfSchema__WEBPACK_IMPORTED_MODULE_12__.GltfMeshMode.LineStrip:
|
|
156279
156617
|
primitiveType = _common_internal_render_MeshPrimitive__WEBPACK_IMPORTED_MODULE_11__.MeshPrimitiveType.Polyline;
|
|
156280
156618
|
break;
|
|
156281
156619
|
case _common_gltf_GltfSchema__WEBPACK_IMPORTED_MODULE_12__.GltfMeshMode.Points:
|
|
@@ -156357,7 +156695,8 @@ class GltfReader {
|
|
|
156357
156695
|
}
|
|
156358
156696
|
case _common_internal_render_MeshPrimitive__WEBPACK_IMPORTED_MODULE_11__.MeshPrimitiveType.Polyline:
|
|
156359
156697
|
case _common_internal_render_MeshPrimitive__WEBPACK_IMPORTED_MODULE_11__.MeshPrimitiveType.Point: {
|
|
156360
|
-
|
|
156698
|
+
(0,_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.assert)(meshMode === _common_gltf_GltfSchema__WEBPACK_IMPORTED_MODULE_12__.GltfMeshMode.Points || meshMode === _common_gltf_GltfSchema__WEBPACK_IMPORTED_MODULE_12__.GltfMeshMode.Lines || meshMode === _common_gltf_GltfSchema__WEBPACK_IMPORTED_MODULE_12__.GltfMeshMode.LineStrip);
|
|
156699
|
+
if (undefined !== mesh.primitive.polylines && !this.readPolylines(mesh.primitive.polylines, primitive, "indices", meshMode))
|
|
156361
156700
|
return undefined;
|
|
156362
156701
|
break;
|
|
156363
156702
|
}
|
|
@@ -156826,27 +157165,48 @@ class GltfReader {
|
|
|
156826
157165
|
}
|
|
156827
157166
|
return true;
|
|
156828
157167
|
}
|
|
156829
|
-
readPolylines(polylines, json, accessorName,
|
|
156830
|
-
const
|
|
157168
|
+
readPolylines(polylines, json, accessorName, mode) {
|
|
157169
|
+
const bufferView = this.getBufferView(json, accessorName);
|
|
157170
|
+
const data = bufferView?.toBufferData(_common_gltf_GltfSchema__WEBPACK_IMPORTED_MODULE_12__.GltfDataType.UInt32);
|
|
156831
157171
|
if (undefined === data)
|
|
156832
157172
|
return false;
|
|
156833
157173
|
const indices = new Array();
|
|
156834
|
-
|
|
156835
|
-
|
|
156836
|
-
|
|
156837
|
-
|
|
156838
|
-
|
|
156839
|
-
|
|
156840
|
-
|
|
156841
|
-
|
|
156842
|
-
|
|
156843
|
-
|
|
156844
|
-
|
|
157174
|
+
switch (mode) {
|
|
157175
|
+
case _common_gltf_GltfSchema__WEBPACK_IMPORTED_MODULE_12__.GltfMeshMode.Points: {
|
|
157176
|
+
for (let i = 0; i < data.count;)
|
|
157177
|
+
indices.push(data.buffer[i++]);
|
|
157178
|
+
break;
|
|
157179
|
+
}
|
|
157180
|
+
case _common_gltf_GltfSchema__WEBPACK_IMPORTED_MODULE_12__.GltfMeshMode.Lines: {
|
|
157181
|
+
for (let i = 0; i < data.count;) {
|
|
157182
|
+
const index0 = data.buffer[i++];
|
|
157183
|
+
const index1 = data.buffer[i++];
|
|
157184
|
+
if (0 === indices.length || index0 !== indices[indices.length - 1]) {
|
|
157185
|
+
if (indices.length !== 0) {
|
|
157186
|
+
polylines.push(new _itwin_core_common__WEBPACK_IMPORTED_MODULE_2__.MeshPolyline(indices));
|
|
157187
|
+
indices.length = 0;
|
|
157188
|
+
}
|
|
157189
|
+
indices.push(index0);
|
|
157190
|
+
}
|
|
157191
|
+
indices.push(index1);
|
|
157192
|
+
}
|
|
157193
|
+
break;
|
|
157194
|
+
}
|
|
157195
|
+
case _common_gltf_GltfSchema__WEBPACK_IMPORTED_MODULE_12__.GltfMeshMode.LineStrip: {
|
|
157196
|
+
(0,_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.assert)(undefined !== bufferView); // compiler can't seem to infer this...
|
|
157197
|
+
const restart = _common_gltf_GltfSchema__WEBPACK_IMPORTED_MODULE_12__.GltfDataType.UnsignedByte === bufferView.type ? 0xff : (_common_gltf_GltfSchema__WEBPACK_IMPORTED_MODULE_12__.GltfDataType.UnsignedShort === bufferView.type ? 0xffff : 0xffffffff);
|
|
157198
|
+
for (const index of data.buffer) {
|
|
157199
|
+
if (index === restart) {
|
|
157200
|
+
if (indices.length > 1) {
|
|
157201
|
+
polylines.push(new _itwin_core_common__WEBPACK_IMPORTED_MODULE_2__.MeshPolyline(indices));
|
|
157202
|
+
}
|
|
156845
157203
|
indices.length = 0;
|
|
156846
157204
|
}
|
|
156847
|
-
|
|
157205
|
+
else {
|
|
157206
|
+
indices.push(index);
|
|
157207
|
+
}
|
|
156848
157208
|
}
|
|
156849
|
-
|
|
157209
|
+
break;
|
|
156850
157210
|
}
|
|
156851
157211
|
}
|
|
156852
157212
|
if (indices.length !== 0)
|
|
@@ -161457,6 +161817,19 @@ class TileTree {
|
|
|
161457
161817
|
*/
|
|
161458
161818
|
collectTileGeometry(_collector) {
|
|
161459
161819
|
}
|
|
161820
|
+
/**
|
|
161821
|
+
* Invoked when a schedule script is edited.
|
|
161822
|
+
* Override to handle updates for affected elements or timelines.
|
|
161823
|
+
*
|
|
161824
|
+
* @internal
|
|
161825
|
+
*/
|
|
161826
|
+
async onScheduleEditingChanged(_changes) { }
|
|
161827
|
+
/**
|
|
161828
|
+
* Invoked when a schedule script is committed during editing.
|
|
161829
|
+
* Override in specific tile tree types to handle the change.
|
|
161830
|
+
* @internal
|
|
161831
|
+
*/
|
|
161832
|
+
onScheduleEditingCommitted() { }
|
|
161460
161833
|
}
|
|
161461
161834
|
|
|
161462
161835
|
|
|
@@ -162143,6 +162516,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
162143
162516
|
/* harmony export */ getCesiumOSMBuildingsUrl: () => (/* reexport safe */ _map_CesiumTerrainProvider__WEBPACK_IMPORTED_MODULE_69__.getCesiumOSMBuildingsUrl),
|
|
162144
162517
|
/* harmony export */ getCesiumTerrainProvider: () => (/* reexport safe */ _map_CesiumTerrainProvider__WEBPACK_IMPORTED_MODULE_69__.getCesiumTerrainProvider),
|
|
162145
162518
|
/* harmony export */ getGcsConverterAvailable: () => (/* reexport safe */ _map_MapTileTree__WEBPACK_IMPORTED_MODULE_66__.getGcsConverterAvailable),
|
|
162519
|
+
/* harmony export */ getMeshPrimitives: () => (/* reexport safe */ _GltfReader__WEBPACK_IMPORTED_MODULE_32__.getMeshPrimitives),
|
|
162146
162520
|
/* harmony export */ getMeshoptDecoder: () => (/* reexport safe */ _internal_tile_MeshoptCompression__WEBPACK_IMPORTED_MODULE_94__.getMeshoptDecoder),
|
|
162147
162521
|
/* harmony export */ iModelTileParamsFromJSON: () => (/* reexport safe */ _internal_tile_IModelTile__WEBPACK_IMPORTED_MODULE_80__.iModelTileParamsFromJSON),
|
|
162148
162522
|
/* harmony export */ iModelTileTreeParamsFromJSON: () => (/* reexport safe */ _internal_tile_IModelTileTree__WEBPACK_IMPORTED_MODULE_82__.iModelTileTreeParamsFromJSON),
|
|
@@ -271398,6 +271772,13 @@ class Box extends _SolidPrimitive__WEBPACK_IMPORTED_MODULE_0__.SolidPrimitive {
|
|
|
271398
271772
|
if (transform.matrix.isSingular())
|
|
271399
271773
|
return false;
|
|
271400
271774
|
transform.multiplyTransformTransform(this._localToWorld, this._localToWorld);
|
|
271775
|
+
if (transform.matrix.determinant() < 0.0) {
|
|
271776
|
+
// if mirror, reverse z-axis (origin and direction) to preserve outward normals
|
|
271777
|
+
this._localToWorld.origin.addInPlace(this._localToWorld.matrix.columnZ());
|
|
271778
|
+
this._localToWorld.matrix.scaleColumnsInPlace(1, 1, -1);
|
|
271779
|
+
[this._baseX, this._topX] = [this._topX, this._baseX];
|
|
271780
|
+
[this._baseY, this._topY] = [this._topY, this._baseY];
|
|
271781
|
+
}
|
|
271401
271782
|
return true;
|
|
271402
271783
|
}
|
|
271403
271784
|
/**
|
|
@@ -271673,6 +272054,12 @@ class Cone extends _SolidPrimitive__WEBPACK_IMPORTED_MODULE_0__.SolidPrimitive {
|
|
|
271673
272054
|
if (transform.matrix.isSingular())
|
|
271674
272055
|
return false;
|
|
271675
272056
|
transform.multiplyTransformTransform(this._localToWorld, this._localToWorld);
|
|
272057
|
+
if (transform.matrix.determinant() < 0.0) {
|
|
272058
|
+
// if mirror, reverse z-axis (origin and direction) to preserve outward normals
|
|
272059
|
+
this._localToWorld.origin.addInPlace(this._localToWorld.matrix.columnZ());
|
|
272060
|
+
this._localToWorld.matrix.scaleColumnsInPlace(1, 1, -1);
|
|
272061
|
+
[this._radiusA, this._radiusB] = [this._radiusB, this._radiusA];
|
|
272062
|
+
}
|
|
271676
272063
|
return true;
|
|
271677
272064
|
}
|
|
271678
272065
|
/**
|
|
@@ -272009,11 +272396,16 @@ class LinearSweep extends _SolidPrimitive__WEBPACK_IMPORTED_MODULE_0__.SolidPrim
|
|
|
272009
272396
|
tryTransformInPlace(transform) {
|
|
272010
272397
|
if (transform.matrix.isSingular())
|
|
272011
272398
|
return false;
|
|
272012
|
-
if (this._contour.tryTransformInPlace(transform))
|
|
272013
|
-
|
|
272014
|
-
|
|
272399
|
+
if (!this._contour.tryTransformInPlace(transform))
|
|
272400
|
+
return false;
|
|
272401
|
+
transform.multiplyVector(this._direction, this._direction);
|
|
272402
|
+
if (transform.matrix.determinant() < 0.0) {
|
|
272403
|
+
// if mirror, reverse the sweep (origin and direction) to preserve outward normals
|
|
272404
|
+
if (!this._contour.tryTransformInPlace(_geometry3d_Transform__WEBPACK_IMPORTED_MODULE_7__.Transform.createTranslation(this._direction)))
|
|
272405
|
+
return false;
|
|
272406
|
+
this._direction.scaleInPlace(-1.0);
|
|
272015
272407
|
}
|
|
272016
|
-
return
|
|
272408
|
+
return true;
|
|
272017
272409
|
}
|
|
272018
272410
|
/** Return a coordinate frame (right handed unit vectors)
|
|
272019
272411
|
* * origin on base contour
|
|
@@ -272298,7 +272690,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
272298
272690
|
|
|
272299
272691
|
/**
|
|
272300
272692
|
* A ruled sweep (surface) is a collection of 2 or more contours.
|
|
272301
|
-
* * All contours must have identical number and type of geometry
|
|
272693
|
+
* * All contours must have identical number and type of geometry: (paths, loops, parity regions, lines, arcs, other curves).
|
|
272302
272694
|
* @public
|
|
272303
272695
|
*/
|
|
272304
272696
|
class RuledSweep extends _SolidPrimitive__WEBPACK_IMPORTED_MODULE_0__.SolidPrimitive {
|
|
@@ -272364,6 +272756,10 @@ class RuledSweep extends _SolidPrimitive__WEBPACK_IMPORTED_MODULE_0__.SolidPrimi
|
|
|
272364
272756
|
if (!contour.tryTransformInPlace(transform))
|
|
272365
272757
|
return false;
|
|
272366
272758
|
}
|
|
272759
|
+
if (transform.matrix.determinant() < 0.0) {
|
|
272760
|
+
// if mirror, reverse the sweep order to preserve outward normals
|
|
272761
|
+
this._contours.reverse();
|
|
272762
|
+
}
|
|
272367
272763
|
return true;
|
|
272368
272764
|
}
|
|
272369
272765
|
/**
|
|
@@ -272631,8 +273027,11 @@ class Sphere extends _SolidPrimitive__WEBPACK_IMPORTED_MODULE_0__.SolidPrimitive
|
|
|
272631
273027
|
if (transform.matrix.isSingular())
|
|
272632
273028
|
return false;
|
|
272633
273029
|
transform.multiplyTransformTransform(this._localToWorld, this._localToWorld);
|
|
272634
|
-
if (transform.matrix.determinant() < 0.0)
|
|
272635
|
-
|
|
273030
|
+
if (transform.matrix.determinant() < 0.0) {
|
|
273031
|
+
// if mirror, reverse z-axis to preserve outward normals
|
|
273032
|
+
this._localToWorld.matrix.scaleColumnsInPlace(1, 1, -1);
|
|
273033
|
+
this._latitudeSweep.setStartEndRadians(-this._latitudeSweep.endRadians, -this._latitudeSweep.startRadians);
|
|
273034
|
+
}
|
|
272636
273035
|
return true;
|
|
272637
273036
|
}
|
|
272638
273037
|
/**
|
|
@@ -273288,6 +273687,10 @@ class TorusPipe extends _SolidPrimitive__WEBPACK_IMPORTED_MODULE_0__.SolidPrimit
|
|
|
273288
273687
|
if (transform.matrix.isSingular())
|
|
273289
273688
|
return false;
|
|
273290
273689
|
transform.multiplyTransformTransform(this._localToWorld, this._localToWorld);
|
|
273690
|
+
if (transform.matrix.determinant() < 0.0) {
|
|
273691
|
+
// if mirror, reverse z-axis to preserve outward normals
|
|
273692
|
+
this._localToWorld.matrix.scaleColumnsInPlace(1, 1, -1);
|
|
273693
|
+
}
|
|
273291
273694
|
return true;
|
|
273292
273695
|
}
|
|
273293
273696
|
/**
|
|
@@ -299368,7 +299771,7 @@ class Formatter {
|
|
|
299368
299771
|
let unitValue = 0.0;
|
|
299369
299772
|
if (spec.format.type === _FormatEnums__WEBPACK_IMPORTED_MODULE_2__.FormatType.Ratio) {
|
|
299370
299773
|
if (1 !== spec.format.units.length)
|
|
299371
|
-
throw new _Exception__WEBPACK_IMPORTED_MODULE_1__.QuantityError(_Exception__WEBPACK_IMPORTED_MODULE_1__.QuantityStatus.InvalidCompositeFormat, `The Format ${spec.format.name}
|
|
299774
|
+
throw new _Exception__WEBPACK_IMPORTED_MODULE_1__.QuantityError(_Exception__WEBPACK_IMPORTED_MODULE_1__.QuantityStatus.InvalidCompositeFormat, `The Format '${spec.format.name}' with type 'ratio' must have exactly one unit.`);
|
|
299372
299775
|
try {
|
|
299373
299776
|
unitValue = (0,_Quantity__WEBPACK_IMPORTED_MODULE_3__.applyConversion)(posMagnitude, unitConversion) + this.FPV_MINTHRESHOLD;
|
|
299374
299777
|
}
|
|
@@ -301825,10 +302228,10 @@ class Settings {
|
|
|
301825
302228
|
});
|
|
301826
302229
|
}
|
|
301827
302230
|
toString() {
|
|
301828
|
-
return `Configurations:
|
|
301829
|
-
oidc client id: ${this.oidcClientId},
|
|
301830
|
-
oidc scopes: ${this.oidcScopes},
|
|
301831
|
-
applicationId: ${this.gprid},
|
|
302231
|
+
return `Configurations:
|
|
302232
|
+
oidc client id: ${this.oidcClientId},
|
|
302233
|
+
oidc scopes: ${this.oidcScopes},
|
|
302234
|
+
applicationId: ${this.gprid},
|
|
301832
302235
|
log level: ${this.logLevel}`;
|
|
301833
302236
|
}
|
|
301834
302237
|
}
|
|
@@ -314638,7 +315041,7 @@ var loadLanguages = instance.loadLanguages;
|
|
|
314638
315041
|
/***/ ((module) => {
|
|
314639
315042
|
|
|
314640
315043
|
"use strict";
|
|
314641
|
-
module.exports = /*#__PURE__*/JSON.parse('{"name":"@itwin/core-frontend","version":"5.1.0-dev.
|
|
315044
|
+
module.exports = /*#__PURE__*/JSON.parse('{"name":"@itwin/core-frontend","version":"5.1.0-dev.56","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 ES2022 --outDir lib/esm","clean":"rimraf -g 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 --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 \\"./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 webpackTestWorker && vitest --run","cover":"npm run webpackTestWorker && vitest --run","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:*","@itwin/core-bentley":"workspace:*","@itwin/core-common":"workspace:*","@itwin/core-geometry":"workspace:*","@itwin/core-orbitgt":"workspace:*","@itwin/core-quantity":"workspace:*","@itwin/ecschema-metadata":"workspace:*","@itwin/ecschema-rpcinterface-common":"workspace:*"},"//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/ecschema-metadata":"workspace:*","@itwin/ecschema-rpcinterface-common":"workspace:*","@itwin/eslint-plugin":"5.0.0-dev.1","@types/chai-as-promised":"^7","@types/sinon":"^17.0.2","@vitest/browser":"^3.0.6","@vitest/coverage-v8":"^3.0.6","cpx2":"^8.0.0","eslint":"^9.13.0","glob":"^10.3.12","playwright":"~1.47.1","rimraf":"^6.0.1","sinon":"^17.0.2","source-map-loader":"^5.0.0","typescript":"~5.6.2","typemoq":"^2.1.0","vitest":"^3.0.6","vite-multiple-assets":"^1.3.1","vite-plugin-static-copy":"2.2.0","webpack":"^5.97.1"},"//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.2.4","@itwin/object-storage-core":"^2.3.0","@itwin/core-i18n":"workspace:*","@itwin/webgl-compatibility":"workspace:*","@loaders.gl/core":"^3.1.6","@loaders.gl/draco":"^3.1.6","fuse.js":"^3.3.0","wms-capabilities":"0.4.0"}}');
|
|
314642
315045
|
|
|
314643
315046
|
/***/ })
|
|
314644
315047
|
|