@itwin/core-frontend 3.1.0-dev.12 → 3.1.0-dev.13
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/ApproximateTerrainHeights.d.ts +1 -1
- package/lib/cjs/ApproximateTerrainHeights.d.ts.map +1 -1
- package/lib/cjs/ApproximateTerrainHeights.js +21 -9
- package/lib/cjs/ApproximateTerrainHeights.js.map +1 -1
- package/lib/cjs/ApproximateTerrainHeightsProps.d.ts +12 -0
- package/lib/cjs/ApproximateTerrainHeightsProps.d.ts.map +1 -0
- package/lib/cjs/ApproximateTerrainHeightsProps.js +13 -0
- package/lib/cjs/ApproximateTerrainHeightsProps.js.map +1 -0
- package/lib/esm/ApproximateTerrainHeights.d.ts +1 -1
- package/lib/esm/ApproximateTerrainHeights.d.ts.map +1 -1
- package/lib/esm/ApproximateTerrainHeights.js +2 -9
- package/lib/esm/ApproximateTerrainHeights.js.map +1 -1
- package/lib/esm/ApproximateTerrainHeightsProps.d.ts +12 -0
- package/lib/esm/ApproximateTerrainHeightsProps.d.ts.map +1 -0
- package/lib/esm/ApproximateTerrainHeightsProps.js +10 -0
- package/lib/esm/ApproximateTerrainHeightsProps.js.map +1 -0
- package/package.json +20 -20
- package/lib/public/assets/approximateTerrainHeights.json +0 -1
|
@@ -10,7 +10,7 @@ import { QuadId } from "./tile/internal";
|
|
|
10
10
|
export declare class ApproximateTerrainHeights {
|
|
11
11
|
static readonly maxLevel = 6;
|
|
12
12
|
readonly globalHeightRange: Range1d;
|
|
13
|
-
private _terrainHeights
|
|
13
|
+
private _terrainHeights?;
|
|
14
14
|
private readonly _scratchCorners;
|
|
15
15
|
private readonly _tilingScheme;
|
|
16
16
|
private readonly _scratchTileXY;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ApproximateTerrainHeights.d.ts","sourceRoot":"","sources":["../../src/ApproximateTerrainHeights.ts"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,EAAW,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"ApproximateTerrainHeights.d.ts","sourceRoot":"","sources":["../../src/ApproximateTerrainHeights.ts"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,EAAW,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAEjE,OAAO,EAA0B,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAKjE;;;GAGG;AACH,qBAAa,yBAAyB;IACpC,gBAAuB,QAAQ,KAAK;IACpC,SAAgB,iBAAiB,UAAiC;IAClE,OAAO,CAAC,eAAe,CAAC,CAAiC;IACzD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAgH;IAChJ,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA0C;IACxE,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAwB;IAEvD,WAAkB,QAAQ,IAAI,yBAAyB,CAKtD;IAED;;;OAGG;IACU,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAKjC,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO;IAsB7D,wBAAwB,CAAC,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO;IAmB9E,OAAO,CAAC,eAAe;CA0CxB"}
|
|
@@ -6,14 +6,31 @@
|
|
|
6
6
|
/** @packageDocumentation
|
|
7
7
|
* @module Views
|
|
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.ApproximateTerrainHeights = 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");
|
|
14
|
-
const Request_1 = require("./request/Request");
|
|
15
33
|
const internal_1 = require("./tile/internal");
|
|
16
|
-
const IModelApp_1 = require("./IModelApp");
|
|
17
34
|
let instance;
|
|
18
35
|
/**
|
|
19
36
|
* A collection of functions for approximating terrain height
|
|
@@ -36,13 +53,8 @@ class ApproximateTerrainHeights {
|
|
|
36
53
|
* @return {Promise}
|
|
37
54
|
*/
|
|
38
55
|
async initialize() {
|
|
39
|
-
if (
|
|
40
|
-
|
|
41
|
-
method: "GET",
|
|
42
|
-
responseType: "json",
|
|
43
|
-
});
|
|
44
|
-
this._terrainHeights = data.body;
|
|
45
|
-
}
|
|
56
|
+
if (!this._terrainHeights)
|
|
57
|
+
this._terrainHeights = (await Promise.resolve().then(() => __importStar(require("./ApproximateTerrainHeightsProps")))).props;
|
|
46
58
|
}
|
|
47
59
|
getTileHeightRange(quadId, result) {
|
|
48
60
|
result = core_geometry_1.Range1d.createFrom(this.globalHeightRange, result);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ApproximateTerrainHeights.js","sourceRoot":"","sources":["../../src/ApproximateTerrainHeights.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG
|
|
1
|
+
{"version":3,"file":"ApproximateTerrainHeights.js","sourceRoot":"","sources":["../../src/ApproximateTerrainHeights.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 Views\r\n */\r\n\r\nimport { assert } from \"@itwin/core-bentley\";\r\nimport { Point2d, Range1d, Range2d } from \"@itwin/core-geometry\";\r\nimport { Cartographic } from \"@itwin/core-common\";\r\nimport { GeographicTilingScheme, QuadId } from \"./tile/internal\";\r\nimport type { ApproximateTerrainHeightsProps } from \"./ApproximateTerrainHeightsProps\";\r\n\r\nlet instance: ApproximateTerrainHeights | undefined;\r\n\r\n/**\r\n * A collection of functions for approximating terrain height\r\n * @internal\r\n */\r\nexport class ApproximateTerrainHeights {\r\n public static readonly maxLevel = 6;\r\n public readonly globalHeightRange = Range1d.createXX(-400, 90000); // Dead Sea to Mount Everest.\r\n private _terrainHeights?: ApproximateTerrainHeightsProps;\r\n private readonly _scratchCorners = [Cartographic.createZero(), Cartographic.createZero(), Cartographic.createZero(), Cartographic.createZero()];\r\n private readonly _tilingScheme = new GeographicTilingScheme(2, 1, true); // Y at top... ?\r\n private readonly _scratchTileXY = Point2d.createZero();\r\n\r\n public static get instance(): ApproximateTerrainHeights {\r\n if (undefined === instance)\r\n instance = new ApproximateTerrainHeights();\r\n\r\n return instance;\r\n }\r\n\r\n /**\r\n * Initializes the minimum and maximum terrain heights.\r\n * @return {Promise}\r\n */\r\n public async initialize(): Promise<void> {\r\n if (!this._terrainHeights)\r\n this._terrainHeights = (await import(\"./ApproximateTerrainHeightsProps\")).props;\r\n }\r\n\r\n public getTileHeightRange(quadId: QuadId, result?: Range1d): Range1d {\r\n result = Range1d.createFrom(this.globalHeightRange, result);\r\n if (undefined === this._terrainHeights)\r\n return result; // Not initialized.\r\n\r\n let level = quadId.level, column = quadId.column, row = quadId.row;\r\n if (level > 6) {\r\n column = column >> (level - 6);\r\n row = row >> quadId.row >> ((level - 6));\r\n level = 6;\r\n }\r\n\r\n const key = `${level}-${column}-${row}`;\r\n const heights = this._terrainHeights[key];\r\n assert(undefined !== heights);\r\n\r\n result.low = heights[0];\r\n result.high = heights[1];\r\n\r\n return result;\r\n }\r\n\r\n public getMinimumMaximumHeights(rectangle: Range2d, result?: Range1d): Range1d {\r\n result = Range1d.createFrom(this.globalHeightRange, result);\r\n if (undefined === this._terrainHeights)\r\n return result; // Not initialized.\r\n\r\n const xyLevel = this._getTileXYLevel(rectangle);\r\n if (undefined !== xyLevel) {\r\n const key = `${xyLevel.level}-${xyLevel.x}-${xyLevel.y}`;\r\n const heights = this._terrainHeights[key];\r\n assert(undefined !== heights);\r\n if (undefined !== heights) {\r\n result.low = heights[0];\r\n result.high = heights[1];\r\n }\r\n }\r\n\r\n return result;\r\n }\r\n\r\n private _getTileXYLevel(rectangle: Range2d): { x: number, y: number, level: number } | undefined {\r\n Cartographic.fromRadians({ longitude: rectangle.low.x, latitude: rectangle.high.y, height: 0.0 }, this._scratchCorners[0]);\r\n Cartographic.fromRadians({ longitude: rectangle.high.x, latitude: rectangle.high.y, height: 0.0 }, this._scratchCorners[1]);\r\n Cartographic.fromRadians({ longitude: rectangle.low.x, latitude: rectangle.low.y, height: 0.0 }, this._scratchCorners[2]);\r\n Cartographic.fromRadians({ longitude: rectangle.high.x, latitude: rectangle.low.y, height: 0.0 }, this._scratchCorners[3]);\r\n\r\n // Determine which tile the bounding rectangle is in\r\n let lastLevelX = 0, lastLevelY = 0;\r\n let currentX = 0, currentY = 0;\r\n const maxLevel = ApproximateTerrainHeights.maxLevel;\r\n let i;\r\n for (i = 0; i <= maxLevel; ++i) {\r\n let failed = false;\r\n for (let j = 0; j < 4; ++j) {\r\n const corner = this._scratchCorners[j];\r\n this._tilingScheme.cartographicToTileXY(corner, i, this._scratchTileXY);\r\n if (j === 0) {\r\n currentX = this._scratchTileXY.x;\r\n currentY = this._scratchTileXY.y;\r\n } else if (currentX !== this._scratchTileXY.x || currentY !== this._scratchTileXY.y) {\r\n failed = true;\r\n break;\r\n }\r\n }\r\n\r\n if (failed)\r\n break;\r\n\r\n lastLevelX = currentX;\r\n lastLevelY = currentY;\r\n }\r\n\r\n if (i === 0) {\r\n return undefined;\r\n }\r\n\r\n return {\r\n x: lastLevelX,\r\n y: lastLevelY,\r\n level: (i > maxLevel) ? maxLevel : (i - 1),\r\n };\r\n }\r\n}\r\n"]}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/** @packageDocumentation
|
|
2
|
+
* @module Views
|
|
3
|
+
*/
|
|
4
|
+
/** @internal */
|
|
5
|
+
export declare type TerrainHeightRangeProps = [number, number];
|
|
6
|
+
/** @internal */
|
|
7
|
+
export interface ApproximateTerrainHeightsProps {
|
|
8
|
+
[key: string]: TerrainHeightRangeProps | undefined;
|
|
9
|
+
}
|
|
10
|
+
/** @internal */
|
|
11
|
+
export declare const props: ApproximateTerrainHeightsProps;
|
|
12
|
+
//# sourceMappingURL=ApproximateTerrainHeightsProps.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ApproximateTerrainHeightsProps.d.ts","sourceRoot":"","sources":["../../src/ApproximateTerrainHeightsProps.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,gBAAgB;AAChB,oBAAY,uBAAuB,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAEvD,gBAAgB;AAChB,MAAM,WAAW,8BAA8B;IAC7C,CAAC,GAAG,EAAE,MAAM,GAAG,uBAAuB,GAAG,SAAS,CAAC;CACpD;AAED,gBAAgB;AAChB,eAAO,MAAM,KAAK,EAAE,8BAA6s3Q,CAAC"}
|