@loaders.gl/tiles 3.4.0-alpha.2 → 3.4.0-alpha.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/dist.min.js +271 -18
- package/dist/es5/constants.js +0 -2
- package/dist/es5/constants.js.map +1 -1
- package/dist/es5/index.js.map +1 -1
- package/dist/es5/tileset/format-3d-tiles/tileset-3d-traverser.js +0 -2
- package/dist/es5/tileset/format-3d-tiles/tileset-3d-traverser.js.map +1 -1
- package/dist/es5/tileset/format-i3s/i3s-pending-tiles-register.js +3 -8
- package/dist/es5/tileset/format-i3s/i3s-pending-tiles-register.js.map +1 -1
- package/dist/es5/tileset/format-i3s/i3s-tile-manager.js +4 -14
- package/dist/es5/tileset/format-i3s/i3s-tile-manager.js.map +1 -1
- package/dist/es5/tileset/format-i3s/i3s-tileset-traverser.js +19 -25
- package/dist/es5/tileset/format-i3s/i3s-tileset-traverser.js.map +1 -1
- package/dist/es5/tileset/helpers/3d-tiles-options.js.map +1 -1
- package/dist/es5/tileset/helpers/bounding-volume.js +87 -6
- package/dist/es5/tileset/helpers/bounding-volume.js.map +1 -1
- package/dist/es5/tileset/helpers/frame-state.js +4 -14
- package/dist/es5/tileset/helpers/frame-state.js.map +1 -1
- package/dist/es5/tileset/helpers/i3s-lod.js +0 -5
- package/dist/es5/tileset/helpers/i3s-lod.js.map +1 -1
- package/dist/es5/tileset/helpers/tiles-3d-lod.js +0 -7
- package/dist/es5/tileset/helpers/tiles-3d-lod.js.map +1 -1
- package/dist/es5/tileset/helpers/transform-utils.js +0 -7
- package/dist/es5/tileset/helpers/transform-utils.js.map +1 -1
- package/dist/es5/tileset/helpers/zoom.js +0 -4
- package/dist/es5/tileset/helpers/zoom.js.map +1 -1
- package/dist/es5/tileset/tile-3d.js +98 -166
- package/dist/es5/tileset/tile-3d.js.map +1 -1
- package/dist/es5/tileset/tileset-3d.js +86 -142
- package/dist/es5/tileset/tileset-3d.js.map +1 -1
- package/dist/es5/tileset/tileset-cache.js +0 -3
- package/dist/es5/tileset/tileset-cache.js.map +1 -1
- package/dist/es5/tileset/tileset-traverser.js +12 -51
- package/dist/es5/tileset/tileset-traverser.js.map +1 -1
- package/dist/es5/utils/doubly-linked-list-node.js.map +1 -1
- package/dist/es5/utils/doubly-linked-list.js +3 -11
- package/dist/es5/utils/doubly-linked-list.js.map +1 -1
- package/dist/es5/utils/managed-array.js +10 -30
- package/dist/es5/utils/managed-array.js.map +1 -1
- package/dist/esm/bundle.js +0 -1
- package/dist/esm/bundle.js.map +1 -1
- package/dist/esm/constants.js +0 -5
- package/dist/esm/constants.js.map +1 -1
- package/dist/esm/index.js +0 -2
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/tileset/format-3d-tiles/tileset-3d-traverser.js +0 -4
- package/dist/esm/tileset/format-3d-tiles/tileset-3d-traverser.js.map +1 -1
- package/dist/esm/tileset/format-i3s/i3s-pending-tiles-register.js +0 -2
- package/dist/esm/tileset/format-i3s/i3s-pending-tiles-register.js.map +1 -1
- package/dist/esm/tileset/format-i3s/i3s-tile-manager.js +0 -6
- package/dist/esm/tileset/format-i3s/i3s-tile-manager.js.map +1 -1
- package/dist/esm/tileset/format-i3s/i3s-tileset-traverser.js +0 -3
- package/dist/esm/tileset/format-i3s/i3s-tileset-traverser.js.map +1 -1
- package/dist/esm/tileset/helpers/3d-tiles-options.js.map +1 -1
- package/dist/esm/tileset/helpers/bounding-volume.js +81 -8
- package/dist/esm/tileset/helpers/bounding-volume.js.map +1 -1
- package/dist/esm/tileset/helpers/frame-state.js +3 -13
- package/dist/esm/tileset/helpers/frame-state.js.map +1 -1
- package/dist/esm/tileset/helpers/i3s-lod.js +0 -6
- package/dist/esm/tileset/helpers/i3s-lod.js.map +1 -1
- package/dist/esm/tileset/helpers/tiles-3d-lod.js +0 -8
- package/dist/esm/tileset/helpers/tiles-3d-lod.js.map +1 -1
- package/dist/esm/tileset/helpers/transform-utils.js +0 -8
- package/dist/esm/tileset/helpers/transform-utils.js.map +1 -1
- package/dist/esm/tileset/helpers/zoom.js +0 -5
- package/dist/esm/tileset/helpers/zoom.js.map +1 -1
- package/dist/esm/tileset/tile-3d.js +8 -52
- package/dist/esm/tileset/tile-3d.js.map +1 -1
- package/dist/esm/tileset/tileset-3d.js +0 -38
- package/dist/esm/tileset/tileset-3d.js.map +1 -1
- package/dist/esm/tileset/tileset-cache.js +0 -3
- package/dist/esm/tileset/tileset-cache.js.map +1 -1
- package/dist/esm/tileset/tileset-traverser.js +0 -27
- package/dist/esm/tileset/tileset-traverser.js.map +1 -1
- package/dist/esm/utils/doubly-linked-list-node.js +0 -1
- package/dist/esm/utils/doubly-linked-list-node.js.map +1 -1
- package/dist/esm/utils/doubly-linked-list.js +0 -7
- package/dist/esm/utils/doubly-linked-list.js.map +1 -1
- package/dist/esm/utils/managed-array.js +0 -12
- package/dist/esm/utils/managed-array.js.map +1 -1
- package/dist/tileset/helpers/bounding-volume.d.ts +10 -0
- package/dist/tileset/helpers/bounding-volume.d.ts.map +1 -1
- package/dist/tileset/helpers/bounding-volume.js +117 -1
- package/dist/tileset/tile-3d.d.ts +7 -0
- package/dist/tileset/tile-3d.d.ts.map +1 -1
- package/dist/tileset/tile-3d.js +10 -0
- package/package.json +4 -4
- package/src/tileset/helpers/bounding-volume.ts +136 -0
- package/src/tileset/tile-3d.ts +18 -1
package/dist/dist.min.js
CHANGED
|
@@ -2883,8 +2883,54 @@
|
|
|
2883
2883
|
}
|
|
2884
2884
|
});
|
|
2885
2885
|
|
|
2886
|
+
// ../../node_modules/@babel/runtime/helpers/esm/typeof.js
|
|
2887
|
+
function _typeof(obj) {
|
|
2888
|
+
"@babel/helpers - typeof";
|
|
2889
|
+
return _typeof = typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? function(obj2) {
|
|
2890
|
+
return typeof obj2;
|
|
2891
|
+
} : function(obj2) {
|
|
2892
|
+
return obj2 && typeof Symbol == "function" && obj2.constructor === Symbol && obj2 !== Symbol.prototype ? "symbol" : typeof obj2;
|
|
2893
|
+
}, _typeof(obj);
|
|
2894
|
+
}
|
|
2895
|
+
var init_typeof = __esm({
|
|
2896
|
+
"../../node_modules/@babel/runtime/helpers/esm/typeof.js"() {
|
|
2897
|
+
}
|
|
2898
|
+
});
|
|
2899
|
+
|
|
2900
|
+
// ../../node_modules/@babel/runtime/helpers/esm/toPrimitive.js
|
|
2901
|
+
function _toPrimitive(input, hint) {
|
|
2902
|
+
if (_typeof(input) !== "object" || input === null)
|
|
2903
|
+
return input;
|
|
2904
|
+
var prim = input[Symbol.toPrimitive];
|
|
2905
|
+
if (prim !== void 0) {
|
|
2906
|
+
var res = prim.call(input, hint || "default");
|
|
2907
|
+
if (_typeof(res) !== "object")
|
|
2908
|
+
return res;
|
|
2909
|
+
throw new TypeError("@@toPrimitive must return a primitive value.");
|
|
2910
|
+
}
|
|
2911
|
+
return (hint === "string" ? String : Number)(input);
|
|
2912
|
+
}
|
|
2913
|
+
var init_toPrimitive = __esm({
|
|
2914
|
+
"../../node_modules/@babel/runtime/helpers/esm/toPrimitive.js"() {
|
|
2915
|
+
init_typeof();
|
|
2916
|
+
}
|
|
2917
|
+
});
|
|
2918
|
+
|
|
2919
|
+
// ../../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js
|
|
2920
|
+
function _toPropertyKey(arg) {
|
|
2921
|
+
var key = _toPrimitive(arg, "string");
|
|
2922
|
+
return _typeof(key) === "symbol" ? key : String(key);
|
|
2923
|
+
}
|
|
2924
|
+
var init_toPropertyKey = __esm({
|
|
2925
|
+
"../../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js"() {
|
|
2926
|
+
init_typeof();
|
|
2927
|
+
init_toPrimitive();
|
|
2928
|
+
}
|
|
2929
|
+
});
|
|
2930
|
+
|
|
2886
2931
|
// ../../node_modules/@babel/runtime/helpers/esm/defineProperty.js
|
|
2887
2932
|
function _defineProperty(obj, key, value) {
|
|
2933
|
+
key = _toPropertyKey(key);
|
|
2888
2934
|
if (key in obj) {
|
|
2889
2935
|
Object.defineProperty(obj, key, {
|
|
2890
2936
|
value,
|
|
@@ -2899,6 +2945,7 @@
|
|
|
2899
2945
|
}
|
|
2900
2946
|
var init_defineProperty = __esm({
|
|
2901
2947
|
"../../node_modules/@babel/runtime/helpers/esm/defineProperty.js"() {
|
|
2948
|
+
init_toPropertyKey();
|
|
2902
2949
|
}
|
|
2903
2950
|
});
|
|
2904
2951
|
|
|
@@ -3655,8 +3702,8 @@
|
|
|
3655
3702
|
};
|
|
3656
3703
|
this.name = jobName;
|
|
3657
3704
|
this.workerThread = workerThread;
|
|
3658
|
-
this.result = new Promise((
|
|
3659
|
-
this._resolve =
|
|
3705
|
+
this.result = new Promise((resolve2, reject) => {
|
|
3706
|
+
this._resolve = resolve2;
|
|
3660
3707
|
this._reject = reject;
|
|
3661
3708
|
});
|
|
3662
3709
|
}
|
|
@@ -4462,8 +4509,8 @@
|
|
|
4462
4509
|
return this.requestMap.get(handle);
|
|
4463
4510
|
}
|
|
4464
4511
|
const request = { handle, priority: 0, getPriority };
|
|
4465
|
-
const promise = new Promise((
|
|
4466
|
-
request.resolve =
|
|
4512
|
+
const promise = new Promise((resolve2) => {
|
|
4513
|
+
request.resolve = resolve2;
|
|
4467
4514
|
return request;
|
|
4468
4515
|
});
|
|
4469
4516
|
this.requestQueue.push(request);
|
|
@@ -4472,7 +4519,7 @@
|
|
|
4472
4519
|
return promise;
|
|
4473
4520
|
}
|
|
4474
4521
|
_issueRequest(request) {
|
|
4475
|
-
const { handle, resolve } = request;
|
|
4522
|
+
const { handle, resolve: resolve2 } = request;
|
|
4476
4523
|
let isDone = false;
|
|
4477
4524
|
const done = () => {
|
|
4478
4525
|
if (!isDone) {
|
|
@@ -4483,7 +4530,7 @@
|
|
|
4483
4530
|
}
|
|
4484
4531
|
};
|
|
4485
4532
|
this.activeRequestCount++;
|
|
4486
|
-
return
|
|
4533
|
+
return resolve2 ? resolve2({ done }) : Promise.resolve({ done });
|
|
4487
4534
|
}
|
|
4488
4535
|
_issueNewRequests() {
|
|
4489
4536
|
if (!this.deferredUpdate) {
|
|
@@ -4591,19 +4638,33 @@
|
|
|
4591
4638
|
}
|
|
4592
4639
|
});
|
|
4593
4640
|
|
|
4641
|
+
// ../loader-utils/src/lib/path-utils/get-cwd.ts
|
|
4642
|
+
function getCWD() {
|
|
4643
|
+
if (typeof process !== "undefined" && typeof process.cwd !== "undefined") {
|
|
4644
|
+
return process.cwd();
|
|
4645
|
+
}
|
|
4646
|
+
const pathname = window.location?.pathname;
|
|
4647
|
+
return pathname?.slice(0, pathname.lastIndexOf("/") + 1) || "";
|
|
4648
|
+
}
|
|
4649
|
+
var init_get_cwd = __esm({
|
|
4650
|
+
"../loader-utils/src/lib/path-utils/get-cwd.ts"() {
|
|
4651
|
+
}
|
|
4652
|
+
});
|
|
4653
|
+
|
|
4594
4654
|
// ../loader-utils/src/lib/path-utils/path.ts
|
|
4595
4655
|
var path_exports = {};
|
|
4596
4656
|
__export(path_exports, {
|
|
4597
4657
|
dirname: () => dirname,
|
|
4598
4658
|
filename: () => filename,
|
|
4599
|
-
join: () => join
|
|
4659
|
+
join: () => join,
|
|
4660
|
+
resolve: () => resolve
|
|
4600
4661
|
});
|
|
4601
4662
|
function filename(url) {
|
|
4602
|
-
const slashIndex = url
|
|
4663
|
+
const slashIndex = url ? url.lastIndexOf("/") : -1;
|
|
4603
4664
|
return slashIndex >= 0 ? url.substr(slashIndex + 1) : "";
|
|
4604
4665
|
}
|
|
4605
4666
|
function dirname(url) {
|
|
4606
|
-
const slashIndex = url
|
|
4667
|
+
const slashIndex = url ? url.lastIndexOf("/") : -1;
|
|
4607
4668
|
return slashIndex >= 0 ? url.substr(0, slashIndex) : "";
|
|
4608
4669
|
}
|
|
4609
4670
|
function join(...parts) {
|
|
@@ -4619,8 +4680,112 @@
|
|
|
4619
4680
|
});
|
|
4620
4681
|
return parts.join(separator);
|
|
4621
4682
|
}
|
|
4683
|
+
function resolve(...components) {
|
|
4684
|
+
const paths = [];
|
|
4685
|
+
for (let _i = 0; _i < components.length; _i++) {
|
|
4686
|
+
paths[_i] = components[_i];
|
|
4687
|
+
}
|
|
4688
|
+
let resolvedPath = "";
|
|
4689
|
+
let resolvedAbsolute = false;
|
|
4690
|
+
let cwd;
|
|
4691
|
+
for (let i = paths.length - 1; i >= -1 && !resolvedAbsolute; i--) {
|
|
4692
|
+
let path;
|
|
4693
|
+
if (i >= 0) {
|
|
4694
|
+
path = paths[i];
|
|
4695
|
+
} else {
|
|
4696
|
+
if (cwd === void 0) {
|
|
4697
|
+
cwd = getCWD();
|
|
4698
|
+
}
|
|
4699
|
+
path = cwd;
|
|
4700
|
+
}
|
|
4701
|
+
if (path.length === 0) {
|
|
4702
|
+
continue;
|
|
4703
|
+
}
|
|
4704
|
+
resolvedPath = `${path}/${resolvedPath}`;
|
|
4705
|
+
resolvedAbsolute = path.charCodeAt(0) === SLASH;
|
|
4706
|
+
}
|
|
4707
|
+
resolvedPath = normalizeStringPosix(resolvedPath, !resolvedAbsolute);
|
|
4708
|
+
if (resolvedAbsolute) {
|
|
4709
|
+
return `/${resolvedPath}`;
|
|
4710
|
+
} else if (resolvedPath.length > 0) {
|
|
4711
|
+
return resolvedPath;
|
|
4712
|
+
}
|
|
4713
|
+
return ".";
|
|
4714
|
+
}
|
|
4715
|
+
function normalizeStringPosix(path, allowAboveRoot) {
|
|
4716
|
+
let res = "";
|
|
4717
|
+
let lastSlash = -1;
|
|
4718
|
+
let dots = 0;
|
|
4719
|
+
let code;
|
|
4720
|
+
let isAboveRoot = false;
|
|
4721
|
+
for (let i = 0; i <= path.length; ++i) {
|
|
4722
|
+
if (i < path.length) {
|
|
4723
|
+
code = path.charCodeAt(i);
|
|
4724
|
+
} else if (code === SLASH) {
|
|
4725
|
+
break;
|
|
4726
|
+
} else {
|
|
4727
|
+
code = SLASH;
|
|
4728
|
+
}
|
|
4729
|
+
if (code === SLASH) {
|
|
4730
|
+
if (lastSlash === i - 1 || dots === 1) {
|
|
4731
|
+
} else if (lastSlash !== i - 1 && dots === 2) {
|
|
4732
|
+
if (res.length < 2 || !isAboveRoot || res.charCodeAt(res.length - 1) !== DOT || res.charCodeAt(res.length - 2) !== DOT) {
|
|
4733
|
+
if (res.length > 2) {
|
|
4734
|
+
const start = res.length - 1;
|
|
4735
|
+
let j = start;
|
|
4736
|
+
for (; j >= 0; --j) {
|
|
4737
|
+
if (res.charCodeAt(j) === SLASH) {
|
|
4738
|
+
break;
|
|
4739
|
+
}
|
|
4740
|
+
}
|
|
4741
|
+
if (j !== start) {
|
|
4742
|
+
res = j === -1 ? "" : res.slice(0, j);
|
|
4743
|
+
lastSlash = i;
|
|
4744
|
+
dots = 0;
|
|
4745
|
+
isAboveRoot = false;
|
|
4746
|
+
continue;
|
|
4747
|
+
}
|
|
4748
|
+
} else if (res.length === 2 || res.length === 1) {
|
|
4749
|
+
res = "";
|
|
4750
|
+
lastSlash = i;
|
|
4751
|
+
dots = 0;
|
|
4752
|
+
isAboveRoot = false;
|
|
4753
|
+
continue;
|
|
4754
|
+
}
|
|
4755
|
+
}
|
|
4756
|
+
if (allowAboveRoot) {
|
|
4757
|
+
if (res.length > 0) {
|
|
4758
|
+
res += "/..";
|
|
4759
|
+
} else {
|
|
4760
|
+
res = "..";
|
|
4761
|
+
}
|
|
4762
|
+
isAboveRoot = true;
|
|
4763
|
+
}
|
|
4764
|
+
} else {
|
|
4765
|
+
const slice = path.slice(lastSlash + 1, i);
|
|
4766
|
+
if (res.length > 0) {
|
|
4767
|
+
res += `/${slice}`;
|
|
4768
|
+
} else {
|
|
4769
|
+
res = slice;
|
|
4770
|
+
}
|
|
4771
|
+
isAboveRoot = false;
|
|
4772
|
+
}
|
|
4773
|
+
lastSlash = i;
|
|
4774
|
+
dots = 0;
|
|
4775
|
+
} else if (code === DOT && dots !== -1) {
|
|
4776
|
+
++dots;
|
|
4777
|
+
} else {
|
|
4778
|
+
dots = -1;
|
|
4779
|
+
}
|
|
4780
|
+
}
|
|
4781
|
+
return res;
|
|
4782
|
+
}
|
|
4783
|
+
var SLASH, DOT;
|
|
4622
4784
|
var init_path = __esm({
|
|
4623
4785
|
"../loader-utils/src/lib/path-utils/path.ts"() {
|
|
4786
|
+
init_get_cwd();
|
|
4787
|
+
SLASH = 47;
|
|
4788
|
+
DOT = 46;
|
|
4624
4789
|
}
|
|
4625
4790
|
});
|
|
4626
4791
|
|
|
@@ -4914,8 +5079,8 @@
|
|
|
4914
5079
|
return this;
|
|
4915
5080
|
}
|
|
4916
5081
|
expand(point) {
|
|
4917
|
-
const
|
|
4918
|
-
const radius =
|
|
5082
|
+
const scratchPoint2 = scratchVector6.from(point);
|
|
5083
|
+
const radius = scratchPoint2.subtract(this.center).magnitude();
|
|
4919
5084
|
if (radius > this.radius) {
|
|
4920
5085
|
this.radius = radius;
|
|
4921
5086
|
}
|
|
@@ -4932,8 +5097,8 @@
|
|
|
4932
5097
|
return d * d;
|
|
4933
5098
|
}
|
|
4934
5099
|
distanceTo(point) {
|
|
4935
|
-
const
|
|
4936
|
-
const delta =
|
|
5100
|
+
const scratchPoint2 = scratchVector6.from(point);
|
|
5101
|
+
const delta = scratchPoint2.subtract(this.center);
|
|
4937
5102
|
return Math.max(0, delta.len() - this.radius);
|
|
4938
5103
|
}
|
|
4939
5104
|
intersectPlane(plane) {
|
|
@@ -5695,9 +5860,9 @@
|
|
|
5695
5860
|
}
|
|
5696
5861
|
if (resource instanceof Blob) {
|
|
5697
5862
|
const blobSlice = resource.slice(0, 5);
|
|
5698
|
-
return await new Promise((
|
|
5863
|
+
return await new Promise((resolve2) => {
|
|
5699
5864
|
const reader = new FileReader();
|
|
5700
|
-
reader.onload = (event) =>
|
|
5865
|
+
reader.onload = (event) => resolve2(event?.target?.result);
|
|
5701
5866
|
reader.readAsDataURL(blobSlice);
|
|
5702
5867
|
});
|
|
5703
5868
|
}
|
|
@@ -7186,6 +7351,22 @@
|
|
|
7186
7351
|
}
|
|
7187
7352
|
throw new Error("3D Tile: boundingVolume must contain a sphere, region, or box");
|
|
7188
7353
|
}
|
|
7354
|
+
function getCartographicBounds(boundingVolumeHeader, boundingVolume) {
|
|
7355
|
+
if (boundingVolumeHeader.box) {
|
|
7356
|
+
return orientedBoundingBoxToCartographicBounds(boundingVolume);
|
|
7357
|
+
}
|
|
7358
|
+
if (boundingVolumeHeader.region) {
|
|
7359
|
+
const [west, south, east, north, minHeight, maxHeight] = boundingVolumeHeader.region;
|
|
7360
|
+
return [
|
|
7361
|
+
[degrees(west), degrees(south), minHeight],
|
|
7362
|
+
[degrees(east), degrees(north), maxHeight]
|
|
7363
|
+
];
|
|
7364
|
+
}
|
|
7365
|
+
if (boundingVolumeHeader.sphere) {
|
|
7366
|
+
return boundingSphereToCartographicBounds(boundingVolume);
|
|
7367
|
+
}
|
|
7368
|
+
throw new Error("Unkown boundingVolume type");
|
|
7369
|
+
}
|
|
7189
7370
|
function createBox(box, transform, result) {
|
|
7190
7371
|
const center = new Vector3(box[0], box[1], box[2]);
|
|
7191
7372
|
transform.transform(center, center);
|
|
@@ -7241,13 +7422,79 @@
|
|
|
7241
7422
|
}
|
|
7242
7423
|
return new BoundingSphere(center, radius);
|
|
7243
7424
|
}
|
|
7244
|
-
|
|
7425
|
+
function orientedBoundingBoxToCartographicBounds(boundingVolume) {
|
|
7426
|
+
const result = emptyCartographicBounds();
|
|
7427
|
+
const { halfAxes } = boundingVolume;
|
|
7428
|
+
const xAxis = new Vector3(halfAxes.getColumn(0));
|
|
7429
|
+
const yAxis = new Vector3(halfAxes.getColumn(1));
|
|
7430
|
+
const zAxis = new Vector3(halfAxes.getColumn(2));
|
|
7431
|
+
for (let x = 0; x < 2; x++) {
|
|
7432
|
+
for (let y = 0; y < 2; y++) {
|
|
7433
|
+
for (let z = 0; z < 2; z++) {
|
|
7434
|
+
scratchPoint.copy(boundingVolume.center);
|
|
7435
|
+
scratchPoint.add(xAxis);
|
|
7436
|
+
scratchPoint.add(yAxis);
|
|
7437
|
+
scratchPoint.add(zAxis);
|
|
7438
|
+
addToCartographicBounds(result, scratchPoint);
|
|
7439
|
+
zAxis.negate();
|
|
7440
|
+
}
|
|
7441
|
+
yAxis.negate();
|
|
7442
|
+
}
|
|
7443
|
+
xAxis.negate();
|
|
7444
|
+
}
|
|
7445
|
+
return result;
|
|
7446
|
+
}
|
|
7447
|
+
function boundingSphereToCartographicBounds(boundingVolume) {
|
|
7448
|
+
const result = emptyCartographicBounds();
|
|
7449
|
+
const { center, radius } = boundingVolume;
|
|
7450
|
+
const point = Ellipsoid.WGS84.scaleToGeodeticSurface(center, scratchPoint);
|
|
7451
|
+
let zAxis;
|
|
7452
|
+
if (point) {
|
|
7453
|
+
zAxis = Ellipsoid.WGS84.geodeticSurfaceNormal(point);
|
|
7454
|
+
} else {
|
|
7455
|
+
zAxis = new Vector3(0, 0, 1);
|
|
7456
|
+
}
|
|
7457
|
+
let xAxis = new Vector3(zAxis[2], -zAxis[1], 0);
|
|
7458
|
+
if (xAxis.len() > 0) {
|
|
7459
|
+
xAxis.normalize();
|
|
7460
|
+
} else {
|
|
7461
|
+
xAxis = new Vector3(0, 1, 0);
|
|
7462
|
+
}
|
|
7463
|
+
const yAxis = xAxis.clone().cross(zAxis);
|
|
7464
|
+
for (const axis of [xAxis, yAxis, zAxis]) {
|
|
7465
|
+
scratchScale.copy(axis).scale(radius);
|
|
7466
|
+
for (let dir = 0; dir < 2; dir++) {
|
|
7467
|
+
scratchPoint.copy(center);
|
|
7468
|
+
scratchPoint.add(scratchScale);
|
|
7469
|
+
addToCartographicBounds(result, scratchPoint);
|
|
7470
|
+
scratchScale.negate();
|
|
7471
|
+
}
|
|
7472
|
+
}
|
|
7473
|
+
return result;
|
|
7474
|
+
}
|
|
7475
|
+
function emptyCartographicBounds() {
|
|
7476
|
+
return [
|
|
7477
|
+
[Infinity, Infinity, Infinity],
|
|
7478
|
+
[-Infinity, -Infinity, -Infinity]
|
|
7479
|
+
];
|
|
7480
|
+
}
|
|
7481
|
+
function addToCartographicBounds(target, cartesian) {
|
|
7482
|
+
Ellipsoid.WGS84.cartesianToCartographic(cartesian, scratchPoint);
|
|
7483
|
+
target[0][0] = Math.min(target[0][0], scratchPoint[0]);
|
|
7484
|
+
target[0][1] = Math.min(target[0][1], scratchPoint[1]);
|
|
7485
|
+
target[0][2] = Math.min(target[0][2], scratchPoint[2]);
|
|
7486
|
+
target[1][0] = Math.max(target[1][0], scratchPoint[0]);
|
|
7487
|
+
target[1][1] = Math.max(target[1][1], scratchPoint[1]);
|
|
7488
|
+
target[1][2] = Math.max(target[1][2], scratchPoint[2]);
|
|
7489
|
+
}
|
|
7490
|
+
var scratchPoint, scratchScale, scratchNorthWest, scratchSouthEast;
|
|
7245
7491
|
var init_bounding_volume = __esm({
|
|
7246
7492
|
"src/tileset/helpers/bounding-volume.ts"() {
|
|
7247
7493
|
init_esm();
|
|
7248
7494
|
init_esm3();
|
|
7249
7495
|
init_esm2();
|
|
7250
7496
|
init_src2();
|
|
7497
|
+
scratchPoint = new Vector3();
|
|
7251
7498
|
scratchScale = new Vector3();
|
|
7252
7499
|
scratchNorthWest = new Vector3();
|
|
7253
7500
|
scratchSouthEast = new Vector3();
|
|
@@ -7798,6 +8045,12 @@
|
|
|
7798
8045
|
get screenSpaceError() {
|
|
7799
8046
|
return this._screenSpaceError;
|
|
7800
8047
|
}
|
|
8048
|
+
get boundingBox() {
|
|
8049
|
+
if (!this._boundingBox) {
|
|
8050
|
+
this._boundingBox = getCartographicBounds(this.header.boundingVolume, this.boundingVolume);
|
|
8051
|
+
}
|
|
8052
|
+
return this._boundingBox;
|
|
8053
|
+
}
|
|
7801
8054
|
getScreenSpaceError(frameState, useParentLodMetric) {
|
|
7802
8055
|
switch (this.tileset.type) {
|
|
7803
8056
|
case TILESET_TYPE.I3S:
|
|
@@ -8451,12 +8704,12 @@
|
|
|
8451
8704
|
this.lastUpdatedVieports = viewports;
|
|
8452
8705
|
}
|
|
8453
8706
|
if (!this.updatePromise) {
|
|
8454
|
-
this.updatePromise = new Promise((
|
|
8707
|
+
this.updatePromise = new Promise((resolve2) => {
|
|
8455
8708
|
setTimeout(() => {
|
|
8456
8709
|
if (this.lastUpdatedVieports) {
|
|
8457
8710
|
this.doUpdate(this.lastUpdatedVieports);
|
|
8458
8711
|
}
|
|
8459
|
-
|
|
8712
|
+
resolve2(this._frameNumber);
|
|
8460
8713
|
this.updatePromise = null;
|
|
8461
8714
|
}, this.options.debounceTime);
|
|
8462
8715
|
});
|
package/dist/es5/constants.js
CHANGED
|
@@ -4,7 +4,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.TILE_TYPE = exports.TILE_REFINEMENT = exports.TILE_CONTENT_STATE = exports.TILESET_TYPE = exports.TILE3D_OPTIMIZATION_HINT = exports.LOD_METRIC_TYPE = void 0;
|
|
7
|
-
|
|
8
7
|
var TILE_CONTENT_STATE = {
|
|
9
8
|
UNLOADED: 0,
|
|
10
9
|
LOADING: 1,
|
|
@@ -35,7 +34,6 @@ var LOD_METRIC_TYPE = {
|
|
|
35
34
|
GEOMETRIC_ERROR: 'geometricError',
|
|
36
35
|
MAX_SCREEN_THRESHOLD: 'maxScreenThreshold'
|
|
37
36
|
};
|
|
38
|
-
|
|
39
37
|
exports.LOD_METRIC_TYPE = LOD_METRIC_TYPE;
|
|
40
38
|
var TILE3D_OPTIMIZATION_HINT = {
|
|
41
39
|
NOT_COMPUTED: -1,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","names":["TILE_CONTENT_STATE","UNLOADED","LOADING","PROCESSING","READY","EXPIRED","FAILED","TILE_REFINEMENT","ADD","REPLACE","TILE_TYPE","EMPTY","SCENEGRAPH","POINTCLOUD","MESH","TILESET_TYPE","I3S","TILES3D","LOD_METRIC_TYPE","GEOMETRIC_ERROR","MAX_SCREEN_THRESHOLD","TILE3D_OPTIMIZATION_HINT","NOT_COMPUTED","USE_OPTIMIZATION","SKIP_OPTIMIZATION"],"sources":["../../src/constants.ts"],"sourcesContent":["// loaders.gl, MIT license\n\nexport const TILE_CONTENT_STATE = {\n UNLOADED: 0, // Has never been requested\n LOADING: 1, // Is waiting on a pending request\n PROCESSING: 2, // Request received. Contents are being processed for rendering. Depending on the content, it might make its own requests for external data.\n READY: 3, // Ready to render.\n EXPIRED: 4, // Is expired and will be unloaded once new content is loaded.\n FAILED: 5 // Request failed.\n};\n\nexport const TILE_REFINEMENT = {\n ADD: 1, // Render tile and, if screen space error exceeded, also refine to its children.\n REPLACE: 2 // Render tile or, if screen space error exceeded, refine to its descendants instead.\n};\n\nexport const TILE_TYPE = {\n EMPTY: 'empty',\n SCENEGRAPH: 'scenegraph',\n POINTCLOUD: 'pointcloud',\n MESH: 'mesh'\n};\n\nexport const TILESET_TYPE = {\n I3S: 'I3S',\n TILES3D: 'TILES3D'\n};\n\nexport const LOD_METRIC_TYPE = {\n GEOMETRIC_ERROR: 'geometricError',\n MAX_SCREEN_THRESHOLD: 'maxScreenThreshold'\n};\n\n// Cesium 3D Tiles Specific\nexport const TILE3D_OPTIMIZATION_HINT = {\n NOT_COMPUTED: -1,\n USE_OPTIMIZATION: 1,\n SKIP_OPTIMIZATION: 0\n};\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"constants.js","names":["TILE_CONTENT_STATE","UNLOADED","LOADING","PROCESSING","READY","EXPIRED","FAILED","exports","TILE_REFINEMENT","ADD","REPLACE","TILE_TYPE","EMPTY","SCENEGRAPH","POINTCLOUD","MESH","TILESET_TYPE","I3S","TILES3D","LOD_METRIC_TYPE","GEOMETRIC_ERROR","MAX_SCREEN_THRESHOLD","TILE3D_OPTIMIZATION_HINT","NOT_COMPUTED","USE_OPTIMIZATION","SKIP_OPTIMIZATION"],"sources":["../../src/constants.ts"],"sourcesContent":["// loaders.gl, MIT license\n\nexport const TILE_CONTENT_STATE = {\n UNLOADED: 0, // Has never been requested\n LOADING: 1, // Is waiting on a pending request\n PROCESSING: 2, // Request received. Contents are being processed for rendering. Depending on the content, it might make its own requests for external data.\n READY: 3, // Ready to render.\n EXPIRED: 4, // Is expired and will be unloaded once new content is loaded.\n FAILED: 5 // Request failed.\n};\n\nexport const TILE_REFINEMENT = {\n ADD: 1, // Render tile and, if screen space error exceeded, also refine to its children.\n REPLACE: 2 // Render tile or, if screen space error exceeded, refine to its descendants instead.\n};\n\nexport const TILE_TYPE = {\n EMPTY: 'empty',\n SCENEGRAPH: 'scenegraph',\n POINTCLOUD: 'pointcloud',\n MESH: 'mesh'\n};\n\nexport const TILESET_TYPE = {\n I3S: 'I3S',\n TILES3D: 'TILES3D'\n};\n\nexport const LOD_METRIC_TYPE = {\n GEOMETRIC_ERROR: 'geometricError',\n MAX_SCREEN_THRESHOLD: 'maxScreenThreshold'\n};\n\n// Cesium 3D Tiles Specific\nexport const TILE3D_OPTIMIZATION_HINT = {\n NOT_COMPUTED: -1,\n USE_OPTIMIZATION: 1,\n SKIP_OPTIMIZATION: 0\n};\n"],"mappings":";;;;;;AAEO,IAAMA,kBAAkB,GAAG;EAChCC,QAAQ,EAAE,CAAC;EACXC,OAAO,EAAE,CAAC;EACVC,UAAU,EAAE,CAAC;EACbC,KAAK,EAAE,CAAC;EACRC,OAAO,EAAE,CAAC;EACVC,MAAM,EAAE;AACV,CAAC;AAACC,OAAA,CAAAP,kBAAA,GAAAA,kBAAA;AAEK,IAAMQ,eAAe,GAAG;EAC7BC,GAAG,EAAE,CAAC;EACNC,OAAO,EAAE;AACX,CAAC;AAACH,OAAA,CAAAC,eAAA,GAAAA,eAAA;AAEK,IAAMG,SAAS,GAAG;EACvBC,KAAK,EAAE,OAAO;EACdC,UAAU,EAAE,YAAY;EACxBC,UAAU,EAAE,YAAY;EACxBC,IAAI,EAAE;AACR,CAAC;AAACR,OAAA,CAAAI,SAAA,GAAAA,SAAA;AAEK,IAAMK,YAAY,GAAG;EAC1BC,GAAG,EAAE,KAAK;EACVC,OAAO,EAAE;AACX,CAAC;AAACX,OAAA,CAAAS,YAAA,GAAAA,YAAA;AAEK,IAAMG,eAAe,GAAG;EAC7BC,eAAe,EAAE,gBAAgB;EACjCC,oBAAoB,EAAE;AACxB,CAAC;AAACd,OAAA,CAAAY,eAAA,GAAAA,eAAA;AAGK,IAAMG,wBAAwB,GAAG;EACtCC,YAAY,EAAE,CAAC,CAAC;EAChBC,gBAAgB,EAAE,CAAC;EACnBC,iBAAiB,EAAE;AACrB,CAAC;AAAClB,OAAA,CAAAe,wBAAA,GAAAA,wBAAA"}
|
package/dist/es5/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../../src/index.ts"],"sourcesContent":["// loaders.gl, MIT license\n\nexport type {Tileset3DProps} from './tileset/tileset-3d';\nexport {Tileset3D} from './tileset/tileset-3d';\nexport {Tile3D} from './tileset/tile-3d';\n\nexport {TilesetTraverser} from './tileset/tileset-traverser';\nexport {TilesetCache} from './tileset/tileset-cache';\n\nexport {createBoundingVolume} from './tileset/helpers/bounding-volume';\nexport {calculateTransformProps} from './tileset/helpers/transform-utils';\n\nexport {getFrameState} from './tileset/helpers/frame-state';\nexport {getLodStatus} from './tileset/helpers/i3s-lod';\n\nexport {\n TILE_CONTENT_STATE,\n TILE_REFINEMENT,\n TILE_TYPE,\n TILESET_TYPE,\n LOD_METRIC_TYPE\n} from './constants';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA;AACA;AAEA;AACA;AAEA;AACA;AAEA;AACA;AAEA"}
|
|
1
|
+
{"version":3,"file":"index.js","names":["_tileset3d","require","_tile3d","_tilesetTraverser","_tilesetCache","_boundingVolume","_transformUtils","_frameState","_i3sLod","_constants"],"sources":["../../src/index.ts"],"sourcesContent":["// loaders.gl, MIT license\n\nexport type {Tileset3DProps} from './tileset/tileset-3d';\nexport {Tileset3D} from './tileset/tileset-3d';\nexport {Tile3D} from './tileset/tile-3d';\n\nexport {TilesetTraverser} from './tileset/tileset-traverser';\nexport {TilesetCache} from './tileset/tileset-cache';\n\nexport {createBoundingVolume} from './tileset/helpers/bounding-volume';\nexport {calculateTransformProps} from './tileset/helpers/transform-utils';\n\nexport {getFrameState} from './tileset/helpers/frame-state';\nexport {getLodStatus} from './tileset/helpers/i3s-lod';\n\nexport {\n TILE_CONTENT_STATE,\n TILE_REFINEMENT,\n TILE_TYPE,\n TILESET_TYPE,\n LOD_METRIC_TYPE\n} from './constants';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA,IAAAA,UAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AAEA,IAAAE,iBAAA,GAAAF,OAAA;AACA,IAAAG,aAAA,GAAAH,OAAA;AAEA,IAAAI,eAAA,GAAAJ,OAAA;AACA,IAAAK,eAAA,GAAAL,OAAA;AAEA,IAAAM,WAAA,GAAAN,OAAA;AACA,IAAAO,OAAA,GAAAP,OAAA;AAEA,IAAAQ,UAAA,GAAAR,OAAA"}
|
|
@@ -31,7 +31,6 @@ var Tileset3DTraverser = function (_TilesetTraverser) {
|
|
|
31
31
|
key: "updateTileVisibility",
|
|
32
32
|
value: function updateTileVisibility(tile, frameState) {
|
|
33
33
|
(0, _get2.default)((0, _getPrototypeOf2.default)(Tileset3DTraverser.prototype), "updateTileVisibility", this).call(this, tile, frameState);
|
|
34
|
-
|
|
35
34
|
if (!tile.isVisibleAndInRequestVolume) {
|
|
36
35
|
return;
|
|
37
36
|
}
|
|
@@ -62,7 +61,6 @@ var Tileset3DTraverser = function (_TilesetTraverser) {
|
|
|
62
61
|
if (!parent || parent.hasTilesetContent || parent.refine !== _constants.TILE_REFINEMENT.ADD) {
|
|
63
62
|
return false;
|
|
64
63
|
}
|
|
65
|
-
|
|
66
64
|
return !this.shouldRefine(tile, frameState, true);
|
|
67
65
|
}
|
|
68
66
|
}]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tileset-3d-traverser.js","names":["Tileset3DTraverser","a","b","_distanceToCamera","_centerZDepth","tile","frameState","isVisibleAndInRequestVolume","hasChildren","children","length","hasTilesetContent","firstChild","
|
|
1
|
+
{"version":3,"file":"tileset-3d-traverser.js","names":["_constants","require","_tilesetTraverser","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","default","result","NewTarget","constructor","Reflect","construct","arguments","apply","_possibleConstructorReturn2","sham","Proxy","Boolean","prototype","valueOf","call","e","Tileset3DTraverser","_TilesetTraverser","_inherits2","_super","_classCallCheck2","_createClass2","key","value","compareDistanceToCamera","a","b","_distanceToCamera","_centerZDepth","updateTileVisibility","tile","frameState","_get2","isVisibleAndInRequestVolume","hasChildren","children","length","hasTilesetContent","firstChild","_visible","meetsScreenSpaceErrorEarly","replace","refine","TILE_REFINEMENT","REPLACE","useOptimization","_optimChildrenWithinParent","TILE3D_OPTIMIZATION_HINT","USE_OPTIMIZATION","anyChildrenVisible","parent","ADD","shouldRefine","TilesetTraverser","exports"],"sources":["../../../../src/tileset/format-3d-tiles/tileset-3d-traverser.ts"],"sourcesContent":["// loaders.gl, MIT license\n\n// 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 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":"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"}
|
|
@@ -15,18 +15,15 @@ var I3SPendingTilesRegister = function () {
|
|
|
15
15
|
}
|
|
16
16
|
(0, _createClass2.default)(I3SPendingTilesRegister, [{
|
|
17
17
|
key: "register",
|
|
18
|
-
value:
|
|
19
|
-
function register(viewportId, frameNumber) {
|
|
18
|
+
value: function register(viewportId, frameNumber) {
|
|
20
19
|
var viewportMap = this.frameNumberMap.get(viewportId) || new Map();
|
|
21
20
|
var oldCount = viewportMap.get(frameNumber) || 0;
|
|
22
21
|
viewportMap.set(frameNumber, oldCount + 1);
|
|
23
22
|
this.frameNumberMap.set(viewportId, viewportMap);
|
|
24
23
|
}
|
|
25
|
-
|
|
26
24
|
}, {
|
|
27
25
|
key: "deregister",
|
|
28
|
-
value:
|
|
29
|
-
function deregister(viewportId, frameNumber) {
|
|
26
|
+
value: function deregister(viewportId, frameNumber) {
|
|
30
27
|
var viewportMap = this.frameNumberMap.get(viewportId);
|
|
31
28
|
if (!viewportMap) {
|
|
32
29
|
return;
|
|
@@ -34,11 +31,9 @@ var I3SPendingTilesRegister = function () {
|
|
|
34
31
|
var oldCount = viewportMap.get(frameNumber) || 1;
|
|
35
32
|
viewportMap.set(frameNumber, oldCount - 1);
|
|
36
33
|
}
|
|
37
|
-
|
|
38
34
|
}, {
|
|
39
35
|
key: "isZero",
|
|
40
|
-
value:
|
|
41
|
-
function isZero(viewportId, frameNumber) {
|
|
36
|
+
value: function isZero(viewportId, frameNumber) {
|
|
42
37
|
var _this$frameNumberMap$;
|
|
43
38
|
var count = ((_this$frameNumberMap$ = this.frameNumberMap.get(viewportId)) === null || _this$frameNumberMap$ === void 0 ? void 0 : _this$frameNumberMap$.get(frameNumber)) || 0;
|
|
44
39
|
return count === 0;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"i3s-pending-tiles-register.js","names":["I3SPendingTilesRegister","Map","viewportId","frameNumber","viewportMap","frameNumberMap","get","oldCount","set","count"],"sources":["../../../../src/tileset/format-i3s/i3s-pending-tiles-register.ts"],"sourcesContent":["/**\n * Counter to register pending tile headers for the particular frameNumber\n * Until all tiles are loaded we won't call `onTraversalEnd` callback\n */\nexport class I3SPendingTilesRegister {\n private frameNumberMap: Map<string, Map<number, number>> = new Map();\n\n /**\n * Register a new pending tile header for the particular frameNumber\n * @param viewportId\n * @param frameNumber\n */\n register(viewportId: string, frameNumber: number) {\n const viewportMap = this.frameNumberMap.get(viewportId) || new Map();\n const oldCount = viewportMap.get(frameNumber) || 0;\n viewportMap.set(frameNumber, oldCount + 1);\n this.frameNumberMap.set(viewportId, viewportMap);\n }\n\n /**\n * Deregister a pending tile header for the particular frameNumber\n * @param viewportId\n * @param frameNumber\n */\n deregister(viewportId: string, frameNumber: number) {\n const viewportMap = this.frameNumberMap.get(viewportId);\n if (!viewportMap) {\n return;\n }\n const oldCount = viewportMap.get(frameNumber) || 1;\n viewportMap.set(frameNumber, oldCount - 1);\n }\n\n /**\n * Check is there are no pending tile headers registered for the particular frameNumber\n * @param viewportId\n * @param frameNumber\n * @returns\n */\n isZero(viewportId: string, frameNumber: number) {\n const count = this.frameNumberMap.get(viewportId)?.get(frameNumber) || 0;\n return count === 0;\n }\n}\n"],"mappings":";;;;;;;;;;IAIaA,uBAAuB;EAAA;IAAA;IAAA,
|
|
1
|
+
{"version":3,"file":"i3s-pending-tiles-register.js","names":["I3SPendingTilesRegister","_classCallCheck2","default","_defineProperty2","Map","_createClass2","key","value","register","viewportId","frameNumber","viewportMap","frameNumberMap","get","oldCount","set","deregister","isZero","_this$frameNumberMap$","count","exports"],"sources":["../../../../src/tileset/format-i3s/i3s-pending-tiles-register.ts"],"sourcesContent":["/**\n * Counter to register pending tile headers for the particular frameNumber\n * Until all tiles are loaded we won't call `onTraversalEnd` callback\n */\nexport class I3SPendingTilesRegister {\n private frameNumberMap: Map<string, Map<number, number>> = new Map();\n\n /**\n * Register a new pending tile header for the particular frameNumber\n * @param viewportId\n * @param frameNumber\n */\n register(viewportId: string, frameNumber: number) {\n const viewportMap = this.frameNumberMap.get(viewportId) || new Map();\n const oldCount = viewportMap.get(frameNumber) || 0;\n viewportMap.set(frameNumber, oldCount + 1);\n this.frameNumberMap.set(viewportId, viewportMap);\n }\n\n /**\n * Deregister a pending tile header for the particular frameNumber\n * @param viewportId\n * @param frameNumber\n */\n deregister(viewportId: string, frameNumber: number) {\n const viewportMap = this.frameNumberMap.get(viewportId);\n if (!viewportMap) {\n return;\n }\n const oldCount = viewportMap.get(frameNumber) || 1;\n viewportMap.set(frameNumber, oldCount - 1);\n }\n\n /**\n * Check is there are no pending tile headers registered for the particular frameNumber\n * @param viewportId\n * @param frameNumber\n * @returns\n */\n isZero(viewportId: string, frameNumber: number) {\n const count = this.frameNumberMap.get(viewportId)?.get(frameNumber) || 0;\n return count === 0;\n }\n}\n"],"mappings":";;;;;;;;;;IAIaA,uBAAuB;EAAA,SAAAA,wBAAA;IAAA,IAAAC,gBAAA,CAAAC,OAAA,QAAAF,uBAAA;IAAA,IAAAG,gBAAA,CAAAD,OAAA,0BACyB,IAAIE,GAAG,EAAE;EAAA;EAAA,IAAAC,aAAA,CAAAH,OAAA,EAAAF,uBAAA;IAAAM,GAAA;IAAAC,KAAA,EAOpE,SAAAC,SAASC,UAAkB,EAAEC,WAAmB,EAAE;MAChD,IAAMC,WAAW,GAAG,IAAI,CAACC,cAAc,CAACC,GAAG,CAACJ,UAAU,CAAC,IAAI,IAAIL,GAAG,EAAE;MACpE,IAAMU,QAAQ,GAAGH,WAAW,CAACE,GAAG,CAACH,WAAW,CAAC,IAAI,CAAC;MAClDC,WAAW,CAACI,GAAG,CAACL,WAAW,EAAEI,QAAQ,GAAG,CAAC,CAAC;MAC1C,IAAI,CAACF,cAAc,CAACG,GAAG,CAACN,UAAU,EAAEE,WAAW,CAAC;IAClD;EAAC;IAAAL,GAAA;IAAAC,KAAA,EAOD,SAAAS,WAAWP,UAAkB,EAAEC,WAAmB,EAAE;MAClD,IAAMC,WAAW,GAAG,IAAI,CAACC,cAAc,CAACC,GAAG,CAACJ,UAAU,CAAC;MACvD,IAAI,CAACE,WAAW,EAAE;QAChB;MACF;MACA,IAAMG,QAAQ,GAAGH,WAAW,CAACE,GAAG,CAACH,WAAW,CAAC,IAAI,CAAC;MAClDC,WAAW,CAACI,GAAG,CAACL,WAAW,EAAEI,QAAQ,GAAG,CAAC,CAAC;IAC5C;EAAC;IAAAR,GAAA;IAAAC,KAAA,EAQD,SAAAU,OAAOR,UAAkB,EAAEC,WAAmB,EAAE;MAAA,IAAAQ,qBAAA;MAC9C,IAAMC,KAAK,GAAG,EAAAD,qBAAA,OAAI,CAACN,cAAc,CAACC,GAAG,CAACJ,UAAU,CAAC,cAAAS,qBAAA,uBAAnCA,qBAAA,CAAqCL,GAAG,CAACH,WAAW,CAAC,KAAI,CAAC;MACxE,OAAOS,KAAK,KAAK,CAAC;IACpB;EAAC;EAAA,OAAAnB,uBAAA;AAAA;AAAAoB,OAAA,CAAApB,uBAAA,GAAAA,uBAAA"}
|
|
@@ -14,7 +14,6 @@ var STATUS = {
|
|
|
14
14
|
COMPLETED: 'COMPLETED',
|
|
15
15
|
ERROR: 'ERROR'
|
|
16
16
|
};
|
|
17
|
-
|
|
18
17
|
var I3STileManager = function () {
|
|
19
18
|
function I3STileManager() {
|
|
20
19
|
(0, _classCallCheck2.default)(this, I3STileManager);
|
|
@@ -22,11 +21,9 @@ var I3STileManager = function () {
|
|
|
22
21
|
(0, _defineProperty2.default)(this, "pendingTilesRegister", new _i3sPendingTilesRegister.I3SPendingTilesRegister());
|
|
23
22
|
this._statusMap = {};
|
|
24
23
|
}
|
|
25
|
-
|
|
26
24
|
(0, _createClass2.default)(I3STileManager, [{
|
|
27
25
|
key: "add",
|
|
28
|
-
value:
|
|
29
|
-
function add(request, key, callback, frameState) {
|
|
26
|
+
value: function add(request, key, callback, frameState) {
|
|
30
27
|
var _this = this;
|
|
31
28
|
if (!this._statusMap[key]) {
|
|
32
29
|
var frameNumber = frameState.frameNumber,
|
|
@@ -56,35 +53,28 @@ var I3STileManager = function () {
|
|
|
56
53
|
});
|
|
57
54
|
}
|
|
58
55
|
}
|
|
59
|
-
|
|
60
56
|
}, {
|
|
61
57
|
key: "update",
|
|
62
|
-
value:
|
|
63
|
-
function update(key, frameState) {
|
|
58
|
+
value: function update(key, frameState) {
|
|
64
59
|
if (this._statusMap[key]) {
|
|
65
60
|
var _this$_statusMap$key$3 = this._statusMap[key].frameState,
|
|
66
61
|
frameNumber = _this$_statusMap$key$3.frameNumber,
|
|
67
62
|
id = _this$_statusMap$key$3.viewport.id;
|
|
68
63
|
this.pendingTilesRegister.deregister(id, frameNumber);
|
|
69
|
-
|
|
70
64
|
var newFrameNumber = frameState.frameNumber,
|
|
71
65
|
newViewportId = frameState.viewport.id;
|
|
72
66
|
this.pendingTilesRegister.register(newViewportId, newFrameNumber);
|
|
73
67
|
this._statusMap[key].frameState = frameState;
|
|
74
68
|
}
|
|
75
69
|
}
|
|
76
|
-
|
|
77
70
|
}, {
|
|
78
71
|
key: "find",
|
|
79
|
-
value:
|
|
80
|
-
function find(key) {
|
|
72
|
+
value: function find(key) {
|
|
81
73
|
return this._statusMap[key];
|
|
82
74
|
}
|
|
83
|
-
|
|
84
75
|
}, {
|
|
85
76
|
key: "hasPendingTiles",
|
|
86
|
-
value:
|
|
87
|
-
function hasPendingTiles(viewportId, frameNumber) {
|
|
77
|
+
value: function hasPendingTiles(viewportId, frameNumber) {
|
|
88
78
|
return !this.pendingTilesRegister.isZero(viewportId, frameNumber);
|
|
89
79
|
}
|
|
90
80
|
}]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"i3s-tile-manager.js","names":["STATUS","REQUESTED","COMPLETED","ERROR","I3STileManager","I3SPendingTilesRegister","_statusMap","
|
|
1
|
+
{"version":3,"file":"i3s-tile-manager.js","names":["_i3sPendingTilesRegister","require","STATUS","REQUESTED","COMPLETED","ERROR","I3STileManager","_classCallCheck2","default","_defineProperty2","I3SPendingTilesRegister","_statusMap","_createClass2","key","value","add","request","callback","frameState","_this","frameNumber","id","viewport","status","pendingTilesRegister","register","then","data","_this$_statusMap$key$","actualFrameNumber","deregister","catch","error","_this$_statusMap$key$2","update","_this$_statusMap$key$3","newFrameNumber","newViewportId","find","hasPendingTiles","viewportId","isZero","exports"],"sources":["../../../../src/tileset/format-i3s/i3s-tile-manager.ts"],"sourcesContent":["import {FrameState} from '../helpers/frame-state';\nimport {I3SPendingTilesRegister} from './i3s-pending-tiles-register';\n\nconst STATUS = {\n REQUESTED: 'REQUESTED',\n COMPLETED: 'COMPLETED',\n ERROR: 'ERROR'\n};\n\n// A helper class to manage tile metadata fetching\nexport class I3STileManager {\n private _statusMap: object;\n private pendingTilesRegister = new I3SPendingTilesRegister();\n\n constructor() {\n this._statusMap = {};\n }\n\n /**\n * Add request to map\n * @param request - node metadata request\n * @param key - unique key\n * @param callback - callback after request completed\n * @param frameState - frameState data\n */\n add(request, key, callback, frameState: FrameState) {\n if (!this._statusMap[key]) {\n const {\n frameNumber,\n viewport: {id}\n } = frameState;\n this._statusMap[key] = {request, callback, key, frameState, status: STATUS.REQUESTED};\n // Register pending request for the frameNumber\n this.pendingTilesRegister.register(id, frameNumber);\n request()\n .then((data) => {\n this._statusMap[key].status = STATUS.COMPLETED;\n const {\n frameNumber: actualFrameNumber,\n viewport: {id}\n } = this._statusMap[key].frameState;\n // Deregister pending request for the frameNumber\n this.pendingTilesRegister.deregister(id, actualFrameNumber);\n this._statusMap[key].callback(data, frameState);\n })\n .catch((error) => {\n this._statusMap[key].status = STATUS.ERROR;\n const {\n frameNumber: actualFrameNumber,\n viewport: {id}\n } = this._statusMap[key].frameState;\n // Deregister pending request for the frameNumber\n this.pendingTilesRegister.deregister(id, actualFrameNumber);\n callback(error);\n });\n }\n }\n\n /**\n * Update request if it is still actual for the new frameState\n * @param key - unique key\n * @param frameState - frameState data\n */\n update(key, frameState: FrameState) {\n if (this._statusMap[key]) {\n // Deregister pending request for the old frameNumber\n const {\n frameNumber,\n viewport: {id}\n } = this._statusMap[key].frameState;\n this.pendingTilesRegister.deregister(id, frameNumber);\n\n // Register pending request for the new frameNumber\n const {\n frameNumber: newFrameNumber,\n viewport: {id: newViewportId}\n } = frameState;\n this.pendingTilesRegister.register(newViewportId, newFrameNumber);\n this._statusMap[key].frameState = frameState;\n }\n }\n\n /**\n * Find request in the map\n * @param key - unique key\n * @returns\n */\n find(key) {\n return this._statusMap[key];\n }\n\n /**\n * Check it there are pending tile headers for the particular frameNumber\n * @param viewportId\n * @param frameNumber\n * @returns\n */\n hasPendingTiles(viewportId: string, frameNumber: number): boolean {\n return !this.pendingTilesRegister.isZero(viewportId, frameNumber);\n }\n}\n"],"mappings":"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"}
|