@itwin/core-frontend 3.1.0-dev.14 → 3.1.0-dev.21
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/cjs/FrontendLoggerCategory.d.ts +3 -1
- package/lib/cjs/FrontendLoggerCategory.d.ts.map +1 -1
- package/lib/cjs/FrontendLoggerCategory.js +2 -0
- package/lib/cjs/FrontendLoggerCategory.js.map +1 -1
- package/lib/cjs/IModelConnection.d.ts +3 -5
- package/lib/cjs/IModelConnection.d.ts.map +1 -1
- package/lib/cjs/IModelConnection.js +4 -10
- package/lib/cjs/IModelConnection.js.map +1 -1
- package/lib/cjs/ImageUtil.d.ts.map +1 -1
- package/lib/cjs/ImageUtil.js +8 -14
- package/lib/cjs/ImageUtil.js.map +1 -1
- package/lib/cjs/RealityDataSource.d.ts +2 -0
- package/lib/cjs/RealityDataSource.d.ts.map +1 -1
- package/lib/cjs/RealityDataSource.js +13 -0
- package/lib/cjs/RealityDataSource.js.map +1 -1
- package/lib/cjs/Viewport.d.ts +8 -8
- package/lib/cjs/Viewport.d.ts.map +1 -1
- package/lib/cjs/Viewport.js.map +1 -1
- package/lib/cjs/render/webgl/SceneCompositor.js +14 -13
- package/lib/cjs/render/webgl/SceneCompositor.js.map +1 -1
- package/lib/cjs/tile/GltfReader.d.ts +16 -2
- package/lib/cjs/tile/GltfReader.d.ts.map +1 -1
- package/lib/cjs/tile/GltfReader.js +122 -13
- package/lib/cjs/tile/GltfReader.js.map +1 -1
- package/lib/cjs/tile/PntsReader.d.ts +1 -1
- package/lib/cjs/tile/PntsReader.d.ts.map +1 -1
- package/lib/cjs/tile/PntsReader.js +107 -35
- package/lib/cjs/tile/PntsReader.js.map +1 -1
- package/lib/cjs/tile/RealityTileLoader.js +1 -1
- package/lib/cjs/tile/RealityTileLoader.js.map +1 -1
- package/lib/cjs/tile/map/ImageryProviders/MapBoxLayerImageryProvider.d.ts.map +1 -1
- package/lib/cjs/tile/map/ImageryProviders/MapBoxLayerImageryProvider.js +4 -3
- package/lib/cjs/tile/map/ImageryProviders/MapBoxLayerImageryProvider.js.map +1 -1
- package/lib/cjs/tile/map/MapLayerFormatRegistry.d.ts +1 -1
- package/lib/cjs/tile/map/MapLayerFormatRegistry.js.map +1 -1
- package/lib/cjs/tools/ViewTool.d.ts +4 -4
- package/lib/cjs/tools/ViewTool.d.ts.map +1 -1
- package/lib/cjs/tools/ViewTool.js.map +1 -1
- package/lib/esm/FrontendLoggerCategory.d.ts +3 -1
- package/lib/esm/FrontendLoggerCategory.d.ts.map +1 -1
- package/lib/esm/FrontendLoggerCategory.js +2 -0
- package/lib/esm/FrontendLoggerCategory.js.map +1 -1
- package/lib/esm/IModelConnection.d.ts +3 -5
- package/lib/esm/IModelConnection.d.ts.map +1 -1
- package/lib/esm/IModelConnection.js +5 -11
- package/lib/esm/IModelConnection.js.map +1 -1
- package/lib/esm/ImageUtil.d.ts.map +1 -1
- package/lib/esm/ImageUtil.js +8 -14
- package/lib/esm/ImageUtil.js.map +1 -1
- package/lib/esm/RealityDataSource.d.ts +2 -0
- package/lib/esm/RealityDataSource.d.ts.map +1 -1
- package/lib/esm/RealityDataSource.js +14 -1
- package/lib/esm/RealityDataSource.js.map +1 -1
- package/lib/esm/Viewport.d.ts +8 -8
- package/lib/esm/Viewport.d.ts.map +1 -1
- package/lib/esm/Viewport.js.map +1 -1
- package/lib/esm/render/webgl/SceneCompositor.js +14 -13
- package/lib/esm/render/webgl/SceneCompositor.js.map +1 -1
- package/lib/esm/tile/GltfReader.d.ts +16 -2
- package/lib/esm/tile/GltfReader.d.ts.map +1 -1
- package/lib/esm/tile/GltfReader.js +104 -14
- package/lib/esm/tile/GltfReader.js.map +1 -1
- package/lib/esm/tile/PntsReader.d.ts +1 -1
- package/lib/esm/tile/PntsReader.d.ts.map +1 -1
- package/lib/esm/tile/PntsReader.js +91 -38
- package/lib/esm/tile/PntsReader.js.map +1 -1
- package/lib/esm/tile/RealityTileLoader.js +1 -1
- package/lib/esm/tile/RealityTileLoader.js.map +1 -1
- package/lib/esm/tile/map/ImageryProviders/MapBoxLayerImageryProvider.d.ts.map +1 -1
- package/lib/esm/tile/map/ImageryProviders/MapBoxLayerImageryProvider.js +4 -3
- package/lib/esm/tile/map/ImageryProviders/MapBoxLayerImageryProvider.js.map +1 -1
- package/lib/esm/tile/map/MapLayerFormatRegistry.d.ts +1 -1
- package/lib/esm/tile/map/MapLayerFormatRegistry.js.map +1 -1
- package/lib/esm/tools/ViewTool.d.ts +4 -4
- package/lib/esm/tools/ViewTool.d.ts.map +1 -1
- package/lib/esm/tools/ViewTool.js.map +1 -1
- package/package.json +22 -20
- package/lib/cjs/tile/DracoDecoder.d.ts +0 -20
- package/lib/cjs/tile/DracoDecoder.d.ts.map +0 -1
- package/lib/cjs/tile/DracoDecoder.js +0 -169
- package/lib/cjs/tile/DracoDecoder.js.map +0 -1
- package/lib/esm/tile/DracoDecoder.d.ts +0 -20
- package/lib/esm/tile/DracoDecoder.d.ts.map +0 -1
- package/lib/esm/tile/DracoDecoder.js +0 -165
- package/lib/esm/tile/DracoDecoder.js.map +0 -1
|
@@ -9,5 +9,5 @@ import { RenderSystem } from "../render/RenderSystem";
|
|
|
9
9
|
/** Deserialize a point cloud tile and return it as a RenderGraphic.
|
|
10
10
|
* @internal
|
|
11
11
|
*/
|
|
12
|
-
export declare function readPointCloudTileContent(stream: ByteStream, iModel: IModelConnection, modelId: Id64String, _is3d: boolean, range: ElementAlignedBox3d, system: RenderSystem): RenderGraphic | undefined
|
|
12
|
+
export declare function readPointCloudTileContent(stream: ByteStream, iModel: IModelConnection, modelId: Id64String, _is3d: boolean, range: ElementAlignedBox3d, system: RenderSystem): Promise<RenderGraphic | undefined>;
|
|
13
13
|
//# sourceMappingURL=PntsReader.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PntsReader.d.ts","sourceRoot":"","sources":["../../../src/tile/PntsReader.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,
|
|
1
|
+
{"version":3,"file":"PntsReader.d.ts","sourceRoot":"","sources":["../../../src/tile/PntsReader.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,UAAU,EAAwB,MAAM,qBAAqB,CAAC;AAEnF,OAAO,EAAa,mBAAmB,EAA4F,MAAM,oBAAoB,CAAC;AAE9J,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAGvD,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AA0GtD;;GAEG;AACH,wBAAsB,yBAAyB,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,gBAAgB,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,mBAAmB,EAAE,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC,CA+CvN"}
|
|
@@ -6,18 +6,105 @@
|
|
|
6
6
|
/** @packageDocumentation
|
|
7
7
|
* @module Tiles
|
|
8
8
|
*/
|
|
9
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
12
|
+
}) : (function(o, m, k, k2) {
|
|
13
|
+
if (k2 === undefined) k2 = k;
|
|
14
|
+
o[k2] = m[k];
|
|
15
|
+
}));
|
|
16
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
17
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
18
|
+
}) : function(o, v) {
|
|
19
|
+
o["default"] = v;
|
|
20
|
+
});
|
|
21
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
22
|
+
if (mod && mod.__esModule) return mod;
|
|
23
|
+
var result = {};
|
|
24
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
25
|
+
__setModuleDefault(result, mod);
|
|
26
|
+
return result;
|
|
27
|
+
};
|
|
9
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
29
|
exports.readPointCloudTileContent = void 0;
|
|
11
30
|
const core_bentley_1 = require("@itwin/core-bentley");
|
|
12
31
|
const core_geometry_1 = require("@itwin/core-geometry");
|
|
13
32
|
const core_common_1 = require("@itwin/core-common");
|
|
33
|
+
const FrontendLoggerCategory_1 = require("../FrontendLoggerCategory");
|
|
14
34
|
const MeshPrimitives_1 = require("../render/primitives/mesh/MeshPrimitives");
|
|
15
35
|
const PointCloudPrimitive_1 = require("../render/primitives/PointCloudPrimitive");
|
|
36
|
+
async function decodeDracoPointCloud(buf) {
|
|
37
|
+
var _a, _b, _c, _d, _e, _f;
|
|
38
|
+
try {
|
|
39
|
+
const dracoLoader = (await Promise.resolve().then(() => __importStar(require("@loaders.gl/draco")))).DracoLoader;
|
|
40
|
+
const mesh = await dracoLoader.parse(buf, {});
|
|
41
|
+
if (mesh.topology !== "point-list")
|
|
42
|
+
return undefined;
|
|
43
|
+
const pos = (_a = mesh.attributes.POSITION) === null || _a === void 0 ? void 0 : _a.value;
|
|
44
|
+
if (!pos || (pos.length % 3) !== 0)
|
|
45
|
+
return undefined;
|
|
46
|
+
let colors = (_c = (_b = mesh.attributes.RGB) === null || _b === void 0 ? void 0 : _b.value) !== null && _c !== void 0 ? _c : (_d = mesh.attributes.COLOR_0) === null || _d === void 0 ? void 0 : _d.value;
|
|
47
|
+
if (!colors) {
|
|
48
|
+
const rgba = (_e = mesh.attributes.RGBA) === null || _e === void 0 ? void 0 : _e.value;
|
|
49
|
+
if (rgba && (rgba.length % 4) === 0) {
|
|
50
|
+
// We currently don't support alpha channel for point clouds - strip it.
|
|
51
|
+
colors = new Uint8Array(3 * rgba.length / 4);
|
|
52
|
+
let j = 0;
|
|
53
|
+
for (let i = 0; i < rgba.length; i += 4) {
|
|
54
|
+
colors[j++] = rgba[i];
|
|
55
|
+
colors[j++] = rgba[i + 1];
|
|
56
|
+
colors[j++] = rgba[i + 2];
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
let posRange;
|
|
61
|
+
const bbox = (_f = mesh.header) === null || _f === void 0 ? void 0 : _f.boundingBox;
|
|
62
|
+
if (bbox) {
|
|
63
|
+
posRange = core_geometry_1.Range3d.createXYZXYZ(bbox[0][0], bbox[0][1], bbox[0][2], bbox[1][0], bbox[1][1], bbox[1][2]);
|
|
64
|
+
}
|
|
65
|
+
else {
|
|
66
|
+
posRange = core_geometry_1.Range3d.createNull();
|
|
67
|
+
for (let i = 0; i < pos.length; i += 3)
|
|
68
|
+
posRange.extendXYZ(pos[i], pos[i + 1], pos[i + 2]);
|
|
69
|
+
}
|
|
70
|
+
const params = core_common_1.QParams3d.fromRange(posRange);
|
|
71
|
+
const pt = core_geometry_1.Point3d.createZero();
|
|
72
|
+
const qpt = core_common_1.QPoint3d.create(pt, params);
|
|
73
|
+
const points = new Uint16Array(pos.length);
|
|
74
|
+
for (let i = 0; i < pos.length; i += 3) {
|
|
75
|
+
pt.set(pos[i], pos[i + 1], pos[i + 2]);
|
|
76
|
+
qpt.init(pt, params);
|
|
77
|
+
points[i] = qpt.x;
|
|
78
|
+
points[i + 1] = qpt.y;
|
|
79
|
+
points[i + 2] = qpt.z;
|
|
80
|
+
}
|
|
81
|
+
return { points, params, colors: colors instanceof Uint8Array ? colors : undefined };
|
|
82
|
+
}
|
|
83
|
+
catch (err) {
|
|
84
|
+
core_bentley_1.Logger.logWarning(FrontendLoggerCategory_1.FrontendLoggerCategory.Render, "Failed to decode draco-encoded point cloud");
|
|
85
|
+
core_bentley_1.Logger.logException(FrontendLoggerCategory_1.FrontendLoggerCategory.Render, err);
|
|
86
|
+
return undefined;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
function readPnts(stream, dataOffset, pnts) {
|
|
90
|
+
const offset = pnts.QUANTIZED_VOLUME_OFFSET;
|
|
91
|
+
const scale = pnts.QUANTIZED_VOLUME_SCALE;
|
|
92
|
+
const qpos = pnts.POSITION_QUANTIZED;
|
|
93
|
+
const nPts = pnts.POINTS_LENGTH;
|
|
94
|
+
if (!offset || !scale || !qpos || !nPts)
|
|
95
|
+
return undefined;
|
|
96
|
+
const qOrigin = new core_geometry_1.Point3d(offset[0], offset[1], offset[2]);
|
|
97
|
+
const qScale = new core_geometry_1.Point3d(core_common_1.Quantization.computeScale(scale[0]), core_common_1.Quantization.computeScale(scale[1]), core_common_1.Quantization.computeScale(scale[2]));
|
|
98
|
+
return {
|
|
99
|
+
params: core_common_1.QParams3d.fromOriginAndScale(qOrigin, qScale),
|
|
100
|
+
points: new Uint16Array(stream.arrayBuffer, dataOffset + qpos.byteOffset, 3 * nPts),
|
|
101
|
+
colors: pnts.RGB ? new Uint8Array(stream.arrayBuffer, dataOffset + pnts.RGB.byteOffset, 3 * nPts) : undefined,
|
|
102
|
+
};
|
|
103
|
+
}
|
|
16
104
|
/** Deserialize a point cloud tile and return it as a RenderGraphic.
|
|
17
105
|
* @internal
|
|
18
106
|
*/
|
|
19
|
-
function readPointCloudTileContent(stream, iModel, modelId, _is3d, range, system) {
|
|
20
|
-
var _a;
|
|
107
|
+
async function readPointCloudTileContent(stream, iModel, modelId, _is3d, range, system) {
|
|
21
108
|
const header = new core_common_1.PntsHeader(stream);
|
|
22
109
|
if (!header.isValid)
|
|
23
110
|
return undefined;
|
|
@@ -27,50 +114,35 @@ function readPointCloudTileContent(stream, iModel, modelId, _is3d, range, system
|
|
|
27
114
|
const featureValue = JSON.parse(featureStr);
|
|
28
115
|
if (undefined === featureValue)
|
|
29
116
|
return undefined;
|
|
30
|
-
let
|
|
31
|
-
let colors;
|
|
32
|
-
const dracoPointExtension = featureValue.extensions ? featureValue.extensions["3DTILES_draco_point_compression"] : undefined;
|
|
117
|
+
let props;
|
|
33
118
|
const dataOffset = featureTableJsonOffset + header.featureTableJsonLength;
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
119
|
+
const draco = featureValue.extensions ? featureValue.extensions["3DTILES_draco_point_compression"] : undefined;
|
|
120
|
+
if (draco) {
|
|
121
|
+
try {
|
|
122
|
+
const buf = new Uint8Array(stream.arrayBuffer, dataOffset + draco.byteOffset, draco.byteLength);
|
|
123
|
+
props = await decodeDracoPointCloud(buf);
|
|
124
|
+
}
|
|
125
|
+
catch (_) {
|
|
126
|
+
//
|
|
127
|
+
}
|
|
43
128
|
}
|
|
44
129
|
else {
|
|
45
|
-
|
|
46
|
-
undefined === featureValue.QUANTIZED_VOLUME_OFFSET ||
|
|
47
|
-
undefined === featureValue.QUANTIZED_VOLUME_SCALE ||
|
|
48
|
-
undefined === featureValue.POINTS_LENGTH ||
|
|
49
|
-
undefined === featureValue.POSITION_QUANTIZED) {
|
|
50
|
-
(0, core_bentley_1.assert)(false, "quantized point cloud points not found");
|
|
51
|
-
return undefined;
|
|
52
|
-
}
|
|
53
|
-
const qOrigin = new core_geometry_1.Point3d(featureValue.QUANTIZED_VOLUME_OFFSET[0], featureValue.QUANTIZED_VOLUME_OFFSET[1], featureValue.QUANTIZED_VOLUME_OFFSET[2]);
|
|
54
|
-
const qScale = new core_geometry_1.Point3d(core_common_1.Quantization.computeScale(featureValue.QUANTIZED_VOLUME_SCALE[0]), core_common_1.Quantization.computeScale(featureValue.QUANTIZED_VOLUME_SCALE[1]), core_common_1.Quantization.computeScale(featureValue.QUANTIZED_VOLUME_SCALE[2]));
|
|
55
|
-
qParams = core_common_1.QParams3d.fromOriginAndScale(qOrigin, qScale);
|
|
56
|
-
qPoints = new Uint16Array(stream.arrayBuffer, dataOffset + featureValue.POSITION_QUANTIZED.byteOffset, 3 * featureValue.POINTS_LENGTH);
|
|
57
|
-
if (undefined !== featureValue.RGB)
|
|
58
|
-
colors = new Uint8Array(stream.arrayBuffer, dataOffset + featureValue.RGB.byteOffset, 3 * featureValue.POINTS_LENGTH);
|
|
130
|
+
props = readPnts(stream, dataOffset, featureValue);
|
|
59
131
|
}
|
|
60
|
-
if (!
|
|
132
|
+
if (!props)
|
|
61
133
|
return undefined;
|
|
62
134
|
if (featureValue.RTC_CENTER)
|
|
63
|
-
|
|
64
|
-
if (
|
|
65
|
-
colors = new Uint8Array(3 * featureValue.POINTS_LENGTH);
|
|
66
|
-
colors.fill(0xff, 0, colors.length); // TBD... Default color?
|
|
135
|
+
props.params = core_common_1.QParams3d.fromOriginAndScale(props.params.origin.plus(core_geometry_1.Vector3d.fromJSON(featureValue.RTC_CENTER)), props.params.scale);
|
|
136
|
+
if (!props.colors) {
|
|
137
|
+
props.colors = new Uint8Array(3 * featureValue.POINTS_LENGTH);
|
|
138
|
+
props.colors.fill(0xff, 0, props.colors.length); // TBD... Default color?
|
|
67
139
|
}
|
|
68
140
|
// ###TODO? Do we expect a batch table? not currently handled...
|
|
69
141
|
const featureTable = new core_common_1.FeatureTable(1, modelId, core_common_1.BatchType.Primary);
|
|
70
142
|
const features = new MeshPrimitives_1.Mesh.Features(featureTable);
|
|
71
143
|
features.add(new core_common_1.Feature(modelId), 1);
|
|
72
|
-
const voxelSize =
|
|
73
|
-
let renderGraphic = system.createPointCloud(new PointCloudPrimitive_1.PointCloudArgs(
|
|
144
|
+
const voxelSize = props.params.rangeDiagonal.maxAbs() / 256;
|
|
145
|
+
let renderGraphic = system.createPointCloud(new PointCloudPrimitive_1.PointCloudArgs(props.points, props.params, props.colors, features, voxelSize), iModel);
|
|
74
146
|
renderGraphic = system.createBatch(renderGraphic, core_common_1.PackedFeatureTable.pack(featureTable), range);
|
|
75
147
|
return renderGraphic;
|
|
76
148
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PntsReader.js","sourceRoot":"","sources":["../../../src/tile/PntsReader.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Tiles\r\n */\r\n\r\nimport { assert, ByteStream, Id64String, utf8ToString } from \"@itwin/core-bentley\";\r\nimport { Point3d, Vector3d } from \"@itwin/core-geometry\";\r\nimport { BatchType, ElementAlignedBox3d, Feature, FeatureTable, PackedFeatureTable, PntsHeader, QParams3d, Quantization } from \"@itwin/core-common\";\r\nimport { IModelConnection } from \"../IModelConnection\";\r\nimport { Mesh } from \"../render/primitives/mesh/MeshPrimitives\";\r\nimport { PointCloudArgs } from \"../render/primitives/PointCloudPrimitive\";\r\nimport { RenderGraphic } from \"../render/RenderGraphic\";\r\nimport { RenderSystem } from \"../render/RenderSystem\";\r\n\r\n/** Deserialize a point cloud tile and return it as a RenderGraphic.\r\n * @internal\r\n */\r\nexport function readPointCloudTileContent(stream: ByteStream, iModel: IModelConnection, modelId: Id64String, _is3d: boolean, range: ElementAlignedBox3d, system: RenderSystem): RenderGraphic | undefined {\r\n const header = new PntsHeader(stream);\r\n\r\n if (!header.isValid)\r\n return undefined;\r\n\r\n const featureTableJsonOffset = stream.curPos;\r\n const featureStrData = stream.nextBytes(header.featureTableJsonLength);\r\n const featureStr = utf8ToString(featureStrData);\r\n const featureValue = JSON.parse(featureStr as string);\r\n\r\n if (undefined === featureValue)\r\n return undefined;\r\n\r\n let qParams, qPoints;\r\n let colors: Uint8Array | undefined;\r\n const dracoPointExtension = featureValue.extensions ? featureValue.extensions[\"3DTILES_draco_point_compression\"] : undefined;\r\n const dataOffset = featureTableJsonOffset + header.featureTableJsonLength;\r\n if (dracoPointExtension && dracoPointExtension.byteLength !== undefined && dracoPointExtension.byteOffset !== undefined && dracoPointExtension.properties?.POSITION !== undefined) {\r\n return undefined; // Defer Draco decompression until web workers implementation.\r\n /*\r\n const bufferData = new Uint8Array(stream.arrayBuffer, dataOffset + dracoPointExtension.byteOffset, dracoPointExtension.byteLength);\r\n const decoded = DracoDecoder.readDracoPointCloud(bufferData, dracoPointExtension.properties?.POSITION, dracoPointExtension.properties?.RGB);\r\n if (decoded) {\r\n qPoints = decoded.qPoints;\r\n qParams = decoded.qParams;\r\n colors = decoded.colors; */\r\n } else {\r\n if (undefined === featureValue.POSITION_QUANTIZED ||\r\n undefined === featureValue.QUANTIZED_VOLUME_OFFSET ||\r\n undefined === featureValue.QUANTIZED_VOLUME_SCALE ||\r\n undefined === featureValue.POINTS_LENGTH ||\r\n undefined === featureValue.POSITION_QUANTIZED) {\r\n assert(false, \"quantized point cloud points not found\");\r\n return undefined;\r\n }\r\n\r\n const qOrigin = new Point3d(featureValue.QUANTIZED_VOLUME_OFFSET[0], featureValue.QUANTIZED_VOLUME_OFFSET[1], featureValue.QUANTIZED_VOLUME_OFFSET[2]);\r\n const qScale = new Point3d(Quantization.computeScale(featureValue.QUANTIZED_VOLUME_SCALE[0]), Quantization.computeScale(featureValue.QUANTIZED_VOLUME_SCALE[1]), Quantization.computeScale(featureValue.QUANTIZED_VOLUME_SCALE[2]));\r\n qParams = QParams3d.fromOriginAndScale(qOrigin, qScale);\r\n qPoints = new Uint16Array(stream.arrayBuffer, dataOffset + featureValue.POSITION_QUANTIZED.byteOffset, 3 * featureValue.POINTS_LENGTH);\r\n if (undefined !== featureValue.RGB)\r\n colors = new Uint8Array(stream.arrayBuffer, dataOffset + featureValue.RGB.byteOffset, 3 * featureValue.POINTS_LENGTH);\r\n }\r\n if (!qPoints || !qParams)\r\n return undefined;\r\n\r\n if (featureValue.RTC_CENTER)\r\n qParams = QParams3d.fromOriginAndScale(qParams.origin.plus(Vector3d.fromJSON(featureValue.RTC_CENTER)), qParams.scale);\r\n\r\n if (undefined === colors) {\r\n colors = new Uint8Array(3 * featureValue.POINTS_LENGTH);\r\n colors.fill(0xff, 0, colors.length); // TBD... Default color?\r\n }\r\n\r\n // ###TODO? Do we expect a batch table? not currently handled...\r\n const featureTable = new FeatureTable(1, modelId, BatchType.Primary);\r\n const features = new Mesh.Features(featureTable);\r\n features.add(new Feature(modelId), 1);\r\n const voxelSize = qParams.rangeDiagonal.maxAbs() / 256;\r\n\r\n let renderGraphic = system.createPointCloud(new PointCloudArgs(qPoints, qParams, colors, features, voxelSize), iModel);\r\n renderGraphic = system.createBatch(renderGraphic!, PackedFeatureTable.pack(featureTable), range);\r\n return renderGraphic;\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"PntsReader.js","sourceRoot":"","sources":["../../../src/tile/PntsReader.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Tiles\r\n */\r\n\r\nimport { ByteStream, Id64String, Logger, utf8ToString } from \"@itwin/core-bentley\";\r\nimport { Point3d, Range3d, Vector3d } from \"@itwin/core-geometry\";\r\nimport { BatchType, ElementAlignedBox3d, Feature, FeatureTable, PackedFeatureTable, PntsHeader, QParams3d, QPoint3d, Quantization } from \"@itwin/core-common\";\r\nimport { FrontendLoggerCategory } from \"../FrontendLoggerCategory\";\r\nimport { IModelConnection } from \"../IModelConnection\";\r\nimport { Mesh } from \"../render/primitives/mesh/MeshPrimitives\";\r\nimport { PointCloudArgs } from \"../render/primitives/PointCloudPrimitive\";\r\nimport { RenderGraphic } from \"../render/RenderGraphic\";\r\nimport { RenderSystem } from \"../render/RenderSystem\";\r\n\r\n/** Schema for the [3DTILES_draco_point_compression](https://github.com/CesiumGS/3d-tiles/tree/main/extensions/3DTILES_draco_point_compression) extension. */\r\ninterface DracoPointCloud {\r\n byteLength: number;\r\n byteOffset: number;\r\n /** Each specifies the Id of a compressed attribute. */\r\n properties: {\r\n POSITION?: number; // eslint-disable-line @typescript-eslint/naming-convention\r\n RGB?: number; // eslint-disable-line @typescript-eslint/naming-convention\r\n RGBA?: number; // eslint-disable-line @typescript-eslint/naming-convention\r\n NORMAL?: number; // eslint-disable-line @typescript-eslint/naming-convention\r\n BATCH_ID?: number; // eslint-disable-line @typescript-eslint/naming-convention\r\n /** This is not in the spec but is present in sample data in Cesium's git repository. */\r\n COLOR_0?: number; // eslint-disable-line @typescript-eslint/naming-convention\r\n };\r\n}\r\n\r\ninterface PointCloudProps {\r\n params: QParams3d;\r\n points: Uint16Array;\r\n colors?: Uint8Array;\r\n}\r\n\r\nasync function decodeDracoPointCloud(buf: Uint8Array): Promise<PointCloudProps | undefined> {\r\n try {\r\n const dracoLoader = (await import(\"@loaders.gl/draco\")).DracoLoader;\r\n const mesh = await dracoLoader.parse(buf, { });\r\n if (mesh.topology !== \"point-list\")\r\n return undefined;\r\n\r\n const pos = mesh.attributes.POSITION?.value;\r\n if (!pos || (pos.length % 3) !== 0)\r\n return undefined;\r\n\r\n let colors = mesh.attributes.RGB?.value ?? mesh.attributes.COLOR_0?.value;\r\n if (!colors) {\r\n const rgba = mesh.attributes.RGBA?.value;\r\n if (rgba && (rgba.length % 4) === 0) {\r\n // We currently don't support alpha channel for point clouds - strip it.\r\n colors = new Uint8Array(3 * rgba.length / 4);\r\n let j = 0;\r\n for (let i = 0; i < rgba.length; i += 4) {\r\n colors[j++] = rgba[i];\r\n colors[j++] = rgba[i + 1];\r\n colors[j++] = rgba[i + 2];\r\n }\r\n }\r\n }\r\n\r\n let posRange: Range3d;\r\n const bbox = mesh.header?.boundingBox;\r\n if (bbox) {\r\n posRange = Range3d.createXYZXYZ(bbox[0][0], bbox[0][1], bbox[0][2], bbox[1][0], bbox[1][1], bbox[1][2]);\r\n } else {\r\n posRange = Range3d.createNull();\r\n for (let i = 0; i < pos.length; i += 3)\r\n posRange.extendXYZ(pos[i], pos[i + 1], pos[i + 2]);\r\n }\r\n\r\n const params = QParams3d.fromRange(posRange);\r\n const pt = Point3d.createZero();\r\n const qpt = QPoint3d.create(pt, params);\r\n const points = new Uint16Array(pos.length);\r\n for (let i = 0; i < pos.length; i += 3) {\r\n pt.set(pos[i], pos[i + 1], pos[i + 2]);\r\n qpt.init(pt, params);\r\n points[i] = qpt.x;\r\n points[i + 1] = qpt.y;\r\n points[i + 2] = qpt.z;\r\n }\r\n\r\n return { points, params, colors: colors instanceof Uint8Array ? colors : undefined };\r\n } catch (err) {\r\n Logger.logWarning(FrontendLoggerCategory.Render, \"Failed to decode draco-encoded point cloud\");\r\n Logger.logException(FrontendLoggerCategory.Render, err);\r\n return undefined;\r\n }\r\n}\r\n\r\ninterface PntsProps {\r\n POSITION_QUANTIZED?: { byteOffset: number }; // eslint-disable-line @typescript-eslint/naming-convention\r\n QUANTIZED_VOLUME_OFFSET?: number[]; // eslint-disable-line @typescript-eslint/naming-convention\r\n QUANTIZED_VOLUME_SCALE?: number[]; // eslint-disable-line @typescript-eslint/naming-convention\r\n POINTS_LENGTH?: number; // eslint-disable-line @typescript-eslint/naming-convention\r\n RGB?: { byteOffset: number }; // eslint-disable-line @typescript-eslint/naming-convention\r\n}\r\n\r\nfunction readPnts(stream: ByteStream, dataOffset: number, pnts: PntsProps): PointCloudProps | undefined {\r\n const offset = pnts.QUANTIZED_VOLUME_OFFSET;\r\n const scale = pnts.QUANTIZED_VOLUME_SCALE;\r\n const qpos = pnts.POSITION_QUANTIZED;\r\n const nPts = pnts.POINTS_LENGTH;\r\n if (!offset || !scale || !qpos || !nPts)\r\n return undefined;\r\n\r\n const qOrigin = new Point3d(offset[0], offset[1], offset[2]);\r\n const qScale = new Point3d(Quantization.computeScale(scale[0]), Quantization.computeScale(scale[1]), Quantization.computeScale(scale[2]));\r\n\r\n return {\r\n params: QParams3d.fromOriginAndScale(qOrigin, qScale),\r\n points: new Uint16Array(stream.arrayBuffer, dataOffset + qpos.byteOffset, 3 * nPts),\r\n colors: pnts.RGB ? new Uint8Array(stream.arrayBuffer, dataOffset + pnts.RGB.byteOffset, 3 * nPts) : undefined,\r\n };\r\n}\r\n\r\n/** Deserialize a point cloud tile and return it as a RenderGraphic.\r\n * @internal\r\n */\r\nexport async function readPointCloudTileContent(stream: ByteStream, iModel: IModelConnection, modelId: Id64String, _is3d: boolean, range: ElementAlignedBox3d, system: RenderSystem): Promise<RenderGraphic | undefined> {\r\n const header = new PntsHeader(stream);\r\n if (!header.isValid)\r\n return undefined;\r\n\r\n const featureTableJsonOffset = stream.curPos;\r\n const featureStrData = stream.nextBytes(header.featureTableJsonLength);\r\n const featureStr = utf8ToString(featureStrData);\r\n const featureValue = JSON.parse(featureStr as string);\r\n\r\n if (undefined === featureValue)\r\n return undefined;\r\n\r\n let props: PointCloudProps | undefined;\r\n const dataOffset = featureTableJsonOffset + header.featureTableJsonLength;\r\n const draco: DracoPointCloud | undefined = featureValue.extensions ? featureValue.extensions[\"3DTILES_draco_point_compression\"] : undefined;\r\n if (draco) {\r\n try {\r\n const buf = new Uint8Array(stream.arrayBuffer, dataOffset + draco.byteOffset, draco.byteLength);\r\n props = await decodeDracoPointCloud(buf);\r\n } catch (_) {\r\n //\r\n }\r\n } else {\r\n props = readPnts(stream, dataOffset, featureValue);\r\n }\r\n\r\n if (!props)\r\n return undefined;\r\n\r\n if (featureValue.RTC_CENTER)\r\n props.params = QParams3d.fromOriginAndScale(props.params.origin.plus(Vector3d.fromJSON(featureValue.RTC_CENTER)), props.params.scale);\r\n\r\n if (!props.colors) {\r\n props.colors = new Uint8Array(3 * featureValue.POINTS_LENGTH);\r\n props.colors.fill(0xff, 0, props.colors.length); // TBD... Default color?\r\n }\r\n\r\n // ###TODO? Do we expect a batch table? not currently handled...\r\n const featureTable = new FeatureTable(1, modelId, BatchType.Primary);\r\n const features = new Mesh.Features(featureTable);\r\n features.add(new Feature(modelId), 1);\r\n const voxelSize = props.params.rangeDiagonal.maxAbs() / 256;\r\n\r\n let renderGraphic = system.createPointCloud(new PointCloudArgs(props.points, props.params, props.colors, features, voxelSize), iModel);\r\n renderGraphic = system.createBatch(renderGraphic!, PackedFeatureTable.pack(featureTable), range);\r\n return renderGraphic;\r\n}\r\n"]}
|
|
@@ -71,7 +71,7 @@ class RealityTileLoader {
|
|
|
71
71
|
switch (format) {
|
|
72
72
|
case core_common_1.TileFormat.Pnts:
|
|
73
73
|
this._containsPointClouds = true;
|
|
74
|
-
let graphic = (0, internal_1.readPointCloudTileContent)(streamBuffer, iModel, modelId, is3d, tile.contentRange, system);
|
|
74
|
+
let graphic = await (0, internal_1.readPointCloudTileContent)(streamBuffer, iModel, modelId, is3d, tile.contentRange, system);
|
|
75
75
|
if (graphic && tile.transformToRoot && !tile.transformToRoot.isIdentity) {
|
|
76
76
|
const transformBranch = new GraphicBranch_1.GraphicBranch(true);
|
|
77
77
|
transformBranch.add(graphic);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RealityTileLoader.js","sourceRoot":"","sources":["../../../src/tile/RealityTileLoader.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Tiles\r\n */\r\n\r\nimport { assert, ByteStream } from \"@itwin/core-bentley\";\r\nimport { Point3d, Transform } from \"@itwin/core-geometry\";\r\nimport { BatchType, CompositeTileHeader, TileFormat, ViewFlagOverrides } from \"@itwin/core-common\";\r\nimport { IModelApp } from \"../IModelApp\";\r\nimport { GraphicBranch } from \"../render/GraphicBranch\";\r\nimport { RenderSystem } from \"../render/RenderSystem\";\r\nimport { Viewport } from \"../Viewport\";\r\nimport {\r\n B3dmReader, BatchedTileIdMap, createDefaultViewFlagOverrides, GltfReader, I3dmReader, readPointCloudTileContent, RealityTile, RealityTileContent, Tile, TileContent,\n TileDrawArgs, TileLoadPriority, TileRequest, TileRequestChannel, TileUser,\n} from \"./internal\";\r\n\r\nconst defaultViewFlagOverrides = createDefaultViewFlagOverrides({});\r\n\r\nconst scratchTileCenterWorld = new Point3d();\r\nconst scratchTileCenterView = new Point3d();\r\n\r\n/** Serves as a \"handler\" for a specific type of [[TileTree]]. Its primary responsibilities involve loading tile content.\r\n * @internal\r\n */\r\nexport abstract class RealityTileLoader {\r\n private _containsPointClouds = false;\r\n public readonly preloadRealityParentDepth: number;\r\n public readonly preloadRealityParentSkip: number;\r\n\r\n public constructor(private _produceGeometry?: boolean) {\r\n this.preloadRealityParentDepth = IModelApp.tileAdmin.contextPreloadParentDepth;\r\n this.preloadRealityParentSkip = IModelApp.tileAdmin.contextPreloadParentSkip;\r\n }\r\n\r\n public computeTilePriority(tile: Tile, viewports: Iterable<Viewport>, _users: Iterable<TileUser>): number {\r\n // ###TODO: Handle case where tile tree reference(s) have a transform different from tree's (background map with ground bias).\r\n return RealityTileLoader.computeTileClosestToEyePriority(tile, viewports, tile.tree.iModelTransform);\r\n }\r\n\r\n public abstract loadChildren(tile: RealityTile): Promise<Tile[] | undefined>;\r\n public abstract getRequestChannel(tile: Tile): TileRequestChannel;\r\n public abstract requestTileContent(tile: Tile, isCanceled: () => boolean): Promise<TileRequest.Response>;\r\n public get wantDeduplicatedVertices(): boolean { return false; }\r\n public abstract get maxDepth(): number;\r\n public abstract get minDepth(): number;\r\n public abstract get priority(): TileLoadPriority;\r\n protected get _batchType(): BatchType { return BatchType.Primary; }\r\n protected get _loadEdges(): boolean { return true; }\r\n public getBatchIdMap(): BatchedTileIdMap | undefined { return undefined; }\r\n public get isContentUnbounded(): boolean { return false; }\r\n public get containsPointClouds(): boolean { return this._containsPointClouds; }\r\n public get parentsAndChildrenExclusive(): boolean { return true; }\r\n public forceTileLoad(_tile: Tile): boolean { return false; }\r\n\r\n public processSelectedTiles(selected: Tile[], _args: TileDrawArgs): Tile[] { return selected; }\r\n\r\n // NB: The isCanceled arg is chiefly for tests...in usual case it just returns false if the tile is no longer in 'loading' state.\r\n public async loadTileContent(tile: Tile, data: TileRequest.ResponseData, system: RenderSystem, isCanceled?: () => boolean): Promise<RealityTileContent> {\r\n assert(data instanceof Uint8Array);\r\n const blob = data;\r\n const streamBuffer = ByteStream.fromUint8Array(blob);\r\n const realityTile = tile as RealityTile;\r\n return this._produceGeometry ? this.loadGeometryFromStream(realityTile, streamBuffer, system) : this.loadGraphicsFromStream(realityTile, streamBuffer, system, isCanceled);\r\n }\r\n\r\n private _getFormat(streamBuffer: ByteStream) {\r\n const position = streamBuffer.curPos;\r\n const format = streamBuffer.nextUint32;\r\n streamBuffer.curPos = position;\r\n return format;\r\n\r\n }\r\n\r\n public async loadGeometryFromStream(tile: RealityTile, streamBuffer: ByteStream, system: RenderSystem): Promise<RealityTileContent> {\r\n const format = this._getFormat(streamBuffer);\r\n if (format !== TileFormat.B3dm)\r\n return {};\r\n\r\n const { is3d, yAxisUp, iModel, modelId } = tile.realityRoot;\r\n const reader = B3dmReader.create(streamBuffer, iModel, modelId, is3d, tile.contentRange, system, yAxisUp, tile.isLeaf, tile.center, tile.transformToRoot, undefined, this.getBatchIdMap());\r\n return { geometry: reader?.readGltfAndCreateGeometry(tile.tree.iModelTransform) };\r\n }\r\n\r\n private async loadGraphicsFromStream(tile: RealityTile, streamBuffer: ByteStream, system: RenderSystem, isCanceled?: () => boolean): Promise<TileContent> {\r\n const format = this._getFormat(streamBuffer);\r\n if (undefined === isCanceled)\r\n isCanceled = () => !tile.isLoading;\r\n\r\n const { is3d, yAxisUp, iModel, modelId } = tile.realityRoot;\r\n let reader: GltfReader | undefined;\r\n switch (format) {\r\n case TileFormat.Pnts:\r\n this._containsPointClouds = true;\r\n let graphic = readPointCloudTileContent(streamBuffer, iModel, modelId, is3d, tile.contentRange, system);\r\n if (graphic && tile.transformToRoot && !tile.transformToRoot.isIdentity) {\r\n const transformBranch = new GraphicBranch(true);\r\n transformBranch.add(graphic);\r\n graphic = system.createBranch(transformBranch, tile.transformToRoot);\r\n }\r\n\r\n return { graphic };\r\n\r\n case TileFormat.B3dm:\r\n reader = B3dmReader.create(streamBuffer, iModel, modelId, is3d, tile.contentRange, system, yAxisUp, tile.isLeaf, tile.center, tile.transformToRoot, isCanceled, this.getBatchIdMap(), this.wantDeduplicatedVertices);\r\n break;\r\n case TileFormat.I3dm:\r\n reader = I3dmReader.create(streamBuffer, iModel, modelId, is3d, tile.contentRange, system, yAxisUp, tile.isLeaf, isCanceled, undefined, this.wantDeduplicatedVertices);\r\n break;\r\n case TileFormat.Cmpt:\r\n const header = new CompositeTileHeader(streamBuffer);\r\n if (!header.isValid) return {};\r\n const branch = new GraphicBranch(true);\r\n for (let i = 0; i < header.tileCount; i++) {\r\n const tilePosition = streamBuffer.curPos;\r\n streamBuffer.advance(8); // Skip magic and version.\r\n const tileBytes = streamBuffer.nextUint32;\r\n streamBuffer.curPos = tilePosition;\r\n const result = await this.loadGraphicsFromStream(tile, streamBuffer, system, isCanceled);\r\n if (result.graphic)\r\n branch.add(result.graphic);\r\n streamBuffer.curPos = tilePosition + tileBytes;\r\n }\r\n return { graphic: branch.isEmpty ? undefined : system.createBranch(branch, Transform.createIdentity()), isLeaf: tile.isLeaf };\r\n\r\n default:\r\n assert(false, `unknown tile format ${format}`);\r\n break;\r\n }\r\n\r\n let content: TileContent = {};\r\n if (undefined !== reader) {\r\n try {\r\n content = await reader.read();\r\n } catch (_err) {\r\n // Failure to load should prevent us from trying to load children\r\n content.isLeaf = true;\r\n }\r\n }\r\n\r\n return content;\r\n }\r\n\r\n public get viewFlagOverrides(): ViewFlagOverrides { return defaultViewFlagOverrides; }\r\n\r\n public static computeTileClosestToEyePriority(tile: Tile, viewports: Iterable<Viewport>, location: Transform): number {\r\n // Prioritize tiles closer to eye.\r\n // NB: In NPC coords, 0 = far plane, 1 = near plane.\r\n const center = location.multiplyPoint3d(tile.center, scratchTileCenterWorld);\r\n let minDistance = 1.0;\r\n for (const viewport of viewports) {\r\n const npc = viewport.worldToNpc(center, scratchTileCenterView);\r\n const distance = 1.0 - npc.z;\r\n minDistance = Math.min(distance, minDistance);\r\n }\r\n\r\n return minDistance;\r\n }\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"RealityTileLoader.js","sourceRoot":"","sources":["../../../src/tile/RealityTileLoader.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH,sDAAyD;AACzD,wDAA0D;AAC1D,oDAAmG;AACnG,4CAAyC;AACzC,2DAAwD;AAGxD,yCAGoB;AAEpB,MAAM,wBAAwB,GAAG,IAAA,yCAA8B,EAAC,EAAE,CAAC,CAAC;AAEpE,MAAM,sBAAsB,GAAG,IAAI,uBAAO,EAAE,CAAC;AAC7C,MAAM,qBAAqB,GAAG,IAAI,uBAAO,EAAE,CAAC;AAE5C;;GAEG;AACH,MAAsB,iBAAiB;IAKrC,YAA2B,gBAA0B;QAA1B,qBAAgB,GAAhB,gBAAgB,CAAU;QAJ7C,yBAAoB,GAAG,KAAK,CAAC;QAKnC,IAAI,CAAC,yBAAyB,GAAG,qBAAS,CAAC,SAAS,CAAC,yBAAyB,CAAC;QAC/E,IAAI,CAAC,wBAAwB,GAAG,qBAAS,CAAC,SAAS,CAAC,wBAAwB,CAAC;IAC/E,CAAC;IAEM,mBAAmB,CAAC,IAAU,EAAE,SAA6B,EAAE,MAA0B;QAC9F,8HAA8H;QAC9H,OAAO,iBAAiB,CAAC,+BAA+B,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IACvG,CAAC;IAKD,IAAW,wBAAwB,KAAc,OAAO,KAAK,CAAC,CAAC,CAAC;IAIhE,IAAc,UAAU,KAAgB,OAAO,uBAAS,CAAC,OAAO,CAAC,CAAC,CAAC;IACnE,IAAc,UAAU,KAAc,OAAO,IAAI,CAAC,CAAC,CAAC;IAC7C,aAAa,KAAmC,OAAO,SAAS,CAAC,CAAC,CAAC;IAC1E,IAAW,kBAAkB,KAAc,OAAO,KAAK,CAAC,CAAC,CAAC;IAC1D,IAAW,mBAAmB,KAAc,OAAO,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC;IAC/E,IAAW,2BAA2B,KAAc,OAAO,IAAI,CAAC,CAAC,CAAC;IAC3D,aAAa,CAAC,KAAW,IAAa,OAAO,KAAK,CAAC,CAAC,CAAC;IAErD,oBAAoB,CAAC,QAAgB,EAAE,KAAmB,IAAY,OAAO,QAAQ,CAAC,CAAC,CAAC;IAE/F,iIAAiI;IAC1H,KAAK,CAAC,eAAe,CAAC,IAAU,EAAE,IAA8B,EAAE,MAAoB,EAAE,UAA0B;QACvH,IAAA,qBAAM,EAAC,IAAI,YAAY,UAAU,CAAC,CAAC;QACnC,MAAM,IAAI,GAAG,IAAI,CAAC;QAClB,MAAM,YAAY,GAAG,yBAAU,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QACrD,MAAM,WAAW,GAAG,IAAmB,CAAC;QACxC,OAAO,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,WAAW,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,WAAW,EAAE,YAAY,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;IAC7K,CAAC;IAEO,UAAU,CAAC,YAAwB;QACzC,MAAM,QAAQ,GAAG,YAAY,CAAC,MAAM,CAAC;QACrC,MAAM,MAAM,GAAG,YAAY,CAAC,UAAU,CAAC;QACvC,YAAY,CAAC,MAAM,GAAG,QAAQ,CAAC;QAC/B,OAAO,MAAM,CAAC;IAEhB,CAAC;IAEM,KAAK,CAAC,sBAAsB,CAAC,IAAiB,EAAG,YAAwB,EAAE,MAAoB;QACpG,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;QAC7C,IAAI,MAAM,KAAK,wBAAU,CAAC,IAAI;YAC5B,OAAO,EAAE,CAAC;QAEZ,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC;QAC5D,MAAM,MAAM,GAAG,qBAAU,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,eAAe,EAAE,SAAS,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;QAC3L,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,yBAAyB,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC;IACpF,CAAC;IAEO,KAAK,CAAC,sBAAsB,CAAC,IAAiB,EAAE,YAAwB,EAAE,MAAoB,EAAE,UAA0B;QAChI,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;QAC7C,IAAI,SAAS,KAAK,UAAU;YAC1B,UAAU,GAAG,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;QAErC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC;QAC5D,IAAI,MAA8B,CAAC;QACnC,QAAQ,MAAM,EAAE;YACd,KAAK,wBAAU,CAAC,IAAI;gBAClB,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;gBACjC,IAAI,OAAO,GAAG,MAAM,IAAA,oCAAyB,EAAC,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;gBAC9G,IAAI,OAAO,IAAI,IAAI,CAAC,eAAe,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,UAAU,EAAE;oBACvE,MAAM,eAAe,GAAG,IAAI,6BAAa,CAAC,IAAI,CAAC,CAAC;oBAChD,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;oBAC7B,OAAO,GAAG,MAAM,CAAC,YAAY,CAAC,eAAe,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;iBACtE;gBAED,OAAO,EAAE,OAAO,EAAE,CAAC;YAErB,KAAK,wBAAU,CAAC,IAAI;gBAClB,MAAM,GAAG,qBAAU,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,eAAe,EAAE,UAAU,EAAE,IAAI,CAAC,aAAa,EAAE,EAAE,IAAI,CAAC,wBAAwB,CAAC,CAAC;gBACrN,MAAM;YACR,KAAK,wBAAU,CAAC,IAAI;gBAClB,MAAM,GAAG,qBAAU,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,IAAI,CAAC,wBAAwB,CAAC,CAAC;gBACvK,MAAM;YACR,KAAK,wBAAU,CAAC,IAAI;gBAClB,MAAM,MAAM,GAAG,IAAI,iCAAmB,CAAC,YAAY,CAAC,CAAC;gBACrD,IAAI,CAAC,MAAM,CAAC,OAAO;oBAAE,OAAO,EAAE,CAAC;gBAC/B,MAAM,MAAM,GAAG,IAAI,6BAAa,CAAC,IAAI,CAAC,CAAC;gBACvC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE;oBACzC,MAAM,YAAY,GAAG,YAAY,CAAC,MAAM,CAAC;oBACzC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAI,0BAA0B;oBACtD,MAAM,SAAS,GAAG,YAAY,CAAC,UAAU,CAAC;oBAC1C,YAAY,CAAC,MAAM,GAAG,YAAY,CAAC;oBACnC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;oBACzF,IAAI,MAAM,CAAC,OAAO;wBAChB,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;oBAC7B,YAAY,CAAC,MAAM,GAAG,YAAY,GAAG,SAAS,CAAC;iBAChD;gBACD,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,yBAAS,CAAC,cAAc,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;YAEhI;gBACE,IAAA,qBAAM,EAAC,KAAK,EAAE,uBAAuB,MAAM,EAAE,CAAC,CAAC;gBAC/C,MAAM;SACT;QAED,IAAI,OAAO,GAAgB,EAAE,CAAC;QAC9B,IAAI,SAAS,KAAK,MAAM,EAAE;YACxB,IAAI;gBACF,OAAO,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;aAC/B;YAAC,OAAO,IAAI,EAAE;gBACb,iEAAiE;gBACjE,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;aACvB;SACF;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,IAAW,iBAAiB,KAAwB,OAAO,wBAAwB,CAAC,CAAC,CAAC;IAE/E,MAAM,CAAC,+BAA+B,CAAC,IAAU,EAAE,SAA6B,EAAE,QAAmB;QAC1G,kCAAkC;QAClC,oDAAoD;QACpD,MAAM,MAAM,GAAG,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAC;QAC7E,IAAI,WAAW,GAAG,GAAG,CAAC;QACtB,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE;YAChC,MAAM,GAAG,GAAG,QAAQ,CAAC,UAAU,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;YAC/D,MAAM,QAAQ,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC;YAC7B,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;SAC/C;QAED,OAAO,WAAW,CAAC;IACrB,CAAC;CACF;AArID,8CAqIC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Tiles\r\n */\r\n\r\nimport { assert, ByteStream } from \"@itwin/core-bentley\";\r\nimport { Point3d, Transform } from \"@itwin/core-geometry\";\r\nimport { BatchType, CompositeTileHeader, TileFormat, ViewFlagOverrides } from \"@itwin/core-common\";\r\nimport { IModelApp } from \"../IModelApp\";\r\nimport { GraphicBranch } from \"../render/GraphicBranch\";\r\nimport { RenderSystem } from \"../render/RenderSystem\";\r\nimport { Viewport } from \"../Viewport\";\r\nimport {\r\n B3dmReader, BatchedTileIdMap, createDefaultViewFlagOverrides, GltfReader, I3dmReader, readPointCloudTileContent, RealityTile, RealityTileContent, Tile, TileContent,\r\n TileDrawArgs, TileLoadPriority, TileRequest, TileRequestChannel, TileUser,\r\n} from \"./internal\";\r\n\r\nconst defaultViewFlagOverrides = createDefaultViewFlagOverrides({});\r\n\r\nconst scratchTileCenterWorld = new Point3d();\r\nconst scratchTileCenterView = new Point3d();\r\n\r\n/** Serves as a \"handler\" for a specific type of [[TileTree]]. Its primary responsibilities involve loading tile content.\r\n * @internal\r\n */\r\nexport abstract class RealityTileLoader {\r\n private _containsPointClouds = false;\r\n public readonly preloadRealityParentDepth: number;\r\n public readonly preloadRealityParentSkip: number;\r\n\r\n public constructor(private _produceGeometry?: boolean) {\r\n this.preloadRealityParentDepth = IModelApp.tileAdmin.contextPreloadParentDepth;\r\n this.preloadRealityParentSkip = IModelApp.tileAdmin.contextPreloadParentSkip;\r\n }\r\n\r\n public computeTilePriority(tile: Tile, viewports: Iterable<Viewport>, _users: Iterable<TileUser>): number {\r\n // ###TODO: Handle case where tile tree reference(s) have a transform different from tree's (background map with ground bias).\r\n return RealityTileLoader.computeTileClosestToEyePriority(tile, viewports, tile.tree.iModelTransform);\r\n }\r\n\r\n public abstract loadChildren(tile: RealityTile): Promise<Tile[] | undefined>;\r\n public abstract getRequestChannel(tile: Tile): TileRequestChannel;\r\n public abstract requestTileContent(tile: Tile, isCanceled: () => boolean): Promise<TileRequest.Response>;\r\n public get wantDeduplicatedVertices(): boolean { return false; }\r\n public abstract get maxDepth(): number;\r\n public abstract get minDepth(): number;\r\n public abstract get priority(): TileLoadPriority;\r\n protected get _batchType(): BatchType { return BatchType.Primary; }\r\n protected get _loadEdges(): boolean { return true; }\r\n public getBatchIdMap(): BatchedTileIdMap | undefined { return undefined; }\r\n public get isContentUnbounded(): boolean { return false; }\r\n public get containsPointClouds(): boolean { return this._containsPointClouds; }\r\n public get parentsAndChildrenExclusive(): boolean { return true; }\r\n public forceTileLoad(_tile: Tile): boolean { return false; }\r\n\r\n public processSelectedTiles(selected: Tile[], _args: TileDrawArgs): Tile[] { return selected; }\r\n\r\n // NB: The isCanceled arg is chiefly for tests...in usual case it just returns false if the tile is no longer in 'loading' state.\r\n public async loadTileContent(tile: Tile, data: TileRequest.ResponseData, system: RenderSystem, isCanceled?: () => boolean): Promise<RealityTileContent> {\r\n assert(data instanceof Uint8Array);\r\n const blob = data;\r\n const streamBuffer = ByteStream.fromUint8Array(blob);\r\n const realityTile = tile as RealityTile;\r\n return this._produceGeometry ? this.loadGeometryFromStream(realityTile, streamBuffer, system) : this.loadGraphicsFromStream(realityTile, streamBuffer, system, isCanceled);\r\n }\r\n\r\n private _getFormat(streamBuffer: ByteStream) {\r\n const position = streamBuffer.curPos;\r\n const format = streamBuffer.nextUint32;\r\n streamBuffer.curPos = position;\r\n return format;\r\n\r\n }\r\n\r\n public async loadGeometryFromStream(tile: RealityTile, streamBuffer: ByteStream, system: RenderSystem): Promise<RealityTileContent> {\r\n const format = this._getFormat(streamBuffer);\r\n if (format !== TileFormat.B3dm)\r\n return {};\r\n\r\n const { is3d, yAxisUp, iModel, modelId } = tile.realityRoot;\r\n const reader = B3dmReader.create(streamBuffer, iModel, modelId, is3d, tile.contentRange, system, yAxisUp, tile.isLeaf, tile.center, tile.transformToRoot, undefined, this.getBatchIdMap());\r\n return { geometry: reader?.readGltfAndCreateGeometry(tile.tree.iModelTransform) };\r\n }\r\n\r\n private async loadGraphicsFromStream(tile: RealityTile, streamBuffer: ByteStream, system: RenderSystem, isCanceled?: () => boolean): Promise<TileContent> {\r\n const format = this._getFormat(streamBuffer);\r\n if (undefined === isCanceled)\r\n isCanceled = () => !tile.isLoading;\r\n\r\n const { is3d, yAxisUp, iModel, modelId } = tile.realityRoot;\r\n let reader: GltfReader | undefined;\r\n switch (format) {\r\n case TileFormat.Pnts:\r\n this._containsPointClouds = true;\r\n let graphic = await readPointCloudTileContent(streamBuffer, iModel, modelId, is3d, tile.contentRange, system);\r\n if (graphic && tile.transformToRoot && !tile.transformToRoot.isIdentity) {\r\n const transformBranch = new GraphicBranch(true);\r\n transformBranch.add(graphic);\r\n graphic = system.createBranch(transformBranch, tile.transformToRoot);\r\n }\r\n\r\n return { graphic };\r\n\r\n case TileFormat.B3dm:\r\n reader = B3dmReader.create(streamBuffer, iModel, modelId, is3d, tile.contentRange, system, yAxisUp, tile.isLeaf, tile.center, tile.transformToRoot, isCanceled, this.getBatchIdMap(), this.wantDeduplicatedVertices);\r\n break;\r\n case TileFormat.I3dm:\r\n reader = I3dmReader.create(streamBuffer, iModel, modelId, is3d, tile.contentRange, system, yAxisUp, tile.isLeaf, isCanceled, undefined, this.wantDeduplicatedVertices);\r\n break;\r\n case TileFormat.Cmpt:\r\n const header = new CompositeTileHeader(streamBuffer);\r\n if (!header.isValid) return {};\r\n const branch = new GraphicBranch(true);\r\n for (let i = 0; i < header.tileCount; i++) {\r\n const tilePosition = streamBuffer.curPos;\r\n streamBuffer.advance(8); // Skip magic and version.\r\n const tileBytes = streamBuffer.nextUint32;\r\n streamBuffer.curPos = tilePosition;\r\n const result = await this.loadGraphicsFromStream(tile, streamBuffer, system, isCanceled);\r\n if (result.graphic)\r\n branch.add(result.graphic);\r\n streamBuffer.curPos = tilePosition + tileBytes;\r\n }\r\n return { graphic: branch.isEmpty ? undefined : system.createBranch(branch, Transform.createIdentity()), isLeaf: tile.isLeaf };\r\n\r\n default:\r\n assert(false, `unknown tile format ${format}`);\r\n break;\r\n }\r\n\r\n let content: TileContent = {};\r\n if (undefined !== reader) {\r\n try {\r\n content = await reader.read();\r\n } catch (_err) {\r\n // Failure to load should prevent us from trying to load children\r\n content.isLeaf = true;\r\n }\r\n }\r\n\r\n return content;\r\n }\r\n\r\n public get viewFlagOverrides(): ViewFlagOverrides { return defaultViewFlagOverrides; }\r\n\r\n public static computeTileClosestToEyePriority(tile: Tile, viewports: Iterable<Viewport>, location: Transform): number {\r\n // Prioritize tiles closer to eye.\r\n // NB: In NPC coords, 0 = far plane, 1 = near plane.\r\n const center = location.multiplyPoint3d(tile.center, scratchTileCenterWorld);\r\n let minDistance = 1.0;\r\n for (const viewport of viewports) {\r\n const npc = viewport.worldToNpc(center, scratchTileCenterView);\r\n const distance = 1.0 - npc.z;\r\n minDistance = Math.min(distance, minDistance);\r\n }\r\n\r\n return minDistance;\r\n }\r\n}\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MapBoxLayerImageryProvider.d.ts","sourceRoot":"","sources":["../../../../../src/tile/map/ImageryProviders/MapBoxLayerImageryProvider.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,OAAO,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AAEzD;;GAEG;AACH,qBAAa,0BAA2B,SAAQ,uBAAuB;IACrE,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,QAAQ,CAAS;gBAEb,QAAQ,EAAE,gBAAgB;IAMtC,IAAW,SAAS,IAAI,MAAM,CAAgB;IAC9C,IAAW,UAAU,IAAI,MAAM,CAAgB;IAC/C,IAAoB,gBAAgB,IAAI,MAAM,CAA0B;IACxE,IAAoB,gBAAgB,IAAI,MAAM,CAA0B;IAG3D,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"MapBoxLayerImageryProvider.d.ts","sourceRoot":"","sources":["../../../../../src/tile/map/ImageryProviders/MapBoxLayerImageryProvider.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,OAAO,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AAEzD;;GAEG;AACH,qBAAa,0BAA2B,SAAQ,uBAAuB;IACrE,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,QAAQ,CAAS;gBAEb,QAAQ,EAAE,gBAAgB;IAMtC,IAAW,SAAS,IAAI,MAAM,CAAgB;IAC9C,IAAW,UAAU,IAAI,MAAM,CAAgB;IAC/C,IAAoB,gBAAgB,IAAI,MAAM,CAA0B;IACxE,IAAoB,gBAAgB,IAAI,MAAM,CAA0B;IAG3D,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAc1E,OAAO,IAAI,mBAAmB,GAAG,SAAS;IAKpC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;CAClD"}
|
|
@@ -30,9 +30,10 @@ class MapBoxLayerImageryProvider extends internal_1.MapLayerImageryProvider {
|
|
|
30
30
|
return "";
|
|
31
31
|
}
|
|
32
32
|
// from the template url, construct the tile url.
|
|
33
|
-
|
|
34
|
-
url =
|
|
35
|
-
url = url.concat(
|
|
33
|
+
// format: {baseUrl}/{tileSize}/{level}/{column}/{row}?access_token={token}
|
|
34
|
+
let url = this._baseUrl.concat(this.tileWidth.toString());
|
|
35
|
+
url = url.concat(`/${zoomLevel.toString()}/${column.toString()}/${row.toString()}`);
|
|
36
|
+
url = url.concat(`?${this._settings.accessKey.key}=${this._settings.accessKey.value}`);
|
|
36
37
|
return url;
|
|
37
38
|
}
|
|
38
39
|
getLogo() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MapBoxLayerImageryProvider.js","sourceRoot":"","sources":["../../../../../src/tile/map/ImageryProviders/MapBoxLayerImageryProvider.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAGH,kDAA+C;AAC/C,6CAAyD;AAEzD;;GAEG;AACH,MAAa,0BAA2B,SAAQ,kCAAuB;IAKrE,YAAY,QAA0B;QACpC,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACtB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC;QAC7B,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;QAAC,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;IACxC,CAAC;IAED,IAAW,SAAS,KAAa,OAAO,GAAG,CAAC,CAAC,CAAC;IAC9C,IAAW,UAAU,KAAa,OAAO,GAAG,CAAC,CAAC,CAAC;IAC/C,IAAoB,gBAAgB,KAAa,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IACxE,IAAoB,gBAAgB,KAAa,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IAExE,0CAA0C;IACnC,KAAK,CAAC,YAAY,CAAC,GAAW,EAAE,MAAc,EAAE,SAAiB;QACtE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE;YAC7B,OAAO,EAAE,CAAC;SACX;QAED,iDAAiD;QACjD,IAAI,GAAG,GAAW,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"MapBoxLayerImageryProvider.js","sourceRoot":"","sources":["../../../../../src/tile/map/ImageryProviders/MapBoxLayerImageryProvider.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAGH,kDAA+C;AAC/C,6CAAyD;AAEzD;;GAEG;AACH,MAAa,0BAA2B,SAAQ,kCAAuB;IAKrE,YAAY,QAA0B;QACpC,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACtB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC;QAC7B,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;QAAC,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;IACxC,CAAC;IAED,IAAW,SAAS,KAAa,OAAO,GAAG,CAAC,CAAC,CAAC;IAC9C,IAAW,UAAU,KAAa,OAAO,GAAG,CAAC,CAAC,CAAC;IAC/C,IAAoB,gBAAgB,KAAa,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IACxE,IAAoB,gBAAgB,KAAa,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IAExE,0CAA0C;IACnC,KAAK,CAAC,YAAY,CAAC,GAAW,EAAE,MAAc,EAAE,SAAiB;QACtE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE;YAC7B,OAAO,EAAE,CAAC;SACX;QAED,iDAAiD;QACjD,2EAA2E;QAC3E,IAAI,GAAG,GAAW,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC;QAClE,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC,QAAQ,EAAE,IAAI,MAAM,CAAC,QAAQ,EAAE,IAAI,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QACpF,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC;QAEvF,OAAO,GAAG,CAAC;IACb,CAAC;IAEe,OAAO;QACrB,OAAO,qBAAS,CAAC,YAAY,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,qBAAS,CAAC,YAAY,CAAC,kBAAkB,CAAC,wCAAwC,CAAC,EAAE,CAAC,CAAC;IACpJ,CAAC;IAED,sDAAsD;IACtC,KAAK,CAAC,UAAU,KAAoB,CAAC;CACtD;AArCD,gEAqCC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Tiles\r\n */\r\n\r\nimport { MapLayerSettings } from \"@itwin/core-common\";\r\nimport { IModelApp } from \"../../../IModelApp\";\r\nimport { MapLayerImageryProvider } from \"../../internal\";\r\n\r\n/** Base class imagery map layer formats. Subclasses should override formatId and [[MapLayerFormat.createImageryProvider]].\r\n * @internal\r\n */\r\nexport class MapBoxLayerImageryProvider extends MapLayerImageryProvider {\r\n private _zoomMin: number;\r\n private _zoomMax: number;\r\n private _baseUrl: string;\r\n\r\n constructor(settings: MapLayerSettings) {\r\n super(settings, true);\r\n this._baseUrl = settings.url;\r\n this._zoomMin = 1; this._zoomMax = 20;\r\n }\r\n\r\n public get tileWidth(): number { return 256; }\r\n public get tileHeight(): number { return 256; }\r\n public override get minimumZoomLevel(): number { return this._zoomMin; }\r\n public override get maximumZoomLevel(): number { return this._zoomMax; }\r\n\r\n // construct the Url from the desired Tile\r\n public async constructUrl(row: number, column: number, zoomLevel: number): Promise<string> {\r\n if (!this._settings.accessKey) {\r\n return \"\";\r\n }\r\n\r\n // from the template url, construct the tile url.\r\n // format: {baseUrl}/{tileSize}/{level}/{column}/{row}?access_token={token}\r\n let url: string = this._baseUrl.concat(this.tileWidth.toString());\r\n url = url.concat(`/${zoomLevel.toString()}/${column.toString()}/${row.toString()}`);\r\n url = url.concat(`?${this._settings.accessKey.key}=${this._settings.accessKey.value}`);\r\n\r\n return url;\r\n }\r\n\r\n public override getLogo(): HTMLTableRowElement | undefined {\r\n return IModelApp.makeLogoCard({ heading: \"Mapbox\", notice: IModelApp.localization.getLocalizedString(\"iModelJs:BackgroundMap.MapBoxCopyright\") });\r\n }\r\n\r\n // no initialization needed for MapBoxImageryProvider.\r\n public override async initialize(): Promise<void> { }\r\n}\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MapLayerFormatRegistry.js","sourceRoot":"","sources":["../../../../src/tile/map/MapLayerFormatRegistry.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module MapLayers\r\n */\r\n\r\nimport { assert } from \"@itwin/core-bentley\";\r\nimport { MapLayerKey, MapLayerSettings, MapSubLayerProps } from \"@itwin/core-common\";\r\nimport { IModelApp } from \"../../IModelApp\";\r\nimport { IModelConnection } from \"../../IModelConnection\";\r\nimport { ImageryMapLayerTreeReference, internalMapLayerImageryFormats, MapLayerAuthenticationInfo, MapLayerImageryProvider, MapLayerSourceStatus, MapLayerTileTreeReference } from \"../internal\";\r\nimport { RequestBasicCredentials } from \"../../request/Request\";\r\n\r\n/** @internal */\r\nexport class MapLayerFormat {\r\n public static formatId: string;\r\n public static register() { IModelApp.mapLayerFormatRegistry.register(this); }\r\n public static createImageryProvider(_settings: MapLayerSettings): MapLayerImageryProvider | undefined { assert(false); }\r\n public static createMapLayerTree(_layerSettings: MapLayerSettings, _layerIndex: number, _iModel: IModelConnection): MapLayerTileTreeReference | undefined {\r\n assert(false);\r\n return undefined;\r\n }\r\n public static async validateSource(_url: string, _credentials?: RequestBasicCredentials, _ignoreCache?: boolean): Promise<MapLayerSourceValidation> { return { status: MapLayerSourceStatus.Valid }; }\r\n}\r\n\r\n/** @internal */\r\nexport type MapLayerFormatType = typeof MapLayerFormat;\r\n\r\n/** @internal */\r\nexport interface MapLayerSourceValidation {\r\n status: MapLayerSourceStatus;\r\n subLayers?: MapSubLayerProps[];\r\n authInfo?: MapLayerAuthenticationInfo;\r\n}\r\n\r\n/**\r\n * Options to be passed to the IModelApp on startup which contain access keys for various layer formats\r\n * @beta\r\n */\r\nexport interface MapLayerOptions {\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n AzureMaps?: MapLayerKey;\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n
|
|
1
|
+
{"version":3,"file":"MapLayerFormatRegistry.js","sourceRoot":"","sources":["../../../../src/tile/map/MapLayerFormatRegistry.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module MapLayers\r\n */\r\n\r\nimport { assert } from \"@itwin/core-bentley\";\r\nimport { MapLayerKey, MapLayerSettings, MapSubLayerProps } from \"@itwin/core-common\";\r\nimport { IModelApp } from \"../../IModelApp\";\r\nimport { IModelConnection } from \"../../IModelConnection\";\r\nimport { ImageryMapLayerTreeReference, internalMapLayerImageryFormats, MapLayerAuthenticationInfo, MapLayerImageryProvider, MapLayerSourceStatus, MapLayerTileTreeReference } from \"../internal\";\r\nimport { RequestBasicCredentials } from \"../../request/Request\";\r\n\r\n/** @internal */\r\nexport class MapLayerFormat {\r\n public static formatId: string;\r\n public static register() { IModelApp.mapLayerFormatRegistry.register(this); }\r\n public static createImageryProvider(_settings: MapLayerSettings): MapLayerImageryProvider | undefined { assert(false); }\r\n public static createMapLayerTree(_layerSettings: MapLayerSettings, _layerIndex: number, _iModel: IModelConnection): MapLayerTileTreeReference | undefined {\r\n assert(false);\r\n return undefined;\r\n }\r\n public static async validateSource(_url: string, _credentials?: RequestBasicCredentials, _ignoreCache?: boolean): Promise<MapLayerSourceValidation> { return { status: MapLayerSourceStatus.Valid }; }\r\n}\r\n\r\n/** @internal */\r\nexport type MapLayerFormatType = typeof MapLayerFormat;\r\n\r\n/** @internal */\r\nexport interface MapLayerSourceValidation {\r\n status: MapLayerSourceStatus;\r\n subLayers?: MapSubLayerProps[];\r\n authInfo?: MapLayerAuthenticationInfo;\r\n}\r\n\r\n/**\r\n * Options to be passed to the IModelApp on startup which contain access keys for various layer formats\r\n * @beta\r\n */\r\nexport interface MapLayerOptions {\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n AzureMaps?: MapLayerKey;\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n MapboxImagery?: MapLayerKey;\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n BingMaps?: MapLayerKey;\r\n [format: string]: MapLayerKey | undefined;\r\n}\r\n\r\n/** @internal */\r\nexport class MapLayerFormatRegistry {\r\n private _configOptions: MapLayerOptions;\r\n constructor(opts?: MapLayerOptions) {\r\n this._configOptions = opts ?? {};\r\n internalMapLayerImageryFormats.forEach((format) => this.register(format));\r\n }\r\n private _formats = new Map<string, MapLayerFormatType>();\r\n public register(formatClass: MapLayerFormatType) {\r\n if (formatClass.formatId.length === 0)\r\n return; // must be an abstract class, ignore it\r\n\r\n this._formats.set(formatClass.formatId, formatClass);\r\n }\r\n public get configOptions(): MapLayerOptions {\r\n return this._configOptions;\r\n }\r\n public createImageryMapLayerTree(layerSettings: MapLayerSettings, layerIndex: number, iModel: IModelConnection): ImageryMapLayerTreeReference | undefined {\r\n const format = this._formats.get(layerSettings.formatId);\r\n return format !== undefined ? (format.createMapLayerTree(layerSettings, layerIndex, iModel) as ImageryMapLayerTreeReference) : undefined;\r\n }\r\n public createImageryProvider(layerSettings: MapLayerSettings): MapLayerImageryProvider | undefined {\r\n const format = this._formats.get(layerSettings.formatId);\r\n if (this._configOptions[layerSettings.formatId] !== undefined) {\r\n const keyValuePair = this._configOptions[layerSettings.formatId]!;\r\n const key: MapLayerKey = { key: keyValuePair.key, value: keyValuePair.value };\r\n layerSettings = layerSettings.clone({ accessKey: key });\r\n }\r\n return (format === undefined) ? undefined : format.createImageryProvider(layerSettings);\r\n }\r\n public async validateSource(formatId: string, url: string, credentials?: RequestBasicCredentials, ignoreCache?: boolean): Promise<MapLayerSourceValidation> {\r\n const format = this._formats.get(formatId);\r\n return (format === undefined) ? { status: MapLayerSourceStatus.InvalidFormat } : format.validateSource(url, credentials, ignoreCache);\r\n }\r\n}\r\n"]}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
import { Angle, Plane3dByOriginAndUnitNormal, Point3d, Range3d } from "@itwin/core-geometry";
|
|
5
5
|
import { DialogItem, DialogProperty, DialogPropertySyncItem } from "@itwin/appui-abstract";
|
|
6
6
|
import { StandardViewId } from "../StandardView";
|
|
7
|
-
import { Animator, ViewChangeOptions } from "../ViewAnimation";
|
|
7
|
+
import { Animator, MarginOptions, ViewChangeOptions } from "../ViewAnimation";
|
|
8
8
|
import { DecorateContext } from "../ViewContext";
|
|
9
9
|
import { DepthPointSource, ScreenViewport, Viewport } from "../Viewport";
|
|
10
10
|
import { ViewPose } from "../ViewPose";
|
|
@@ -188,10 +188,10 @@ export declare abstract class ViewManip extends ViewTool {
|
|
|
188
188
|
isPointVisible(testPt: Point3d): boolean;
|
|
189
189
|
/** @internal */
|
|
190
190
|
static computeFitRange(viewport: ScreenViewport): Range3d;
|
|
191
|
-
static fitView(viewport: ScreenViewport, animateFrustumChange: boolean, options?: ViewChangeOptions): void;
|
|
191
|
+
static fitView(viewport: ScreenViewport, animateFrustumChange: boolean, options?: ViewChangeOptions & MarginOptions): void;
|
|
192
192
|
/** @internal */
|
|
193
|
-
static fitViewWithGlobeAnimation(viewport: ScreenViewport, animateFrustumChange: boolean, options?: ViewChangeOptions): void;
|
|
194
|
-
static zoomToAlwaysDrawnExclusive(viewport: ScreenViewport, options?: ViewChangeOptions): Promise<boolean>;
|
|
193
|
+
static fitViewWithGlobeAnimation(viewport: ScreenViewport, animateFrustumChange: boolean, options?: ViewChangeOptions & MarginOptions): void;
|
|
194
|
+
static zoomToAlwaysDrawnExclusive(viewport: ScreenViewport, options?: ViewChangeOptions & MarginOptions): Promise<boolean>;
|
|
195
195
|
setCameraLensAngle(lensAngle: Angle, retainEyePoint: boolean): ViewStatus;
|
|
196
196
|
enforceZUp(pivotPoint: Point3d): boolean;
|
|
197
197
|
changeViewport(vp?: ScreenViewport): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ViewTool.d.ts","sourceRoot":"","sources":["../../../src/tools/ViewTool.ts"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,EACL,KAAK,EAAgH,4BAA4B,EACxI,OAAO,EAAW,OAAO,EACnC,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,UAAU,EAAE,cAAc,EAAE,sBAAsB,EACnD,MAAM,uBAAuB,CAAC;AAS/B,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAsB,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACnF,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAKjD,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACzE,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAGvC,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EACK,aAAa,EAAE,cAAc,EAAE,YAAY,EAAE,YAAY,EAA0B,YAAY,EAAe,eAAe,EACxI,MAAM,QAAQ,CAAC;AAChB,OAAO,EAAkE,yBAAyB,EAAyB,MAAM,kBAAkB,CAAC;AAepJ,gBAAgB;AAChB,oBAAY,cAAc;IACxB,IAAI,IAAI;IACR,MAAM,IAAI;IACV,YAAY,IAAS;IACrB,GAAG,IAAS;IACZ,MAAM,IAAS;IACf,IAAI,KAAS;IACb,IAAI,KAAS;IACb,GAAG,KAAS;IACZ,IAAI,MAAS;IACb,WAAW,MAAS;CACrB;AAED,gBAAgB;AAChB,mBAAW,iBAAiB;IAC1B,GAAG,IAAI;IACP,MAAM,KAAK;IACX,MAAM,MAAM;IACZ,IAAI,OAAO;CACZ;AAWD;;GAEG;AACH,8BAAsB,QAAS,SAAQ,eAAe;IAqB1B,QAAQ,CAAC;WApBrB,SAAS,CAAC,GAAG,EAAE,MAAM;IAE5B,eAAe,UAAS;IACxB,kBAAkB;IAClB,gBAAgB;IACD,GAAG,CAAC,GAAG,KAAK,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;gBAelC,QAAQ,CAAC,4BAAgB;IAG7B,eAAe,CAAC,GAAG,EAAE,aAAa;IAKxD,uBAAuB;IACV,QAAQ;WACP,UAAU,CAAC,MAAM,EAAE,MAAM;CAGxC;AAED,gBAAgB;AAChB,8BAAsB,iBAAiB;IAIlB,QAAQ,EAAE,SAAS;IAHtC,SAAS,CAAC,QAAQ,CAAC,UAAU,UAAiB;IAC9C,SAAS,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;gBAEb,QAAQ,EAAE,SAAS;IAG/B,cAAc,IAAI,IAAI;IACtB,SAAS,IAAI,IAAI;IACjB,QAAQ,IAAI,IAAI;IAChB,MAAM,CAAC,GAAG,EAAE,aAAa,GAAG,OAAO;IACnC,YAAY,IAAI,OAAO;IACvB,eAAe,IAAI,MAAM;aAChB,cAAc,CAAC,EAAE,EAAE,aAAa,EAAE,UAAU,EAAE,OAAO,GAAG,OAAO;aAC/D,UAAU,CAAC,EAAE,EAAE,aAAa,GAAG,OAAO;aACtC,gBAAgB,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,iBAAiB,CAAA;KAAE,GAAG,OAAO;IACpH,aAAoB,UAAU,IAAI,cAAc,CAAC;IAC1C,OAAO,IAAI,IAAI;IACf,UAAU,CAAC,QAAQ,EAAE,eAAe,EAAE,SAAS,EAAE,OAAO,GAAG,IAAI;IAC/D,OAAO,CAAC,GAAG,EAAE,YAAY,GAAG,OAAO;IACnC,YAAY,CAAC,GAAG,EAAE,YAAY,GAAG,OAAO;IACxC,UAAU,CAAC,GAAG,EAAE,YAAY,GAAG,OAAO;IAChC,eAAe,CAAC,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC;IACpD,aAAa,CAAC,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC;IACxD,WAAW,CAAC,GAAG,EAAE,YAAY,GAAG,OAAO;IACvC,gBAAgB,CAAC,GAAG,EAAE,YAAY,EAAE,QAAQ,EAAE,YAAY,GAAG,OAAO;IACpE,UAAU,CAAC,GAAG,EAAE,YAAY,GAAG,OAAO;IACtC,eAAe,CAAC,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,aAAa,GAAG,OAAO;IACtE,uBAAuB,CAAC,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,EAAE,aAAa,GAAG,OAAO;IACtG,cAAc,CAAC,GAAG,EAAE,aAAa,EAAE,UAAU,EAAE,OAAO,GAAG,OAAO;IAChE,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,4BAA4B,EAAE,MAAM,EAAE,gBAAgB,GAAG,OAAO;IAajI,SAAS,CAAC,cAAc,CAAC,EAAE,EAAE,aAAa;IAI1C,SAAS,CAAC,yBAAyB;CAOpC;AAED,gBAAgB;AAChB,qBAAa,eAAe;IAKP,QAAQ,EAAE,SAAS;IAJ/B,OAAO,EAAE,iBAAiB,EAAE,CAAM;IAClC,KAAK,SAAM;IACX,SAAS,UAAS;IAClB,cAAc,SAAK;gBACP,QAAQ,EAAE,SAAS;IAE/B,KAAK;IAOZ,IAAW,KAAK,IAAI,MAAM,CAAgC;IAC1D,IAAW,SAAS,IAAI,iBAAiB,GAAG,SAAS,CAAiD;IACtG,IAAW,WAAW,IAAI,iBAAiB,GAAG,SAAS,CAAwC;IACxF,GAAG,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI;IACpC,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS;IACxD,cAAc,IAAI,IAAI;IAEtB,OAAO,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,iBAAsB,GAAG,OAAO;IAoCjE,WAAW,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI;IAmB3C,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAyB7B,cAAc,IAAI,IAAI;IACtB,SAAS,IAAI,IAAI;IACjB,MAAM,CAAC,EAAE,EAAE,aAAa,GAAG,IAAI;IAC/B,OAAO,CAAC,EAAE,EAAE,YAAY,GAAG,OAAO;IAEzC,2DAA2D;IACpD,SAAS,CAAC,UAAU,EAAE,cAAc,GAAG,OAAO;CACtD;AAED;;GAEG;AACH,8BAAsB,SAAU,SAAQ,QAAQ;IAiBW,UAAU,EAAE,MAAM;IAAS,OAAO,EAAE,OAAO;IAAS,kBAAkB,EAAE,OAAO;IAhBxI,gBAAgB;IACT,WAAW,EAAE,eAAe,CAAC;IAC7B,YAAY,UAAS;IAC5B,SAAgB,iBAAiB,UAAiB;IAC3C,cAAc,UAAS;IACvB,UAAU,UAAS;IACnB,iBAAiB,UAAS;IAC1B,kBAAkB,UAAS;IAC3B,IAAI,SAAK;IAChB,gBAAgB;IACT,YAAY,iBAAuB;IAC1C,gBAAgB;IAChB,SAAS,CAAC,aAAa,CAAC,EAAE;QAAE,SAAS,EAAE,OAAO,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,4BAA4B,CAAC;QAAC,MAAM,EAAE,gBAAgB,CAAC;QAAC,cAAc,EAAE,OAAO,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAChL,gBAAgB;IAChB,SAAS,CAAC,UAAU,CAAC,EAAE,QAAQ,CAAC;gBAEpB,QAAQ,EAAE,cAAc,GAAG,SAAS,EAAS,UAAU,EAAE,MAAM,EAAS,OAAO,EAAE,OAAO,EAAS,kBAAkB,GAAE,OAAe;IAMhI,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI;IAKxD,gBAAgB;IACT,iBAAiB,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI;IAkCxD,gBAAgB;IACT,uBAAuB,IAAI,MAAM,GAAG,SAAS;IAMpD,gBAAgB;IACT,eAAe,IAAI,OAAO;IAOjC,gBAAgB;IACT,cAAc,CAAC,EAAE,EAAE,aAAa,EAAE,SAAS,GAAE,OAAe,GAAG,OAAO,GAAG,SAAS;IAyCnE,cAAc;IAcd,gBAAgB,CAAC,EAAE,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;IA2B1D,cAAc,CAAC,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;IAOzD,YAAY,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;IAShF,gBAAgB;IACH,eAAe,CAAC,EAAE,EAAE,aAAa,EAAE,YAAY,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,YAAY,CAAC;IAmB/E,gBAAgB,CAAC,EAAE,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;IAM1D,cAAc,CAAC,EAAE,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;IAQxD,aAAa,CAAC,EAAE,EAAE,aAAa;IAoB/B,YAAY,CAAC,EAAE,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ7C,UAAU,CAAC,EAAE,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAM3C,eAAe,CAAC,EAAE,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAQhD,aAAa,CAAC,EAAE,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ9C,WAAW,CAAC,EAAE,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ5C,gBAAgB,CAAC,EAAE,EAAE,YAAY,EAAE,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;IAShF,UAAU,CAAC,EAAE,EAAE,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;IAOnD,eAAe,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;IAKlF,uBAAuB,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;IAKjH,aAAa;IAKnC,YAAY;IACL,qBAAqB,CAAC,YAAY,EAAE,MAAM,EAAE,eAAe,CAAC,EAAE,yBAAyB,EAAE,GAAG,IAAI;IA6BjF,SAAS;IAuB/B;;;;;OAKG;IACI,oBAAoB,CAAC,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO;IAc1E,kBAAkB,IAAI,IAAI;IAsC1B,iBAAiB,CAAC,EAAE,EAAE,aAAa;IAenC,YAAY,CAAC,EAAE,EAAE,aAAa,EAAE,UAAU,EAAE,OAAO;IASnD,gBAAgB,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO;IAKjE,IAAW,KAAK,YAMf;WAEa,gBAAgB,CAAC,EAAE,EAAE,QAAQ,GAAG,MAAM;WAKtC,0BAA0B,CAAC,EAAE,EAAE,QAAQ,GAAG,OAAO;IAe/D,wEAAwE;IACjE,cAAc,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO;IAQ/C,gBAAgB;WACF,eAAe,CAAC,QAAQ,EAAE,cAAc,GAAG,OAAO;WAWlD,OAAO,CAAC,QAAQ,EAAE,cAAc,EAAE,oBAAoB,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,iBAAiB;IAQ1G,gBAAgB;WACF,yBAAyB,CAAC,QAAQ,EAAE,cAAc,EAAE,oBAAoB,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,iBAAiB;WAqBxG,0BAA0B,CAAC,QAAQ,EAAE,cAAc,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,OAAO,CAAC;IAOhH,kBAAkB,CAAC,SAAS,EAAE,KAAK,EAAE,cAAc,EAAE,OAAO,GAAG,UAAU;IAoBzE,UAAU,CAAC,UAAU,EAAE,OAAO;IAiB9B,cAAc,CAAC,EAAE,CAAC,EAAE,cAAc,GAAG,IAAI;CAwCjD;AA8/DD;;GAEG;AACH,qBAAa,WAAY,SAAQ,SAAS;IACxC,OAAuB,MAAM,SAAc;IAC3C,OAAuB,QAAQ,SAAiB;gBACpC,EAAE,EAAE,cAAc,GAAG,SAAS,EAAE,OAAO,UAAQ,EAAE,kBAAkB,UAAQ;IAGjE,cAAc;CAIrC;AAED;;GAEG;AACH,qBAAa,cAAe,SAAQ,SAAS;IAC3C,OAAuB,MAAM,SAAiB;IAC9C,OAAuB,QAAQ,SAAoB;gBACvC,EAAE,EAAE,cAAc,EAAE,OAAO,UAAQ,EAAE,kBAAkB,UAAQ;IAGrD,cAAc;CACrC;AAED;;GAEG;AACH,qBAAa,YAAa,SAAQ,SAAS;IACzC,OAAuB,MAAM,SAAe;IAC5C,OAAuB,QAAQ,SAA0B;gBAC7C,EAAE,EAAE,cAAc,EAAE,OAAO,UAAQ,EAAE,kBAAkB,UAAQ;IAGrD,cAAc;CACrC;AAED;;GAEG;AACH,qBAAa,cAAe,SAAQ,SAAS;IAC3C,OAAuB,MAAM,SAAiB;IAC9C,OAAuB,QAAQ,SAAe;gBAClC,EAAE,EAAE,cAAc,EAAE,OAAO,UAAQ,EAAE,kBAAkB,UAAQ;IAGrD,cAAc;CACrC;AAED;;GAEG;AACH,qBAAa,YAAa,SAAQ,SAAS;IACzC,OAAuB,MAAM,SAAe;IAC5C,OAAuB,QAAQ,SAAe;gBAClC,EAAE,EAAE,cAAc,EAAE,OAAO,UAAQ,EAAE,kBAAkB,UAAQ;IAGrD,cAAc;CACrC;AAED;;;;;;;GAOG;AACH,qBAAa,eAAgB,SAAQ,SAAS;IAC5C,OAAuB,MAAM,SAAsB;IACnD,OAAuB,QAAQ,SAAe;gBAClC,EAAE,EAAE,cAAc,EAAE,OAAO,UAAQ,EAAE,kBAAkB,UAAQ;IAIrD,cAAc;IAEpC,YAAY;IACI,qBAAqB,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI;CAiClE;AAED;;GAEG;AACH,qBAAa,YAAa,SAAQ,SAAS;IACzC,OAAuB,MAAM,SAAe;IAC5C,OAAuB,QAAQ,SAAe;gBAClC,EAAE,EAAE,cAAc,EAAE,OAAO,UAAQ,EAAE,kBAAkB,UAAQ;IAIrD,cAAc;IAEpC,YAAY;IACI,qBAAqB,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI;CAMlE;AAED;;GAEG;AACH,qBAAa,WAAY,SAAQ,SAAS;IACxC,OAAuB,MAAM,SAAc;IAC3C,OAAuB,QAAQ,SAAmB;gBACtC,EAAE,EAAE,cAAc,EAAE,OAAO,UAAQ,EAAE,kBAAkB,UAAQ;IAGrD,cAAc;IAEpC,YAAY;IACI,qBAAqB,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI;CAMlE;AAED;;GAEG;AACH,qBAAa,WAAY,SAAQ,QAAQ;IACvC,OAAuB,MAAM,SAAc;IAC3C,OAAuB,QAAQ,SAAsB;IAC9C,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,YAAY,EAAE,OAAO,CAAC;gBACjB,QAAQ,EAAE,cAAc,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,UAAO,EAAE,YAAY,UAAO;IAQ7F,YAAY;IACL,qBAAqB,IAAI,IAAI;IAoBd,gBAAgB,CAAC,EAAE,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;IAO1D,aAAa;IAStB,KAAK,CAAC,QAAQ,EAAE,cAAc,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,UAAO,EAAE,YAAY,UAAO,GAAG,OAAO,CAAC,OAAO,CAAC;CAOxH;AAED;;GAEG;AACH,qBAAa,sBAAuB,SAAQ,QAAQ;IAClD,OAAuB,MAAM,SAAyB;IAE/C,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;gBACd,QAAQ,EAAE,cAAc,EAAE,OAAO,UAAO,EAAE,SAAS,UAAO;IAOtE,gBAAgB;IACM,gBAAgB,CAAC,EAAE,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;IAOhF,gBAAgB;IACM,aAAa;YAUrB,mBAAmB;YAenB,gBAAgB;CAM/B;AAED;;GAEG;AACH,qBAAa,iBAAkB,SAAQ,QAAQ;IAC7C,OAAuB,MAAM,SAAoB;IAE1C,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;gBACd,QAAQ,EAAE,cAAc,EAAE,OAAO,UAAO,EAAE,SAAS,UAAO;IAOtE,gBAAgB;IACM,gBAAgB,CAAC,EAAE,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;IAOhF,gBAAgB;IACM,aAAa;YAOrB,gBAAgB;YAehB,WAAW;CAM1B;AAED;;;;GAIG;AACH,qBAAa,qBAAsB,SAAQ,QAAQ;IACjD,OAAO,CAAC,eAAe,CAAC,CAAiB;IAEzC,OAAuB,MAAM,SAAwB;IAE9C,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;gBACd,QAAQ,EAAE,cAAc,EAAE,OAAO,UAAO,EAAE,SAAS,UAAO;IAOtE,WAA2B,OAAO,WAAgB;IAClD,WAA2B,OAAO,cAAwB;IAE1D;;;;QAII;IACkB,WAAW,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IAgCtE,gBAAgB;IACM,aAAa;YAKrB,eAAe;CAU9B;AAED;;GAEG;AACH,qBAAa,mBAAoB,SAAQ,QAAQ;IAC/C,OAAuB,MAAM,SAAsB;IAE5C,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;gBACd,QAAQ,EAAE,cAAc,EAAE,OAAO,UAAO,EAAE,SAAS,UAAO;IAOtE,gBAAgB;IACM,gBAAgB,CAAC,EAAE,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;IAOhF,gBAAgB;IACM,aAAa;YAKrB,aAAa;CAkB5B;AAED;;GAEG;AACH,qBAAa,gBAAiB,SAAQ,QAAQ;IAGN,OAAO,CAAC,eAAe;IAF7D,OAAuB,MAAM,SAAmB;IAChD,OAAuB,QAAQ,SAAyB;gBAC5C,QAAQ,EAAE,cAAc,EAAU,eAAe,EAAE,cAAc;IAEvD,aAAa;CAkBpC;AAED;;GAEG;AACH,qBAAa,cAAe,SAAQ,QAAQ;IAC1C,OAAuB,MAAM,SAAqB;IAClD,OAAuB,QAAQ,SAAsB;IACrD,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,aAAa,CAA6B;IAClD,OAAO,CAAC,cAAc,CAA6B;IACnD,OAAO,CAAC,WAAW,CAAC,CAAU;IAC9B,OAAO,CAAC,QAAQ,CAAkC;IAClD,OAAO,CAAC,SAAS,CAA+E;IAChG,OAAO,CAAC,UAAU,CAAiC;IAE7B,aAAa;IACb,cAAc;IACd,eAAe,CAAC,EAAE,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;IAE/E,YAAY;IACL,qBAAqB,IAAI,IAAI;IAqBd,gBAAgB,CAAC,EAAE,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;IA+B1D,aAAa,CAAC,EAAE,EAAE,aAAa;IAC/B,UAAU,CAAC,EAAE,EAAE,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;IACnD,gBAAgB,CAAC,EAAE,EAAE,YAAY,EAAE,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;IAChF,WAAW,CAAC,EAAE,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAC5C,eAAe,CAAC,EAAE,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAChD,aAAa,CAAC,EAAE,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAEpE,OAAO,CAAC,oBAAoB;IAqCZ,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI;IAoDxD,OAAO,CAAC,cAAc;CAgFvB;AAED,gBAAgB;AAChB,qBAAa,oBAAqB,SAAQ,SAAU,YAAW,QAAQ;IACrE,OAAuB,MAAM,SAAM;IACnC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAiB;IAC7C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAiB;IAC/C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAiB;IAC9C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAiB;IAC1C,OAAO,CAAC,eAAe,CAAY;IACnC,OAAO,CAAC,cAAc,CAAO;IAC7B,OAAO,CAAC,gBAAgB,CAAK;IAC7B,OAAO,CAAC,WAAW,CAAC,CAAW;IAC/B,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,SAAS,CAAc;IAC/B,OAAO,CAAC,IAAI,CAAe;IAC3B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,iBAAiB,CAAS;IAClC,OAAO,CAAC,kBAAkB,CAAC,CAAQ;IACnC,OAAO,CAAC,oBAAoB,CAAS;IAErC,mDAAmD;IAC5C,OAAO,IAAI,OAAO;IAsBlB,SAAS;gBAEJ,OAAO,EAAE,YAAY,EAAE,EAAE,EAAE,YAAY,EAAE,mBAAmB,UAAQ;IAMzE,OAAO,CAAC,EAAE,EAAE,YAAY,GAAG,IAAI;IAqBtC,OAAO,CAAC,gBAAgB;IAiBxB,OAAO,CAAC,eAAe;IA4BvB,OAAO,CAAC,WAAW;IAKnB,OAAO,CAAC,kBAAkB;IAe1B,OAAO,CAAC,cAAc;IA2BtB,OAAO,CAAC,eAAe;IAqCvB,OAAO,CAAC,WAAW;IA+BnB,OAAO,CAAC,OAAO;IAUO,gBAAgB,CAAC,GAAG,EAAE,aAAa;IACnC,cAAc,CAAC,GAAG,EAAE,aAAa;IACjC,WAAW,CAAC,EAAE,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAG5C,aAAa,CAAC,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAC/C,eAAe,CAAC,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;CAYxE;AAED;;GAEG;AACH,qBAAa,YAAa,SAAQ,QAAQ;IACxC,OAAuB,MAAM,SAAe;IAC5C,OAAuB,QAAQ,SAA0B;IAEnC,aAAa;CAKpC;AAED;;GAEG;AACH,qBAAa,YAAa,SAAQ,QAAQ;IACxC,OAAuB,MAAM,SAAe;IAC5C,OAAuB,QAAQ,SAAyB;IAElC,aAAa;CAKpC;AAED;;GAEG;AACH,qBAAa,oBAAqB,SAAQ,QAAQ;IAChD,OAAuB,MAAM,SAAuB;IACpD,OAAuB,QAAQ,SAAiB;IAE1B,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC;IAE7B,aAAa;CAYpC;AAED;;;;GAIG;AACH,qBAAa,eAAgB,SAAQ,aAAa;IAChD,OAAuB,MAAM,SAAsB;IACnD,OAAuB,QAAQ,SAA0B;IAClD,QAAQ,CAAC,EAAE,cAAc,CAAC;IACjC,SAAS,CAAC,UAAU,EAAE,OAAO,CAAS;IACtC,SAAS,CAAC,WAAW,EAAE,OAAO,CAAoB;IAClD,SAAS,CAAC,cAAc,EAAE,OAAO,CAAoB;IAErC,oBAAoB,CAAC,EAAE,EAAE,QAAQ,GAAG,SAAS,EAAE,oBAAoB,EAAE,OAAO,GAAG,OAAO;IACtF,eAAe,CAAC,GAAG,EAAE,aAAa,EAAE,cAAc,EAAE,OAAO,GAAG,OAAO;IACrE,sBAAsB,IAAI,OAAO;IAC3B,aAAa;IACb,WAAW;IACjC,SAAS,CAAC,2BAA2B,IAAI,IAAI;IACvB,eAAe,CAAC,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;IAEhF,YAAY;IACZ,SAAS,CAAC,qBAAqB,IAAI,IAAI;IAqB1B,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAM3C,SAAS,CAAC,mBAAmB;IAC7B,SAAS,CAAC,sBAAsB;IAEV,gBAAgB,CAAC,EAAE,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;IA4B1D,aAAa,CAAC,EAAE,EAAE,aAAa;WAOvC,iBAAiB,CAAC,OAAO,EAAE,eAAe,EAAE,EAAE,EAAE,cAAc,EAAE,UAAU,EAAE,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,cAAc,CAAC,EAAE,OAAO,EAAE,iBAAiB,CAAC,EAAE,OAAO;IA4EhK,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI;IAMxC,iBAAiB,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI;IAEjE,OAAO,CAAC,cAAc;IAkBtB,OAAO,CAAC,wBAAwB,CAAsC;IACtE,IAAW,uBAAuB,4BAKjC;IACD,IAAW,eAAe,IAAI,OAAO,CAA+C;IACpF,IAAW,eAAe,CAAC,MAAM,EAAE,OAAO,EAAkD;IAE5F,OAAO,CAAC,qBAAqB,CAAqC;IAClE,IAAW,oBAAoB,2BAK9B;IACD,IAAW,YAAY,IAAI,MAAM,CAA4C;IAC7E,IAAW,YAAY,CAAC,KAAK,EAAE,MAAM,EAA8C;IAEnF,OAAO,CAAC,wBAAwB,CAAsC;IACtE,IAAW,uBAAuB,4BAKjC;IACD,IAAW,eAAe,IAAI,OAAO,CAA+C;IACpF,IAAW,eAAe,CAAC,KAAK,EAAE,OAAO,EAAiD;IAE1F,OAAO,CAAC,qBAAqB,CAAqC;IAClE,IAAW,oBAAoB,2BAK9B;IACD,IAAW,YAAY,IAAI,MAAM,CAA4C;IAC7E,IAAW,YAAY,CAAC,KAAK,EAAE,MAAM,EAA8C;IAEnF,OAAO,CAAC,qBAAqB;IAM7B,OAAO,CAAC,qBAAqB;IAMP,8BAA8B,CAAC,YAAY,EAAE,sBAAsB,GAAG,OAAO,CAAC,OAAO,CAAC;IAmB5F,4BAA4B,IAAI,UAAU,EAAE,GAAG,SAAS;CA6BzE;AAED;;GAEG;AACH,qBAAa,mBAAoB,SAAQ,aAAa;IACpD,OAAuB,MAAM,SAA0B;IACvD,OAAuB,QAAQ,SAA0B;IAClD,QAAQ,CAAC,EAAE,cAAc,CAAC;IACjC,SAAS,CAAC,UAAU,EAAE,OAAO,CAAS;IACtC,SAAS,CAAC,WAAW,EAAE,OAAO,CAAoB;IAClD,SAAS,CAAC,cAAc,EAAE,OAAO,CAAoB;IAErC,oBAAoB,CAAC,EAAE,EAAE,QAAQ,GAAG,SAAS,EAAE,oBAAoB,EAAE,OAAO,GAAG,OAAO;IACtF,eAAe,CAAC,GAAG,EAAE,aAAa,EAAE,cAAc,EAAE,OAAO,GAAG,OAAO;IACrE,sBAAsB,IAAI,OAAO;IAC3B,aAAa;IACb,WAAW;IACjC,SAAS,CAAC,2BAA2B,IAAI,IAAI;IACvB,eAAe,CAAC,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;IAEhF,YAAY;IACZ,SAAS,CAAC,qBAAqB,IAAI,IAAI;IAqB1B,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAM3C,SAAS,CAAC,mBAAmB;IAC7B,SAAS,CAAC,sBAAsB;IAEV,gBAAgB,CAAC,EAAE,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;IA4B1D,aAAa,CAAC,EAAE,EAAE,aAAa;IAOrD,OAAO,CAAC,MAAM,CAAC,eAAe;IAqC9B,OAAO,CAAC,MAAM,CAAC,kBAAkB;WAanB,UAAU,CAAC,OAAO,EAAE,eAAe,EAAE,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IA4B5F,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI;IAOxC,iBAAiB,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI;IAEjE,OAAO,CAAC,cAAc;CAiBvB"}
|
|
1
|
+
{"version":3,"file":"ViewTool.d.ts","sourceRoot":"","sources":["../../../src/tools/ViewTool.ts"],"names":[],"mappings":"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"}
|