/* COPYRIGHT Esri - https://js.arcgis.com/5.0/LICENSE.txt */
import{getOrCreateMapValue as t}from"../../../../core/MapUtils.js";import{a as e}from"../../../../chunks/PointRenderer.glsl.js";class i extends e{constructor(t,e,i,n,s,h,r,o,l=null){super(i,s,e),this.id=t,this.obb=n,this.coordinates=h,this.rgb=r,this.attributes=o,this.pointIdFilterMap=l,this.highlightMap=new Map}addHighlight(e,i){const{highlightMap:n}=this,r=t(n,i.highlightName,()=>new Array),o=new h(e,i);r.push(o);const l=s(o);for(let t=r.length-1;t>0&&l<s(r[t-1]);--t)[r[t-1],r[t]]=[r[t],r[t-1]]}removeHighlight(t){const{highlightMap:e}=this,{highlightName:i}=t,n=e.get(i);if(!n)return;const s=n.filter(e=>e.id!==t);0===s.length?e.delete(i):e.set(i,s)}get usedMemory(){return 5*this.coordinates.length+128}}function n(t){return t.hasOwnProperty("splatSize")}function s(t){return null!=t.componentIndex?t.componentIndex:-1}class h{constructor(t,e){this.componentIndex=t,this.id=e}}export{i as PointCloudRendererNode,n as isPointRendererNode};
