@loaders.gl/tiles 3.1.3 → 4.0.0-alpha.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bundle.js +2 -2
- package/dist/bundle.js.map +1 -0
- package/dist/constants.js +26 -29
- package/dist/constants.js.map +1 -0
- package/dist/dist.min.js +45 -264
- package/dist/index.js +10 -28
- package/dist/index.js.map +1 -0
- package/dist/tileset/helpers/3d-tiles-options.js +5 -8
- package/dist/tileset/helpers/3d-tiles-options.js.map +1 -0
- package/dist/tileset/helpers/bounding-volume.js +70 -159
- package/dist/tileset/helpers/bounding-volume.js.map +1 -0
- package/dist/tileset/helpers/frame-state.js +48 -67
- package/dist/tileset/helpers/frame-state.js.map +1 -0
- package/dist/tileset/helpers/i3s-lod.js +64 -80
- package/dist/tileset/helpers/i3s-lod.js.map +1 -0
- package/dist/tileset/helpers/tiles-3d-lod.js +100 -111
- package/dist/tileset/helpers/tiles-3d-lod.js.map +1 -0
- package/dist/tileset/helpers/transform-utils.js +56 -50
- package/dist/tileset/helpers/transform-utils.js.map +1 -0
- package/dist/tileset/helpers/zoom.js +30 -36
- package/dist/tileset/helpers/zoom.js.map +1 -0
- package/dist/tileset/tile-3d.js +533 -551
- package/dist/tileset/tile-3d.js.map +1 -0
- package/dist/tileset/tileset-3d.js +649 -576
- package/dist/tileset/tileset-3d.js.map +1 -0
- package/dist/tileset/tileset-cache.js +71 -71
- package/dist/tileset/tileset-cache.js.map +1 -0
- package/dist/tileset/traversers/i3s-tile-manager.js +40 -31
- package/dist/tileset/traversers/i3s-tile-manager.js.map +1 -0
- package/dist/tileset/traversers/i3s-tileset-traverser.js +76 -81
- package/dist/tileset/traversers/i3s-tileset-traverser.js.map +1 -0
- package/dist/tileset/traversers/tileset-3d-traverser.js +49 -51
- package/dist/tileset/traversers/tileset-3d-traverser.js.map +1 -0
- package/dist/tileset/traversers/tileset-traverser.js +276 -274
- package/dist/tileset/traversers/tileset-traverser.js.map +1 -0
- package/dist/utils/doubly-linked-list-node.js +15 -16
- package/dist/utils/doubly-linked-list-node.js.map +1 -0
- package/dist/utils/doubly-linked-list.js +75 -94
- package/dist/utils/doubly-linked-list.js.map +1 -0
- package/dist/utils/managed-array.js +109 -143
- package/dist/utils/managed-array.js.map +1 -0
- package/package.json +7 -7
- package/dist/es5/bundle.js +0 -7
- package/dist/es5/bundle.js.map +0 -1
- package/dist/es5/constants.js +0 -44
- package/dist/es5/constants.js.map +0 -1
- package/dist/es5/index.js +0 -104
- package/dist/es5/index.js.map +0 -1
- package/dist/es5/tileset/helpers/3d-tiles-options.js +0 -13
- package/dist/es5/tileset/helpers/3d-tiles-options.js.map +0 -1
- package/dist/es5/tileset/helpers/bounding-volume.js +0 -114
- package/dist/es5/tileset/helpers/bounding-volume.js.map +0 -1
- package/dist/es5/tileset/helpers/frame-state.js +0 -65
- package/dist/es5/tileset/helpers/frame-state.js.map +0 -1
- package/dist/es5/tileset/helpers/i3s-lod.js +0 -86
- package/dist/es5/tileset/helpers/i3s-lod.js.map +0 -1
- package/dist/es5/tileset/helpers/tiles-3d-lod.js +0 -119
- package/dist/es5/tileset/helpers/tiles-3d-lod.js.map +0 -1
- package/dist/es5/tileset/helpers/transform-utils.js +0 -65
- package/dist/es5/tileset/helpers/transform-utils.js.map +0 -1
- package/dist/es5/tileset/helpers/zoom.js +0 -43
- package/dist/es5/tileset/helpers/zoom.js.map +0 -1
- package/dist/es5/tileset/tile-3d.js +0 -605
- package/dist/es5/tileset/tile-3d.js.map +0 -1
- package/dist/es5/tileset/tileset-3d.js +0 -838
- package/dist/es5/tileset/tileset-3d.js.map +0 -1
- package/dist/es5/tileset/tileset-cache.js +0 -101
- package/dist/es5/tileset/tileset-cache.js.map +0 -1
- package/dist/es5/tileset/traversers/i3s-tile-manager.js +0 -69
- package/dist/es5/tileset/traversers/i3s-tile-manager.js.map +0 -1
- package/dist/es5/tileset/traversers/i3s-tileset-traverser.js +0 -185
- package/dist/es5/tileset/traversers/i3s-tileset-traverser.js.map +0 -1
- package/dist/es5/tileset/traversers/tileset-3d-traverser.js +0 -94
- package/dist/es5/tileset/traversers/tileset-3d-traverser.js.map +0 -1
- package/dist/es5/tileset/traversers/tileset-traverser.js +0 -377
- package/dist/es5/tileset/traversers/tileset-traverser.js.map +0 -1
- package/dist/es5/utils/doubly-linked-list-node.js +0 -25
- package/dist/es5/utils/doubly-linked-list-node.js.map +0 -1
- package/dist/es5/utils/doubly-linked-list.js +0 -104
- package/dist/es5/utils/doubly-linked-list.js.map +0 -1
- package/dist/es5/utils/managed-array.js +0 -147
- package/dist/es5/utils/managed-array.js.map +0 -1
- package/dist/esm/bundle.js +0 -5
- package/dist/esm/bundle.js.map +0 -1
- package/dist/esm/constants.js +0 -32
- package/dist/esm/constants.js.map +0 -1
- package/dist/esm/index.js +0 -10
- package/dist/esm/index.js.map +0 -1
- package/dist/esm/tileset/helpers/3d-tiles-options.js +0 -6
- package/dist/esm/tileset/helpers/3d-tiles-options.js.map +0 -1
- package/dist/esm/tileset/helpers/bounding-volume.js +0 -88
- package/dist/esm/tileset/helpers/bounding-volume.js.map +0 -1
- package/dist/esm/tileset/helpers/frame-state.js +0 -51
- package/dist/esm/tileset/helpers/frame-state.js.map +0 -1
- package/dist/esm/tileset/helpers/i3s-lod.js +0 -67
- package/dist/esm/tileset/helpers/i3s-lod.js.map +0 -1
- package/dist/esm/tileset/helpers/tiles-3d-lod.js +0 -105
- package/dist/esm/tileset/helpers/tiles-3d-lod.js.map +0 -1
- package/dist/esm/tileset/helpers/transform-utils.js +0 -58
- package/dist/esm/tileset/helpers/transform-utils.js.map +0 -1
- package/dist/esm/tileset/helpers/zoom.js +0 -36
- package/dist/esm/tileset/helpers/zoom.js.map +0 -1
- package/dist/esm/tileset/tile-3d.js +0 -537
- package/dist/esm/tileset/tile-3d.js.map +0 -1
- package/dist/esm/tileset/tileset-3d.js +0 -674
- package/dist/esm/tileset/tileset-3d.js.map +0 -1
- package/dist/esm/tileset/tileset-cache.js +0 -79
- package/dist/esm/tileset/tileset-cache.js.map +0 -1
- package/dist/esm/tileset/traversers/i3s-tile-manager.js +0 -45
- package/dist/esm/tileset/traversers/i3s-tile-manager.js.map +0 -1
- package/dist/esm/tileset/traversers/i3s-tileset-traverser.js +0 -80
- package/dist/esm/tileset/traversers/i3s-tileset-traverser.js.map +0 -1
- package/dist/esm/tileset/traversers/tileset-3d-traverser.js +0 -53
- package/dist/esm/tileset/traversers/tileset-3d-traverser.js.map +0 -1
- package/dist/esm/tileset/traversers/tileset-traverser.js +0 -296
- package/dist/esm/tileset/traversers/tileset-traverser.js.map +0 -1
- package/dist/esm/utils/doubly-linked-list-node.js +0 -16
- package/dist/esm/utils/doubly-linked-list-node.js.map +0 -1
- package/dist/esm/utils/doubly-linked-list.js +0 -81
- package/dist/esm/utils/doubly-linked-list.js.map +0 -1
- package/dist/esm/utils/managed-array.js +0 -117
- package/dist/esm/utils/managed-array.js.map +0 -1
|
@@ -1,55 +1,53 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
return
|
|
6
|
-
}
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
return b._distanceToCamera === 0 && a._distanceToCamera === 0
|
|
14
|
-
? b._centerZDepth - a._centerZDepth
|
|
15
|
-
: b._distanceToCamera - a._distanceToCamera;
|
|
1
|
+
import { TILE3D_OPTIMIZATION_HINT, TILE_REFINEMENT } from '../../constants';
|
|
2
|
+
import TilesetTraverser from './tileset-traverser';
|
|
3
|
+
export default class Tileset3DTraverser extends TilesetTraverser {
|
|
4
|
+
compareDistanceToCamera(a, b) {
|
|
5
|
+
return b._distanceToCamera === 0 && a._distanceToCamera === 0 ? b._centerZDepth - a._centerZDepth : b._distanceToCamera - a._distanceToCamera;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
updateTileVisibility(tile, frameState) {
|
|
9
|
+
super.updateTileVisibility(tile, frameState);
|
|
10
|
+
|
|
11
|
+
if (!tile.isVisibleAndInRequestVolume) {
|
|
12
|
+
return;
|
|
16
13
|
}
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
// Use the root tile's visibility instead of this tile's visibility.
|
|
26
|
-
// The root tile may be culled by the children bounds optimization in which
|
|
27
|
-
// case this tile should also be culled.
|
|
28
|
-
const firstChild = tile.children[0];
|
|
29
|
-
this.updateTileVisibility(firstChild, frameState);
|
|
30
|
-
tile._visible = firstChild._visible;
|
|
31
|
-
return;
|
|
32
|
-
}
|
|
33
|
-
if (this.meetsScreenSpaceErrorEarly(tile, frameState)) {
|
|
34
|
-
tile._visible = false;
|
|
35
|
-
return;
|
|
36
|
-
}
|
|
37
|
-
const replace = tile.refine === constants_1.TILE_REFINEMENT.REPLACE;
|
|
38
|
-
const useOptimization = tile._optimChildrenWithinParent === constants_1.TILE3D_OPTIMIZATION_HINT.USE_OPTIMIZATION;
|
|
39
|
-
if (replace && useOptimization && hasChildren) {
|
|
40
|
-
if (!this.anyChildrenVisible(tile, frameState)) {
|
|
41
|
-
tile._visible = false;
|
|
42
|
-
return;
|
|
43
|
-
}
|
|
44
|
-
}
|
|
14
|
+
|
|
15
|
+
const hasChildren = tile.children.length > 0;
|
|
16
|
+
|
|
17
|
+
if (tile.hasTilesetContent && hasChildren) {
|
|
18
|
+
const firstChild = tile.children[0];
|
|
19
|
+
this.updateTileVisibility(firstChild, frameState);
|
|
20
|
+
tile._visible = firstChild._visible;
|
|
21
|
+
return;
|
|
45
22
|
}
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
}
|
|
51
|
-
// Use parent's geometric error with child's box to see if the tile already meet the SSE
|
|
52
|
-
return !this.shouldRefine(tile, frameState, true);
|
|
23
|
+
|
|
24
|
+
if (this.meetsScreenSpaceErrorEarly(tile, frameState)) {
|
|
25
|
+
tile._visible = false;
|
|
26
|
+
return;
|
|
53
27
|
}
|
|
28
|
+
|
|
29
|
+
const replace = tile.refine === TILE_REFINEMENT.REPLACE;
|
|
30
|
+
const useOptimization = tile._optimChildrenWithinParent === TILE3D_OPTIMIZATION_HINT.USE_OPTIMIZATION;
|
|
31
|
+
|
|
32
|
+
if (replace && useOptimization && hasChildren) {
|
|
33
|
+
if (!this.anyChildrenVisible(tile, frameState)) {
|
|
34
|
+
tile._visible = false;
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
meetsScreenSpaceErrorEarly(tile, frameState) {
|
|
41
|
+
const {
|
|
42
|
+
parent
|
|
43
|
+
} = tile;
|
|
44
|
+
|
|
45
|
+
if (!parent || parent.hasTilesetContent || parent.refine !== TILE_REFINEMENT.ADD) {
|
|
46
|
+
return false;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
return !this.shouldRefine(tile, frameState, true);
|
|
50
|
+
}
|
|
51
|
+
|
|
54
52
|
}
|
|
55
|
-
|
|
53
|
+
//# sourceMappingURL=tileset-3d-traverser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/tileset/traversers/tileset-3d-traverser.ts"],"names":["TILE3D_OPTIMIZATION_HINT","TILE_REFINEMENT","TilesetTraverser","Tileset3DTraverser","compareDistanceToCamera","a","b","_distanceToCamera","_centerZDepth","updateTileVisibility","tile","frameState","isVisibleAndInRequestVolume","hasChildren","children","length","hasTilesetContent","firstChild","_visible","meetsScreenSpaceErrorEarly","replace","refine","REPLACE","useOptimization","_optimChildrenWithinParent","USE_OPTIMIZATION","anyChildrenVisible","parent","ADD","shouldRefine"],"mappings":"AAGA,SAAQA,wBAAR,EAAkCC,eAAlC,QAAwD,iBAAxD;AACA,OAAOC,gBAAP,MAA6B,qBAA7B;AAEA,eAAe,MAAMC,kBAAN,SAAiCD,gBAAjC,CAAkD;AAC/DE,EAAAA,uBAAuB,CAACC,CAAD,EAAIC,CAAJ,EAAO;AAE5B,WAAOA,CAAC,CAACC,iBAAF,KAAwB,CAAxB,IAA6BF,CAAC,CAACE,iBAAF,KAAwB,CAArD,GACHD,CAAC,CAACE,aAAF,GAAkBH,CAAC,CAACG,aADjB,GAEHF,CAAC,CAACC,iBAAF,GAAsBF,CAAC,CAACE,iBAF5B;AAGD;;AAEDE,EAAAA,oBAAoB,CAACC,IAAD,EAAOC,UAAP,EAAmB;AACrC,UAAMF,oBAAN,CAA2BC,IAA3B,EAAiCC,UAAjC;;AAGA,QAAI,CAACD,IAAI,CAACE,2BAAV,EAAuC;AACrC;AACD;;AAED,UAAMC,WAAW,GAAGH,IAAI,CAACI,QAAL,CAAcC,MAAd,GAAuB,CAA3C;;AACA,QAAIL,IAAI,CAACM,iBAAL,IAA0BH,WAA9B,EAA2C;AAIzC,YAAMI,UAAU,GAAGP,IAAI,CAACI,QAAL,CAAc,CAAd,CAAnB;AACA,WAAKL,oBAAL,CAA0BQ,UAA1B,EAAsCN,UAAtC;AACAD,MAAAA,IAAI,CAACQ,QAAL,GAAgBD,UAAU,CAACC,QAA3B;AACA;AACD;;AAED,QAAI,KAAKC,0BAAL,CAAgCT,IAAhC,EAAsCC,UAAtC,CAAJ,EAAuD;AACrDD,MAAAA,IAAI,CAACQ,QAAL,GAAgB,KAAhB;AACA;AACD;;AAED,UAAME,OAAO,GAAGV,IAAI,CAACW,MAAL,KAAgBpB,eAAe,CAACqB,OAAhD;AACA,UAAMC,eAAe,GACnBb,IAAI,CAACc,0BAAL,KAAoCxB,wBAAwB,CAACyB,gBAD/D;;AAEA,QAAIL,OAAO,IAAIG,eAAX,IAA8BV,WAAlC,EAA+C;AAC7C,UAAI,CAAC,KAAKa,kBAAL,CAAwBhB,IAAxB,EAA8BC,UAA9B,CAAL,EAAgD;AAC9CD,QAAAA,IAAI,CAACQ,QAAL,GAAgB,KAAhB;AACA;AACD;AACF;AACF;;AAEDC,EAAAA,0BAA0B,CAACT,IAAD,EAAOC,UAAP,EAAmB;AAC3C,UAAM;AAACgB,MAAAA;AAAD,QAAWjB,IAAjB;;AACA,QAAI,CAACiB,MAAD,IAAWA,MAAM,CAACX,iBAAlB,IAAuCW,MAAM,CAACN,MAAP,KAAkBpB,eAAe,CAAC2B,GAA7E,EAAkF;AAChF,aAAO,KAAP;AACD;;AAGD,WAAO,CAAC,KAAKC,YAAL,CAAkBnB,IAAlB,EAAwBC,UAAxB,EAAoC,IAApC,CAAR;AACD;;AAnD8D","sourcesContent":["// This file is derived from the Cesium code base under Apache 2 license\n// See LICENSE.md and https://github.com/AnalyticalGraphicsInc/cesium/blob/master/LICENSE.md\n\nimport {TILE3D_OPTIMIZATION_HINT, TILE_REFINEMENT} from '../../constants';\nimport TilesetTraverser from './tileset-traverser';\n\nexport default class Tileset3DTraverser extends TilesetTraverser {\n compareDistanceToCamera(a, b) {\n // Sort by farthest child first since this is going on a stack\n return b._distanceToCamera === 0 && a._distanceToCamera === 0\n ? b._centerZDepth - a._centerZDepth\n : b._distanceToCamera - a._distanceToCamera;\n }\n\n updateTileVisibility(tile, frameState) {\n super.updateTileVisibility(tile, frameState);\n\n // Optimization - if none of the tile's children are visible then this tile isn't visible\n if (!tile.isVisibleAndInRequestVolume) {\n return;\n }\n\n const hasChildren = tile.children.length > 0;\n if (tile.hasTilesetContent && hasChildren) {\n // Use the root tile's visibility instead of this tile's visibility.\n // The root tile may be culled by the children bounds optimization in which\n // case this tile should also be culled.\n const firstChild = tile.children[0];\n this.updateTileVisibility(firstChild, frameState);\n tile._visible = firstChild._visible;\n return;\n }\n\n if (this.meetsScreenSpaceErrorEarly(tile, frameState)) {\n tile._visible = false;\n return;\n }\n\n const replace = tile.refine === TILE_REFINEMENT.REPLACE;\n const useOptimization =\n tile._optimChildrenWithinParent === TILE3D_OPTIMIZATION_HINT.USE_OPTIMIZATION;\n if (replace && useOptimization && hasChildren) {\n if (!this.anyChildrenVisible(tile, frameState)) {\n tile._visible = false;\n return;\n }\n }\n }\n\n meetsScreenSpaceErrorEarly(tile, frameState) {\n const {parent} = tile;\n if (!parent || parent.hasTilesetContent || parent.refine !== TILE_REFINEMENT.ADD) {\n return false;\n }\n\n // Use parent's geometric error with child's box to see if the tile already meet the SSE\n return !this.shouldRefine(tile, frameState, true);\n }\n}\n"],"file":"tileset-3d-traverser.js"}
|