@loaders.gl/tiles 4.2.0-alpha.5 → 4.2.0-alpha.6
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.dev.js +182 -333
- package/dist/dist.min.js +1 -1
- package/dist/index.cjs +168 -87
- package/dist/index.cjs.map +2 -2
- package/dist/tileset/format-i3s/i3s-pending-tiles-register.js +1 -3
- package/dist/tileset/format-i3s/i3s-tile-manager.js +2 -1
- package/dist/tileset/format-i3s/i3s-tileset-traverser.js +1 -0
- package/dist/tileset/tile-3d.d.ts +2 -1
- package/dist/tileset/tile-3d.d.ts.map +1 -1
- package/dist/tileset/tile-3d.js +63 -50
- package/dist/tileset/tileset-3d.d.ts +2 -1
- package/dist/tileset/tileset-3d.d.ts.map +1 -1
- package/dist/tileset/tileset-3d.js +72 -54
- package/dist/tileset/tileset-cache.js +3 -0
- package/dist/tileset/tileset-traverser.js +16 -15
- package/dist/utils/doubly-linked-list-node.js +3 -0
- package/dist/utils/doubly-linked-list.js +3 -5
- package/dist/utils/managed-array.js +3 -1
- package/package.json +4 -4
- package/src/tileset/tile-3d.ts +1 -1
- package/src/tileset/tileset-3d.ts +1 -1
package/dist/dist.dev.js
CHANGED
|
@@ -4554,7 +4554,7 @@ var __exports__ = (() => {
|
|
|
4554
4554
|
};
|
|
4555
4555
|
_defineProperty(Ellipsoid, "WGS84", new Ellipsoid(WGS84_RADIUS_X, WGS84_RADIUS_Y, WGS84_RADIUS_Z));
|
|
4556
4556
|
|
|
4557
|
-
// node_modules/@probe.gl/stats/dist/utils/hi-res-timestamp.js
|
|
4557
|
+
// ../../node_modules/@probe.gl/stats/dist/utils/hi-res-timestamp.js
|
|
4558
4558
|
function getHiResTimestamp() {
|
|
4559
4559
|
let timestamp;
|
|
4560
4560
|
if (typeof window !== "undefined" && window.performance) {
|
|
@@ -4568,7 +4568,7 @@ var __exports__ = (() => {
|
|
|
4568
4568
|
return timestamp;
|
|
4569
4569
|
}
|
|
4570
4570
|
|
|
4571
|
-
// node_modules/@probe.gl/stats/dist/lib/stat.js
|
|
4571
|
+
// ../../node_modules/@probe.gl/stats/dist/lib/stat.js
|
|
4572
4572
|
var Stat = class {
|
|
4573
4573
|
constructor(name, type) {
|
|
4574
4574
|
_defineProperty(this, "name", void 0);
|
|
@@ -4680,7 +4680,7 @@ var __exports__ = (() => {
|
|
|
4680
4680
|
}
|
|
4681
4681
|
};
|
|
4682
4682
|
|
|
4683
|
-
// node_modules/@probe.gl/stats/dist/lib/stats.js
|
|
4683
|
+
// ../../node_modules/@probe.gl/stats/dist/lib/stats.js
|
|
4684
4684
|
var Stats = class {
|
|
4685
4685
|
constructor(options) {
|
|
4686
4686
|
_defineProperty(this, "id", void 0);
|
|
@@ -4752,197 +4752,6 @@ var __exports__ = (() => {
|
|
|
4752
4752
|
}
|
|
4753
4753
|
}
|
|
4754
4754
|
|
|
4755
|
-
// ../loader-utils/node_modules/@probe.gl/stats/dist/utils/hi-res-timestamp.js
|
|
4756
|
-
function getHiResTimestamp2() {
|
|
4757
|
-
let timestamp;
|
|
4758
|
-
if (typeof window !== "undefined" && window.performance) {
|
|
4759
|
-
timestamp = window.performance.now();
|
|
4760
|
-
} else if (typeof process !== "undefined" && process.hrtime) {
|
|
4761
|
-
const timeParts = process.hrtime();
|
|
4762
|
-
timestamp = timeParts[0] * 1e3 + timeParts[1] / 1e6;
|
|
4763
|
-
} else {
|
|
4764
|
-
timestamp = Date.now();
|
|
4765
|
-
}
|
|
4766
|
-
return timestamp;
|
|
4767
|
-
}
|
|
4768
|
-
|
|
4769
|
-
// ../loader-utils/node_modules/@probe.gl/stats/dist/lib/stat.js
|
|
4770
|
-
var Stat2 = class {
|
|
4771
|
-
constructor(name, type) {
|
|
4772
|
-
_defineProperty(this, "name", void 0);
|
|
4773
|
-
_defineProperty(this, "type", void 0);
|
|
4774
|
-
_defineProperty(this, "sampleSize", 1);
|
|
4775
|
-
_defineProperty(this, "time", 0);
|
|
4776
|
-
_defineProperty(this, "count", 0);
|
|
4777
|
-
_defineProperty(this, "samples", 0);
|
|
4778
|
-
_defineProperty(this, "lastTiming", 0);
|
|
4779
|
-
_defineProperty(this, "lastSampleTime", 0);
|
|
4780
|
-
_defineProperty(this, "lastSampleCount", 0);
|
|
4781
|
-
_defineProperty(this, "_count", 0);
|
|
4782
|
-
_defineProperty(this, "_time", 0);
|
|
4783
|
-
_defineProperty(this, "_samples", 0);
|
|
4784
|
-
_defineProperty(this, "_startTime", 0);
|
|
4785
|
-
_defineProperty(this, "_timerPending", false);
|
|
4786
|
-
this.name = name;
|
|
4787
|
-
this.type = type;
|
|
4788
|
-
this.reset();
|
|
4789
|
-
}
|
|
4790
|
-
reset() {
|
|
4791
|
-
this.time = 0;
|
|
4792
|
-
this.count = 0;
|
|
4793
|
-
this.samples = 0;
|
|
4794
|
-
this.lastTiming = 0;
|
|
4795
|
-
this.lastSampleTime = 0;
|
|
4796
|
-
this.lastSampleCount = 0;
|
|
4797
|
-
this._count = 0;
|
|
4798
|
-
this._time = 0;
|
|
4799
|
-
this._samples = 0;
|
|
4800
|
-
this._startTime = 0;
|
|
4801
|
-
this._timerPending = false;
|
|
4802
|
-
return this;
|
|
4803
|
-
}
|
|
4804
|
-
setSampleSize(samples) {
|
|
4805
|
-
this.sampleSize = samples;
|
|
4806
|
-
return this;
|
|
4807
|
-
}
|
|
4808
|
-
incrementCount() {
|
|
4809
|
-
this.addCount(1);
|
|
4810
|
-
return this;
|
|
4811
|
-
}
|
|
4812
|
-
decrementCount() {
|
|
4813
|
-
this.subtractCount(1);
|
|
4814
|
-
return this;
|
|
4815
|
-
}
|
|
4816
|
-
addCount(value) {
|
|
4817
|
-
this._count += value;
|
|
4818
|
-
this._samples++;
|
|
4819
|
-
this._checkSampling();
|
|
4820
|
-
return this;
|
|
4821
|
-
}
|
|
4822
|
-
subtractCount(value) {
|
|
4823
|
-
this._count -= value;
|
|
4824
|
-
this._samples++;
|
|
4825
|
-
this._checkSampling();
|
|
4826
|
-
return this;
|
|
4827
|
-
}
|
|
4828
|
-
addTime(time) {
|
|
4829
|
-
this._time += time;
|
|
4830
|
-
this.lastTiming = time;
|
|
4831
|
-
this._samples++;
|
|
4832
|
-
this._checkSampling();
|
|
4833
|
-
return this;
|
|
4834
|
-
}
|
|
4835
|
-
timeStart() {
|
|
4836
|
-
this._startTime = getHiResTimestamp2();
|
|
4837
|
-
this._timerPending = true;
|
|
4838
|
-
return this;
|
|
4839
|
-
}
|
|
4840
|
-
timeEnd() {
|
|
4841
|
-
if (!this._timerPending) {
|
|
4842
|
-
return this;
|
|
4843
|
-
}
|
|
4844
|
-
this.addTime(getHiResTimestamp2() - this._startTime);
|
|
4845
|
-
this._timerPending = false;
|
|
4846
|
-
this._checkSampling();
|
|
4847
|
-
return this;
|
|
4848
|
-
}
|
|
4849
|
-
getSampleAverageCount() {
|
|
4850
|
-
return this.sampleSize > 0 ? this.lastSampleCount / this.sampleSize : 0;
|
|
4851
|
-
}
|
|
4852
|
-
getSampleAverageTime() {
|
|
4853
|
-
return this.sampleSize > 0 ? this.lastSampleTime / this.sampleSize : 0;
|
|
4854
|
-
}
|
|
4855
|
-
getSampleHz() {
|
|
4856
|
-
return this.lastSampleTime > 0 ? this.sampleSize / (this.lastSampleTime / 1e3) : 0;
|
|
4857
|
-
}
|
|
4858
|
-
getAverageCount() {
|
|
4859
|
-
return this.samples > 0 ? this.count / this.samples : 0;
|
|
4860
|
-
}
|
|
4861
|
-
getAverageTime() {
|
|
4862
|
-
return this.samples > 0 ? this.time / this.samples : 0;
|
|
4863
|
-
}
|
|
4864
|
-
getHz() {
|
|
4865
|
-
return this.time > 0 ? this.samples / (this.time / 1e3) : 0;
|
|
4866
|
-
}
|
|
4867
|
-
_checkSampling() {
|
|
4868
|
-
if (this._samples === this.sampleSize) {
|
|
4869
|
-
this.lastSampleTime = this._time;
|
|
4870
|
-
this.lastSampleCount = this._count;
|
|
4871
|
-
this.count += this._count;
|
|
4872
|
-
this.time += this._time;
|
|
4873
|
-
this.samples += this._samples;
|
|
4874
|
-
this._time = 0;
|
|
4875
|
-
this._count = 0;
|
|
4876
|
-
this._samples = 0;
|
|
4877
|
-
}
|
|
4878
|
-
}
|
|
4879
|
-
};
|
|
4880
|
-
|
|
4881
|
-
// ../loader-utils/node_modules/@probe.gl/stats/dist/lib/stats.js
|
|
4882
|
-
var Stats2 = class {
|
|
4883
|
-
constructor(options) {
|
|
4884
|
-
_defineProperty(this, "id", void 0);
|
|
4885
|
-
_defineProperty(this, "stats", {});
|
|
4886
|
-
this.id = options.id;
|
|
4887
|
-
this.stats = {};
|
|
4888
|
-
this._initializeStats(options.stats);
|
|
4889
|
-
Object.seal(this);
|
|
4890
|
-
}
|
|
4891
|
-
get(name) {
|
|
4892
|
-
let type = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : "count";
|
|
4893
|
-
return this._getOrCreate({
|
|
4894
|
-
name,
|
|
4895
|
-
type
|
|
4896
|
-
});
|
|
4897
|
-
}
|
|
4898
|
-
get size() {
|
|
4899
|
-
return Object.keys(this.stats).length;
|
|
4900
|
-
}
|
|
4901
|
-
reset() {
|
|
4902
|
-
for (const stat of Object.values(this.stats)) {
|
|
4903
|
-
stat.reset();
|
|
4904
|
-
}
|
|
4905
|
-
return this;
|
|
4906
|
-
}
|
|
4907
|
-
forEach(fn) {
|
|
4908
|
-
for (const stat of Object.values(this.stats)) {
|
|
4909
|
-
fn(stat);
|
|
4910
|
-
}
|
|
4911
|
-
}
|
|
4912
|
-
getTable() {
|
|
4913
|
-
const table = {};
|
|
4914
|
-
this.forEach((stat) => {
|
|
4915
|
-
table[stat.name] = {
|
|
4916
|
-
time: stat.time || 0,
|
|
4917
|
-
count: stat.count || 0,
|
|
4918
|
-
average: stat.getAverageTime() || 0,
|
|
4919
|
-
hz: stat.getHz() || 0
|
|
4920
|
-
};
|
|
4921
|
-
});
|
|
4922
|
-
return table;
|
|
4923
|
-
}
|
|
4924
|
-
_initializeStats() {
|
|
4925
|
-
let stats = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : [];
|
|
4926
|
-
stats.forEach((stat) => this._getOrCreate(stat));
|
|
4927
|
-
}
|
|
4928
|
-
_getOrCreate(stat) {
|
|
4929
|
-
const {
|
|
4930
|
-
name,
|
|
4931
|
-
type
|
|
4932
|
-
} = stat;
|
|
4933
|
-
let result = this.stats[name];
|
|
4934
|
-
if (!result) {
|
|
4935
|
-
if (stat instanceof Stat2) {
|
|
4936
|
-
result = stat;
|
|
4937
|
-
} else {
|
|
4938
|
-
result = new Stat2(name, type);
|
|
4939
|
-
}
|
|
4940
|
-
this.stats[name] = result;
|
|
4941
|
-
}
|
|
4942
|
-
return result;
|
|
4943
|
-
}
|
|
4944
|
-
};
|
|
4945
|
-
|
|
4946
4755
|
// ../loader-utils/src/lib/request-utils/request-scheduler.ts
|
|
4947
4756
|
var STAT_QUEUED_REQUESTS = "Queued Requests";
|
|
4948
4757
|
var STAT_ACTIVE_REQUESTS = "Active Requests";
|
|
@@ -4962,14 +4771,16 @@ var __exports__ = (() => {
|
|
|
4962
4771
|
debounceTime: 0
|
|
4963
4772
|
};
|
|
4964
4773
|
var RequestScheduler = class {
|
|
4774
|
+
props;
|
|
4775
|
+
stats;
|
|
4776
|
+
activeRequestCount = 0;
|
|
4777
|
+
/** Tracks the number of active requests and prioritizes/cancels queued requests. */
|
|
4778
|
+
requestQueue = [];
|
|
4779
|
+
requestMap = /* @__PURE__ */ new Map();
|
|
4780
|
+
updateTimer = null;
|
|
4965
4781
|
constructor(props = {}) {
|
|
4966
|
-
this.activeRequestCount = 0;
|
|
4967
|
-
/** Tracks the number of active requests and prioritizes/cancels queued requests. */
|
|
4968
|
-
this.requestQueue = [];
|
|
4969
|
-
this.requestMap = /* @__PURE__ */ new Map();
|
|
4970
|
-
this.updateTimer = null;
|
|
4971
4782
|
this.props = { ...DEFAULT_PROPS, ...props };
|
|
4972
|
-
this.stats = new
|
|
4783
|
+
this.stats = new Stats({ id: this.props.id });
|
|
4973
4784
|
this.stats.get(STAT_QUEUED_REQUESTS);
|
|
4974
4785
|
this.stats.get(STAT_ACTIVE_REQUESTS);
|
|
4975
4786
|
this.stats.get(STAT_CANCELLED_REQUESTS);
|
|
@@ -5219,6 +5030,9 @@ var __exports__ = (() => {
|
|
|
5219
5030
|
|
|
5220
5031
|
// src/utils/doubly-linked-list-node.ts
|
|
5221
5032
|
var DoublyLinkedListNode = class {
|
|
5033
|
+
item;
|
|
5034
|
+
previous;
|
|
5035
|
+
next;
|
|
5222
5036
|
constructor(item, previous, next) {
|
|
5223
5037
|
this.item = item;
|
|
5224
5038
|
this.previous = previous;
|
|
@@ -5228,11 +5042,9 @@ var __exports__ = (() => {
|
|
|
5228
5042
|
|
|
5229
5043
|
// src/utils/doubly-linked-list.ts
|
|
5230
5044
|
var DoublyLinkedList = class {
|
|
5231
|
-
|
|
5232
|
-
|
|
5233
|
-
|
|
5234
|
-
this._length = 0;
|
|
5235
|
-
}
|
|
5045
|
+
head = null;
|
|
5046
|
+
tail = null;
|
|
5047
|
+
_length = 0;
|
|
5236
5048
|
get length() {
|
|
5237
5049
|
return this._length;
|
|
5238
5050
|
}
|
|
@@ -5306,6 +5118,9 @@ var __exports__ = (() => {
|
|
|
5306
5118
|
|
|
5307
5119
|
// src/tileset/tileset-cache.ts
|
|
5308
5120
|
var TilesetCache = class {
|
|
5121
|
+
_list;
|
|
5122
|
+
_sentinel;
|
|
5123
|
+
_trimTiles;
|
|
5309
5124
|
constructor() {
|
|
5310
5125
|
this._list = new DoublyLinkedList();
|
|
5311
5126
|
this._sentinel = this._list.add("sentinel");
|
|
@@ -6358,8 +6173,10 @@ var __exports__ = (() => {
|
|
|
6358
6173
|
|
|
6359
6174
|
// src/utils/managed-array.ts
|
|
6360
6175
|
var ManagedArray = class {
|
|
6176
|
+
_map = /* @__PURE__ */ new Map();
|
|
6177
|
+
_array;
|
|
6178
|
+
_length;
|
|
6361
6179
|
constructor(length4 = 0) {
|
|
6362
|
-
this._map = /* @__PURE__ */ new Map();
|
|
6363
6180
|
this._array = new Array(length4);
|
|
6364
6181
|
this._length = length4;
|
|
6365
6182
|
}
|
|
@@ -6505,29 +6322,30 @@ var __exports__ = (() => {
|
|
|
6505
6322
|
basePath: ""
|
|
6506
6323
|
};
|
|
6507
6324
|
var TilesetTraverser = class {
|
|
6508
|
-
|
|
6509
|
-
|
|
6510
|
-
|
|
6511
|
-
|
|
6512
|
-
|
|
6513
|
-
|
|
6514
|
-
|
|
6515
|
-
|
|
6516
|
-
|
|
6517
|
-
|
|
6518
|
-
|
|
6519
|
-
|
|
6520
|
-
|
|
6521
|
-
|
|
6522
|
-
|
|
6523
|
-
|
|
6524
|
-
this._frameNumber = null;
|
|
6525
|
-
this.options = { ...DEFAULT_PROPS2, ...options };
|
|
6526
|
-
}
|
|
6325
|
+
options;
|
|
6326
|
+
// fulfill in traverse call
|
|
6327
|
+
root = null;
|
|
6328
|
+
// tiles should be rendered
|
|
6329
|
+
selectedTiles = {};
|
|
6330
|
+
// tiles should be loaded from server
|
|
6331
|
+
requestedTiles = {};
|
|
6332
|
+
// tiles does not have render content
|
|
6333
|
+
emptyTiles = {};
|
|
6334
|
+
lastUpdate = new Date().getTime();
|
|
6335
|
+
updateDebounceTime = 1e3;
|
|
6336
|
+
/** temporary storage to hold the traversed tiles during a traversal */
|
|
6337
|
+
_traversalStack = new ManagedArray();
|
|
6338
|
+
_emptyTraversalStack = new ManagedArray();
|
|
6339
|
+
/** set in every traverse cycle */
|
|
6340
|
+
_frameNumber = null;
|
|
6527
6341
|
// RESULT
|
|
6528
6342
|
traversalFinished(frameState) {
|
|
6529
6343
|
return true;
|
|
6530
6344
|
}
|
|
6345
|
+
// TODO nested props
|
|
6346
|
+
constructor(options) {
|
|
6347
|
+
this.options = { ...DEFAULT_PROPS2, ...options };
|
|
6348
|
+
}
|
|
6531
6349
|
// tiles should be visible
|
|
6532
6350
|
traverse(root, frameState, options) {
|
|
6533
6351
|
this.root = root;
|
|
@@ -6757,6 +6575,69 @@ var __exports__ = (() => {
|
|
|
6757
6575
|
return x !== void 0 && x !== null;
|
|
6758
6576
|
}
|
|
6759
6577
|
var Tile3D = class {
|
|
6578
|
+
tileset;
|
|
6579
|
+
header;
|
|
6580
|
+
id;
|
|
6581
|
+
url;
|
|
6582
|
+
parent;
|
|
6583
|
+
/* Specifies the type of refine that is used when traversing this tile for rendering. */
|
|
6584
|
+
refine;
|
|
6585
|
+
type;
|
|
6586
|
+
contentUrl;
|
|
6587
|
+
/** Different refinement algorithms used by I3S and 3D tiles */
|
|
6588
|
+
lodMetricType = "geometricError";
|
|
6589
|
+
/** The error, in meters, introduced if this tile is rendered and its children are not. */
|
|
6590
|
+
lodMetricValue = 0;
|
|
6591
|
+
/** @todo math.gl is not exporting BoundingVolume base type? */
|
|
6592
|
+
boundingVolume = null;
|
|
6593
|
+
/**
|
|
6594
|
+
* The tile's content. This represents the actual tile's payload,
|
|
6595
|
+
* not the content's metadata in the tileset JSON file.
|
|
6596
|
+
*/
|
|
6597
|
+
content = null;
|
|
6598
|
+
contentState = TILE_CONTENT_STATE.UNLOADED;
|
|
6599
|
+
gpuMemoryUsageInBytes = 0;
|
|
6600
|
+
/** The tile's children - an array of Tile3D objects. */
|
|
6601
|
+
children = [];
|
|
6602
|
+
depth = 0;
|
|
6603
|
+
viewportIds = [];
|
|
6604
|
+
transform = new Matrix4();
|
|
6605
|
+
extensions = null;
|
|
6606
|
+
/** TODO Cesium 3d tiles specific */
|
|
6607
|
+
implicitTiling = null;
|
|
6608
|
+
/** Container to store application specific data */
|
|
6609
|
+
userData = {};
|
|
6610
|
+
computedTransform;
|
|
6611
|
+
hasEmptyContent = false;
|
|
6612
|
+
hasTilesetContent = false;
|
|
6613
|
+
traverser = new TilesetTraverser({});
|
|
6614
|
+
/** Used by TilesetCache */
|
|
6615
|
+
_cacheNode = null;
|
|
6616
|
+
_frameNumber = null;
|
|
6617
|
+
// TODO Cesium 3d tiles specific
|
|
6618
|
+
_expireDate = null;
|
|
6619
|
+
_expiredContent = null;
|
|
6620
|
+
_boundingBox = void 0;
|
|
6621
|
+
/** updated every frame for tree traversal and rendering optimizations: */
|
|
6622
|
+
_distanceToCamera = 0;
|
|
6623
|
+
_screenSpaceError = 0;
|
|
6624
|
+
_visibilityPlaneMask;
|
|
6625
|
+
_visible = void 0;
|
|
6626
|
+
_contentBoundingVolume;
|
|
6627
|
+
_viewerRequestVolume;
|
|
6628
|
+
_initialTransform = new Matrix4();
|
|
6629
|
+
// Used by traverser, cannot be marked private
|
|
6630
|
+
_priority = 0;
|
|
6631
|
+
_selectedFrame = 0;
|
|
6632
|
+
_requestedFrame = 0;
|
|
6633
|
+
_selectionDepth = 0;
|
|
6634
|
+
_touchedFrame = 0;
|
|
6635
|
+
_centerZDepth = 0;
|
|
6636
|
+
_shouldRefine = false;
|
|
6637
|
+
_stackLength = 0;
|
|
6638
|
+
_visitedFrame = 0;
|
|
6639
|
+
_inRequestVolume = false;
|
|
6640
|
+
_lodJudge = null;
|
|
6760
6641
|
// TODO i3s specific, needs to remove
|
|
6761
6642
|
/**
|
|
6762
6643
|
* @constructs
|
|
@@ -6769,56 +6650,6 @@ var __exports__ = (() => {
|
|
|
6769
6650
|
*/
|
|
6770
6651
|
// eslint-disable-next-line max-statements
|
|
6771
6652
|
constructor(tileset, header, parentHeader, extendedId = "") {
|
|
6772
|
-
/** Different refinement algorithms used by I3S and 3D tiles */
|
|
6773
|
-
this.lodMetricType = "geometricError";
|
|
6774
|
-
/** The error, in meters, introduced if this tile is rendered and its children are not. */
|
|
6775
|
-
this.lodMetricValue = 0;
|
|
6776
|
-
/** @todo math.gl is not exporting BoundingVolume base type? */
|
|
6777
|
-
this.boundingVolume = null;
|
|
6778
|
-
/**
|
|
6779
|
-
* The tile's content. This represents the actual tile's payload,
|
|
6780
|
-
* not the content's metadata in the tileset JSON file.
|
|
6781
|
-
*/
|
|
6782
|
-
this.content = null;
|
|
6783
|
-
this.contentState = TILE_CONTENT_STATE.UNLOADED;
|
|
6784
|
-
this.gpuMemoryUsageInBytes = 0;
|
|
6785
|
-
/** The tile's children - an array of Tile3D objects. */
|
|
6786
|
-
this.children = [];
|
|
6787
|
-
this.depth = 0;
|
|
6788
|
-
this.viewportIds = [];
|
|
6789
|
-
this.transform = new Matrix4();
|
|
6790
|
-
this.extensions = null;
|
|
6791
|
-
/** TODO Cesium 3d tiles specific */
|
|
6792
|
-
this.implicitTiling = null;
|
|
6793
|
-
/** Container to store application specific data */
|
|
6794
|
-
this.userData = {};
|
|
6795
|
-
this.hasEmptyContent = false;
|
|
6796
|
-
this.hasTilesetContent = false;
|
|
6797
|
-
this.traverser = new TilesetTraverser({});
|
|
6798
|
-
/** Used by TilesetCache */
|
|
6799
|
-
this._cacheNode = null;
|
|
6800
|
-
this._frameNumber = null;
|
|
6801
|
-
// TODO Cesium 3d tiles specific
|
|
6802
|
-
this._expireDate = null;
|
|
6803
|
-
this._expiredContent = null;
|
|
6804
|
-
this._boundingBox = void 0;
|
|
6805
|
-
/** updated every frame for tree traversal and rendering optimizations: */
|
|
6806
|
-
this._distanceToCamera = 0;
|
|
6807
|
-
this._screenSpaceError = 0;
|
|
6808
|
-
this._visible = void 0;
|
|
6809
|
-
this._initialTransform = new Matrix4();
|
|
6810
|
-
// Used by traverser, cannot be marked private
|
|
6811
|
-
this._priority = 0;
|
|
6812
|
-
this._selectedFrame = 0;
|
|
6813
|
-
this._requestedFrame = 0;
|
|
6814
|
-
this._selectionDepth = 0;
|
|
6815
|
-
this._touchedFrame = 0;
|
|
6816
|
-
this._centerZDepth = 0;
|
|
6817
|
-
this._shouldRefine = false;
|
|
6818
|
-
this._stackLength = 0;
|
|
6819
|
-
this._visitedFrame = 0;
|
|
6820
|
-
this._inRequestVolume = false;
|
|
6821
|
-
this._lodJudge = null;
|
|
6822
6653
|
this.header = header;
|
|
6823
6654
|
this.tileset = tileset;
|
|
6824
6655
|
this.id = extendedId || header.id;
|
|
@@ -7304,9 +7135,7 @@ var __exports__ = (() => {
|
|
|
7304
7135
|
|
|
7305
7136
|
// src/tileset/format-i3s/i3s-pending-tiles-register.ts
|
|
7306
7137
|
var I3SPendingTilesRegister = class {
|
|
7307
|
-
|
|
7308
|
-
this.frameNumberMap = /* @__PURE__ */ new Map();
|
|
7309
|
-
}
|
|
7138
|
+
frameNumberMap = /* @__PURE__ */ new Map();
|
|
7310
7139
|
/**
|
|
7311
7140
|
* Register a new pending tile header for the particular frameNumber
|
|
7312
7141
|
* @param viewportId
|
|
@@ -7350,8 +7179,9 @@ var __exports__ = (() => {
|
|
|
7350
7179
|
ERROR: "ERROR"
|
|
7351
7180
|
};
|
|
7352
7181
|
var I3STileManager = class {
|
|
7182
|
+
_statusMap;
|
|
7183
|
+
pendingTilesRegister = new I3SPendingTilesRegister();
|
|
7353
7184
|
constructor() {
|
|
7354
|
-
this.pendingTilesRegister = new I3SPendingTilesRegister();
|
|
7355
7185
|
this._statusMap = {};
|
|
7356
7186
|
}
|
|
7357
7187
|
/**
|
|
@@ -7429,6 +7259,7 @@ var __exports__ = (() => {
|
|
|
7429
7259
|
|
|
7430
7260
|
// src/tileset/format-i3s/i3s-tileset-traverser.ts
|
|
7431
7261
|
var I3STilesetTraverser = class extends TilesetTraverser {
|
|
7262
|
+
_tileManager;
|
|
7432
7263
|
constructor(options) {
|
|
7433
7264
|
super(options);
|
|
7434
7265
|
this._tileManager = new I3STileManager();
|
|
@@ -7548,6 +7379,78 @@ var __exports__ = (() => {
|
|
|
7548
7379
|
var TILES_GPU_MEMORY = "Tile Memory Use";
|
|
7549
7380
|
var MAXIMUM_SSE = "Maximum Screen Space Error";
|
|
7550
7381
|
var Tileset3D = class {
|
|
7382
|
+
// props: Tileset3DProps;
|
|
7383
|
+
options;
|
|
7384
|
+
loadOptions;
|
|
7385
|
+
type;
|
|
7386
|
+
tileset;
|
|
7387
|
+
loader;
|
|
7388
|
+
url;
|
|
7389
|
+
basePath;
|
|
7390
|
+
modelMatrix;
|
|
7391
|
+
ellipsoid;
|
|
7392
|
+
lodMetricType;
|
|
7393
|
+
lodMetricValue;
|
|
7394
|
+
refine;
|
|
7395
|
+
root = null;
|
|
7396
|
+
roots = {};
|
|
7397
|
+
/** @todo any->unknown */
|
|
7398
|
+
asset = {};
|
|
7399
|
+
// Metadata for the entire tileset
|
|
7400
|
+
description = "";
|
|
7401
|
+
properties;
|
|
7402
|
+
extras = null;
|
|
7403
|
+
attributions = {};
|
|
7404
|
+
credits = {};
|
|
7405
|
+
stats;
|
|
7406
|
+
/** flags that contain information about data types in nested tiles */
|
|
7407
|
+
contentFormats = { draco: false, meshopt: false, dds: false, ktx2: false };
|
|
7408
|
+
// view props
|
|
7409
|
+
cartographicCenter = null;
|
|
7410
|
+
cartesianCenter = null;
|
|
7411
|
+
zoom = 1;
|
|
7412
|
+
boundingVolume = null;
|
|
7413
|
+
/** Updated based on the camera position and direction */
|
|
7414
|
+
dynamicScreenSpaceErrorComputedDensity = 0;
|
|
7415
|
+
// METRICS
|
|
7416
|
+
/**
|
|
7417
|
+
* The maximum amount of GPU memory (in MB) that may be used to cache tiles
|
|
7418
|
+
* Tiles not in view are unloaded to enforce private
|
|
7419
|
+
*/
|
|
7420
|
+
maximumMemoryUsage = 32;
|
|
7421
|
+
/** The total amount of GPU memory in bytes used by the tileset. */
|
|
7422
|
+
gpuMemoryUsageInBytes = 0;
|
|
7423
|
+
/**
|
|
7424
|
+
* If loading the level of detail required by maximumScreenSpaceError
|
|
7425
|
+
* results in the memory usage exceeding maximumMemoryUsage (GPU), level of detail refinement
|
|
7426
|
+
* will instead use this (larger) adjusted screen space error to achieve the
|
|
7427
|
+
* best possible visual quality within the available memory.
|
|
7428
|
+
*/
|
|
7429
|
+
memoryAdjustedScreenSpaceError = 0;
|
|
7430
|
+
_cacheBytes = 0;
|
|
7431
|
+
_cacheOverflowBytes = 0;
|
|
7432
|
+
/** Update tracker. increase in each update cycle. */
|
|
7433
|
+
_frameNumber = 0;
|
|
7434
|
+
_queryParams = {};
|
|
7435
|
+
_extensionsUsed = [];
|
|
7436
|
+
_tiles = {};
|
|
7437
|
+
/** counter for tracking tiles requests */
|
|
7438
|
+
_pendingCount = 0;
|
|
7439
|
+
/** Hold traversal results */
|
|
7440
|
+
selectedTiles = [];
|
|
7441
|
+
// TRAVERSAL
|
|
7442
|
+
traverseCounter = 0;
|
|
7443
|
+
geometricError = 0;
|
|
7444
|
+
lastUpdatedVieports = null;
|
|
7445
|
+
_requestedTiles = [];
|
|
7446
|
+
_emptyTiles = [];
|
|
7447
|
+
frameStateData = {};
|
|
7448
|
+
_traverser;
|
|
7449
|
+
_cache = new TilesetCache();
|
|
7450
|
+
_requestScheduler;
|
|
7451
|
+
// Promise tracking
|
|
7452
|
+
updatePromise = null;
|
|
7453
|
+
tilesetInitializationPromise;
|
|
7551
7454
|
/**
|
|
7552
7455
|
* Create a new Tileset3D
|
|
7553
7456
|
* @param json
|
|
@@ -7555,60 +7458,6 @@ var __exports__ = (() => {
|
|
|
7555
7458
|
*/
|
|
7556
7459
|
// eslint-disable-next-line max-statements
|
|
7557
7460
|
constructor(tileset, options) {
|
|
7558
|
-
this.root = null;
|
|
7559
|
-
this.roots = {};
|
|
7560
|
-
/** @todo any->unknown */
|
|
7561
|
-
this.asset = {};
|
|
7562
|
-
// Metadata for the entire tileset
|
|
7563
|
-
this.description = "";
|
|
7564
|
-
this.extras = null;
|
|
7565
|
-
this.attributions = {};
|
|
7566
|
-
this.credits = {};
|
|
7567
|
-
/** flags that contain information about data types in nested tiles */
|
|
7568
|
-
this.contentFormats = { draco: false, meshopt: false, dds: false, ktx2: false };
|
|
7569
|
-
// view props
|
|
7570
|
-
this.cartographicCenter = null;
|
|
7571
|
-
this.cartesianCenter = null;
|
|
7572
|
-
this.zoom = 1;
|
|
7573
|
-
this.boundingVolume = null;
|
|
7574
|
-
/** Updated based on the camera position and direction */
|
|
7575
|
-
this.dynamicScreenSpaceErrorComputedDensity = 0;
|
|
7576
|
-
// METRICS
|
|
7577
|
-
/**
|
|
7578
|
-
* The maximum amount of GPU memory (in MB) that may be used to cache tiles
|
|
7579
|
-
* Tiles not in view are unloaded to enforce private
|
|
7580
|
-
*/
|
|
7581
|
-
this.maximumMemoryUsage = 32;
|
|
7582
|
-
/** The total amount of GPU memory in bytes used by the tileset. */
|
|
7583
|
-
this.gpuMemoryUsageInBytes = 0;
|
|
7584
|
-
/**
|
|
7585
|
-
* If loading the level of detail required by maximumScreenSpaceError
|
|
7586
|
-
* results in the memory usage exceeding maximumMemoryUsage (GPU), level of detail refinement
|
|
7587
|
-
* will instead use this (larger) adjusted screen space error to achieve the
|
|
7588
|
-
* best possible visual quality within the available memory.
|
|
7589
|
-
*/
|
|
7590
|
-
this.memoryAdjustedScreenSpaceError = 0;
|
|
7591
|
-
this._cacheBytes = 0;
|
|
7592
|
-
this._cacheOverflowBytes = 0;
|
|
7593
|
-
/** Update tracker. increase in each update cycle. */
|
|
7594
|
-
this._frameNumber = 0;
|
|
7595
|
-
this._queryParams = {};
|
|
7596
|
-
this._extensionsUsed = [];
|
|
7597
|
-
this._tiles = {};
|
|
7598
|
-
/** counter for tracking tiles requests */
|
|
7599
|
-
this._pendingCount = 0;
|
|
7600
|
-
/** Hold traversal results */
|
|
7601
|
-
this.selectedTiles = [];
|
|
7602
|
-
// TRAVERSAL
|
|
7603
|
-
this.traverseCounter = 0;
|
|
7604
|
-
this.geometricError = 0;
|
|
7605
|
-
this.lastUpdatedVieports = null;
|
|
7606
|
-
this._requestedTiles = [];
|
|
7607
|
-
this._emptyTiles = [];
|
|
7608
|
-
this.frameStateData = {};
|
|
7609
|
-
this._cache = new TilesetCache();
|
|
7610
|
-
// Promise tracking
|
|
7611
|
-
this.updatePromise = null;
|
|
7612
7461
|
this.options = { ...DEFAULT_PROPS3, ...options };
|
|
7613
7462
|
this.tileset = tileset;
|
|
7614
7463
|
this.loader = tileset.loader;
|