@doegis/core
Version:
DOE GIS API
3 lines (1 loc) • 1.87 kB
JavaScript
import{_ as e}from"../../../chunks/tslib.es6.js";import t from"../../../core/Accessor.js";import s from"../../../core/ObjectPool.js";import r from"../../../core/PooledArray.js";import{property as i}from"../../../core/accessorSupport/decorators/property.js";import"../../../core/accessorSupport/ensureType.js";import"../../../core/arrayUtils.js";import{subclass as o}from"../../../core/accessorSupport/decorators/subclass.js";import{c as u}from"../../../chunks/vec4.js";import{c as n}from"../../../chunks/vec4f64.js";class l{constructor(){this.extent=n(),this.minLevel=0,this.maxLevel=0,this.callback=null}}let c=class extends t{constructor(){super(...arguments),this._queries=new r({initialSize:10}),this._queriesInvPtr=0,this._queryQueue=new r({initialSize:30}),this._queryPool=new s(l)}queryVisibleLevelRange(e,t,s,r){const i=this._queryPool.acquire();u(i.extent,e),i.minLevel=t??-Number.MAX_VALUE,i.maxLevel=s??Number.MAX_VALUE,i.callback=r,this._queryQueue.push(i),this.notifyChange("updating")}get updating(){return 0!==this._queryQueue.length}prepare(){for(;this._queries.length<this._queries.data.length&&this._queryQueue.length>0;){const e=this._queryQueue.pop();this._queries.push(e)}this._queriesInvPtr=this._queries.length}process(){for(let e=0;e<this._queries.length;e++){const t=this._queries.data[e];this._queryPool.release(t),t.callback(e>=this._queriesInvPtr),t.callback=null}this._queries.clear(),this.notifyChange("updating")}queriesForTile(e){const t=e.level;let s=0;for(;s<this._queriesInvPtr;){const r=this._queries.data[s],i=r.extent;t>=r.minLevel&&t<=r.maxLevel&&i[0]<=e.extent[2]&&i[2]>=e.extent[0]&&i[1]<=e.extent[3]&&i[3]>=e.extent[1]?(this._queries.swapElements(s,this._queriesInvPtr-1),this._queriesInvPtr--):s++}}};e([i()],c.prototype,"updating",null),c=e([o("esri.views.3d.terrain.ScaleRangeQueries")],c);export{c as ScaleRangeQueries};