@doegis/core
Version:
DOE GIS API
3 lines (1 loc) • 1.5 kB
JavaScript
import{Object3DState as e}from"./basicInterfaces.js";var t;!function(e){e[e.Object=0]="Object",e[e.RenderGeometry=1]="RenderGeometry",e[e.External=2]="External",e[e.COUNT=3]="COUNT"}(t||(t={}));class r{constructor(){this._items=[]}addObject(e,r){this._items.push({type:t.Object,objectStateId:r,object:e})}addRenderGeometry(e,r,o){this._items.push({type:t.RenderGeometry,objectStateId:r,renderGeometry:e,owner:o})}addExternal(e,r){this._items.push({type:t.External,objectStateId:r,remove:e})}remove(e){for(let t=this._items.length-1;t>=0;--t){const r=this._items[t];r.objectStateId===e&&(this._removeObjectStateItem(r),this._items.splice(t,1))}}removeObject(e){for(let r=this._items.length-1;r>=0;--r){const o=this._items[r];o.type===t.Object&&o.object===e&&(this._removeObjectStateItem(o),this._items.splice(r,1))}}removeRenderGeometry(e){for(let r=this._items.length-1;r>=0;--r){const o=this._items[r];o.type===t.RenderGeometry&&o.renderGeometry===e&&(this._removeObjectStateItem(o),this._items.splice(r,1))}}removeAll(){this._items.forEach((e=>{this._removeObjectStateItem(e)})),this._items=[]}_removeObjectStateItem(r){switch(r.type){case t.Object:r.objectStateId.channel===e.Highlight?r.object.removeHighlight(r.objectStateId):r.objectStateId.channel===e.MaskOccludee&&r.object.removeOcclude(r.objectStateId);break;case t.RenderGeometry:r.owner.removeRenderGeometryObjectState(r.renderGeometry,r.objectStateId);break;case t.External:r.remove(r.objectStateId)}}}export{r as Object3DStateSet};