@doegis/core
Version:
DOE GIS API
3 lines (1 loc) • 1.07 kB
JavaScript
import s from"./GraphicDisplayList.js";import t from"./WGLDisplayObject.js";import{serializeList as i}from"./util/serializationUtils.js";class e{constructor(){this.displayObjects=[],this._displayList=null}get displayObjectRegistry(){if(!this._displayObjectRegistry){this._displayObjectRegistry=new Map;for(const s of this.displayObjects)this._displayObjectRegistry.set(s.id,s)}return this._displayObjectRegistry}get displayList(){return this._displayList}computeDisplayList(){this._displayList=new s;for(const s of this.displayObjects)for(const t of s.displayRecords)this._displayList.addToList(t)}clone(){const s=new e;return this.displayObjects&&(s.displayObjects=this.displayObjects.map((s=>s.clone()))),s}serialize(s){return i(s,this.displayObjects),s}_deserializeObjects(s){const i=s.readInt32(),e=new Array(i),a=new Map;for(let l=0;l<e.length;++l){const i=t.deserialize(s);e[l]=i,a.set(i.id,i)}this.displayObjects=e,this._displayList=null,this._displayObjectRegistry=a}static deserialize(s){const t=new e;return t._deserializeObjects(s),t}}export{e as default};