UNPKG

@arcgis/core

Version:

ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API

6 lines (5 loc) 3.37 kB
/* All material copyright ESRI, All Rights Reserved, unless otherwise specified. See https://js.arcgis.com/4.32/esri/copyright.txt for details. */ import t from"../../../core/PooledArray.js";import{RenderOrder as e}from"./RenderOrder.js";import{isImageryTileLayerView as n}from"./terrainUtils.js";class r{constructor(){this._queue=new t,this.remove=()=>{}}get done(){return 0===this._queue.length&&(!this._last||this._last.leaf)}resetOne(t){this._queue.clear(),this._queue.push(t),this._last=void 0}reset(t=null){this._queue.clear(),null!=t&&this._queue.pushArray(t),this._last=void 0}skipSubtree(){this._last=void 0}next(){const t=this._last?.children;return t?.[0]&&this._queue.pushArray(t),this._last=this._queue.pop(),this._last}}class i{constructor(){this._q=new t}get done(){return 0===this._q.length}reset(t){if(this._q.clear(),null!=t){this._q.pushArray(t);for(let t=0;t<this._q.length;++t){const e=this._q.data[t];e.leaf||this._q.pushArray(e.children)}}}next(){return this._q.pop()}}function l(t,e){if(Array.isArray(t))for(let n=0;n<t.length;n++)s(t[n],e);else s(t,e)}function s(t,e){if(e(t),!t.leaf)for(const n of t.children)s(n,e)}function o(t,e){if(null==e)return!1;const n=u(e);if(null==n?.fullExtent)return!1;const r=n.fullExtent,i=t.extent;if(r.xmin>i[2]||r.ymin>i[3]||r.xmax<i[0]||r.ymax<i[1])return!1;const l=t.surface.tilingScheme.levels[t.level].scale,s=n.minScale;if(s>0&&l>1.00000001*s)return!1;const o=n.maxScale;return!(o>0&&l<.99999999*o)}function u(t){return n(t)?{fullExtent:t.fullExtent,minScale:t.layer.minScale,maxScale:t.layer.maxScale}:t.layer}function c(t){return!n(t)&&t.layer&&"tilemapCache"in t.layer?t.layer.tilemapCache:null}function a(t,e){const n=t.lij,r=e.lij;return n[0]-r[0]||n[1]-r[1]||n[2]-r[2]}function f(t,n,r=null){null==r||0===r.length?t===e.BACK_TO_FRONT?n.sort(h):n.sort(p):n.sort(((e,n)=>m(e,n,t,r)))}function h(t,e){const n=e.screenDepth-t.screenDepth;if(0!==n)return n;const r=t.lij,i=e.lij;return r[0]-i[0]||r[1]-i[1]||r[2]-i[2]}function p(t,e){const n=t.screenDepth-e.screenDepth;if(0!==n)return n;const r=t.lij,i=e.lij;return r[0]-i[0]||r[1]-i[1]||r[2]-i[2]}function _(t,e,n){const r=t.screenDepth,i=e.screenDepth;return r<i?-n:r>i?n:a(t,e)}function m(t,e,n,r){return d(t,r)===d(e,r)?_(t,e,n):t?n:-n}function d(t,e){for(const n of e)if(t.intersectsExtent(n))return!0;return!1}function q(t,e){const n=t.distanceToPOI-e.distanceToPOI;if(0!==n)return n;const r=t.lij,i=e.lij;return r[0]-i[0]||r[1]-i[1]||r[2]-i[2]}function x(t,e){const n=t.length;for(let r=0;r<n;++r){t.at(r).updateDistanceToPOI(e)}t.sort(q)}function y(t,e,n){let r=1,i=0,l=0;for(;t!==e;)if(r*=.5,i*=.5,l*=.5,1&t.lij[2]&&(i+=.5),1&t.lij[1]||(l+=.5),null==(t=t.parent))throw new Error("tile was not a descendant of upsampleTile");n.init(e,i,l,r)}function j(t){for(let e=0;e<t.length;e++){const n=t[e],r=n.parent;if(r)for(let t=0;t<4;t++){const e=r.children[t];if(e&&e!==n)return!0}}return!1}function g(t,e){if(!t||!e||t[0]===e[0])return!1;const n=t[0]<e[0],r=n?t:e,i=n?e:t,l=1<<i[0]-r[0];return Math.floor(i[1]/l)===r[1]&&Math.floor(i[2]/l)===r[2]}export{i as IteratorPostorder,r as IteratorPreorder,_ as compareTiles,a as compareTilesByLij,m as compareTilesWithStencil,y as computeUpsampleInfo,o as fallsWithinLayerView,c as getTileMapCache,j as hasLoadableSiblings,f as sortTiles,x as sortTilesByPOI,g as tilesAreRelated,l as traverseTilesPreorder};