@doegis/core
Version:
DOE GIS API
3 lines (1 loc) • 1.3 kB
JavaScript
import{s as t,m as s}from"../../../../chunks/mat3.js";import{c as e}from"../../../../chunks/mat3f32.js";import{RasterVFDisplayObject as i}from"./RasterVFDisplayObject.js";import{TiledDisplayObject as a}from"../webgl/TiledDisplayObject.js";class r extends a{constructor(t,s,e,a,r,o,l=null){super(t,s,e,a,r,o),this.tileData=new i(l),this.tileData.coordScale=[r,o],this.tileData.once("isReady",(()=>this.ready()))}destroy(){super.destroy(),this.tileData.destroy(),this.tileData=null,this.stage=null}set stencilRef(t){this.tileData.stencilRef=t}get stencilRef(){return this.tileData.stencilRef}_createTransforms(){return{dvs:e(),tileMat3:e()}}setTransform(e){super.setTransform(e);const i=this.resolution/(e.resolution*e.pixelRatio),a=this.transforms.tileMat3,[r,o]=this.tileData.offset,l=[this.x+r*this.resolution,this.y-o*this.resolution],[h,n]=e.toScreenNoRotation([0,0],l),{symbolTileSize:f}=this.tileData.symbolizerParameters,m=Math.round((this.width-this.tileData.offset[0])/f)*f,c=Math.round((this.height-this.tileData.offset[1])/f)*f,u=m/this.rangeX*i,D=c/this.rangeY*i;t(a,u,0,0,0,D,0,h,n,1),s(this.transforms.dvs,e.displayViewMat3,a),this.tileData.transforms.dvs=this.transforms.dvs}onAttach(){this.tileData.stage=this.stage}onDetach(){this.tileData.stage=null}}export{r as RasterVFTile};