@loaders.gl/tiles 3.3.0-alpha.1 → 3.3.0-alpha.10
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/dist/dist.min.js +1027 -1431
- package/dist/es5/bundle.js +0 -1
- package/dist/es5/bundle.js.map +1 -1
- package/dist/es5/constants.js +2 -1
- package/dist/es5/constants.js.map +1 -1
- package/dist/es5/index.js +26 -36
- package/dist/es5/index.js.map +1 -1
- package/dist/es5/tileset/helpers/3d-tiles-options.js +0 -1
- package/dist/es5/tileset/helpers/3d-tiles-options.js.map +1 -1
- package/dist/es5/tileset/helpers/bounding-volume.js +7 -26
- package/dist/es5/tileset/helpers/bounding-volume.js.map +1 -1
- package/dist/es5/tileset/helpers/frame-state.js +45 -50
- package/dist/es5/tileset/helpers/frame-state.js.map +1 -1
- package/dist/es5/tileset/helpers/i3s-lod.js +0 -13
- package/dist/es5/tileset/helpers/i3s-lod.js.map +1 -1
- package/dist/es5/tileset/helpers/tiles-3d-lod.js +7 -16
- package/dist/es5/tileset/helpers/tiles-3d-lod.js.map +1 -1
- package/dist/es5/tileset/helpers/transform-utils.js +2 -11
- package/dist/es5/tileset/helpers/transform-utils.js.map +1 -1
- package/dist/es5/tileset/helpers/zoom.js +6 -16
- package/dist/es5/tileset/helpers/zoom.js.map +1 -1
- package/dist/es5/tileset/tile-3d.js +111 -98
- package/dist/es5/tileset/tile-3d.js.map +1 -1
- package/dist/es5/tileset/tileset-3d.js +130 -196
- package/dist/es5/tileset/tileset-3d.js.map +1 -1
- package/dist/es5/tileset/tileset-cache.js +1 -14
- package/dist/es5/tileset/tileset-cache.js.map +1 -1
- package/dist/es5/tileset/traversers/{i3s-frame-counter.js → i3s-pending-tiles-register.js} +21 -16
- package/dist/es5/tileset/traversers/i3s-pending-tiles-register.js.map +1 -0
- package/dist/es5/tileset/traversers/i3s-tile-manager.js +33 -27
- package/dist/es5/tileset/traversers/i3s-tile-manager.js.map +1 -1
- package/dist/es5/tileset/traversers/i3s-tileset-traverser.js +10 -52
- package/dist/es5/tileset/traversers/i3s-tileset-traverser.js.map +1 -1
- package/dist/es5/tileset/traversers/tileset-3d-traverser.js +0 -22
- package/dist/es5/tileset/traversers/tileset-3d-traverser.js.map +1 -1
- package/dist/es5/tileset/traversers/tileset-traverser.js +55 -78
- package/dist/es5/tileset/traversers/tileset-traverser.js.map +1 -1
- package/dist/es5/types.js.map +1 -1
- package/dist/es5/utils/doubly-linked-list-node.js +3 -7
- package/dist/es5/utils/doubly-linked-list-node.js.map +1 -1
- package/dist/es5/utils/doubly-linked-list.js +9 -17
- package/dist/es5/utils/doubly-linked-list.js.map +1 -1
- package/dist/es5/utils/managed-array.js +29 -30
- package/dist/es5/utils/managed-array.js.map +1 -1
- package/dist/esm/bundle.js +1 -1
- package/dist/esm/bundle.js.map +1 -1
- package/dist/esm/constants.js +3 -0
- package/dist/esm/constants.js.map +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/tileset/helpers/3d-tiles-options.js.map +1 -1
- package/dist/esm/tileset/helpers/bounding-volume.js +4 -10
- package/dist/esm/tileset/helpers/bounding-volume.js.map +1 -1
- package/dist/esm/tileset/helpers/frame-state.js +36 -20
- package/dist/esm/tileset/helpers/frame-state.js.map +1 -1
- package/dist/esm/tileset/helpers/i3s-lod.js +4 -4
- package/dist/esm/tileset/helpers/i3s-lod.js.map +1 -1
- package/dist/esm/tileset/helpers/tiles-3d-lod.js +11 -8
- package/dist/esm/tileset/helpers/tiles-3d-lod.js.map +1 -1
- package/dist/esm/tileset/helpers/transform-utils.js +1 -3
- package/dist/esm/tileset/helpers/transform-utils.js.map +1 -1
- package/dist/esm/tileset/helpers/zoom.js +3 -2
- package/dist/esm/tileset/helpers/zoom.js.map +1 -1
- package/dist/esm/tileset/tile-3d.js +47 -108
- package/dist/esm/tileset/tile-3d.js.map +1 -1
- package/dist/esm/tileset/tileset-3d.js +70 -163
- package/dist/esm/tileset/tileset-3d.js.map +1 -1
- package/dist/esm/tileset/tileset-cache.js +2 -18
- package/dist/esm/tileset/tileset-cache.js.map +1 -1
- package/dist/esm/tileset/traversers/i3s-pending-tiles-register.js +28 -0
- package/dist/esm/tileset/traversers/i3s-pending-tiles-register.js.map +1 -0
- package/dist/esm/tileset/traversers/i3s-tile-manager.js +34 -15
- package/dist/esm/tileset/traversers/i3s-tile-manager.js.map +1 -1
- package/dist/esm/tileset/traversers/i3s-tileset-traverser.js +8 -22
- package/dist/esm/tileset/traversers/i3s-tileset-traverser.js.map +1 -1
- package/dist/esm/tileset/traversers/tileset-3d-traverser.js +2 -9
- package/dist/esm/tileset/traversers/tileset-3d-traverser.js.map +1 -1
- package/dist/esm/tileset/traversers/tileset-traverser.js +20 -59
- package/dist/esm/tileset/traversers/tileset-traverser.js.map +1 -1
- package/dist/esm/types.js.map +1 -1
- package/dist/esm/utils/doubly-linked-list-node.js +1 -4
- package/dist/esm/utils/doubly-linked-list-node.js.map +1 -1
- package/dist/esm/utils/doubly-linked-list.js +2 -11
- package/dist/esm/utils/doubly-linked-list.js.map +1 -1
- package/dist/esm/utils/managed-array.js +4 -22
- package/dist/esm/utils/managed-array.js.map +1 -1
- package/dist/tileset/helpers/frame-state.d.ts +5 -8
- package/dist/tileset/helpers/frame-state.d.ts.map +1 -1
- package/dist/tileset/helpers/frame-state.js +27 -12
- package/dist/tileset/helpers/i3s-lod.d.ts.map +1 -1
- package/dist/tileset/tile-3d.d.ts +15 -4
- package/dist/tileset/tile-3d.d.ts.map +1 -1
- package/dist/tileset/tile-3d.js +15 -2
- package/dist/tileset/tileset-3d.d.ts +17 -4
- package/dist/tileset/tileset-3d.d.ts.map +1 -1
- package/dist/tileset/tileset-3d.js +47 -10
- package/dist/tileset/traversers/{i3s-frame-counter.d.ts → i3s-pending-tiles-register.d.ts} +7 -4
- package/dist/tileset/traversers/i3s-pending-tiles-register.d.ts.map +1 -0
- package/dist/tileset/traversers/{i3s-frame-counter.js → i3s-pending-tiles-register.js} +17 -8
- package/dist/tileset/traversers/i3s-tile-manager.d.ts +19 -1
- package/dist/tileset/traversers/i3s-tile-manager.d.ts.map +1 -1
- package/dist/tileset/traversers/i3s-tile-manager.js +32 -12
- package/dist/tileset/traversers/i3s-tileset-traverser.d.ts +1 -1
- package/dist/tileset/traversers/i3s-tileset-traverser.d.ts.map +1 -1
- package/dist/tileset/traversers/i3s-tileset-traverser.js +9 -9
- package/dist/tileset/traversers/tileset-traverser.d.ts +3 -3
- package/dist/tileset/traversers/tileset-traverser.d.ts.map +1 -1
- package/dist/tileset/traversers/tileset-traverser.js +4 -4
- package/dist/types.d.ts +30 -1
- package/dist/types.d.ts.map +1 -1
- package/package.json +4 -4
- package/src/tileset/helpers/frame-state.ts +47 -19
- package/src/tileset/helpers/i3s-lod.ts +3 -1
- package/src/tileset/tile-3d.ts +16 -2
- package/src/tileset/tileset-3d.ts +55 -16
- package/src/tileset/traversers/i3s-pending-tiles-register.ts +44 -0
- package/src/tileset/traversers/i3s-tile-manager.ts +47 -11
- package/src/tileset/traversers/i3s-tileset-traverser.ts +5 -5
- package/src/tileset/traversers/tileset-traverser.ts +2 -2
- package/src/types.ts +32 -0
- package/dist/es5/tileset/traversers/i3s-frame-counter.js.map +0 -1
- package/dist/esm/tileset/traversers/i3s-frame-counter.js +0 -23
- package/dist/esm/tileset/traversers/i3s-frame-counter.js.map +0 -1
- package/dist/tileset/traversers/i3s-frame-counter.d.ts.map +0 -1
- package/src/tileset/traversers/i3s-frame-counter.ts +0 -35
|
@@ -1,73 +1,47 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
8
7
|
exports.default = void 0;
|
|
9
|
-
|
|
10
8
|
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
11
|
-
|
|
12
9
|
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
13
|
-
|
|
14
10
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
15
|
-
|
|
16
11
|
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
17
|
-
|
|
18
12
|
var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
|
|
19
|
-
|
|
20
13
|
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
21
|
-
|
|
22
14
|
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
23
|
-
|
|
24
15
|
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
25
|
-
|
|
26
16
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
27
|
-
|
|
28
17
|
var _core = require("@loaders.gl/core");
|
|
29
|
-
|
|
30
18
|
var _tilesetTraverser = _interopRequireDefault(require("./tileset-traverser"));
|
|
31
|
-
|
|
32
19
|
var _i3sLod = require("../helpers/i3s-lod");
|
|
33
|
-
|
|
34
20
|
var _tile3d = _interopRequireDefault(require("../tile-3d"));
|
|
35
|
-
|
|
36
21
|
var _i3sTileManager = _interopRequireDefault(require("./i3s-tile-manager"));
|
|
37
|
-
|
|
38
|
-
function
|
|
39
|
-
|
|
40
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
41
|
-
|
|
22
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
23
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
42
24
|
function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
|
|
43
|
-
|
|
44
25
|
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
45
|
-
|
|
46
26
|
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
47
|
-
|
|
48
27
|
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
|
|
49
|
-
|
|
50
28
|
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
51
|
-
|
|
52
29
|
var I3STilesetTraverser = function (_TilesetTraverser) {
|
|
53
30
|
(0, _inherits2.default)(I3STilesetTraverser, _TilesetTraverser);
|
|
54
|
-
|
|
55
31
|
var _super = _createSuper(I3STilesetTraverser);
|
|
56
|
-
|
|
57
32
|
function I3STilesetTraverser(options) {
|
|
58
33
|
var _this;
|
|
59
|
-
|
|
60
34
|
(0, _classCallCheck2.default)(this, I3STilesetTraverser);
|
|
61
35
|
_this = _super.call(this, options);
|
|
62
36
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "_tileManager", void 0);
|
|
63
37
|
_this._tileManager = new _i3sTileManager.default();
|
|
64
38
|
return _this;
|
|
65
39
|
}
|
|
66
|
-
|
|
67
40
|
(0, _createClass2.default)(I3STilesetTraverser, [{
|
|
68
41
|
key: "traversalFinished",
|
|
69
|
-
|
|
70
|
-
|
|
42
|
+
value:
|
|
43
|
+
function traversalFinished(frameState) {
|
|
44
|
+
return !this._tileManager.hasPendingTiles(frameState.viewport.id, this._frameNumber || 0);
|
|
71
45
|
}
|
|
72
46
|
}, {
|
|
73
47
|
key: "shouldRefine",
|
|
@@ -79,14 +53,11 @@ var I3STilesetTraverser = function (_TilesetTraverser) {
|
|
|
79
53
|
key: "updateChildTiles",
|
|
80
54
|
value: function updateChildTiles(tile, frameState) {
|
|
81
55
|
var _this2 = this;
|
|
82
|
-
|
|
83
56
|
var children = tile.header.children || [];
|
|
84
57
|
var childTiles = tile.children;
|
|
85
58
|
var tileset = tile.tileset;
|
|
86
|
-
|
|
87
59
|
var _iterator = _createForOfIteratorHelper(children),
|
|
88
|
-
|
|
89
|
-
|
|
60
|
+
_step;
|
|
90
61
|
try {
|
|
91
62
|
var _loop = function _loop() {
|
|
92
63
|
var child = _step.value;
|
|
@@ -94,21 +65,17 @@ var I3STilesetTraverser = function (_TilesetTraverser) {
|
|
|
94
65
|
var childTile = childTiles && childTiles.find(function (t) {
|
|
95
66
|
return t.id === extendedId;
|
|
96
67
|
});
|
|
97
|
-
|
|
98
68
|
if (!childTile) {
|
|
99
69
|
var request = function request() {
|
|
100
70
|
return _this2._loadTile(child.id, tileset);
|
|
101
71
|
};
|
|
102
|
-
|
|
103
72
|
var cachedRequest = _this2._tileManager.find(extendedId);
|
|
104
|
-
|
|
105
73
|
if (!cachedRequest) {
|
|
106
74
|
if (tileset.tileset.nodePages) {
|
|
107
75
|
request = function request() {
|
|
108
76
|
return tileset.tileset.nodePagesTile.formTileFromNodePages(child.id);
|
|
109
77
|
};
|
|
110
78
|
}
|
|
111
|
-
|
|
112
79
|
_this2._tileManager.add(request, extendedId, function (header) {
|
|
113
80
|
return _this2._onTileLoad(header, tile, extendedId);
|
|
114
81
|
}, frameState);
|
|
@@ -119,7 +86,6 @@ var I3STilesetTraverser = function (_TilesetTraverser) {
|
|
|
119
86
|
_this2.updateTile(childTile, frameState);
|
|
120
87
|
}
|
|
121
88
|
};
|
|
122
|
-
|
|
123
89
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
124
90
|
_loop();
|
|
125
91
|
}
|
|
@@ -128,7 +94,6 @@ var I3STilesetTraverser = function (_TilesetTraverser) {
|
|
|
128
94
|
} finally {
|
|
129
95
|
_iterator.f();
|
|
130
96
|
}
|
|
131
|
-
|
|
132
97
|
return false;
|
|
133
98
|
}
|
|
134
99
|
}, {
|
|
@@ -144,16 +109,13 @@ var I3STilesetTraverser = function (_TilesetTraverser) {
|
|
|
144
109
|
nodeUrl = tileset.getTileUrl("".concat(tileset.url, "/nodes/").concat(nodeId));
|
|
145
110
|
options = _objectSpread(_objectSpread({}, tileset.loadOptions), {}, {
|
|
146
111
|
i3s: _objectSpread(_objectSpread({}, tileset.loadOptions.i3s), {}, {
|
|
147
|
-
isTileHeader: true
|
|
148
|
-
loadContent: false
|
|
112
|
+
isTileHeader: true
|
|
149
113
|
})
|
|
150
114
|
});
|
|
151
115
|
_context.next = 5;
|
|
152
116
|
return (0, _core.load)(nodeUrl, loader, options);
|
|
153
|
-
|
|
154
117
|
case 5:
|
|
155
118
|
return _context.abrupt("return", _context.sent);
|
|
156
|
-
|
|
157
119
|
case 6:
|
|
158
120
|
case "end":
|
|
159
121
|
return _context.stop();
|
|
@@ -161,30 +123,26 @@ var I3STilesetTraverser = function (_TilesetTraverser) {
|
|
|
161
123
|
}
|
|
162
124
|
}, _callee);
|
|
163
125
|
}));
|
|
164
|
-
|
|
165
126
|
function _loadTile(_x, _x2) {
|
|
166
127
|
return _loadTile2.apply(this, arguments);
|
|
167
128
|
}
|
|
168
|
-
|
|
169
129
|
return _loadTile;
|
|
170
130
|
}()
|
|
171
131
|
}, {
|
|
172
132
|
key: "_onTileLoad",
|
|
173
|
-
value:
|
|
133
|
+
value:
|
|
134
|
+
function _onTileLoad(header, tile, extendedId) {
|
|
174
135
|
var childTile = new _tile3d.default(tile.tileset, header, tile, extendedId);
|
|
175
136
|
tile.children.push(childTile);
|
|
176
|
-
|
|
177
137
|
var frameState = this._tileManager.find(childTile.id).frameState;
|
|
178
|
-
|
|
179
138
|
this.updateTile(childTile, frameState);
|
|
180
139
|
|
|
181
|
-
if (this._frameNumber === frameState.frameNumber && (this.traversalFinished || new Date().getTime() - this.lastUpdate > this.updateDebounceTime)) {
|
|
140
|
+
if (this._frameNumber === frameState.frameNumber && (this.traversalFinished(frameState) || new Date().getTime() - this.lastUpdate > this.updateDebounceTime)) {
|
|
182
141
|
this.executeTraversal(childTile, frameState);
|
|
183
142
|
}
|
|
184
143
|
}
|
|
185
144
|
}]);
|
|
186
145
|
return I3STilesetTraverser;
|
|
187
146
|
}(_tilesetTraverser.default);
|
|
188
|
-
|
|
189
147
|
exports.default = I3STilesetTraverser;
|
|
190
148
|
//# sourceMappingURL=i3s-tileset-traverser.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"i3s-tileset-traverser.js","names":["I3STilesetTraverser","options","_tileManager","I3STileManager","frameState","hasPendingTiles","viewport","id","_frameNumber","tile","_lodJudge","getLodStatus","children","header","childTiles","tileset","child","extendedId","childTile","find","t","request","_loadTile","cachedRequest","nodePages","nodePagesTile","formTileFromNodePages","add","_onTileLoad","update","updateTile","nodeId","loader","nodeUrl","getTileUrl","url","loadOptions","i3s","isTileHeader","load","TileHeader","push","frameNumber","traversalFinished","Date","getTime","lastUpdate","updateDebounceTime","executeTraversal","TilesetTraverser"],"sources":["../../../../src/tileset/traversers/i3s-tileset-traverser.ts"],"sourcesContent":["import {load} from '@loaders.gl/core';\nimport TilesetTraverser from './tileset-traverser';\n\nimport {getLodStatus} from '../helpers/i3s-lod';\nimport TileHeader from '../tile-3d';\nimport I3STileManager from './i3s-tile-manager';\nimport {FrameState} from '../helpers/frame-state';\n\nexport default class I3STilesetTraverser extends TilesetTraverser {\n private _tileManager: I3STileManager;\n\n /**\n * Check if there are no penging tile header requests,\n * that means the traversal is finished and we can call\n * following-up callbacks.\n */\n protected traversalFinished(frameState: FrameState): boolean {\n return !this._tileManager.hasPendingTiles(frameState.viewport.id, this._frameNumber || 0);\n }\n\n constructor(options) {\n super(options);\n this._tileManager = new I3STileManager();\n }\n\n shouldRefine(tile, frameState: FrameState) {\n tile._lodJudge = getLodStatus(tile, frameState);\n return tile._lodJudge === 'DIG';\n }\n\n updateChildTiles(tile, frameState: FrameState): boolean {\n const children = tile.header.children || [];\n // children which are already fetched and constructed as Tile3D instances\n const childTiles = tile.children;\n const tileset = tile.tileset;\n\n for (const child of children) {\n const extendedId = `${child.id}-${frameState.viewport.id}`;\n // if child tile is not fetched\n const childTile = childTiles && childTiles.find((t) => t.id === extendedId);\n if (!childTile) {\n let request = () => this._loadTile(child.id, tileset);\n const cachedRequest = this._tileManager.find(extendedId);\n if (!cachedRequest) {\n // eslint-disable-next-line max-depth\n if (tileset.tileset.nodePages) {\n request = () => tileset.tileset.nodePagesTile.formTileFromNodePages(child.id);\n }\n this._tileManager.add(\n request,\n extendedId,\n (header) => this._onTileLoad(header, tile, extendedId),\n frameState\n );\n } else {\n // update frameNumber since it is still needed in current frame\n this._tileManager.update(extendedId, frameState);\n }\n } else if (childTile) {\n // if child tile is fetched and available\n this.updateTile(childTile, frameState);\n }\n }\n return false;\n }\n\n async _loadTile(nodeId, tileset) {\n const {loader} = tileset;\n const nodeUrl = tileset.getTileUrl(`${tileset.url}/nodes/${nodeId}`);\n // load metadata\n const options = {\n ...tileset.loadOptions,\n i3s: {\n ...tileset.loadOptions.i3s,\n isTileHeader: true\n }\n };\n\n return await load(nodeUrl, loader, options);\n }\n\n /**\n * The callback to init TileHeader instance after loading the tile JSON\n * @param {Object} header - the tile JSON from a dataset\n * @param {TileHeader} tile - the parent TileHeader instance\n * @param {string} extendedId - optional ID to separate copies of a tile for different viewports.\n * const extendedId = `${tile.id}-${frameState.viewport.id}`;\n * @return {void}\n */\n _onTileLoad(header, tile, extendedId) {\n // after child tile is fetched\n const childTile = new TileHeader(tile.tileset, header, tile, extendedId);\n tile.children.push(childTile);\n const frameState = this._tileManager.find(childTile.id).frameState;\n this.updateTile(childTile, frameState);\n\n // after tile fetched, resume traversal if still in current update/traversal frame\n if (\n this._frameNumber === frameState.frameNumber &&\n (this.traversalFinished(frameState) ||\n new Date().getTime() - this.lastUpdate > this.updateDebounceTime)\n ) {\n this.executeTraversal(childTile, frameState);\n }\n }\n}\n"],"mappings":"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"}
|
|
@@ -1,42 +1,27 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
8
7
|
exports.default = void 0;
|
|
9
|
-
|
|
10
8
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
11
|
-
|
|
12
9
|
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
13
|
-
|
|
14
10
|
var _get2 = _interopRequireDefault(require("@babel/runtime/helpers/get"));
|
|
15
|
-
|
|
16
11
|
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
17
|
-
|
|
18
12
|
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
19
|
-
|
|
20
13
|
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
21
|
-
|
|
22
14
|
var _constants = require("../../constants");
|
|
23
|
-
|
|
24
15
|
var _tilesetTraverser = _interopRequireDefault(require("./tileset-traverser"));
|
|
25
|
-
|
|
26
16
|
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
|
|
27
|
-
|
|
28
17
|
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
29
|
-
|
|
30
18
|
var Tileset3DTraverser = function (_TilesetTraverser) {
|
|
31
19
|
(0, _inherits2.default)(Tileset3DTraverser, _TilesetTraverser);
|
|
32
|
-
|
|
33
20
|
var _super = _createSuper(Tileset3DTraverser);
|
|
34
|
-
|
|
35
21
|
function Tileset3DTraverser() {
|
|
36
22
|
(0, _classCallCheck2.default)(this, Tileset3DTraverser);
|
|
37
23
|
return _super.apply(this, arguments);
|
|
38
24
|
}
|
|
39
|
-
|
|
40
25
|
(0, _createClass2.default)(Tileset3DTraverser, [{
|
|
41
26
|
key: "compareDistanceToCamera",
|
|
42
27
|
value: function compareDistanceToCamera(a, b) {
|
|
@@ -50,24 +35,19 @@ var Tileset3DTraverser = function (_TilesetTraverser) {
|
|
|
50
35
|
if (!tile.isVisibleAndInRequestVolume) {
|
|
51
36
|
return;
|
|
52
37
|
}
|
|
53
|
-
|
|
54
38
|
var hasChildren = tile.children.length > 0;
|
|
55
|
-
|
|
56
39
|
if (tile.hasTilesetContent && hasChildren) {
|
|
57
40
|
var firstChild = tile.children[0];
|
|
58
41
|
this.updateTileVisibility(firstChild, frameState);
|
|
59
42
|
tile._visible = firstChild._visible;
|
|
60
43
|
return;
|
|
61
44
|
}
|
|
62
|
-
|
|
63
45
|
if (this.meetsScreenSpaceErrorEarly(tile, frameState)) {
|
|
64
46
|
tile._visible = false;
|
|
65
47
|
return;
|
|
66
48
|
}
|
|
67
|
-
|
|
68
49
|
var replace = tile.refine === _constants.TILE_REFINEMENT.REPLACE;
|
|
69
50
|
var useOptimization = tile._optimChildrenWithinParent === _constants.TILE3D_OPTIMIZATION_HINT.USE_OPTIMIZATION;
|
|
70
|
-
|
|
71
51
|
if (replace && useOptimization && hasChildren) {
|
|
72
52
|
if (!this.anyChildrenVisible(tile, frameState)) {
|
|
73
53
|
tile._visible = false;
|
|
@@ -79,7 +59,6 @@ var Tileset3DTraverser = function (_TilesetTraverser) {
|
|
|
79
59
|
key: "meetsScreenSpaceErrorEarly",
|
|
80
60
|
value: function meetsScreenSpaceErrorEarly(tile, frameState) {
|
|
81
61
|
var parent = tile.parent;
|
|
82
|
-
|
|
83
62
|
if (!parent || parent.hasTilesetContent || parent.refine !== _constants.TILE_REFINEMENT.ADD) {
|
|
84
63
|
return false;
|
|
85
64
|
}
|
|
@@ -89,6 +68,5 @@ var Tileset3DTraverser = function (_TilesetTraverser) {
|
|
|
89
68
|
}]);
|
|
90
69
|
return Tileset3DTraverser;
|
|
91
70
|
}(_tilesetTraverser.default);
|
|
92
|
-
|
|
93
71
|
exports.default = Tileset3DTraverser;
|
|
94
72
|
//# sourceMappingURL=tileset-3d-traverser.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"tileset-3d-traverser.js","names":["Tileset3DTraverser","a","b","_distanceToCamera","_centerZDepth","tile","frameState","isVisibleAndInRequestVolume","hasChildren","children","length","hasTilesetContent","firstChild","updateTileVisibility","_visible","meetsScreenSpaceErrorEarly","replace","refine","TILE_REFINEMENT","REPLACE","useOptimization","_optimChildrenWithinParent","TILE3D_OPTIMIZATION_HINT","USE_OPTIMIZATION","anyChildrenVisible","parent","ADD","shouldRefine","TilesetTraverser"],"sources":["../../../../src/tileset/traversers/tileset-3d-traverser.ts"],"sourcesContent":["// This file is derived from the Cesium code base under Apache 2 license\n// See LICENSE.md and https://github.com/AnalyticalGraphicsInc/cesium/blob/master/LICENSE.md\n\nimport {TILE3D_OPTIMIZATION_HINT, TILE_REFINEMENT} from '../../constants';\nimport TilesetTraverser from './tileset-traverser';\n\nexport default class Tileset3DTraverser extends TilesetTraverser {\n compareDistanceToCamera(a, b) {\n // Sort by farthest child first since this is going on a stack\n return b._distanceToCamera === 0 && a._distanceToCamera === 0\n ? b._centerZDepth - a._centerZDepth\n : b._distanceToCamera - a._distanceToCamera;\n }\n\n updateTileVisibility(tile, frameState) {\n super.updateTileVisibility(tile, frameState);\n\n // Optimization - if none of the tile's children are visible then this tile isn't visible\n if (!tile.isVisibleAndInRequestVolume) {\n return;\n }\n\n const hasChildren = tile.children.length > 0;\n if (tile.hasTilesetContent && hasChildren) {\n // Use the root tile's visibility instead of this tile's visibility.\n // The root tile may be culled by the children bounds optimization in which\n // case this tile should also be culled.\n const firstChild = tile.children[0];\n this.updateTileVisibility(firstChild, frameState);\n tile._visible = firstChild._visible;\n return;\n }\n\n if (this.meetsScreenSpaceErrorEarly(tile, frameState)) {\n tile._visible = false;\n return;\n }\n\n const replace = tile.refine === TILE_REFINEMENT.REPLACE;\n const useOptimization =\n tile._optimChildrenWithinParent === TILE3D_OPTIMIZATION_HINT.USE_OPTIMIZATION;\n if (replace && useOptimization && hasChildren) {\n if (!this.anyChildrenVisible(tile, frameState)) {\n tile._visible = false;\n return;\n }\n }\n }\n\n meetsScreenSpaceErrorEarly(tile, frameState) {\n const {parent} = tile;\n if (!parent || parent.hasTilesetContent || parent.refine !== TILE_REFINEMENT.ADD) {\n return false;\n }\n\n // Use parent's geometric error with child's box to see if the tile already meet the SSE\n return !this.shouldRefine(tile, frameState, true);\n }\n}\n"],"mappings":";;;;;;;;;;;;;AAGA;AACA;AAAmD;AAAA;AAAA,IAE9BA,kBAAkB;EAAA;EAAA;EAAA;IAAA;IAAA;EAAA;EAAA;IAAA;IAAA,OACrC,iCAAwBC,CAAC,EAAEC,CAAC,EAAE;MAE5B,OAAOA,CAAC,CAACC,iBAAiB,KAAK,CAAC,IAAIF,CAAC,CAACE,iBAAiB,KAAK,CAAC,GACzDD,CAAC,CAACE,aAAa,GAAGH,CAAC,CAACG,aAAa,GACjCF,CAAC,CAACC,iBAAiB,GAAGF,CAAC,CAACE,iBAAiB;IAC/C;EAAC;IAAA;IAAA,OAED,8BAAqBE,IAAI,EAAEC,UAAU,EAAE;MACrC,yHAA2BD,IAAI,EAAEC,UAAU;;MAG3C,IAAI,CAACD,IAAI,CAACE,2BAA2B,EAAE;QACrC;MACF;MAEA,IAAMC,WAAW,GAAGH,IAAI,CAACI,QAAQ,CAACC,MAAM,GAAG,CAAC;MAC5C,IAAIL,IAAI,CAACM,iBAAiB,IAAIH,WAAW,EAAE;QAIzC,IAAMI,UAAU,GAAGP,IAAI,CAACI,QAAQ,CAAC,CAAC,CAAC;QACnC,IAAI,CAACI,oBAAoB,CAACD,UAAU,EAAEN,UAAU,CAAC;QACjDD,IAAI,CAACS,QAAQ,GAAGF,UAAU,CAACE,QAAQ;QACnC;MACF;MAEA,IAAI,IAAI,CAACC,0BAA0B,CAACV,IAAI,EAAEC,UAAU,CAAC,EAAE;QACrDD,IAAI,CAACS,QAAQ,GAAG,KAAK;QACrB;MACF;MAEA,IAAME,OAAO,GAAGX,IAAI,CAACY,MAAM,KAAKC,0BAAe,CAACC,OAAO;MACvD,IAAMC,eAAe,GACnBf,IAAI,CAACgB,0BAA0B,KAAKC,mCAAwB,CAACC,gBAAgB;MAC/E,IAAIP,OAAO,IAAII,eAAe,IAAIZ,WAAW,EAAE;QAC7C,IAAI,CAAC,IAAI,CAACgB,kBAAkB,CAACnB,IAAI,EAAEC,UAAU,CAAC,EAAE;UAC9CD,IAAI,CAACS,QAAQ,GAAG,KAAK;UACrB;QACF;MACF;IACF;EAAC;IAAA;IAAA,OAED,oCAA2BT,IAAI,EAAEC,UAAU,EAAE;MAC3C,IAAOmB,MAAM,GAAIpB,IAAI,CAAdoB,MAAM;MACb,IAAI,CAACA,MAAM,IAAIA,MAAM,CAACd,iBAAiB,IAAIc,MAAM,CAACR,MAAM,KAAKC,0BAAe,CAACQ,GAAG,EAAE;QAChF,OAAO,KAAK;MACd;;MAGA,OAAO,CAAC,IAAI,CAACC,YAAY,CAACtB,IAAI,EAAEC,UAAU,EAAE,IAAI,CAAC;IACnD;EAAC;EAAA;AAAA,EAnD6CsB,yBAAgB;AAAA"}
|