@itwin/core-backend 4.0.0-dev.6 → 4.0.0-dev.61
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/CHANGELOG.md +89 -67
- package/lib/cjs/BackendHubAccess.d.ts +224 -224
- package/lib/cjs/BackendHubAccess.d.ts.map +1 -1
- package/lib/cjs/BackendHubAccess.js +41 -41
- package/lib/cjs/BackendHubAccess.js.map +1 -1
- package/lib/cjs/BackendLoggerCategory.d.ts +90 -91
- package/lib/cjs/BackendLoggerCategory.d.ts.map +1 -1
- package/lib/cjs/BackendLoggerCategory.js +98 -99
- package/lib/cjs/BackendLoggerCategory.js.map +1 -1
- package/lib/cjs/BisCoreSchema.d.ts +21 -21
- package/lib/cjs/BisCoreSchema.js +60 -60
- package/lib/cjs/BriefcaseManager.d.ts +170 -170
- package/lib/cjs/BriefcaseManager.d.ts.map +1 -1
- package/lib/cjs/BriefcaseManager.js +408 -414
- package/lib/cjs/BriefcaseManager.js.map +1 -1
- package/lib/cjs/Category.d.ts +153 -153
- package/lib/cjs/Category.js +243 -243
- package/lib/cjs/Category.js.map +1 -1
- package/lib/cjs/ChangeSummaryManager.d.ts +187 -187
- package/lib/cjs/ChangeSummaryManager.js +444 -445
- package/lib/cjs/ChangeSummaryManager.js.map +1 -1
- package/lib/cjs/ChangedElementsDb.d.ts +99 -99
- package/lib/cjs/ChangedElementsDb.js +165 -165
- package/lib/cjs/ChangedElementsManager.d.ts +39 -39
- package/lib/cjs/ChangedElementsManager.js +88 -88
- package/lib/cjs/ChannelControl.d.ts +70 -0
- package/lib/cjs/ChannelControl.d.ts.map +1 -0
- package/lib/cjs/ChannelControl.js +89 -0
- package/lib/cjs/ChannelControl.js.map +1 -0
- package/lib/cjs/CheckpointManager.d.ts +121 -121
- package/lib/cjs/CheckpointManager.d.ts.map +1 -1
- package/lib/cjs/CheckpointManager.js +351 -349
- package/lib/cjs/CheckpointManager.js.map +1 -1
- package/lib/cjs/ClassRegistry.d.ts +79 -79
- package/lib/cjs/ClassRegistry.js +249 -245
- package/lib/cjs/ClassRegistry.js.map +1 -1
- package/lib/cjs/CloudSqlite.d.ts +355 -350
- package/lib/cjs/CloudSqlite.d.ts.map +1 -1
- package/lib/cjs/CloudSqlite.js +154 -153
- package/lib/cjs/CloudSqlite.js.map +1 -1
- package/lib/cjs/CodeService.d.ts +396 -396
- package/lib/cjs/CodeService.d.ts.map +1 -1
- package/lib/cjs/CodeService.js +63 -63
- package/lib/cjs/CodeService.js.map +1 -1
- package/lib/cjs/CodeSpecs.d.ts +55 -55
- package/lib/cjs/CodeSpecs.js +124 -124
- package/lib/cjs/ConcurrentQuery.d.ts +13 -13
- package/lib/cjs/ConcurrentQuery.d.ts.map +1 -1
- package/lib/cjs/ConcurrentQuery.js +36 -36
- package/lib/cjs/CustomViewState3dCreator.d.ts +21 -21
- package/lib/cjs/CustomViewState3dCreator.d.ts.map +1 -1
- package/lib/cjs/CustomViewState3dCreator.js +82 -81
- package/lib/cjs/CustomViewState3dCreator.js.map +1 -1
- package/lib/cjs/DevTools.d.ts +74 -71
- package/lib/cjs/DevTools.d.ts.map +1 -1
- package/lib/cjs/DevTools.js +156 -154
- package/lib/cjs/DevTools.js.map +1 -1
- package/lib/cjs/DisplayStyle.d.ts +106 -106
- package/lib/cjs/DisplayStyle.js +253 -256
- package/lib/cjs/DisplayStyle.js.map +1 -1
- package/lib/cjs/ECDb.d.ts +194 -191
- package/lib/cjs/ECDb.d.ts.map +1 -1
- package/lib/cjs/ECDb.js +353 -350
- package/lib/cjs/ECDb.js.map +1 -1
- package/lib/cjs/ECSchemaXmlContext.d.ts +18 -18
- package/lib/cjs/ECSchemaXmlContext.d.ts.map +1 -1
- package/lib/cjs/ECSchemaXmlContext.js +41 -41
- package/lib/cjs/ECSqlStatement.d.ts +473 -473
- package/lib/cjs/ECSqlStatement.js +791 -791
- package/lib/cjs/Element.d.ts +1113 -1109
- package/lib/cjs/Element.d.ts.map +1 -1
- package/lib/cjs/Element.js +1424 -1427
- package/lib/cjs/Element.js.map +1 -1
- package/lib/cjs/ElementAspect.d.ts +176 -179
- package/lib/cjs/ElementAspect.d.ts.map +1 -1
- package/lib/cjs/ElementAspect.js +203 -211
- package/lib/cjs/ElementAspect.js.map +1 -1
- package/lib/cjs/ElementGraphics.d.ts +9 -9
- package/lib/cjs/ElementGraphics.js +41 -41
- package/lib/cjs/ElementGraphics.js.map +1 -1
- package/lib/cjs/ElementTreeWalker.d.ts +162 -162
- package/lib/cjs/ElementTreeWalker.d.ts.map +1 -1
- package/lib/cjs/ElementTreeWalker.js +409 -409
- package/lib/cjs/ElementTreeWalker.js.map +1 -1
- package/lib/cjs/Entity.d.ts +106 -106
- package/lib/cjs/Entity.d.ts.map +1 -1
- package/lib/cjs/Entity.js +134 -134
- package/lib/cjs/Entity.js.map +1 -1
- package/lib/cjs/EntityReferences.d.ts +49 -49
- package/lib/cjs/EntityReferences.d.ts.map +1 -1
- package/lib/cjs/EntityReferences.js +95 -95
- package/lib/cjs/ExportGraphics.d.ts +317 -317
- package/lib/cjs/ExportGraphics.d.ts.map +1 -1
- package/lib/cjs/ExportGraphics.js +208 -208
- package/lib/cjs/ExternalSource.d.ts +96 -96
- package/lib/cjs/ExternalSource.js +131 -131
- package/lib/cjs/ExternalSource.js.map +1 -1
- package/lib/cjs/GeoCoordConfig.d.ts +19 -19
- package/lib/cjs/GeoCoordConfig.js +85 -85
- package/lib/cjs/GeoCoordConfig.js.map +1 -1
- package/lib/cjs/GeometrySummary.d.ts +4 -4
- package/lib/cjs/GeometrySummary.js +333 -333
- package/lib/cjs/GeometrySummary.js.map +1 -1
- package/lib/cjs/HubMock.d.ts +94 -94
- package/lib/cjs/HubMock.js +220 -222
- package/lib/cjs/HubMock.js.map +1 -1
- package/lib/cjs/IModelCloneContext.d.ts +8 -8
- package/lib/cjs/IModelCloneContext.d.ts.map +1 -1
- package/lib/cjs/IModelCloneContext.js +15 -15
- package/lib/cjs/IModelDb.d.ts +1216 -1196
- package/lib/cjs/IModelDb.d.ts.map +1 -1
- package/lib/cjs/IModelDb.js +2387 -2392
- package/lib/cjs/IModelDb.js.map +1 -1
- package/lib/cjs/IModelElementCloneContext.d.ts +89 -89
- package/lib/cjs/IModelElementCloneContext.js +159 -159
- package/lib/cjs/IModelHost.d.ts +356 -369
- package/lib/cjs/IModelHost.d.ts.map +1 -1
- package/lib/cjs/IModelHost.js +472 -496
- package/lib/cjs/IModelHost.js.map +1 -1
- package/lib/cjs/IModelJsFs.d.ts +62 -62
- package/lib/cjs/IModelJsFs.js +139 -140
- package/lib/cjs/IModelJsFs.js.map +1 -1
- package/lib/cjs/IpcHost.d.ts +104 -104
- package/lib/cjs/IpcHost.js +276 -278
- package/lib/cjs/IpcHost.js.map +1 -1
- package/lib/cjs/LineStyle.d.ts +311 -311
- package/lib/cjs/LineStyle.js +295 -295
- package/lib/cjs/LocalHub.d.ts +162 -162
- package/lib/cjs/LocalHub.d.ts.map +1 -1
- package/lib/cjs/LocalHub.js +579 -584
- package/lib/cjs/LocalHub.js.map +1 -1
- package/lib/cjs/LocalhostIpcHost.d.ts +20 -20
- package/lib/cjs/LocalhostIpcHost.js +79 -81
- package/lib/cjs/LocalhostIpcHost.js.map +1 -1
- package/lib/cjs/Material.d.ts +131 -131
- package/lib/cjs/Material.js +180 -181
- package/lib/cjs/Material.js.map +1 -1
- package/lib/cjs/Model.d.ts +392 -392
- package/lib/cjs/Model.d.ts.map +1 -1
- package/lib/cjs/Model.js +489 -485
- package/lib/cjs/Model.js.map +1 -1
- package/lib/cjs/NativeAppStorage.d.ts +51 -51
- package/lib/cjs/NativeAppStorage.js +202 -202
- package/lib/cjs/NativeAppStorage.js.map +1 -1
- package/lib/cjs/NativeHost.d.ts +52 -52
- package/lib/cjs/NativeHost.js +160 -163
- package/lib/cjs/NativeHost.js.map +1 -1
- package/lib/cjs/NavigationRelationship.d.ts +156 -156
- package/lib/cjs/NavigationRelationship.js +225 -225
- package/lib/cjs/NavigationRelationship.js.map +1 -1
- package/lib/cjs/PromiseMemoizer.d.ts +51 -51
- package/lib/cjs/PromiseMemoizer.d.ts.map +1 -1
- package/lib/cjs/PromiseMemoizer.js +101 -101
- package/lib/cjs/PromiseMemoizer.js.map +1 -1
- package/lib/cjs/PropertyStore.d.ts +132 -132
- package/lib/cjs/PropertyStore.js +11 -11
- package/lib/cjs/Relationship.d.ts +416 -416
- package/lib/cjs/Relationship.js +494 -494
- package/lib/cjs/Relationship.js.map +1 -1
- package/lib/cjs/RpcBackend.d.ts +5 -5
- package/lib/cjs/RpcBackend.js +32 -32
- package/lib/cjs/SQLiteDb.d.ts +219 -219
- package/lib/cjs/SQLiteDb.js +212 -214
- package/lib/cjs/SQLiteDb.js.map +1 -1
- package/lib/cjs/Schema.d.ts +55 -55
- package/lib/cjs/Schema.js +83 -83
- package/lib/cjs/Schema.js.map +1 -1
- package/lib/cjs/ServerBasedLocks.d.ts +57 -57
- package/lib/cjs/ServerBasedLocks.js +168 -168
- package/lib/cjs/ServerBasedLocks.js.map +1 -1
- package/lib/cjs/SqliteStatement.d.ts +360 -360
- package/lib/cjs/SqliteStatement.d.ts.map +1 -1
- package/lib/cjs/SqliteStatement.js +586 -586
- package/lib/cjs/Texture.d.ts +58 -58
- package/lib/cjs/Texture.js +82 -82
- package/lib/cjs/Texture.js.map +1 -1
- package/lib/cjs/TileStorage.d.ts +18 -18
- package/lib/cjs/TileStorage.js +87 -90
- package/lib/cjs/TileStorage.js.map +1 -1
- package/lib/cjs/TxnManager.d.ts +202 -202
- package/lib/cjs/TxnManager.d.ts.map +1 -1
- package/lib/cjs/TxnManager.js +356 -356
- package/lib/cjs/TxnManager.js.map +1 -1
- package/lib/cjs/ViewDefinition.d.ts +435 -439
- package/lib/cjs/ViewDefinition.d.ts.map +1 -1
- package/lib/cjs/ViewDefinition.js +646 -646
- package/lib/cjs/ViewDefinition.js.map +1 -1
- package/lib/cjs/ViewStateHydrator.d.ts +13 -13
- package/lib/cjs/ViewStateHydrator.js +103 -103
- package/lib/cjs/core-backend.d.ts +183 -184
- package/lib/cjs/core-backend.d.ts.map +1 -1
- package/lib/cjs/core-backend.js +207 -204
- package/lib/cjs/core-backend.js.map +1 -1
- package/lib/cjs/domains/FunctionalElements.d.ts +101 -101
- package/lib/cjs/domains/FunctionalElements.js +145 -145
- package/lib/cjs/domains/FunctionalElements.js.map +1 -1
- package/lib/cjs/domains/FunctionalSchema.d.ts +13 -13
- package/lib/cjs/domains/FunctionalSchema.d.ts.map +1 -1
- package/lib/cjs/domains/FunctionalSchema.js +39 -40
- package/lib/cjs/domains/FunctionalSchema.js.map +1 -1
- package/lib/cjs/domains/GenericElements.d.ts +177 -177
- package/lib/cjs/domains/GenericElements.js +263 -263
- package/lib/cjs/domains/GenericSchema.d.ts +10 -10
- package/lib/cjs/domains/GenericSchema.js +28 -28
- package/lib/cjs/rpc/multipart.d.ts +11 -11
- package/lib/cjs/rpc/multipart.js +71 -71
- package/lib/cjs/rpc/tracing.d.ts +28 -28
- package/lib/cjs/rpc/tracing.js +73 -74
- package/lib/cjs/rpc/tracing.js.map +1 -1
- package/lib/cjs/rpc/web/logging.d.ts +9 -9
- package/lib/cjs/rpc/web/logging.js +43 -43
- package/lib/cjs/rpc/web/request.d.ts +6 -6
- package/lib/cjs/rpc/web/request.js +73 -74
- package/lib/cjs/rpc/web/request.js.map +1 -1
- package/lib/cjs/rpc/web/response.d.ts +6 -6
- package/lib/cjs/rpc/web/response.js +105 -106
- package/lib/cjs/rpc/web/response.js.map +1 -1
- package/lib/cjs/rpc-impl/DevToolsRpcImpl.d.ts +15 -15
- package/lib/cjs/rpc-impl/DevToolsRpcImpl.js +32 -32
- package/lib/cjs/rpc-impl/IModelReadRpcImpl.d.ts +47 -47
- package/lib/cjs/rpc-impl/IModelReadRpcImpl.js +293 -294
- package/lib/cjs/rpc-impl/IModelReadRpcImpl.js.map +1 -1
- package/lib/cjs/rpc-impl/IModelTileRpcImpl.d.ts +20 -22
- package/lib/cjs/rpc-impl/IModelTileRpcImpl.d.ts.map +1 -1
- package/lib/cjs/rpc-impl/IModelTileRpcImpl.js +187 -205
- package/lib/cjs/rpc-impl/IModelTileRpcImpl.js.map +1 -1
- package/lib/cjs/rpc-impl/RpcBriefcaseUtility.d.ts +36 -36
- package/lib/cjs/rpc-impl/RpcBriefcaseUtility.js +166 -168
- package/lib/cjs/rpc-impl/RpcBriefcaseUtility.js.map +1 -1
- package/lib/cjs/rpc-impl/SnapshotIModelRpcImpl.d.ts +16 -16
- package/lib/cjs/rpc-impl/SnapshotIModelRpcImpl.js +42 -43
- package/lib/cjs/rpc-impl/SnapshotIModelRpcImpl.js.map +1 -1
- package/lib/cjs/rpc-impl/WipRpcImpl.d.ts +15 -15
- package/lib/cjs/rpc-impl/WipRpcImpl.js +37 -37
- package/lib/cjs/workspace/Settings.d.ts +186 -186
- package/lib/cjs/workspace/Settings.d.ts.map +1 -1
- package/lib/cjs/workspace/Settings.js +154 -155
- package/lib/cjs/workspace/Settings.js.map +1 -1
- package/lib/cjs/workspace/SettingsSchemas.d.ts +75 -75
- package/lib/cjs/workspace/SettingsSchemas.js +190 -191
- package/lib/cjs/workspace/SettingsSchemas.js.map +1 -1
- package/lib/cjs/workspace/Workspace.d.ts +414 -414
- package/lib/cjs/workspace/Workspace.js +537 -543
- package/lib/cjs/workspace/Workspace.js.map +1 -1
- package/package.json +19 -19
- package/lib/cjs/AliCloudStorageService.d.ts +0 -24
- package/lib/cjs/AliCloudStorageService.d.ts.map +0 -1
- package/lib/cjs/AliCloudStorageService.js +0 -72
- package/lib/cjs/AliCloudStorageService.js.map +0 -1
- package/lib/cjs/CloudStorageBackend.d.ts +0 -59
- package/lib/cjs/CloudStorageBackend.d.ts.map +0 -1
- package/lib/cjs/CloudStorageBackend.js +0 -174
- package/lib/cjs/CloudStorageBackend.js.map +0 -1
|
@@ -1,211 +1,211 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/*---------------------------------------------------------------------------------------------
|
|
3
|
-
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
4
|
-
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
5
|
-
*--------------------------------------------------------------------------------------------*/
|
|
6
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
-
exports.generateGeometrySummaries = void 0;
|
|
8
|
-
const core_bentley_1 = require("@itwin/core-bentley");
|
|
9
|
-
const core_geometry_1 = require("@itwin/core-geometry");
|
|
10
|
-
const core_common_1 = require("@itwin/core-common");
|
|
11
|
-
const Element_1 = require("./Element");
|
|
12
|
-
// cspell:ignore earlin
|
|
13
|
-
/** Generates an array of GeometryStreamResponseProps. */
|
|
14
|
-
class ResponseGenerator {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
this.
|
|
18
|
-
this.
|
|
19
|
-
this.
|
|
20
|
-
this.
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
this.
|
|
25
|
-
this.
|
|
26
|
-
this.
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
generateSummaries() {
|
|
31
|
-
const summaries = [];
|
|
32
|
-
for (const elementId of this.elementIds)
|
|
33
|
-
summaries.push(this.generateSummary(elementId));
|
|
34
|
-
return summaries.join("\n");
|
|
35
|
-
}
|
|
36
|
-
generateSummary(id) {
|
|
37
|
-
let lines = [`[Geometry Summary for Element ${id}]`];
|
|
38
|
-
try {
|
|
39
|
-
const geom = this.getElementGeom(id);
|
|
40
|
-
if (undefined === geom)
|
|
41
|
-
throw new core_common_1.IModelError(core_bentley_1.IModelStatus.NoGeometry, "Element is neither a geometric element nor a geometry part");
|
|
42
|
-
if (undefined !== geom.geometricElement)
|
|
43
|
-
lines.push(this.summarizeElement(geom.geometricElement));
|
|
44
|
-
else if (undefined !== this.includePartReferences)
|
|
45
|
-
lines.push(this.summarizePartReferences(id, "2d" === this.includePartReferences)); // NB: Hideously inefficient if more than one element's summary was requested.
|
|
46
|
-
let curGeomParams;
|
|
47
|
-
let curLocalRange;
|
|
48
|
-
for (const entry of geom.iterator) {
|
|
49
|
-
if (this.verboseSymbology && (undefined === curGeomParams || !curGeomParams.isEquivalent(entry.geomParams))) {
|
|
50
|
-
lines.push(`Symbology: ${this.stringify(entry.geomParams)}`);
|
|
51
|
-
curGeomParams = entry.geomParams.clone();
|
|
52
|
-
}
|
|
53
|
-
if (undefined !== entry.localRange && (undefined === curLocalRange || !curLocalRange.isAlmostEqual(entry.localRange))) {
|
|
54
|
-
lines.push(this.summarizeRange3d(entry.localRange));
|
|
55
|
-
curLocalRange = entry.localRange;
|
|
56
|
-
}
|
|
57
|
-
const prim = entry.primitive;
|
|
58
|
-
switch (prim.type) {
|
|
59
|
-
case "textString":
|
|
60
|
-
case "image":
|
|
61
|
-
this.summarizePrimitive(lines, prim);
|
|
62
|
-
break;
|
|
63
|
-
case "brep":
|
|
64
|
-
this.summarizeBRep(lines, prim.brep);
|
|
65
|
-
break;
|
|
66
|
-
case "geometryQuery":
|
|
67
|
-
this.summarizeGeometryQuery(lines, prim.geometry);
|
|
68
|
-
break;
|
|
69
|
-
case "partReference":
|
|
70
|
-
lines.push(this.summarizePartReference(prim.part.id, prim.part.toLocal));
|
|
71
|
-
break;
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
catch (err) {
|
|
76
|
-
lines = lines.slice(0, 1);
|
|
77
|
-
lines.push(`ERROR: ${core_bentley_1.BentleyError.getErrorMessage(err)}`);
|
|
78
|
-
}
|
|
79
|
-
return lines.filter((line) => line !== "").join("\n");
|
|
80
|
-
}
|
|
81
|
-
summarizeElement(elem) {
|
|
82
|
-
const lines = [];
|
|
83
|
-
lines.push(`(${elem.is2d() ? "2D" : "3D"}) Category: ${elem.category}`);
|
|
84
|
-
lines.push(`Model: ${elem.model}`);
|
|
85
|
-
if (this.includePlacement) {
|
|
86
|
-
lines.push(`Range: ${this.stringify(elem.calculateRange3d())}`);
|
|
87
|
-
lines.push(`Transform: ${this.stringify(elem.getPlacementTransform())}`);
|
|
88
|
-
}
|
|
89
|
-
return lines.join("\n");
|
|
90
|
-
}
|
|
91
|
-
summarizePartReferences(id, is2d) {
|
|
92
|
-
const refIds = this.iModel.nativeDb.findGeometryPartReferences([id], is2d);
|
|
93
|
-
return `Part references (${refIds.length}): ${refIds.join()}`;
|
|
94
|
-
}
|
|
95
|
-
getElementGeom(id) {
|
|
96
|
-
const elem = this.iModel.elements.getElement({ id, wantGeometry: true });
|
|
97
|
-
let iterator;
|
|
98
|
-
let geometricElement;
|
|
99
|
-
if (elem instanceof Element_1.GeometricElement) {
|
|
100
|
-
geometricElement = elem;
|
|
101
|
-
if (geometricElement.is2d()) {
|
|
102
|
-
iterator = core_common_1.GeometryStreamIterator.fromGeometricElement2d(geometricElement);
|
|
103
|
-
}
|
|
104
|
-
else {
|
|
105
|
-
(0, core_bentley_1.assert)(geometricElement.is3d());
|
|
106
|
-
iterator = core_common_1.GeometryStreamIterator.fromGeometricElement3d(geometricElement);
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
else if (elem instanceof Element_1.GeometryPart) {
|
|
110
|
-
iterator = core_common_1.GeometryStreamIterator.fromGeometryPart(elem);
|
|
111
|
-
}
|
|
112
|
-
return undefined !== iterator ? { iterator, geometricElement } : undefined;
|
|
113
|
-
}
|
|
114
|
-
summarizeRange3d(range) {
|
|
115
|
-
return `SubGraphicRange: ${this.stringify(range)}`;
|
|
116
|
-
}
|
|
117
|
-
summarizePrimitive(lines, primitive) {
|
|
118
|
-
const summary = primitive.type;
|
|
119
|
-
if (core_common_1.GeometrySummaryVerbosity.Basic >= this.verbosity) {
|
|
120
|
-
lines.push(summary);
|
|
121
|
-
return;
|
|
122
|
-
}
|
|
123
|
-
const json = this.stringify(primitive.type === "textString" ? primitive.textString : primitive.image);
|
|
124
|
-
if (core_common_1.GeometrySummaryVerbosity.Detailed >= this.verbosity) {
|
|
125
|
-
lines.push(`${summary}: ${json}`);
|
|
126
|
-
return;
|
|
127
|
-
}
|
|
128
|
-
lines.push(`${summary}:`);
|
|
129
|
-
lines.push(json);
|
|
130
|
-
}
|
|
131
|
-
summarizeBRep(lines, brep) {
|
|
132
|
-
const summary = "brep";
|
|
133
|
-
if (core_common_1.GeometrySummaryVerbosity.Basic >= this.verbosity) {
|
|
134
|
-
lines.push(summary);
|
|
135
|
-
return;
|
|
136
|
-
}
|
|
137
|
-
const json = this.stringify({ type: brep.type, transform: brep.transform, faceSymbology: brep.faceSymbology });
|
|
138
|
-
if (core_common_1.GeometrySummaryVerbosity.Detailed >= this.verbosity) {
|
|
139
|
-
lines.push(`${summary}: ${json}`);
|
|
140
|
-
return;
|
|
141
|
-
}
|
|
142
|
-
lines.push(`${summary}:`);
|
|
143
|
-
lines.push(json);
|
|
144
|
-
}
|
|
145
|
-
summarizePartReference(partId, partToLocal) {
|
|
146
|
-
let line = `part id: ${partId}`;
|
|
147
|
-
if (undefined !== partToLocal)
|
|
148
|
-
line = `${line} transform: ${this.stringify(partToLocal)}`;
|
|
149
|
-
return line;
|
|
150
|
-
}
|
|
151
|
-
summarizeGeometryQuery(lines, query) {
|
|
152
|
-
switch (this.verbosity) {
|
|
153
|
-
case core_common_1.GeometrySummaryVerbosity.Detailed:
|
|
154
|
-
lines.push(this.summarizeGeometryQueryDetailed(query));
|
|
155
|
-
break;
|
|
156
|
-
case core_common_1.GeometrySummaryVerbosity.Full:
|
|
157
|
-
lines.push(this.summarizeGeometryQueryFull(query));
|
|
158
|
-
break;
|
|
159
|
-
default:
|
|
160
|
-
lines.push(this.summarizeGeometryQueryBasic(query));
|
|
161
|
-
break;
|
|
162
|
-
}
|
|
163
|
-
}
|
|
164
|
-
summarizeGeometryQueryBasic(query) {
|
|
165
|
-
switch (query.geometryCategory) {
|
|
166
|
-
case "solid":
|
|
167
|
-
return query.solidPrimitiveType;
|
|
168
|
-
case "curvePrimitive":
|
|
169
|
-
return query.curvePrimitiveType;
|
|
170
|
-
case "curveCollection":
|
|
171
|
-
return query.curveCollectionType;
|
|
172
|
-
default:
|
|
173
|
-
return query.geometryCategory;
|
|
174
|
-
}
|
|
175
|
-
}
|
|
176
|
-
summarizeGeometryQueryFull(query) {
|
|
177
|
-
return this.geometryQueryToJson(query);
|
|
178
|
-
}
|
|
179
|
-
geometryQueryToJson(query) {
|
|
180
|
-
try {
|
|
181
|
-
const json = core_geometry_1.IModelJson.Writer.toIModelJson(query);
|
|
182
|
-
const str = JSON.stringify(json);
|
|
183
|
-
return this.wantSquish ? this.squish(str) : str;
|
|
184
|
-
}
|
|
185
|
-
catch (err) {
|
|
186
|
-
return core_bentley_1.BentleyError.getErrorMessage(err);
|
|
187
|
-
}
|
|
188
|
-
}
|
|
189
|
-
// Earlin likes to put tons of whitespace + newlines into his JSON. Remove it.
|
|
190
|
-
squish(str) {
|
|
191
|
-
return str.replace(/\s+/g, "");
|
|
192
|
-
}
|
|
193
|
-
stringify(obj) {
|
|
194
|
-
const json = JSON.stringify(obj);
|
|
195
|
-
return this.wantSquish ? this.squish(json) : json;
|
|
196
|
-
}
|
|
197
|
-
summarizeGeometryQueryDetailed(query) {
|
|
198
|
-
let summary = `${this.summarizeGeometryQueryBasic(query)}: `;
|
|
199
|
-
switch (query.geometryCategory) {
|
|
200
|
-
case "solid":
|
|
201
|
-
return summary + this.summarizeSolidPrimitive(query);
|
|
202
|
-
case "curvePrimitive":
|
|
203
|
-
return summary + this.summarizeCurvePrimitive(query);
|
|
204
|
-
case "curveCollection":
|
|
205
|
-
return summary + this.summarizeCurveCollection(query);
|
|
206
|
-
case "pointCollection":
|
|
207
|
-
return `${summary} numPoints: ${query.points.length}`;
|
|
208
|
-
case "bsurf":
|
|
1
|
+
"use strict";
|
|
2
|
+
/*---------------------------------------------------------------------------------------------
|
|
3
|
+
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
4
|
+
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
5
|
+
*--------------------------------------------------------------------------------------------*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.generateGeometrySummaries = void 0;
|
|
8
|
+
const core_bentley_1 = require("@itwin/core-bentley");
|
|
9
|
+
const core_geometry_1 = require("@itwin/core-geometry");
|
|
10
|
+
const core_common_1 = require("@itwin/core-common");
|
|
11
|
+
const Element_1 = require("./Element");
|
|
12
|
+
// cspell:ignore earlin
|
|
13
|
+
/** Generates an array of GeometryStreamResponseProps. */
|
|
14
|
+
class ResponseGenerator {
|
|
15
|
+
get wantSquish() { return core_common_1.GeometrySummaryVerbosity.Full !== this.verbosity; }
|
|
16
|
+
constructor(request, iModel) {
|
|
17
|
+
this.verbosity = core_common_1.GeometrySummaryVerbosity.Basic;
|
|
18
|
+
this.includePlacement = false;
|
|
19
|
+
this.verboseSymbology = false;
|
|
20
|
+
this.elementIds = request.elementIds;
|
|
21
|
+
this.iModel = iModel;
|
|
22
|
+
const opts = request.options;
|
|
23
|
+
if (undefined !== opts) {
|
|
24
|
+
this.verbosity = undefined !== opts.geometryVerbosity ? opts.geometryVerbosity : core_common_1.GeometrySummaryVerbosity.Basic;
|
|
25
|
+
this.includePlacement = true === opts.includePlacement;
|
|
26
|
+
this.includePartReferences = opts.includePartReferences;
|
|
27
|
+
this.verboseSymbology = true === opts.verboseSymbology;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
generateSummaries() {
|
|
31
|
+
const summaries = [];
|
|
32
|
+
for (const elementId of this.elementIds)
|
|
33
|
+
summaries.push(this.generateSummary(elementId));
|
|
34
|
+
return summaries.join("\n");
|
|
35
|
+
}
|
|
36
|
+
generateSummary(id) {
|
|
37
|
+
let lines = [`[Geometry Summary for Element ${id}]`];
|
|
38
|
+
try {
|
|
39
|
+
const geom = this.getElementGeom(id);
|
|
40
|
+
if (undefined === geom)
|
|
41
|
+
throw new core_common_1.IModelError(core_bentley_1.IModelStatus.NoGeometry, "Element is neither a geometric element nor a geometry part");
|
|
42
|
+
if (undefined !== geom.geometricElement)
|
|
43
|
+
lines.push(this.summarizeElement(geom.geometricElement));
|
|
44
|
+
else if (undefined !== this.includePartReferences)
|
|
45
|
+
lines.push(this.summarizePartReferences(id, "2d" === this.includePartReferences)); // NB: Hideously inefficient if more than one element's summary was requested.
|
|
46
|
+
let curGeomParams;
|
|
47
|
+
let curLocalRange;
|
|
48
|
+
for (const entry of geom.iterator) {
|
|
49
|
+
if (this.verboseSymbology && (undefined === curGeomParams || !curGeomParams.isEquivalent(entry.geomParams))) {
|
|
50
|
+
lines.push(`Symbology: ${this.stringify(entry.geomParams)}`);
|
|
51
|
+
curGeomParams = entry.geomParams.clone();
|
|
52
|
+
}
|
|
53
|
+
if (undefined !== entry.localRange && (undefined === curLocalRange || !curLocalRange.isAlmostEqual(entry.localRange))) {
|
|
54
|
+
lines.push(this.summarizeRange3d(entry.localRange));
|
|
55
|
+
curLocalRange = entry.localRange;
|
|
56
|
+
}
|
|
57
|
+
const prim = entry.primitive;
|
|
58
|
+
switch (prim.type) {
|
|
59
|
+
case "textString":
|
|
60
|
+
case "image":
|
|
61
|
+
this.summarizePrimitive(lines, prim);
|
|
62
|
+
break;
|
|
63
|
+
case "brep":
|
|
64
|
+
this.summarizeBRep(lines, prim.brep);
|
|
65
|
+
break;
|
|
66
|
+
case "geometryQuery":
|
|
67
|
+
this.summarizeGeometryQuery(lines, prim.geometry);
|
|
68
|
+
break;
|
|
69
|
+
case "partReference":
|
|
70
|
+
lines.push(this.summarizePartReference(prim.part.id, prim.part.toLocal));
|
|
71
|
+
break;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
catch (err) {
|
|
76
|
+
lines = lines.slice(0, 1);
|
|
77
|
+
lines.push(`ERROR: ${core_bentley_1.BentleyError.getErrorMessage(err)}`);
|
|
78
|
+
}
|
|
79
|
+
return lines.filter((line) => line !== "").join("\n");
|
|
80
|
+
}
|
|
81
|
+
summarizeElement(elem) {
|
|
82
|
+
const lines = [];
|
|
83
|
+
lines.push(`(${elem.is2d() ? "2D" : "3D"}) Category: ${elem.category}`);
|
|
84
|
+
lines.push(`Model: ${elem.model}`);
|
|
85
|
+
if (this.includePlacement) {
|
|
86
|
+
lines.push(`Range: ${this.stringify(elem.calculateRange3d())}`);
|
|
87
|
+
lines.push(`Transform: ${this.stringify(elem.getPlacementTransform())}`);
|
|
88
|
+
}
|
|
89
|
+
return lines.join("\n");
|
|
90
|
+
}
|
|
91
|
+
summarizePartReferences(id, is2d) {
|
|
92
|
+
const refIds = this.iModel.nativeDb.findGeometryPartReferences([id], is2d);
|
|
93
|
+
return `Part references (${refIds.length}): ${refIds.join()}`;
|
|
94
|
+
}
|
|
95
|
+
getElementGeom(id) {
|
|
96
|
+
const elem = this.iModel.elements.getElement({ id, wantGeometry: true });
|
|
97
|
+
let iterator;
|
|
98
|
+
let geometricElement;
|
|
99
|
+
if (elem instanceof Element_1.GeometricElement) {
|
|
100
|
+
geometricElement = elem;
|
|
101
|
+
if (geometricElement.is2d()) {
|
|
102
|
+
iterator = core_common_1.GeometryStreamIterator.fromGeometricElement2d(geometricElement);
|
|
103
|
+
}
|
|
104
|
+
else {
|
|
105
|
+
(0, core_bentley_1.assert)(geometricElement.is3d());
|
|
106
|
+
iterator = core_common_1.GeometryStreamIterator.fromGeometricElement3d(geometricElement);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
else if (elem instanceof Element_1.GeometryPart) {
|
|
110
|
+
iterator = core_common_1.GeometryStreamIterator.fromGeometryPart(elem);
|
|
111
|
+
}
|
|
112
|
+
return undefined !== iterator ? { iterator, geometricElement } : undefined;
|
|
113
|
+
}
|
|
114
|
+
summarizeRange3d(range) {
|
|
115
|
+
return `SubGraphicRange: ${this.stringify(range)}`;
|
|
116
|
+
}
|
|
117
|
+
summarizePrimitive(lines, primitive) {
|
|
118
|
+
const summary = primitive.type;
|
|
119
|
+
if (core_common_1.GeometrySummaryVerbosity.Basic >= this.verbosity) {
|
|
120
|
+
lines.push(summary);
|
|
121
|
+
return;
|
|
122
|
+
}
|
|
123
|
+
const json = this.stringify(primitive.type === "textString" ? primitive.textString : primitive.image);
|
|
124
|
+
if (core_common_1.GeometrySummaryVerbosity.Detailed >= this.verbosity) {
|
|
125
|
+
lines.push(`${summary}: ${json}`);
|
|
126
|
+
return;
|
|
127
|
+
}
|
|
128
|
+
lines.push(`${summary}:`);
|
|
129
|
+
lines.push(json);
|
|
130
|
+
}
|
|
131
|
+
summarizeBRep(lines, brep) {
|
|
132
|
+
const summary = "brep";
|
|
133
|
+
if (core_common_1.GeometrySummaryVerbosity.Basic >= this.verbosity) {
|
|
134
|
+
lines.push(summary);
|
|
135
|
+
return;
|
|
136
|
+
}
|
|
137
|
+
const json = this.stringify({ type: brep.type, transform: brep.transform, faceSymbology: brep.faceSymbology });
|
|
138
|
+
if (core_common_1.GeometrySummaryVerbosity.Detailed >= this.verbosity) {
|
|
139
|
+
lines.push(`${summary}: ${json}`);
|
|
140
|
+
return;
|
|
141
|
+
}
|
|
142
|
+
lines.push(`${summary}:`);
|
|
143
|
+
lines.push(json);
|
|
144
|
+
}
|
|
145
|
+
summarizePartReference(partId, partToLocal) {
|
|
146
|
+
let line = `part id: ${partId}`;
|
|
147
|
+
if (undefined !== partToLocal)
|
|
148
|
+
line = `${line} transform: ${this.stringify(partToLocal)}`;
|
|
149
|
+
return line;
|
|
150
|
+
}
|
|
151
|
+
summarizeGeometryQuery(lines, query) {
|
|
152
|
+
switch (this.verbosity) {
|
|
153
|
+
case core_common_1.GeometrySummaryVerbosity.Detailed:
|
|
154
|
+
lines.push(this.summarizeGeometryQueryDetailed(query));
|
|
155
|
+
break;
|
|
156
|
+
case core_common_1.GeometrySummaryVerbosity.Full:
|
|
157
|
+
lines.push(this.summarizeGeometryQueryFull(query));
|
|
158
|
+
break;
|
|
159
|
+
default:
|
|
160
|
+
lines.push(this.summarizeGeometryQueryBasic(query));
|
|
161
|
+
break;
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
summarizeGeometryQueryBasic(query) {
|
|
165
|
+
switch (query.geometryCategory) {
|
|
166
|
+
case "solid":
|
|
167
|
+
return query.solidPrimitiveType;
|
|
168
|
+
case "curvePrimitive":
|
|
169
|
+
return query.curvePrimitiveType;
|
|
170
|
+
case "curveCollection":
|
|
171
|
+
return query.curveCollectionType;
|
|
172
|
+
default:
|
|
173
|
+
return query.geometryCategory;
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
summarizeGeometryQueryFull(query) {
|
|
177
|
+
return this.geometryQueryToJson(query);
|
|
178
|
+
}
|
|
179
|
+
geometryQueryToJson(query) {
|
|
180
|
+
try {
|
|
181
|
+
const json = core_geometry_1.IModelJson.Writer.toIModelJson(query);
|
|
182
|
+
const str = JSON.stringify(json);
|
|
183
|
+
return this.wantSquish ? this.squish(str) : str;
|
|
184
|
+
}
|
|
185
|
+
catch (err) {
|
|
186
|
+
return core_bentley_1.BentleyError.getErrorMessage(err);
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
// Earlin likes to put tons of whitespace + newlines into his JSON. Remove it.
|
|
190
|
+
squish(str) {
|
|
191
|
+
return str.replace(/\s+/g, "");
|
|
192
|
+
}
|
|
193
|
+
stringify(obj) {
|
|
194
|
+
const json = JSON.stringify(obj);
|
|
195
|
+
return this.wantSquish ? this.squish(json) : json;
|
|
196
|
+
}
|
|
197
|
+
summarizeGeometryQueryDetailed(query) {
|
|
198
|
+
let summary = `${this.summarizeGeometryQueryBasic(query)}: `;
|
|
199
|
+
switch (query.geometryCategory) {
|
|
200
|
+
case "solid":
|
|
201
|
+
return summary + this.summarizeSolidPrimitive(query);
|
|
202
|
+
case "curvePrimitive":
|
|
203
|
+
return summary + this.summarizeCurvePrimitive(query);
|
|
204
|
+
case "curveCollection":
|
|
205
|
+
return summary + this.summarizeCurveCollection(query);
|
|
206
|
+
case "pointCollection":
|
|
207
|
+
return `${summary} numPoints: ${query.points.length}`;
|
|
208
|
+
case "bsurf":
|
|
209
209
|
return `${summary}'
|
|
210
210
|
' poleDimension: ${query.poleDimension}'
|
|
211
211
|
' numPolesTotal: ${query.numPolesTotal()}'
|
|
@@ -213,169 +213,169 @@ class ResponseGenerator {
|
|
|
213
213
|
' order[U,V]: ${JSON.stringify([query.orderUV(core_geometry_1.UVSelect.uDirection), query.orderUV(core_geometry_1.UVSelect.VDirection)])}'
|
|
214
214
|
' numSpan[U,V]: ${JSON.stringify([query.numSpanUV(core_geometry_1.UVSelect.uDirection), query.numSpanUV(core_geometry_1.UVSelect.VDirection)])}'
|
|
215
215
|
' numPoles[U,V]: ${JSON.stringify([query.numPolesUV(core_geometry_1.UVSelect.uDirection), query.numPolesUV(core_geometry_1.UVSelect.VDirection)])}'
|
|
216
|
-
' poleStep[U,V]: ${JSON.stringify([query.poleStepUV(core_geometry_1.UVSelect.uDirection), query.poleStepUV(core_geometry_1.UVSelect.VDirection)])}`;
|
|
217
|
-
case "polyface": {
|
|
218
|
-
const data = query.data;
|
|
216
|
+
' poleStep[U,V]: ${JSON.stringify([query.poleStepUV(core_geometry_1.UVSelect.uDirection), query.poleStepUV(core_geometry_1.UVSelect.VDirection)])}`;
|
|
217
|
+
case "polyface": {
|
|
218
|
+
const data = query.data;
|
|
219
219
|
summary = `${summary} pointCount: ${data.point.length}'
|
|
220
|
-
' pointIndexCount: ${data.pointIndex.length}`;
|
|
221
|
-
if (query.twoSided)
|
|
222
|
-
summary = `${summary} (two-sided)`;
|
|
223
|
-
if (undefined !== data.normal)
|
|
224
|
-
summary = `${summary} normalCount: ${data.normal.length}`;
|
|
225
|
-
if (undefined !== data.param)
|
|
226
|
-
summary = `${summary} paramCount: ${data.param.length}`;
|
|
227
|
-
if (undefined !== data.color)
|
|
228
|
-
summary = `${summary} colorCount: ${data.color.length}`;
|
|
229
|
-
return summary;
|
|
230
|
-
}
|
|
231
|
-
case "point":
|
|
232
|
-
return summary + this.geometryQueryToJson(query);
|
|
233
|
-
}
|
|
234
|
-
}
|
|
235
|
-
summarizeSolidPrimitive(solid) {
|
|
236
|
-
const summary = solid.capped ? " capped" : " uncapped";
|
|
237
|
-
switch (solid.solidPrimitiveType) {
|
|
238
|
-
case "box":
|
|
239
|
-
const box = solid;
|
|
220
|
+
' pointIndexCount: ${data.pointIndex.length}`;
|
|
221
|
+
if (query.twoSided)
|
|
222
|
+
summary = `${summary} (two-sided)`;
|
|
223
|
+
if (undefined !== data.normal)
|
|
224
|
+
summary = `${summary} normalCount: ${data.normal.length}`;
|
|
225
|
+
if (undefined !== data.param)
|
|
226
|
+
summary = `${summary} paramCount: ${data.param.length}`;
|
|
227
|
+
if (undefined !== data.color)
|
|
228
|
+
summary = `${summary} colorCount: ${data.color.length}`;
|
|
229
|
+
return summary;
|
|
230
|
+
}
|
|
231
|
+
case "point":
|
|
232
|
+
return summary + this.geometryQueryToJson(query);
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
summarizeSolidPrimitive(solid) {
|
|
236
|
+
const summary = solid.capped ? " capped" : " uncapped";
|
|
237
|
+
switch (solid.solidPrimitiveType) {
|
|
238
|
+
case "box":
|
|
239
|
+
const box = solid;
|
|
240
240
|
return `${summary}'
|
|
241
241
|
' origin: ${JSON.stringify(box.getBaseOrigin().toJSON())}'
|
|
242
242
|
' topOrigin: ${JSON.stringify(box.getTopOrigin().toJSON())}'
|
|
243
243
|
' baseX: ${box.getBaseX()}'
|
|
244
|
-
' baseY: ${box.getBaseY()}`;
|
|
245
|
-
case "cone":
|
|
246
|
-
const cone = solid;
|
|
244
|
+
' baseY: ${box.getBaseY()}`;
|
|
245
|
+
case "cone":
|
|
246
|
+
const cone = solid;
|
|
247
247
|
return `${summary}'
|
|
248
248
|
' baseCenterPoint: ${JSON.stringify(cone.getCenterA())}'
|
|
249
249
|
' topCenterPoint: ${JSON.stringify(cone.getCenterB())}'
|
|
250
250
|
' baseCenterRadius: ${JSON.stringify(cone.getRadiusA())}'
|
|
251
|
-
' topCenterRadius: ${JSON.stringify(cone.getRadiusB())}`;
|
|
252
|
-
case "sphere":
|
|
253
|
-
const sphere = solid;
|
|
251
|
+
' topCenterRadius: ${JSON.stringify(cone.getRadiusB())}`;
|
|
252
|
+
case "sphere":
|
|
253
|
+
const sphere = solid;
|
|
254
254
|
return `${summary}'
|
|
255
255
|
' centerPoint: ${JSON.stringify(sphere.cloneCenter().toJSON())}'
|
|
256
|
-
' radius: ${JSON.stringify(sphere.trueSphereRadius())}`;
|
|
257
|
-
case "linearSweep":
|
|
258
|
-
const linearSweep = solid;
|
|
256
|
+
' radius: ${JSON.stringify(sphere.trueSphereRadius())}`;
|
|
257
|
+
case "linearSweep":
|
|
258
|
+
const linearSweep = solid;
|
|
259
259
|
return `${summary}'
|
|
260
260
|
' vector: ${linearSweep.cloneSweepVector().toJSON()}'
|
|
261
|
-
' curves${this.summarizeCurveCollection(linearSweep.getCurvesRef())}`;
|
|
262
|
-
case "rotationalSweep":
|
|
263
|
-
const rotationalSweep = solid;
|
|
264
|
-
const axis = rotationalSweep.cloneAxisRay();
|
|
261
|
+
' curves${this.summarizeCurveCollection(linearSweep.getCurvesRef())}`;
|
|
262
|
+
case "rotationalSweep":
|
|
263
|
+
const rotationalSweep = solid;
|
|
264
|
+
const axis = rotationalSweep.cloneAxisRay();
|
|
265
265
|
return `${summary}'
|
|
266
266
|
' center: ${axis.origin.toJSON()}'
|
|
267
267
|
' axis: ${JSON.stringify(axis.direction.toJSON())}'
|
|
268
|
-
' sweepAngle: ${rotationalSweep.getSweep().degrees}`;
|
|
269
|
-
case "ruledSweep":
|
|
270
|
-
const ruledSweep = solid;
|
|
271
|
-
const summarizedCollection = ruledSweep.cloneContours().map((curveCollection) => this.summarizeCurveCollection(curveCollection));
|
|
268
|
+
' sweepAngle: ${rotationalSweep.getSweep().degrees}`;
|
|
269
|
+
case "ruledSweep":
|
|
270
|
+
const ruledSweep = solid;
|
|
271
|
+
const summarizedCollection = ruledSweep.cloneContours().map((curveCollection) => this.summarizeCurveCollection(curveCollection));
|
|
272
272
|
return `${summary}'
|
|
273
273
|
' isClosedVolume${ruledSweep.isClosedVolume}'
|
|
274
|
-
' contours: ${JSON.stringify(summarizedCollection)}`;
|
|
275
|
-
case "torusPipe":
|
|
276
|
-
const torusPipe = solid;
|
|
277
|
-
const vectorX = torusPipe.cloneVectorX();
|
|
278
|
-
const vectorY = torusPipe.cloneVectorY();
|
|
279
|
-
const sweep = torusPipe.getSweepAngle();
|
|
280
|
-
if (torusPipe.getIsReversed()) {
|
|
281
|
-
vectorY.scaleInPlace(-1.0);
|
|
282
|
-
sweep.setRadians(-sweep.radians);
|
|
283
|
-
}
|
|
274
|
+
' contours: ${JSON.stringify(summarizedCollection)}`;
|
|
275
|
+
case "torusPipe":
|
|
276
|
+
const torusPipe = solid;
|
|
277
|
+
const vectorX = torusPipe.cloneVectorX();
|
|
278
|
+
const vectorY = torusPipe.cloneVectorY();
|
|
279
|
+
const sweep = torusPipe.getSweepAngle();
|
|
280
|
+
if (torusPipe.getIsReversed()) {
|
|
281
|
+
vectorY.scaleInPlace(-1.0);
|
|
282
|
+
sweep.setRadians(-sweep.radians);
|
|
283
|
+
}
|
|
284
284
|
return `${summary}'
|
|
285
285
|
' center: ${torusPipe.cloneCenter().toJSON()}'
|
|
286
286
|
' xyVectors: ${JSON.stringify([vectorX.toJSON(), vectorY.toJSON()])}'
|
|
287
287
|
' majorRadius: ${torusPipe.getMajorRadius()}'
|
|
288
288
|
' minorRadius: ${torusPipe.getMinorRadius()}'
|
|
289
|
-
' sweepAngle: ${sweep.degrees}`;
|
|
290
|
-
}
|
|
291
|
-
}
|
|
292
|
-
summarizeCurvePrimitive(curve) {
|
|
293
|
-
let summary = "";
|
|
294
|
-
const writer = new core_geometry_1.IModelJson.Writer();
|
|
295
|
-
switch (curve.curvePrimitiveType) {
|
|
296
|
-
case "arc":
|
|
297
|
-
const arc = curve;
|
|
298
|
-
summary = `${summary} center: ${JSON.stringify(arc.center.toJSON())}`;
|
|
299
|
-
if (undefined !== arc.circularRadius)
|
|
300
|
-
summary = `${summary} radius: ${arc.circularRadius()}`;
|
|
289
|
+
' sweepAngle: ${sweep.degrees}`;
|
|
290
|
+
}
|
|
291
|
+
}
|
|
292
|
+
summarizeCurvePrimitive(curve) {
|
|
293
|
+
let summary = "";
|
|
294
|
+
const writer = new core_geometry_1.IModelJson.Writer();
|
|
295
|
+
switch (curve.curvePrimitiveType) {
|
|
296
|
+
case "arc":
|
|
297
|
+
const arc = curve;
|
|
298
|
+
summary = `${summary} center: ${JSON.stringify(arc.center.toJSON())}`;
|
|
299
|
+
if (undefined !== arc.circularRadius)
|
|
300
|
+
summary = `${summary} radius: ${arc.circularRadius()}`;
|
|
301
301
|
summary = `${summary}'
|
|
302
302
|
' vectorX:${arc.vector0.toJSON()}'
|
|
303
303
|
' vectorY:${arc.vector90.toJSON()}'
|
|
304
|
-
' sweepStartEnd [${arc.sweep.startDegrees}, ${arc.sweep.endDegrees}]`
|
|
305
|
-
+ ` curveLength: ${curve.curveLength()}`;
|
|
306
|
-
return summary;
|
|
307
|
-
case "lineSegment":
|
|
308
|
-
const lineSegment = curve;
|
|
309
|
-
summary = `${summary} points: ${JSON.stringify(lineSegment.toJSON())}`;
|
|
310
|
-
summary = `${summary} curveLength: ${curve.curveLength()}`;
|
|
311
|
-
return summary;
|
|
312
|
-
case "lineString":
|
|
313
|
-
const lineString = curve;
|
|
304
|
+
' sweepStartEnd [${arc.sweep.startDegrees}, ${arc.sweep.endDegrees}]`
|
|
305
|
+
+ ` curveLength: ${curve.curveLength()}`;
|
|
306
|
+
return summary;
|
|
307
|
+
case "lineSegment":
|
|
308
|
+
const lineSegment = curve;
|
|
309
|
+
summary = `${summary} points: ${JSON.stringify(lineSegment.toJSON())}`;
|
|
310
|
+
summary = `${summary} curveLength: ${curve.curveLength()}`;
|
|
311
|
+
return summary;
|
|
312
|
+
case "lineString":
|
|
313
|
+
const lineString = curve;
|
|
314
314
|
summary = `${summary} pointCount: ${lineString.numPoints()}'
|
|
315
|
-
' curveLength: ${curve.curveLength()}`;
|
|
316
|
-
return summary;
|
|
317
|
-
case "bsplineCurve":
|
|
318
|
-
const bsplineCurve = curve;
|
|
315
|
+
' curveLength: ${curve.curveLength()}`;
|
|
316
|
+
return summary;
|
|
317
|
+
case "bsplineCurve":
|
|
318
|
+
const bsplineCurve = curve;
|
|
319
319
|
summary = `${summary}'
|
|
320
320
|
' curveOrder: ${bsplineCurve.order}'
|
|
321
321
|
' controlPointsCount: ${bsplineCurve.numPoles}'
|
|
322
|
-
' curveLength: ${curve.curveLength()}`;
|
|
323
|
-
return summary;
|
|
324
|
-
case "interpolationCurve":
|
|
325
|
-
const interpolationCurve = curve;
|
|
326
|
-
const interpolationProps = interpolationCurve.cloneProps();
|
|
322
|
+
' curveLength: ${curve.curveLength()}`;
|
|
323
|
+
return summary;
|
|
324
|
+
case "interpolationCurve":
|
|
325
|
+
const interpolationCurve = curve;
|
|
326
|
+
const interpolationProps = interpolationCurve.cloneProps();
|
|
327
327
|
summary = `${summary}'
|
|
328
328
|
' curveOrder: ${interpolationProps.order}'
|
|
329
|
-
' controlPointsCount: ${interpolationProps.fitPoints.length}`;
|
|
330
|
-
return summary;
|
|
331
|
-
case "akimaCurve":
|
|
332
|
-
const akimaCurve = curve;
|
|
333
|
-
const akimaProps = akimaCurve.cloneProps();
|
|
329
|
+
' controlPointsCount: ${interpolationProps.fitPoints.length}`;
|
|
330
|
+
return summary;
|
|
331
|
+
case "akimaCurve":
|
|
332
|
+
const akimaCurve = curve;
|
|
333
|
+
const akimaProps = akimaCurve.cloneProps();
|
|
334
334
|
summary = `${summary}'
|
|
335
|
-
' controlPointsCount: ${akimaProps.fitPoints.length}`;
|
|
336
|
-
return summary;
|
|
337
|
-
case "bezierCurve":
|
|
338
|
-
const bezierCurve = curve;
|
|
335
|
+
' controlPointsCount: ${akimaProps.fitPoints.length}`;
|
|
336
|
+
return summary;
|
|
337
|
+
case "bezierCurve":
|
|
338
|
+
const bezierCurve = curve;
|
|
339
339
|
summary = `${summary}'
|
|
340
340
|
' curveOrder: ${bezierCurve.order}'
|
|
341
341
|
' controlPointsCount: ${bezierCurve.numPoles}'
|
|
342
|
-
' curveLength: ${curve.curveLength()}`;
|
|
343
|
-
return summary;
|
|
344
|
-
case "transitionSpiral":
|
|
345
|
-
const transitionSpiral = curve;
|
|
346
|
-
const json = writer.handleTransitionSpiral(transitionSpiral);
|
|
347
|
-
summary = summary + JSON.stringify(json);
|
|
348
|
-
return summary;
|
|
349
|
-
case "curveChainWithDistanceIndex":
|
|
350
|
-
const curveChainWithDistanceIndex = curve;
|
|
351
|
-
const path = curveChainWithDistanceIndex.path;
|
|
342
|
+
' curveLength: ${curve.curveLength()}`;
|
|
343
|
+
return summary;
|
|
344
|
+
case "transitionSpiral":
|
|
345
|
+
const transitionSpiral = curve;
|
|
346
|
+
const json = writer.handleTransitionSpiral(transitionSpiral);
|
|
347
|
+
summary = summary + JSON.stringify(json);
|
|
348
|
+
return summary;
|
|
349
|
+
case "curveChainWithDistanceIndex":
|
|
350
|
+
const curveChainWithDistanceIndex = curve;
|
|
351
|
+
const path = curveChainWithDistanceIndex.path;
|
|
352
352
|
summary = `${summary}'
|
|
353
353
|
' curveLength: ${curve.curveLength()}'
|
|
354
|
-
' isOpen: ${path.isOpenPath}`;
|
|
355
|
-
return summary;
|
|
356
|
-
}
|
|
357
|
-
}
|
|
358
|
-
summarizeCurveCollection(curves) {
|
|
359
|
-
let summary = "";
|
|
360
|
-
switch (curves.curveCollectionType) {
|
|
361
|
-
case "loop":
|
|
362
|
-
const loop = curves;
|
|
363
|
-
summary = `${summary} isInner: ${loop.isInner}`;
|
|
364
|
-
break;
|
|
365
|
-
case "path":
|
|
366
|
-
const path = curves;
|
|
367
|
-
summary = `${summary} isOpen: ${path.isOpenPath}`;
|
|
368
|
-
break;
|
|
369
|
-
}
|
|
354
|
+
' isOpen: ${path.isOpenPath}`;
|
|
355
|
+
return summary;
|
|
356
|
+
}
|
|
357
|
+
}
|
|
358
|
+
summarizeCurveCollection(curves) {
|
|
359
|
+
let summary = "";
|
|
360
|
+
switch (curves.curveCollectionType) {
|
|
361
|
+
case "loop":
|
|
362
|
+
const loop = curves;
|
|
363
|
+
summary = `${summary} isInner: ${loop.isInner}`;
|
|
364
|
+
break;
|
|
365
|
+
case "path":
|
|
366
|
+
const path = curves;
|
|
367
|
+
summary = `${summary} isOpen: ${path.isOpenPath}`;
|
|
368
|
+
break;
|
|
369
|
+
}
|
|
370
370
|
return `${summary}'
|
|
371
371
|
' numCurves: ${curves.collectCurvePrimitives().length}'
|
|
372
|
-
' boundary: ${curves.dgnBoundaryType()}`;
|
|
373
|
-
}
|
|
374
|
-
}
|
|
375
|
-
/** @internal */
|
|
376
|
-
function generateGeometrySummaries(request, iModel) {
|
|
377
|
-
const generator = new ResponseGenerator(request, iModel);
|
|
378
|
-
return generator.generateSummaries();
|
|
379
|
-
}
|
|
380
|
-
exports.generateGeometrySummaries = generateGeometrySummaries;
|
|
372
|
+
' boundary: ${curves.dgnBoundaryType()}`;
|
|
373
|
+
}
|
|
374
|
+
}
|
|
375
|
+
/** @internal */
|
|
376
|
+
function generateGeometrySummaries(request, iModel) {
|
|
377
|
+
const generator = new ResponseGenerator(request, iModel);
|
|
378
|
+
return generator.generateSummaries();
|
|
379
|
+
}
|
|
380
|
+
exports.generateGeometrySummaries = generateGeometrySummaries;
|
|
381
381
|
//# sourceMappingURL=GeometrySummary.js.map
|