/* COPYRIGHT Esri - https://js.arcgis.com/5.0/LICENSE.txt */
class e{}class t extends e{constructor(e,t){super(),this.objectStateId=e,this.object=t}remove(){this.object.removeStateID(this.objectStateId)}}class s extends e{constructor(e,t,s){super(),this.objectStateId=e,this.object=t,this.owner=s}remove(){this.owner.removeRenderGeometryObjectState(this.object,this.objectStateId)}}class o extends e{constructor(e,t){super(),this.objectStateId=e,this._removeCallback=t,this.object=null}remove(){this._removeCallback(this.objectStateId)}}class r{constructor(){this._items=[]}addObject(e,s){this._items.push(new t(s,e))}addRenderGeometry(e,t,o){this._items.push(new s(t,e,o))}addExternal(e,t){this._items.push(new o(t,e))}remove(e){this._remove(t=>t.objectStateId===e)}removeByObject(e){this._remove(t=>t.object===e)}removeAll(){this._items.forEach(e=>e.remove()),this._items=[]}_remove(e){const{_items:t}=this;for(let s=t.length-1;s>=0;--s){const o=t[s];e(o)&&(o.remove(),t.splice(s,1))}}}class c extends r{constructor(){super(...arguments),this.stateType=1}}class i extends r{constructor(e){super(),this.highlightName=e,this.stateType=0}}export{i as Object3DHighlightStateSet,c as Object3DOccludeeStateSet};
