@loaders.gl/tiles 3.1.0-alpha.4 → 3.1.0-beta.3
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/bundle.d.ts +2 -0
- package/dist/bundle.d.ts.map +1 -0
- package/dist/bundle.js +8136 -0
- package/dist/constants.d.ts +32 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +35 -0
- package/dist/es5/bundle.js +1 -1
- package/dist/es5/bundle.js.map +1 -1
- package/dist/es5/constants.js +6 -6
- package/dist/es5/constants.js.map +1 -1
- package/dist/es5/index.js +20 -12
- package/dist/es5/index.js.map +1 -1
- package/dist/es5/tileset/helpers/bounding-volume.js +25 -37
- package/dist/es5/tileset/helpers/bounding-volume.js.map +1 -1
- package/dist/es5/tileset/helpers/frame-state.js +29 -25
- package/dist/es5/tileset/helpers/frame-state.js.map +1 -1
- package/dist/es5/tileset/helpers/i3s-lod.js +57 -106
- package/dist/es5/tileset/helpers/i3s-lod.js.map +1 -1
- package/dist/es5/tileset/helpers/tiles-3d-lod.js +51 -47
- package/dist/es5/tileset/helpers/tiles-3d-lod.js.map +1 -1
- package/dist/es5/tileset/helpers/transform-utils.js +21 -12
- package/dist/es5/tileset/helpers/transform-utils.js.map +1 -1
- package/dist/es5/tileset/helpers/zoom.js +17 -15
- package/dist/es5/tileset/helpers/zoom.js.map +1 -1
- package/dist/es5/tileset/tile-3d.js +328 -421
- package/dist/es5/tileset/tile-3d.js.map +1 -1
- package/dist/es5/tileset/tileset-3d.js +381 -563
- package/dist/es5/tileset/tileset-3d.js.map +1 -1
- package/dist/es5/tileset/tileset-cache.js +50 -63
- package/dist/es5/tileset/tileset-cache.js.map +1 -1
- package/dist/es5/tileset/traversers/i3s-tile-manager.js +32 -44
- package/dist/es5/tileset/traversers/i3s-tile-manager.js.map +1 -1
- package/dist/es5/tileset/traversers/i3s-tileset-traverser.js +53 -143
- package/dist/es5/tileset/traversers/i3s-tileset-traverser.js.map +1 -1
- package/dist/es5/tileset/traversers/tileset-3d-traverser.js +34 -62
- package/dist/es5/tileset/traversers/tileset-3d-traverser.js.map +1 -1
- package/dist/es5/tileset/traversers/tileset-traverser.js +209 -282
- package/dist/es5/tileset/traversers/tileset-traverser.js.map +1 -1
- package/dist/es5/utils/doubly-linked-list-node.js +12 -7
- package/dist/es5/utils/doubly-linked-list-node.js.map +1 -1
- package/dist/es5/utils/doubly-linked-list.js +68 -78
- package/dist/es5/utils/doubly-linked-list.js.map +1 -1
- package/dist/es5/utils/managed-array.js +90 -106
- package/dist/es5/utils/managed-array.js.map +1 -1
- package/dist/esm/index.js +1 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/tileset/helpers/i3s-lod.js +45 -86
- package/dist/esm/tileset/helpers/i3s-lod.js.map +1 -1
- package/dist/esm/tileset/helpers/transform-utils.js +4 -1
- package/dist/esm/tileset/helpers/transform-utils.js.map +1 -1
- package/dist/esm/tileset/tile-3d.js +3 -3
- package/dist/esm/tileset/tile-3d.js.map +1 -1
- package/dist/esm/tileset/tileset-3d.js +5 -5
- package/dist/esm/tileset/tileset-3d.js.map +1 -1
- package/dist/esm/tileset/tileset-cache.js.map +1 -1
- package/dist/esm/tileset/traversers/i3s-tileset-traverser.js +4 -4
- package/dist/esm/tileset/traversers/i3s-tileset-traverser.js.map +1 -1
- package/dist/esm/utils/doubly-linked-list-node.js +7 -0
- package/dist/esm/utils/doubly-linked-list-node.js.map +1 -1
- package/dist/esm/utils/doubly-linked-list.js +6 -3
- package/dist/esm/utils/doubly-linked-list.js.map +1 -1
- package/dist/esm/utils/managed-array.js +7 -1
- package/dist/esm/utils/managed-array.js.map +1 -1
- package/dist/index.d.ts +11 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +28 -0
- package/dist/tileset/helpers/3d-tiles-options.d.ts +4 -0
- package/dist/tileset/helpers/3d-tiles-options.d.ts.map +1 -0
- package/dist/tileset/helpers/3d-tiles-options.js +9 -0
- package/dist/tileset/helpers/bounding-volume.d.ts +9 -0
- package/dist/tileset/helpers/bounding-volume.d.ts.map +1 -0
- package/dist/tileset/helpers/bounding-volume.js +177 -0
- package/dist/tileset/helpers/frame-state.d.ts +17 -0
- package/dist/tileset/helpers/frame-state.d.ts.map +1 -0
- package/dist/tileset/helpers/frame-state.js +70 -0
- package/dist/tileset/helpers/i3s-lod.d.ts +20 -0
- package/dist/tileset/helpers/i3s-lod.d.ts.map +1 -0
- package/dist/tileset/helpers/i3s-lod.js +83 -0
- package/dist/tileset/helpers/tiles-3d-lod.d.ts +8 -0
- package/dist/tileset/helpers/tiles-3d-lod.d.ts.map +1 -0
- package/dist/tileset/helpers/tiles-3d-lod.js +116 -0
- package/dist/tileset/helpers/transform-utils.d.ts +2 -0
- package/dist/tileset/helpers/transform-utils.d.ts.map +1 -0
- package/dist/tileset/helpers/transform-utils.js +52 -0
- package/dist/tileset/helpers/zoom.d.ts +7 -0
- package/dist/tileset/helpers/zoom.d.ts.map +1 -0
- package/dist/tileset/helpers/zoom.js +42 -0
- package/dist/tileset/tile-3d.d.ts +174 -0
- package/dist/tileset/tile-3d.d.ts.map +1 -0
- package/dist/tileset/tile-3d.js +554 -0
- package/dist/tileset/tileset-3d.d.ts +172 -0
- package/dist/tileset/tileset-3d.d.ts.map +1 -0
- package/dist/tileset/tileset-3d.js +601 -0
- package/dist/tileset/tileset-cache.d.ts +18 -0
- package/dist/tileset/tileset-cache.d.ts.map +1 -0
- package/dist/tileset/tileset-cache.js +79 -0
- package/dist/tileset/traversers/i3s-tile-manager.d.ts +8 -0
- package/dist/tileset/traversers/i3s-tile-manager.d.ts.map +1 -0
- package/dist/tileset/traversers/i3s-tile-manager.js +36 -0
- package/dist/tileset/traversers/i3s-tileset-traverser.d.ts +18 -0
- package/dist/tileset/traversers/i3s-tileset-traverser.d.ts.map +1 -0
- package/dist/tileset/traversers/i3s-tileset-traverser.js +85 -0
- package/dist/tileset/traversers/tileset-3d-traverser.d.ts +7 -0
- package/dist/tileset/traversers/tileset-3d-traverser.d.ts.map +1 -0
- package/dist/tileset/traversers/tileset-3d-traverser.js +55 -0
- package/dist/tileset/traversers/tileset-traverser.d.ts +52 -0
- package/dist/tileset/traversers/tileset-traverser.d.ts.map +1 -0
- package/dist/tileset/traversers/tileset-traverser.js +294 -0
- package/dist/utils/doubly-linked-list-node.d.ts +12 -0
- package/dist/utils/doubly-linked-list-node.d.ts.map +1 -0
- package/dist/utils/doubly-linked-list-node.js +17 -0
- package/dist/utils/doubly-linked-list.d.ts +31 -0
- package/dist/utils/doubly-linked-list.d.ts.map +1 -0
- package/dist/utils/doubly-linked-list.js +100 -0
- package/dist/utils/managed-array.d.ts +85 -0
- package/dist/utils/managed-array.d.ts.map +1 -0
- package/dist/utils/managed-array.js +151 -0
- package/package.json +9 -7
- package/src/index.ts +1 -0
- package/src/tileset/helpers/i3s-lod.ts +72 -96
- package/src/tileset/helpers/transform-utils.ts +3 -1
- package/src/tileset/tile-3d.ts +2 -2
- package/src/tileset/tileset-cache.ts +2 -0
- package/src/tileset/traversers/i3s-tileset-traverser.ts +2 -3
- package/src/utils/{doubly-linked-list-node.js → doubly-linked-list-node.ts} +4 -0
- package/src/utils/{doubly-linked-list.js → doubly-linked-list.ts} +3 -5
- package/src/utils/{managed-array.js → managed-array.ts} +4 -1
- package/dist/dist.min.js +0 -2
- package/dist/dist.min.js.map +0 -1
|
@@ -7,22 +7,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
});
|
|
8
8
|
exports.default = void 0;
|
|
9
9
|
|
|
10
|
-
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
11
|
-
|
|
12
|
-
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
13
|
-
|
|
14
|
-
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
15
|
-
|
|
16
|
-
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
17
|
-
|
|
18
|
-
var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
|
|
19
|
-
|
|
20
|
-
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
21
|
-
|
|
22
|
-
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
23
|
-
|
|
24
|
-
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
25
|
-
|
|
26
10
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
27
11
|
|
|
28
12
|
var _core = require("@loaders.gl/core");
|
|
@@ -35,151 +19,77 @@ var _tile3d = _interopRequireDefault(require("../tile-3d"));
|
|
|
35
19
|
|
|
36
20
|
var _i3sTileManager = _interopRequireDefault(require("./i3s-tile-manager"));
|
|
37
21
|
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
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
|
-
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
|
-
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); }; }
|
|
22
|
+
class I3STilesetTraverser extends _tilesetTraverser.default {
|
|
23
|
+
constructor(options) {
|
|
24
|
+
super(options);
|
|
25
|
+
(0, _defineProperty2.default)(this, "_tileManager", void 0);
|
|
26
|
+
this._tileManager = new _i3sTileManager.default();
|
|
27
|
+
}
|
|
49
28
|
|
|
50
|
-
|
|
29
|
+
shouldRefine(tile, frameState) {
|
|
30
|
+
tile._lodJudge = (0, _i3sLod.getLodStatus)(tile, frameState);
|
|
31
|
+
return tile._lodJudge === 'DIG';
|
|
32
|
+
}
|
|
51
33
|
|
|
52
|
-
|
|
53
|
-
|
|
34
|
+
updateChildTiles(tile, frameState) {
|
|
35
|
+
const children = tile.header.children || [];
|
|
36
|
+
const childTiles = tile.children;
|
|
37
|
+
const tileset = tile.tileset;
|
|
54
38
|
|
|
55
|
-
|
|
39
|
+
for (const child of children) {
|
|
40
|
+
const extendedId = "".concat(child.id, "-").concat(frameState.viewport.id);
|
|
41
|
+
const childTile = childTiles && childTiles.find(t => t.id === extendedId);
|
|
56
42
|
|
|
57
|
-
|
|
58
|
-
|
|
43
|
+
if (!childTile) {
|
|
44
|
+
let request = () => this._loadTile(child.id, tileset);
|
|
59
45
|
|
|
60
|
-
|
|
61
|
-
_this = _super.call(this, options);
|
|
62
|
-
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "_tileManager", void 0);
|
|
63
|
-
_this._tileManager = new _i3sTileManager.default();
|
|
64
|
-
return _this;
|
|
65
|
-
}
|
|
46
|
+
const cachedRequest = this._tileManager.find(extendedId);
|
|
66
47
|
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
tile._lodJudge = (0, _i3sLod.lodJudge)(tile, frameState);
|
|
71
|
-
return tile._lodJudge === 'DIG';
|
|
72
|
-
}
|
|
73
|
-
}, {
|
|
74
|
-
key: "updateChildTiles",
|
|
75
|
-
value: function updateChildTiles(tile, frameState) {
|
|
76
|
-
var _this2 = this;
|
|
77
|
-
|
|
78
|
-
var children = tile.header.children || [];
|
|
79
|
-
var childTiles = tile.children;
|
|
80
|
-
var tileset = tile.tileset;
|
|
81
|
-
|
|
82
|
-
var _iterator = _createForOfIteratorHelper(children),
|
|
83
|
-
_step;
|
|
84
|
-
|
|
85
|
-
try {
|
|
86
|
-
var _loop = function _loop() {
|
|
87
|
-
var child = _step.value;
|
|
88
|
-
var extendedId = "".concat(child.id, "-").concat(frameState.viewport.id);
|
|
89
|
-
var childTile = childTiles && childTiles.find(function (t) {
|
|
90
|
-
return t.id === extendedId;
|
|
91
|
-
});
|
|
92
|
-
|
|
93
|
-
if (!childTile) {
|
|
94
|
-
var request = function request() {
|
|
95
|
-
return _this2._loadTile(child.id, tileset);
|
|
96
|
-
};
|
|
97
|
-
|
|
98
|
-
var cachedRequest = _this2._tileManager.find(extendedId);
|
|
99
|
-
|
|
100
|
-
if (!cachedRequest) {
|
|
101
|
-
if (tileset.tileset.nodePages) {
|
|
102
|
-
request = function request() {
|
|
103
|
-
return tileset.tileset.nodePagesTile.formTileFromNodePages(child.id);
|
|
104
|
-
};
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
_this2._tileManager.add(request, extendedId, function (header) {
|
|
108
|
-
return _this2._onTileLoad(header, tile, extendedId);
|
|
109
|
-
}, frameState);
|
|
110
|
-
} else {
|
|
111
|
-
_this2._tileManager.update(extendedId, frameState);
|
|
112
|
-
}
|
|
113
|
-
} else if (childTile) {
|
|
114
|
-
_this2.updateTile(childTile, frameState);
|
|
48
|
+
if (!cachedRequest) {
|
|
49
|
+
if (tileset.tileset.nodePages) {
|
|
50
|
+
request = () => tileset.tileset.nodePagesTile.formTileFromNodePages(child.id);
|
|
115
51
|
}
|
|
116
|
-
};
|
|
117
52
|
|
|
118
|
-
|
|
119
|
-
|
|
53
|
+
this._tileManager.add(request, extendedId, header => this._onTileLoad(header, tile, extendedId), frameState);
|
|
54
|
+
} else {
|
|
55
|
+
this._tileManager.update(extendedId, frameState);
|
|
120
56
|
}
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
} finally {
|
|
124
|
-
_iterator.f();
|
|
57
|
+
} else if (childTile) {
|
|
58
|
+
this.updateTile(childTile, frameState);
|
|
125
59
|
}
|
|
126
|
-
|
|
127
|
-
return false;
|
|
128
60
|
}
|
|
129
|
-
}, {
|
|
130
|
-
key: "_loadTile",
|
|
131
|
-
value: function () {
|
|
132
|
-
var _loadTile2 = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(nodeId, tileset) {
|
|
133
|
-
var loader, nodeUrl, options;
|
|
134
|
-
return _regenerator.default.wrap(function _callee$(_context) {
|
|
135
|
-
while (1) {
|
|
136
|
-
switch (_context.prev = _context.next) {
|
|
137
|
-
case 0:
|
|
138
|
-
loader = tileset.loader;
|
|
139
|
-
nodeUrl = tileset.getTileUrl("".concat(tileset.url, "/nodes/").concat(nodeId));
|
|
140
|
-
options = _objectSpread(_objectSpread({}, tileset.loadOptions), {}, {
|
|
141
|
-
i3s: _objectSpread(_objectSpread({}, tileset.loadOptions.i3s), {}, {
|
|
142
|
-
isTileHeader: true,
|
|
143
|
-
loadContent: false
|
|
144
|
-
})
|
|
145
|
-
});
|
|
146
|
-
_context.next = 5;
|
|
147
|
-
return (0, _core.load)(nodeUrl, loader, options);
|
|
148
|
-
|
|
149
|
-
case 5:
|
|
150
|
-
return _context.abrupt("return", _context.sent);
|
|
151
|
-
|
|
152
|
-
case 6:
|
|
153
|
-
case "end":
|
|
154
|
-
return _context.stop();
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
}, _callee);
|
|
158
|
-
}));
|
|
159
61
|
|
|
160
|
-
|
|
161
|
-
|
|
62
|
+
return false;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
async _loadTile(nodeId, tileset) {
|
|
66
|
+
const {
|
|
67
|
+
loader
|
|
68
|
+
} = tileset;
|
|
69
|
+
const nodeUrl = tileset.getTileUrl("".concat(tileset.url, "/nodes/").concat(nodeId));
|
|
70
|
+
const options = { ...tileset.loadOptions,
|
|
71
|
+
i3s: { ...tileset.loadOptions.i3s,
|
|
72
|
+
isTileHeader: true,
|
|
73
|
+
loadContent: false
|
|
162
74
|
}
|
|
75
|
+
};
|
|
76
|
+
return await (0, _core.load)(nodeUrl, loader, options);
|
|
77
|
+
}
|
|
163
78
|
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
key: "_onTileLoad",
|
|
168
|
-
value: function _onTileLoad(header, tile, extendedId) {
|
|
169
|
-
var childTile = new _tile3d.default(tile.tileset, header, tile, extendedId);
|
|
170
|
-
tile.children.push(childTile);
|
|
79
|
+
_onTileLoad(header, tile, extendedId) {
|
|
80
|
+
const childTile = new _tile3d.default(tile.tileset, header, tile, extendedId);
|
|
81
|
+
tile.children.push(childTile);
|
|
171
82
|
|
|
172
|
-
|
|
83
|
+
const frameState = this._tileManager.find(childTile.id).frameState;
|
|
173
84
|
|
|
174
|
-
|
|
85
|
+
this.updateTile(childTile, frameState);
|
|
175
86
|
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
}
|
|
87
|
+
if (this._frameNumber === frameState.frameNumber) {
|
|
88
|
+
this.executeTraversal(childTile, frameState);
|
|
179
89
|
}
|
|
180
|
-
}
|
|
181
|
-
|
|
182
|
-
}
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
}
|
|
183
93
|
|
|
184
94
|
exports.default = I3STilesetTraverser;
|
|
185
95
|
//# sourceMappingURL=i3s-tileset-traverser.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/tileset/traversers/i3s-tileset-traverser.ts"],"names":["I3STilesetTraverser","options","_tileManager","I3STileManager","tile","frameState","_lodJudge","children","header","childTiles","tileset","child","extendedId","id","viewport","childTile","find","t","request","_loadTile","cachedRequest","nodePages","nodePagesTile","formTileFromNodePages","add","_onTileLoad","update","updateTile","nodeId","loader","nodeUrl","getTileUrl","url","loadOptions","i3s","isTileHeader","loadContent","TileHeader","push","_frameNumber","frameNumber","executeTraversal"
|
|
1
|
+
{"version":3,"sources":["../../../../src/tileset/traversers/i3s-tileset-traverser.ts"],"names":["I3STilesetTraverser","TilesetTraverser","constructor","options","_tileManager","I3STileManager","shouldRefine","tile","frameState","_lodJudge","updateChildTiles","children","header","childTiles","tileset","child","extendedId","id","viewport","childTile","find","t","request","_loadTile","cachedRequest","nodePages","nodePagesTile","formTileFromNodePages","add","_onTileLoad","update","updateTile","nodeId","loader","nodeUrl","getTileUrl","url","loadOptions","i3s","isTileHeader","loadContent","TileHeader","push","_frameNumber","frameNumber","executeTraversal"],"mappings":";;;;;;;;;;;AAAA;;AACA;;AAEA;;AACA;;AACA;;AAEe,MAAMA,mBAAN,SAAkCC,yBAAlC,CAAmD;AAGhEC,EAAAA,WAAW,CAACC,OAAD,EAAU;AACnB,UAAMA,OAAN;AADmB;AAEnB,SAAKC,YAAL,GAAoB,IAAIC,uBAAJ,EAApB;AACD;;AAEDC,EAAAA,YAAY,CAACC,IAAD,EAAOC,UAAP,EAAmB;AAC7BD,IAAAA,IAAI,CAACE,SAAL,GAAiB,0BAAaF,IAAb,EAAmBC,UAAnB,CAAjB;AACA,WAAOD,IAAI,CAACE,SAAL,KAAmB,KAA1B;AACD;;AAEDC,EAAAA,gBAAgB,CAACH,IAAD,EAAOC,UAAP,EAA4B;AAC1C,UAAMG,QAAQ,GAAGJ,IAAI,CAACK,MAAL,CAAYD,QAAZ,IAAwB,EAAzC;AAEA,UAAME,UAAU,GAAGN,IAAI,CAACI,QAAxB;AACA,UAAMG,OAAO,GAAGP,IAAI,CAACO,OAArB;;AAEA,SAAK,MAAMC,KAAX,IAAoBJ,QAApB,EAA8B;AAC5B,YAAMK,UAAU,aAAMD,KAAK,CAACE,EAAZ,cAAkBT,UAAU,CAACU,QAAX,CAAoBD,EAAtC,CAAhB;AAEA,YAAME,SAAS,GAAGN,UAAU,IAAIA,UAAU,CAACO,IAAX,CAAiBC,CAAD,IAAOA,CAAC,CAACJ,EAAF,KAASD,UAAhC,CAAhC;;AACA,UAAI,CAACG,SAAL,EAAgB;AACd,YAAIG,OAAO,GAAG,MAAM,KAAKC,SAAL,CAAeR,KAAK,CAACE,EAArB,EAAyBH,OAAzB,CAApB;;AACA,cAAMU,aAAa,GAAG,KAAKpB,YAAL,CAAkBgB,IAAlB,CAAuBJ,UAAvB,CAAtB;;AACA,YAAI,CAACQ,aAAL,EAAoB;AAElB,cAAIV,OAAO,CAACA,OAAR,CAAgBW,SAApB,EAA+B;AAC7BH,YAAAA,OAAO,GAAG,MAAMR,OAAO,CAACA,OAAR,CAAgBY,aAAhB,CAA8BC,qBAA9B,CAAoDZ,KAAK,CAACE,EAA1D,CAAhB;AACD;;AACD,eAAKb,YAAL,CAAkBwB,GAAlB,CACEN,OADF,EAEEN,UAFF,EAGGJ,MAAD,IAAY,KAAKiB,WAAL,CAAiBjB,MAAjB,EAAyBL,IAAzB,EAA+BS,UAA/B,CAHd,EAIER,UAJF;AAMD,SAXD,MAWO;AAEL,eAAKJ,YAAL,CAAkB0B,MAAlB,CAAyBd,UAAzB,EAAqCR,UAArC;AACD;AACF,OAlBD,MAkBO,IAAIW,SAAJ,EAAe;AAEpB,aAAKY,UAAL,CAAgBZ,SAAhB,EAA2BX,UAA3B;AACD;AACF;;AACD,WAAO,KAAP;AACD;;AAEc,QAATe,SAAS,CAACS,MAAD,EAASlB,OAAT,EAAkB;AAC/B,UAAM;AAACmB,MAAAA;AAAD,QAAWnB,OAAjB;AACA,UAAMoB,OAAO,GAAGpB,OAAO,CAACqB,UAAR,WAAsBrB,OAAO,CAACsB,GAA9B,oBAA2CJ,MAA3C,EAAhB;AAEA,UAAM7B,OAAO,GAAG,EACd,GAAGW,OAAO,CAACuB,WADG;AAEdC,MAAAA,GAAG,EAAE,EACH,GAAGxB,OAAO,CAACuB,WAAR,CAAoBC,GADpB;AAEHC,QAAAA,YAAY,EAAE,IAFX;AAGHC,QAAAA,WAAW,EAAE;AAHV;AAFS,KAAhB;AASA,WAAO,MAAM,gBAAKN,OAAL,EAAcD,MAAd,EAAsB9B,OAAtB,CAAb;AACD;;AAUD0B,EAAAA,WAAW,CAACjB,MAAD,EAASL,IAAT,EAAeS,UAAf,EAA2B;AAEpC,UAAMG,SAAS,GAAG,IAAIsB,eAAJ,CAAelC,IAAI,CAACO,OAApB,EAA6BF,MAA7B,EAAqCL,IAArC,EAA2CS,UAA3C,CAAlB;AACAT,IAAAA,IAAI,CAACI,QAAL,CAAc+B,IAAd,CAAmBvB,SAAnB;;AACA,UAAMX,UAAU,GAAG,KAAKJ,YAAL,CAAkBgB,IAAlB,CAAuBD,SAAS,CAACF,EAAjC,EAAqCT,UAAxD;;AACA,SAAKuB,UAAL,CAAgBZ,SAAhB,EAA2BX,UAA3B;;AAGA,QAAI,KAAKmC,YAAL,KAAsBnC,UAAU,CAACoC,WAArC,EAAkD;AAChD,WAAKC,gBAAL,CAAsB1B,SAAtB,EAAiCX,UAAjC;AACD;AACF;;AApF+D","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';\n\nexport default class I3STilesetTraverser extends TilesetTraverser {\n private _tileManager: I3STileManager;\n\n constructor(options) {\n super(options);\n this._tileManager = new I3STileManager();\n }\n\n shouldRefine(tile, frameState) {\n tile._lodJudge = getLodStatus(tile, frameState);\n return tile._lodJudge === 'DIG';\n }\n\n updateChildTiles(tile, 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 loadContent: false\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 (this._frameNumber === frameState.frameNumber) {\n this.executeTraversal(childTile, frameState);\n }\n }\n}\n"],"file":"i3s-tileset-traverser.js"}
|
|
@@ -7,88 +7,60 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
});
|
|
8
8
|
exports.default = void 0;
|
|
9
9
|
|
|
10
|
-
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
11
|
-
|
|
12
|
-
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
13
|
-
|
|
14
|
-
var _get2 = _interopRequireDefault(require("@babel/runtime/helpers/get"));
|
|
15
|
-
|
|
16
|
-
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
17
|
-
|
|
18
|
-
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
19
|
-
|
|
20
|
-
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
21
|
-
|
|
22
10
|
var _constants = require("../../constants");
|
|
23
11
|
|
|
24
12
|
var _tilesetTraverser = _interopRequireDefault(require("./tileset-traverser"));
|
|
25
13
|
|
|
26
|
-
|
|
14
|
+
class Tileset3DTraverser extends _tilesetTraverser.default {
|
|
15
|
+
compareDistanceToCamera(a, b) {
|
|
16
|
+
return b._distanceToCamera === 0 && a._distanceToCamera === 0 ? b._centerZDepth - a._centerZDepth : b._distanceToCamera - a._distanceToCamera;
|
|
17
|
+
}
|
|
27
18
|
|
|
28
|
-
|
|
19
|
+
updateTileVisibility(tile, frameState) {
|
|
20
|
+
super.updateTileVisibility(tile, frameState);
|
|
29
21
|
|
|
30
|
-
|
|
31
|
-
|
|
22
|
+
if (!tile.isVisibleAndInRequestVolume) {
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
32
25
|
|
|
33
|
-
|
|
26
|
+
const hasChildren = tile.children.length > 0;
|
|
34
27
|
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
(0, _createClass2.default)(Tileset3DTraverser, [{
|
|
41
|
-
key: "compareDistanceToCamera",
|
|
42
|
-
value: function compareDistanceToCamera(a, b) {
|
|
43
|
-
return b._distanceToCamera === 0 && a._distanceToCamera === 0 ? b._centerZDepth - a._centerZDepth : b._distanceToCamera - a._distanceToCamera;
|
|
28
|
+
if (tile.hasTilesetContent && hasChildren) {
|
|
29
|
+
const firstChild = tile.children[0];
|
|
30
|
+
this.updateTileVisibility(firstChild, frameState);
|
|
31
|
+
tile._visible = firstChild._visible;
|
|
32
|
+
return;
|
|
44
33
|
}
|
|
45
|
-
}, {
|
|
46
|
-
key: "updateTileVisibility",
|
|
47
|
-
value: function updateTileVisibility(tile, frameState) {
|
|
48
|
-
(0, _get2.default)((0, _getPrototypeOf2.default)(Tileset3DTraverser.prototype), "updateTileVisibility", this).call(this, tile, frameState);
|
|
49
|
-
|
|
50
|
-
if (!tile.isVisibleAndInRequestVolume) {
|
|
51
|
-
return;
|
|
52
|
-
}
|
|
53
34
|
|
|
54
|
-
|
|
35
|
+
if (this.meetsScreenSpaceErrorEarly(tile, frameState)) {
|
|
36
|
+
tile._visible = false;
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
55
39
|
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
this.updateTileVisibility(firstChild, frameState);
|
|
59
|
-
tile._visible = firstChild._visible;
|
|
60
|
-
return;
|
|
61
|
-
}
|
|
40
|
+
const replace = tile.refine === _constants.TILE_REFINEMENT.REPLACE;
|
|
41
|
+
const useOptimization = tile._optimChildrenWithinParent === _constants.TILE3D_OPTIMIZATION_HINT.USE_OPTIMIZATION;
|
|
62
42
|
|
|
63
|
-
|
|
43
|
+
if (replace && useOptimization && hasChildren) {
|
|
44
|
+
if (!this.anyChildrenVisible(tile, frameState)) {
|
|
64
45
|
tile._visible = false;
|
|
65
46
|
return;
|
|
66
47
|
}
|
|
48
|
+
}
|
|
49
|
+
}
|
|
67
50
|
|
|
68
|
-
|
|
69
|
-
|
|
51
|
+
meetsScreenSpaceErrorEarly(tile, frameState) {
|
|
52
|
+
const {
|
|
53
|
+
parent
|
|
54
|
+
} = tile;
|
|
70
55
|
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
tile._visible = false;
|
|
74
|
-
return;
|
|
75
|
-
}
|
|
76
|
-
}
|
|
56
|
+
if (!parent || parent.hasTilesetContent || parent.refine !== _constants.TILE_REFINEMENT.ADD) {
|
|
57
|
+
return false;
|
|
77
58
|
}
|
|
78
|
-
}, {
|
|
79
|
-
key: "meetsScreenSpaceErrorEarly",
|
|
80
|
-
value: function meetsScreenSpaceErrorEarly(tile, frameState) {
|
|
81
|
-
var parent = tile.parent;
|
|
82
59
|
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
}
|
|
60
|
+
return !this.shouldRefine(tile, frameState, true);
|
|
61
|
+
}
|
|
86
62
|
|
|
87
|
-
|
|
88
|
-
}
|
|
89
|
-
}]);
|
|
90
|
-
return Tileset3DTraverser;
|
|
91
|
-
}(_tilesetTraverser.default);
|
|
63
|
+
}
|
|
92
64
|
|
|
93
65
|
exports.default = Tileset3DTraverser;
|
|
94
66
|
//# sourceMappingURL=tileset-3d-traverser.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/tileset/traversers/tileset-3d-traverser.ts"],"names":["Tileset3DTraverser","a","b","_distanceToCamera","_centerZDepth","tile","frameState","isVisibleAndInRequestVolume","hasChildren","children","length","hasTilesetContent","firstChild","
|
|
1
|
+
{"version":3,"sources":["../../../../src/tileset/traversers/tileset-3d-traverser.ts"],"names":["Tileset3DTraverser","TilesetTraverser","compareDistanceToCamera","a","b","_distanceToCamera","_centerZDepth","updateTileVisibility","tile","frameState","isVisibleAndInRequestVolume","hasChildren","children","length","hasTilesetContent","firstChild","_visible","meetsScreenSpaceErrorEarly","replace","refine","TILE_REFINEMENT","REPLACE","useOptimization","_optimChildrenWithinParent","TILE3D_OPTIMIZATION_HINT","USE_OPTIMIZATION","anyChildrenVisible","parent","ADD","shouldRefine"],"mappings":";;;;;;;;;AAGA;;AACA;;AAEe,MAAMA,kBAAN,SAAiCC,yBAAjC,CAAkD;AAC/DC,EAAAA,uBAAuB,CAACC,CAAD,EAAIC,CAAJ,EAAO;AAE5B,WAAOA,CAAC,CAACC,iBAAF,KAAwB,CAAxB,IAA6BF,CAAC,CAACE,iBAAF,KAAwB,CAArD,GACHD,CAAC,CAACE,aAAF,GAAkBH,CAAC,CAACG,aADjB,GAEHF,CAAC,CAACC,iBAAF,GAAsBF,CAAC,CAACE,iBAF5B;AAGD;;AAEDE,EAAAA,oBAAoB,CAACC,IAAD,EAAOC,UAAP,EAAmB;AACrC,UAAMF,oBAAN,CAA2BC,IAA3B,EAAiCC,UAAjC;;AAGA,QAAI,CAACD,IAAI,CAACE,2BAAV,EAAuC;AACrC;AACD;;AAED,UAAMC,WAAW,GAAGH,IAAI,CAACI,QAAL,CAAcC,MAAd,GAAuB,CAA3C;;AACA,QAAIL,IAAI,CAACM,iBAAL,IAA0BH,WAA9B,EAA2C;AAIzC,YAAMI,UAAU,GAAGP,IAAI,CAACI,QAAL,CAAc,CAAd,CAAnB;AACA,WAAKL,oBAAL,CAA0BQ,UAA1B,EAAsCN,UAAtC;AACAD,MAAAA,IAAI,CAACQ,QAAL,GAAgBD,UAAU,CAACC,QAA3B;AACA;AACD;;AAED,QAAI,KAAKC,0BAAL,CAAgCT,IAAhC,EAAsCC,UAAtC,CAAJ,EAAuD;AACrDD,MAAAA,IAAI,CAACQ,QAAL,GAAgB,KAAhB;AACA;AACD;;AAED,UAAME,OAAO,GAAGV,IAAI,CAACW,MAAL,KAAgBC,2BAAgBC,OAAhD;AACA,UAAMC,eAAe,GACnBd,IAAI,CAACe,0BAAL,KAAoCC,oCAAyBC,gBAD/D;;AAEA,QAAIP,OAAO,IAAII,eAAX,IAA8BX,WAAlC,EAA+C;AAC7C,UAAI,CAAC,KAAKe,kBAAL,CAAwBlB,IAAxB,EAA8BC,UAA9B,CAAL,EAAgD;AAC9CD,QAAAA,IAAI,CAACQ,QAAL,GAAgB,KAAhB;AACA;AACD;AACF;AACF;;AAEDC,EAAAA,0BAA0B,CAACT,IAAD,EAAOC,UAAP,EAAmB;AAC3C,UAAM;AAACkB,MAAAA;AAAD,QAAWnB,IAAjB;;AACA,QAAI,CAACmB,MAAD,IAAWA,MAAM,CAACb,iBAAlB,IAAuCa,MAAM,CAACR,MAAP,KAAkBC,2BAAgBQ,GAA7E,EAAkF;AAChF,aAAO,KAAP;AACD;;AAGD,WAAO,CAAC,KAAKC,YAAL,CAAkBrB,IAAlB,EAAwBC,UAAxB,EAAoC,IAApC,CAAR;AACD;;AAnD8D","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"],"file":"tileset-3d-traverser.js"}
|