@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.
Files changed (124) hide show
  1. package/dist/dist.min.js +1027 -1431
  2. package/dist/es5/bundle.js +0 -1
  3. package/dist/es5/bundle.js.map +1 -1
  4. package/dist/es5/constants.js +2 -1
  5. package/dist/es5/constants.js.map +1 -1
  6. package/dist/es5/index.js +26 -36
  7. package/dist/es5/index.js.map +1 -1
  8. package/dist/es5/tileset/helpers/3d-tiles-options.js +0 -1
  9. package/dist/es5/tileset/helpers/3d-tiles-options.js.map +1 -1
  10. package/dist/es5/tileset/helpers/bounding-volume.js +7 -26
  11. package/dist/es5/tileset/helpers/bounding-volume.js.map +1 -1
  12. package/dist/es5/tileset/helpers/frame-state.js +45 -50
  13. package/dist/es5/tileset/helpers/frame-state.js.map +1 -1
  14. package/dist/es5/tileset/helpers/i3s-lod.js +0 -13
  15. package/dist/es5/tileset/helpers/i3s-lod.js.map +1 -1
  16. package/dist/es5/tileset/helpers/tiles-3d-lod.js +7 -16
  17. package/dist/es5/tileset/helpers/tiles-3d-lod.js.map +1 -1
  18. package/dist/es5/tileset/helpers/transform-utils.js +2 -11
  19. package/dist/es5/tileset/helpers/transform-utils.js.map +1 -1
  20. package/dist/es5/tileset/helpers/zoom.js +6 -16
  21. package/dist/es5/tileset/helpers/zoom.js.map +1 -1
  22. package/dist/es5/tileset/tile-3d.js +111 -98
  23. package/dist/es5/tileset/tile-3d.js.map +1 -1
  24. package/dist/es5/tileset/tileset-3d.js +130 -196
  25. package/dist/es5/tileset/tileset-3d.js.map +1 -1
  26. package/dist/es5/tileset/tileset-cache.js +1 -14
  27. package/dist/es5/tileset/tileset-cache.js.map +1 -1
  28. package/dist/es5/tileset/traversers/{i3s-frame-counter.js → i3s-pending-tiles-register.js} +21 -16
  29. package/dist/es5/tileset/traversers/i3s-pending-tiles-register.js.map +1 -0
  30. package/dist/es5/tileset/traversers/i3s-tile-manager.js +33 -27
  31. package/dist/es5/tileset/traversers/i3s-tile-manager.js.map +1 -1
  32. package/dist/es5/tileset/traversers/i3s-tileset-traverser.js +10 -52
  33. package/dist/es5/tileset/traversers/i3s-tileset-traverser.js.map +1 -1
  34. package/dist/es5/tileset/traversers/tileset-3d-traverser.js +0 -22
  35. package/dist/es5/tileset/traversers/tileset-3d-traverser.js.map +1 -1
  36. package/dist/es5/tileset/traversers/tileset-traverser.js +55 -78
  37. package/dist/es5/tileset/traversers/tileset-traverser.js.map +1 -1
  38. package/dist/es5/types.js.map +1 -1
  39. package/dist/es5/utils/doubly-linked-list-node.js +3 -7
  40. package/dist/es5/utils/doubly-linked-list-node.js.map +1 -1
  41. package/dist/es5/utils/doubly-linked-list.js +9 -17
  42. package/dist/es5/utils/doubly-linked-list.js.map +1 -1
  43. package/dist/es5/utils/managed-array.js +29 -30
  44. package/dist/es5/utils/managed-array.js.map +1 -1
  45. package/dist/esm/bundle.js +1 -1
  46. package/dist/esm/bundle.js.map +1 -1
  47. package/dist/esm/constants.js +3 -0
  48. package/dist/esm/constants.js.map +1 -1
  49. package/dist/esm/index.js.map +1 -1
  50. package/dist/esm/tileset/helpers/3d-tiles-options.js.map +1 -1
  51. package/dist/esm/tileset/helpers/bounding-volume.js +4 -10
  52. package/dist/esm/tileset/helpers/bounding-volume.js.map +1 -1
  53. package/dist/esm/tileset/helpers/frame-state.js +36 -20
  54. package/dist/esm/tileset/helpers/frame-state.js.map +1 -1
  55. package/dist/esm/tileset/helpers/i3s-lod.js +4 -4
  56. package/dist/esm/tileset/helpers/i3s-lod.js.map +1 -1
  57. package/dist/esm/tileset/helpers/tiles-3d-lod.js +11 -8
  58. package/dist/esm/tileset/helpers/tiles-3d-lod.js.map +1 -1
  59. package/dist/esm/tileset/helpers/transform-utils.js +1 -3
  60. package/dist/esm/tileset/helpers/transform-utils.js.map +1 -1
  61. package/dist/esm/tileset/helpers/zoom.js +3 -2
  62. package/dist/esm/tileset/helpers/zoom.js.map +1 -1
  63. package/dist/esm/tileset/tile-3d.js +47 -108
  64. package/dist/esm/tileset/tile-3d.js.map +1 -1
  65. package/dist/esm/tileset/tileset-3d.js +70 -163
  66. package/dist/esm/tileset/tileset-3d.js.map +1 -1
  67. package/dist/esm/tileset/tileset-cache.js +2 -18
  68. package/dist/esm/tileset/tileset-cache.js.map +1 -1
  69. package/dist/esm/tileset/traversers/i3s-pending-tiles-register.js +28 -0
  70. package/dist/esm/tileset/traversers/i3s-pending-tiles-register.js.map +1 -0
  71. package/dist/esm/tileset/traversers/i3s-tile-manager.js +34 -15
  72. package/dist/esm/tileset/traversers/i3s-tile-manager.js.map +1 -1
  73. package/dist/esm/tileset/traversers/i3s-tileset-traverser.js +8 -22
  74. package/dist/esm/tileset/traversers/i3s-tileset-traverser.js.map +1 -1
  75. package/dist/esm/tileset/traversers/tileset-3d-traverser.js +2 -9
  76. package/dist/esm/tileset/traversers/tileset-3d-traverser.js.map +1 -1
  77. package/dist/esm/tileset/traversers/tileset-traverser.js +20 -59
  78. package/dist/esm/tileset/traversers/tileset-traverser.js.map +1 -1
  79. package/dist/esm/types.js.map +1 -1
  80. package/dist/esm/utils/doubly-linked-list-node.js +1 -4
  81. package/dist/esm/utils/doubly-linked-list-node.js.map +1 -1
  82. package/dist/esm/utils/doubly-linked-list.js +2 -11
  83. package/dist/esm/utils/doubly-linked-list.js.map +1 -1
  84. package/dist/esm/utils/managed-array.js +4 -22
  85. package/dist/esm/utils/managed-array.js.map +1 -1
  86. package/dist/tileset/helpers/frame-state.d.ts +5 -8
  87. package/dist/tileset/helpers/frame-state.d.ts.map +1 -1
  88. package/dist/tileset/helpers/frame-state.js +27 -12
  89. package/dist/tileset/helpers/i3s-lod.d.ts.map +1 -1
  90. package/dist/tileset/tile-3d.d.ts +15 -4
  91. package/dist/tileset/tile-3d.d.ts.map +1 -1
  92. package/dist/tileset/tile-3d.js +15 -2
  93. package/dist/tileset/tileset-3d.d.ts +17 -4
  94. package/dist/tileset/tileset-3d.d.ts.map +1 -1
  95. package/dist/tileset/tileset-3d.js +47 -10
  96. package/dist/tileset/traversers/{i3s-frame-counter.d.ts → i3s-pending-tiles-register.d.ts} +7 -4
  97. package/dist/tileset/traversers/i3s-pending-tiles-register.d.ts.map +1 -0
  98. package/dist/tileset/traversers/{i3s-frame-counter.js → i3s-pending-tiles-register.js} +17 -8
  99. package/dist/tileset/traversers/i3s-tile-manager.d.ts +19 -1
  100. package/dist/tileset/traversers/i3s-tile-manager.d.ts.map +1 -1
  101. package/dist/tileset/traversers/i3s-tile-manager.js +32 -12
  102. package/dist/tileset/traversers/i3s-tileset-traverser.d.ts +1 -1
  103. package/dist/tileset/traversers/i3s-tileset-traverser.d.ts.map +1 -1
  104. package/dist/tileset/traversers/i3s-tileset-traverser.js +9 -9
  105. package/dist/tileset/traversers/tileset-traverser.d.ts +3 -3
  106. package/dist/tileset/traversers/tileset-traverser.d.ts.map +1 -1
  107. package/dist/tileset/traversers/tileset-traverser.js +4 -4
  108. package/dist/types.d.ts +30 -1
  109. package/dist/types.d.ts.map +1 -1
  110. package/package.json +4 -4
  111. package/src/tileset/helpers/frame-state.ts +47 -19
  112. package/src/tileset/helpers/i3s-lod.ts +3 -1
  113. package/src/tileset/tile-3d.ts +16 -2
  114. package/src/tileset/tileset-3d.ts +55 -16
  115. package/src/tileset/traversers/i3s-pending-tiles-register.ts +44 -0
  116. package/src/tileset/traversers/i3s-tile-manager.ts +47 -11
  117. package/src/tileset/traversers/i3s-tileset-traverser.ts +5 -5
  118. package/src/tileset/traversers/tileset-traverser.ts +2 -2
  119. package/src/types.ts +32 -0
  120. package/dist/es5/tileset/traversers/i3s-frame-counter.js.map +0 -1
  121. package/dist/esm/tileset/traversers/i3s-frame-counter.js +0 -23
  122. package/dist/esm/tileset/traversers/i3s-frame-counter.js.map +0 -1
  123. package/dist/tileset/traversers/i3s-frame-counter.d.ts.map +0 -1
  124. 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 ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
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
- get: function get() {
70
- return !this._tileManager.hasPendingTiles(this._frameNumber || 0);
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
- _step;
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: function _onTileLoad(header, tile, extendedId) {
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,"sources":["../../../../src/tileset/traversers/i3s-tileset-traverser.ts"],"names":["I3STilesetTraverser","options","_tileManager","I3STileManager","hasPendingTiles","_frameNumber","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","traversalFinished","Date","getTime","lastUpdate","updateDebounceTime","executeTraversal","TilesetTraverser"],"mappings":"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","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 get traversalFinished(): boolean {\n return !this._tileManager.hasPendingTiles(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 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 (\n this._frameNumber === frameState.frameNumber &&\n (this.traversalFinished || new Date().getTime() - this.lastUpdate > this.updateDebounceTime)\n ) {\n this.executeTraversal(childTile, frameState);\n }\n }\n}\n"],"file":"i3s-tileset-traverser.js"}
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,"sources":["../../../../src/tileset/traversers/tileset-3d-traverser.ts"],"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"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAGA;;AACA;;;;;;IAEqBA,kB;;;;;;;;;;;;WACnB,iCAAwBC,CAAxB,EAA2BC,CAA3B,EAA8B;AAE5B,aAAOA,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;;;WAED,8BAAqBE,IAArB,EAA2BC,UAA3B,EAAuC;AACrC,+HAA2BD,IAA3B,EAAiCC,UAAjC;;AAGA,UAAI,CAACD,IAAI,CAACE,2BAAV,EAAuC;AACrC;AACD;;AAED,UAAMC,WAAW,GAAGH,IAAI,CAACI,QAAL,CAAcC,MAAd,GAAuB,CAA3C;;AACA,UAAIL,IAAI,CAACM,iBAAL,IAA0BH,WAA9B,EAA2C;AAIzC,YAAMI,UAAU,GAAGP,IAAI,CAACI,QAAL,CAAc,CAAd,CAAnB;AACA,aAAKI,oBAAL,CAA0BD,UAA1B,EAAsCN,UAAtC;AACAD,QAAAA,IAAI,CAACS,QAAL,GAAgBF,UAAU,CAACE,QAA3B;AACA;AACD;;AAED,UAAI,KAAKC,0BAAL,CAAgCV,IAAhC,EAAsCC,UAAtC,CAAJ,EAAuD;AACrDD,QAAAA,IAAI,CAACS,QAAL,GAAgB,KAAhB;AACA;AACD;;AAED,UAAME,OAAO,GAAGX,IAAI,CAACY,MAAL,KAAgBC,2BAAgBC,OAAhD;AACA,UAAMC,eAAe,GACnBf,IAAI,CAACgB,0BAAL,KAAoCC,oCAAyBC,gBAD/D;;AAEA,UAAIP,OAAO,IAAII,eAAX,IAA8BZ,WAAlC,EAA+C;AAC7C,YAAI,CAAC,KAAKgB,kBAAL,CAAwBnB,IAAxB,EAA8BC,UAA9B,CAAL,EAAgD;AAC9CD,UAAAA,IAAI,CAACS,QAAL,GAAgB,KAAhB;AACA;AACD;AACF;AACF;;;WAED,oCAA2BT,IAA3B,EAAiCC,UAAjC,EAA6C;AAC3C,UAAOmB,MAAP,GAAiBpB,IAAjB,CAAOoB,MAAP;;AACA,UAAI,CAACA,MAAD,IAAWA,MAAM,CAACd,iBAAlB,IAAuCc,MAAM,CAACR,MAAP,KAAkBC,2BAAgBQ,GAA7E,EAAkF;AAChF,eAAO,KAAP;AACD;;AAGD,aAAO,CAAC,KAAKC,YAAL,CAAkBtB,IAAlB,EAAwBC,UAAxB,EAAoC,IAApC,CAAR;AACD;;;EAnD6CsB,yB","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"}
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"}