UNPKG

@doegis/core

Version:

DOE GIS API

3 lines (1 loc) 1.36 kB
import{create as i,copy as e}from"../../../../geometry/support/aaBoundingRect.js";class t{constructor(e,t,h,r=null){this.lij=[0,0,0],this.extent=i(),this.resolution=0,this.loadPriority=0,this.measures={visibility:s.VISIBLE_ON_SURFACE,screenRect:i(),distance:0,shouldSplit:!1},this.used=!1,r&&this.acquire(e,t,h,r)}acquire(i,e,s,h){this.tilingScheme=h,this.id=t.id(i,e,s),this.lij[0]=i,this.lij[1]=e,this.lij[2]=s,h.getExtent(i,e,s,this.extent),this.resolution=h.resolutionAtLevel(i)}release(){this.tilingScheme=null}getChildren(i){const e=this.lij[0]+1,s=2*this.lij[1],h=2*this.lij[2];return i?(i[0].acquire(e,s,h,this.tilingScheme),i[1].acquire(e,s+1,h,this.tilingScheme),i[2].acquire(e,s,h+1,this.tilingScheme),i[3].acquire(e,s+1,h+1,this.tilingScheme),i):[new t(e,s,h,this.tilingScheme),new t(e,s+1,h,this.tilingScheme),new t(e,s,h+1,this.tilingScheme),new t(e,s+1,h+1,this.tilingScheme)]}copyMeasurementsFrom(i){this.measures.visibility=i.measures.visibility,this.measures.shouldSplit=i.measures.shouldSplit,this.measures.distance=i.measures.distance,e(i.measures.screenRect,this.measures.screenRect)}static id(i,e,t){return`${i}/${e}/${t}`}}var s;!function(i){i[i.INVISIBLE=0]="INVISIBLE",i[i.VISIBLE_WHEN_EXTENDED=1]="VISIBLE_WHEN_EXTENDED",i[i.VISIBLE_ON_SURFACE=2]="VISIBLE_ON_SURFACE"}(s||(s={}));export{t as FeatureTileDescriptor3D,s as Visibility};