1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[4957],{2392:(e,t,i)=>{i.d(t,{A:()=>m});var r,s,n=i(32978),o=i(85436),l=i(5539);i(96336),i(85068);var a=i(47549),d=i(32899),u=i(69368),h=i(27439),p=i(46047),c=i(97077),g=i(70693);let f=r=class extends c.o{constructor(){super(...arguments),this.description=null,this.label=null,this.minValue=0,this.maxValue=0,this.color=null}clone(){return new r({description:this.description,label:this.label,minValue:this.minValue,maxValue:this.maxValue,color:(0,o.o8)(this.color)})}};(0,n.Cg)([(0,l.MZ)({type:String,json:{write:!0}})],f.prototype,"description",void 0),(0,n.Cg)([(0,l.MZ)({type:String,json:{write:!0}})],f.prototype,"label",void 0),(0,n.Cg)([(0,l.MZ)({type:Number,json:{read:{source:"classMinValue"},write:{target:"classMinValue",isRequired:!0}}})],f.prototype,"minValue",void 0),(0,n.Cg)([(0,l.MZ)({type:Number,json:{read:{source:"classMaxValue"},write:{target:"classMaxValue",isRequired:!0}}})],f.prototype,"maxValue",void 0),(0,n.Cg)([(0,l.MZ)({type:p.A,json:{type:[g.jz],write:{isRequired:!0}}})],f.prototype,"color",void 0);let _=f=r=(0,n.Cg)([(0,d.$)("esri.renderers.support.pointCloud.ColorClassBreakInfo")],f);var y=i(48108);let m=s=class extends u.A{constructor(e){super(e),this.type="point-cloud-class-breaks",this.field=null,this.legendOptions=null,this.fieldTransformType=null,this.colorClassBreakInfos=null}clone(){return new s({...this.cloneProperties(),field:this.field,fieldTransformType:this.fieldTransformType,colorClassBreakInfos:(0,o.o8)(this.colorClassBreakInfos),legendOptions:(0,o.o8)(this.legendOptions)})}};(0,n.Cg)([(0,a.e)({pointCloudClassBreaksRenderer:"point-cloud-class-breaks"})],m.prototype,"type",void 0),(0,n.Cg)([(0,l.MZ)({json:{write:{isRequired:!0}},type:String})],m.prototype,"field",void 0),(0,n.Cg)([(0,l.MZ)({type:h.A,json:{write:!0}})],m.prototype,"legendOptions",void 0),(0,n.Cg)([(0,l.MZ)({type:y.i.apiValues,json:{type:y.i.jsonValues,read:y.i.read,write:y.i.write}})],m.prototype,"fieldTransformType",void 0),(0,n.Cg)([(0,l.MZ)({type:[_],json:{write:{isRequired:!0}}})],m.prototype,"colorClassBreakInfos",void 0),m=s=(0,n.Cg)([(0,d.$)("esri.renderers.PointCloudClassBreaksRenderer")],m)},4957:(e,t,i)=>{i.r(t),i.d(t,{default:()=>e1});var r=i(32978),s=i(72096),n=i(36854),o=i(6421);i(96336);var l=i(85068),a=i(98924),d=i(32382),u=i(84046),h=i(84904),p=i(1029),c=i(64337),g=i(5539),f=i(32899),_=i(60842),y=i(59871),m=i(29128),b=i(721),v=i(53169),w=i(9919),S=i(10035),x=i(61068),C=i(4177),P=i(3018),R=i(70776),A=i(1066),M=i(18727),N=i(91147);i(8596),i(31019),i(70044);var z=i(93010),I=i(12961),O=i(47129),V=i(62692),F=i(35311),E=i(70934);class q extends E.P{constructor(e,t,i,r,s){super(e,t,-1,i,r),this.queue=s}}class k{constructor(e,t,i,r){this.loading=e,this.indexLoading=t,this.processing=i,this.idleProcessing=r}}var Z=i(12172);class T extends Z.B{constructor(e){super("PointCloudWorker","transform",{transform:e=>(function(e){let t=[e.geometryBuffer];if(null!=e.primaryAttributeData&&e.primaryAttributeData.buffer&&t.push(e.primaryAttributeData.buffer),null!=e.modulationAttributeData&&e.modulationAttributeData.buffer&&t.push(e.modulationAttributeData.buffer),null!=e.filterAttributesData)for(let i of e.filterAttributesData)null!=i&&i.buffer&&t.push(i.buffer);for(let i of e.userAttributesData)i.buffer&&t.push(i.buffer);return t})(e)},e)}}var B=i(61610),D=i(30543);let L=[!1],H=[null],W=[!1],j=[null];function Q(e,t,i){let r=e;for(;r>0;){let e=t.indexOf(r);if(e>=0)return e;r=i.getParentId(r)}return t.indexOf(r)}var U=i(26934);class G{constructor(e,t,i){this._pages=[],this.pageSize=0,this._nodeSR=e,this._renderSR=t,this._renderSRSphericalPCPF=(0,U.lO)(t),this.pageSize=i}addPage(e,t,i=0){for(;this._pages.length<e;)this._pages.push(null);(function(e,t,i,r,s){for(let n=0;n<e.length;n++){let o=e[n];o.obb.transform(o.obbInRenderSR,t,i,r,s)}}
1)(t,this._nodeSR,this._renderSR,i,this._renderSRSphericalPCPF),this._pages[e]={nodes:t,parents:new Uint32Array(this.pageSize)},function(e,t){let i=[0];for(;i.length;){let r=i.pop(),s=e[$(r,t)].nodes[function(e,t){return e%t}(r,t)];for(let n=0;n<s.childCount;n++){let o=s.firstChild+n;null!=e[$(o,t)]&&(e[$(o,t)].parents[function(e,t){return e%t}(o,t)]=r,i.push(o))}}}(this._pages,this.pageSize)}hasPage(e){return!!this._pages[e]}getNode(e){let t=this.pageSize;return this._pages[e/t|0].nodes[e%t]}getRenderObb(e){let t=this.pageSize;return this._pages[e/t|0].nodes[e%t].obbInRenderSR}setRenderObb(e,t){let i=this.pageSize;this._pages[e/i|0].nodes[e%i].obbInRenderSR.copy(t)}getParentId(e){let t=this.pageSize;return this._pages[e/t|0].parents[e%t]}hasNodes(e,t){let i=e/this.pageSize|0,r=(e+t-1)/this.pageSize|0;for(let e=i;e<=r;e++)if(null==this._pages[e])return!1;return!0}forEachNodeId(e){for(let t=0;t<this._pages.length;t++){let i=this._pages[t];if(i)for(let r=0;r<i.nodes.length;r++)e(t*this.pageSize+r)}}createVisibilityTraverse(){let e={index:this,queue:[],masks:[],tempAabb:(0,x.vt)()};return(t,i)=>(function(e,t,i){let r=e.index;if(!r.hasNodes(0,1))return;let s=e.queue;s.length=0,s.push(0);let n=e.masks;for(n.length=0,n.push(0);s.length>0;){let o=s.pop(),l=n.pop(),a=r.getNode(o),d=r.getRenderObb(o),u=!0;if(null!=t.clippingBox){let i=1<<t.frustum.length;0==(l&i)&&(d.toAaBoundingBox(e.tempAabb),(0,x.gR)(t.clippingBox,e.tempAabb)?l|=i:(0,x.HY)(t.clippingBox,e.tempAabb)||(u=!1))}for(let e=0;e<t.frustum.length&&u;e++){let i=1<<e;if(0==(l&i)){let r=d.intersectPlane(t.frustum[e]);r>0?u=!1:r<0&&(l|=i)}}if(i.predicate(o,a,u)){let e=a.firstChild,t=a.childCount,d=!1,u=function(e,t){return e/t|0}(e,r.pageSize),h=function(e,t){return e/t|0}(e+t-1,r.pageSize);for(let e=u;e<=h;e++)if(!r.hasPage(e)){i.pageMiss(o,e),d=!0;break}if(!d)for(let i=0;i<t;i++)s.push(e+i),n.push(l)}}})(e,t,i)}}function $(e,t){return e/t|0}i(78075);let J=class extends s.A{constructor(e){super(e),this.pointCloudMetadata=null}};(0,r.Cg)([(0,g.MZ)({constructOnly:!0,clonable:"reference"})],J.prototype,"pointCloudMetadata",void 0),J=(0,r.Cg)([(0,f.$)("esri.views.3d.layers.i3s.PointCloudGraphic")],J);var Y=i(58408),K=i(23885),X=i(40943),ee=i(12850),et=i(26687),ei=i(68148);class er{constructor(e){this._context=e,this._highlights=new Map}get empty(){return 0===this._highlights.size}destroy(){this._highlights=null}add(e,t){let i=new es(e,t),r=this._highlights.get(t);return r?r.add(i):this._highlights.set(t,new Set([i])),this._enableSet(i),(0,et.hA)(()=>this._removeSet(i))}_removeSet(e){this._disableSet(e);let{highlightName:t}=e.id,i=this._highlights.get(t);i&&(i.delete(e),0===i.size&&this._highlights.delete(t))}_enableSet(e){e.enabled||(e.enabled=!0,this._context.forEachNode(t=>this._enableSetForNode(e,t)))}_enableSetForNode(e,t){if(!e.enabled)return;let i=e.ids.get(t.id);i&&i.forEach(i=>this._context.addHighlight(t,i,e.id))}_disableSet(e){e.enabled&&(e.enabled=!1,this._context.forEachNode(t=>this._disableSetForNode(e,t)))}_disableSetForNode(e,t){e.enabled||this._context.removeHighlight(t,e.id)}nodeAdded(e){this._forEachSet(t=>this._enableSetForNode(t,e))}nodeRemoved(e){this._forEachSet(t=>this._disableSetForNode(t,e))}removeAll(){this._forEachSet(e=>this._disableSet(e))}_forEachSet(e){this._highlights.forEach(t=>t.forEach(e))}has(e){return this._highlights.has(e)}}class es{constructor(e,t){for(const t of(this.ids=new Map,this.enabled=!1,e))null!=t&&this._add(t.nodeId,t.pointId);this.id=new ei.h(t)}_add(e,t){let i=this.ids.get(e);i?i.add(t):this.ids.set(e,new Set([t]))}}var en=i(68181),eo=i(22740),el=i(19458),ea=i(97560),ed=i(60186),eu=i(93274),eh=i(82786),ep=i(39341),ec=i(33989),eg=i(17922),ef=i(6039),e_=i(54012);class ey extends eh.w{constructor(e,t){super(e,t,new eu.$(ed.b,()=>i.e(34826).then(i.bind(i,34826))),(0,ef.Xk)(ev))}initializePipeline(e){return(0,eg.Ey)({depthTest:{func:513},depthWrite:eg.Uy,colorWrite:eg.kn,stencilWrite:e.hasOccludees?ep.v0:null,stencilTest:e.hasOccludees?ep.qh:null,drawBuffers:(0,eh.L)(e.output)})}}let em=[new e_._("position",3,ec.pe.FLOAT,0,12)],eb=[new e_._("color",3,ec.pe.UNSIGNED_BYTE,0,3,!0)],ev=em.concat(eb);var ew=i(44316),eS=i(80604);class ex extends eS.E{constructor(){super(...arguments),this.drawScreenSize=!1,this.useFixedSizes=!1,this.hasOccludees=!1,this.clippingEnabled=!1,this.draped=!1}}(0,r.Cg)([(0,ew.W)()],ex.prototype,"drawScreenSize",void 0),(0,r.Cg)([(0,ew.W)()],ex.prototype,"useFixedSizes",void 0),(0,r.Cg)([(0,ew.W)()],ex.prototype,"hasOccludees",void 0),(0,r.Cg)([(0,ew.W)()],ex.prototype,"clippingEnabled",void 0);var eC=i(62765);let eP=class extends eo.RW{constructor(e){super(e),this.type=6,this.isGround=!1,this._passParameters=new ed.P,this._highlights=new er({forEachNode:e=>this.forEachNode(e),addHighlight:(e,t,i)=>this._addHighlight(e,t,i),removeHighlight:(e,t)=>
1this._removeHighlight(e,t)}),this.produces=new Map([[2,e=>!((0,en.eh)(e)||9===e&&this._highlights.empty)],[3,e=>(0,en.eh)(e)]]),this.point=(0,m.vt)(),this.intersectionRayDir=(0,m.vt)(),this.intersectionPlane=(0,C.vt)(),this.nodeOriginOffset=(0,m.vt)(),this.nodeBoundingBox=(0,x.vt)(),this.layerViewUid="",this._slicePlaneEnabled=!1,this._configuration=new ex,this._nodes=new Y.A}destroy(){this._nodes.prune()}hasHighlight(e){return this._highlights.has(e)}initializeRenderContext(e){this._context=e,e.requestRender()}uninitializeRenderContext(){}intersect(e,t,i,r){let{point:s,intersectionRayDir:n,nodeOriginOffset:o,intersectionPlane:l,layerViewUid:a,nodeBoundingBox:d}=this,u=(0,X.Cr)(i,r),h=e.camera.perScreenPixelRatio/2,p=e.camera.near;(0,_.e)(n,r,i);let c=1/(0,_.b)(n);(0,_.h)(n,n,c);let g=(0,m.vt)();(0,_.u)(g,n),(0,K.s)(l,n[0],n[1],n[2],-(0,_.f)(n,i));let f=new eN,y=new eN,b=[],v=(0,x.vt)(this._passParameters.clipBox);(0,x.cY)(v,-i[0],-i[1],-i[2],v),this._nodes.forAll(m=>{let{isLeaf:w,coordinates:S}=m,C=m.splatSize*this._passParameters.scaleFactor,R=m.obb.minimumDistancePlane(l),A=m.obb.maximumDistancePlane(l);R-=eA(C,R+p,this._passParameters,h,w),A-=eA(C,A+p,this._passParameters,h,w);let M=A<0,N=null!=f.dist&&null!=y.dist&&f.dist<R*c&&y.dist>A*c;if(M||N)return;let z=eR(C,A+p,this._passParameters,h,w),I=(0,P.j)(m.obb.center,m.obb.radius+z);if(!(0,P.i)(I,u,null)||!m.obb.intersectRay(i,n,z))return;let O=z*z;m.obb.toAaBoundingBox(d),(0,x.cY)(d,-i[0],-i[1],-i[2],d);let V=!(0,x.gR)(v,d);(0,_.e)(o,m.origin,i);let F=S.length/3;for(let l=0;l<F;l++){let d=3*l;if(s[0]=o[0]+S[d],s[1]=o[1]+S[d+1],s[2]=o[2]+S[d+2],V&&!(0,x.Uc)(v,s))continue;let u=(0,_.f)(s,n),P=u*u,R=(0,_.m)(s)-P;if(R>O)continue;let A=u+p,M=eA(C,A,this._passParameters,h,w);if(u-M<0)continue;let N=eR(C,A-=M,this._passParameters,h,w);if(R>N*N)continue;let z=(u-M)*c,I=e=>(e.point=e.point?eM(m,l,e.point):eM(m,l),e.dist=z,e.normal=g,e.node=m,e.pointId=l,e.layerViewUid=a,e);if((null==f.dist||z<f.dist)&&(null==t||t(i,r,z))&&I(f),0!==e.options.store&&(null==y.dist||z>y.dist)&&(null==t||t(i,r,z))&&I(y),2===e.options.store&&(null==t||t(i,r,z))){let e=new eN;b.push(I(e))}}});let w=e=>{let{layerViewUid:t,node:i,pointId:r}=e;return new ee.d(e.point,t,r,()=>this.createGraphic(i,r,e.point))},S=(e,t)=>{let i=w(t);e.set(this.type,i,t.dist,t.normal)};if(ez(f)){let t=e.results.min;(null==t.distance||f.dist<t.distance)&&S(t,f)}if(ez(y)&&0!==e.options.store){let t=e.results.max;(null==t.distance||y.dist>t.distance)&&S(t,y)}if(2===e.options.store)for(let t of b){let i=new el.i(u);S(i,t),e.results.all.push(i)}}acquireTechniques(e){let t=9===e.output;return 0!==this._nodes.length&&((0,en.RN)(e.output)||(0,en.eh)(e.output)&&3===e.bind.slot||t)?(this._nodes.forAll(t=>this._initNode(e,t)),this._configuration.drawScreenSize=this._passParameters.drawScreenSpace,this._configuration.useFixedSizes=this._passParameters.useFixedSizes,this._configuration.hasSlicePlane=this._slicePlaneEnabled,this._configuration.hasOccludees=e.bind.hasOccludees,this._configuration.clippingEnabled=this._clippingEnabled,this._configuration.hasHighlightMixTexture=t&&null!=e.bind.highlightMixTexture,this._configuration.output=e.output,this._context.techniques.get(ey,this._configuration)):null}render(e,t){let{rctx:i,bind:r,output:s}=e,n=i.bindTechnique(t,r,this._passParameters),o=9===s,l=r.highlight?.name??null;o&&!l||this._nodes.forAll(t=>{0===t.coordinates.length||null==t.vao||o&&!t.highlightMap.has(l)||(n.assertCompatibleVertexAttributeLocations(t.vao),n.bindDraw(r,this._passParameters,t),i.bindVAO(t.vao),o?this._renderHighlightFragments(e,t):i.drawArrays(ec.WR.POINTS,0,t.coordinates.length/3))})}_renderHighlightFragments(e,t){let{highlightMap:i}=t,{rctx:r,bind:s}=e,{highlight:n}=s;if(!n)return;let o=n.name,l=i.get(o);if(!l||0===l.length)return;let{highlightOrderMap:a,highlightLevel:d}=s;if(null==d)return;for(let e of i.keys())if(e!==o){let t=a.get(e);if(void 0!==t&&t>d)return}let u=0,h=l[0].componentIndex,p=h+1,c=()=>{for(;u<l.length&&l[u].id.highlightName!==o;)h=l[u].componentIndex,++u;p=h+1};c();let g=(e,t)=>{let i=t-e;i>0&&r.drawArrays(ec.WR.POINTS,e,i)};for(;u<l.length;){let e=l[u];if(e.id.highlightName!==o){g(h,p),++u,c();continue}let t=e.componentIndex;t!==p&&(g(h,p),h=t),p=t+1,++u}g(h,p)}set useFixedSizes(e){this._passParameters.useFixedSizes!==e&&(this._passParameters.useFixedSizes=e,this._requestRender())}get useFixedSizes(){return this._passParameters.useFixedSizes}set scaleFactor(e){this._passParameters.scaleFactor!==e&&(this._passParameters.scaleFactor=e,this._requestRender())}get scaleFactor(){return this._passParameters.scaleFactor}set minSizePx(e){this._passParameters.minSizePx!==e&&(this._passParameters.minSizePx=e,this._requestRender())}get minSizePx(){return this._passParameters.minSizePx}set useRealWorldSymbolSizes(e){this._passParameters.useRealWorldSymbolSizes!==e&&(this._passParameters.useRealWorldSymbolSizes=e,this._requestRender())}get useRealWorldSymbolSizes(){return this._passParameters.useRealWorldSymbolSizes}set size(e){this._passParameters.size!==e&&(this._passParameters.size=e,this._requestRender())}get size(){return this._passParameters.size}set sizePx(e){this._passParameters.sizePx!==e&&(this._passParameters.sizePx=e,this._requestRender())}get sizePx(){return this._passParameters.sizePx}set clippingBox(e){(0,x.hZ)(this._passParameters.clipBox,e||x.sI)}get _clippingEnabled(){return!(0,x.aI)(this._passParameters.clipBox,x.sI,(e,t)=>e===t)}get slicePlaneEnabled(){return this._slicePlaneEnabled}set slicePlaneEnabled(e){this._slicePlaneEnabled!==e&&(this._slicePlaneEnabled=e,this._requestRender())}addNode(e){this._nodes.push(e),this._highlights.nodeAdded(e),this._requestRender()}removeNode(e){let t=null;return this._nodes.filterInPlace(i=>i.id!==e||(t=i,i.vao=(0,a.WD)(i.vao),this._highlights.nodeRemoved(i),!1)),this._requestRender(),t}
1forEachNode(e){this._nodes.forEach(e)}removeAll(){this._nodes.forAll(e=>e.vao=(0,a.WD)(e.vao)),this._highlights.removeAll(),this._nodes.clear(),this._requestRender()}highlight(e,t){return this._highlights.add(e,t)}_addHighlight(e,t,i){e.addHighlight(t,i),this._requestRender()}_removeHighlight(e,t){e.removeHighlight(t),this._requestRender()}_initNode(e,t){t.vao??=new ea.Z(e.rctx,new Map([["positions",new eC.R(e.rctx,em,t.coordinates)],["colors",new eC.R(e.rctx,eb,t.rgb)]]))}_requestRender(){this._context&&this._context.requestRender()}};function eR(e,t,i,r,s){if(i.drawScreenSpace)return i.fixedSize*t*r;let n=(0,ed.g)(s)*t*r;return i.useFixedSizes?Math.min(i.fixedSize/2,n):i.screenMinSize>0?Math.min(Math.max(i.screenMinSize*t*r,e/2),n):Math.min(e/2,n)}function eA(e,t,i,r,s){return i.drawScreenSpace?0:eR(e,t,i,r,s)}function eM(e,t,i=(0,m.vt)()){return i[0]=e.origin[0]+e.coordinates[3*t],i[1]=e.origin[1]+e.coordinates[3*t+1],i[2]=e.origin[2]+e.coordinates[3*t+2],i}(0,r.Cg)([(0,g.MZ)({constructOnly:!0})],eP.prototype,"createGraphic",void 0),eP=(0,r.Cg)([(0,f.$)("esri.views.3d.layers.i3s.PointCloudRenderer")],eP);class eN{constructor(){this.node=null,this.pointId=null,this.point=null,this.dist=null,this.normal=null,this.layerViewUid=""}}function ez(e){return null!=e.dist&&null!=e.point&&null!=e.pointId&&null!=e.node}var eI=i(21791);class eO extends ed.a{constructor(e,t,i,r,s,n,o,l,a=null){super(i,s,t),this.id=e,this.obb=r,this.coordinates=n,this.rgb=o,this.attributes=l,this.pointIdFilterMap=a,this.highlightMap=new Map}addHighlight(e,t){let{highlightMap:i}=this,r=(0,eI.tE)(i,t.highlightName,()=>[]),s=new eF(e,t);r.push(s);let n=eV(s);for(let e=r.length-1;e>0&&n<eV(r[e-1]);--e)[r[e-1],r[e]]=[r[e],r[e-1]]}removeHighlight(e){let{highlightMap:t}=this,{highlightName:i}=e,r=t.get(i);if(!r)return;let s=r.filter(t=>t.id!==e);0===s.length?t.delete(i):t.set(i,s)}get usedMemory(){return 5*this.coordinates.length+128}}function eV(e){return null!=e.componentIndex?e.componentIndex:-1}class eF{constructor(e,t){this.componentIndex=e,this.id=t}}function eE(e){let t=e.renderer,i=t?.type,r=t?.toJSON()??null,s=null,n=!1,o=e.attributeStorageInfo;"point-cloud-unique-value"===i||"point-cloud-stretch"===i||"point-cloud-class-breaks"===i?s=eT(o,t.field):n="point-cloud-rgb"===i?null!=(s=eZ(o,t.field)):null!=(s=eZ(o,"RGB"));let l=null;return t?.colorModulation&&(l=eT(o,t.colorModulation.field)),{rendererJSON:r,isRGBRenderer:n,primaryAttribute:s,modulationAttribute:l}}function eq(e){let t=e.filters;return t?t.map(t=>({filterJSON:t.toJSON(),attributeInfo:eT(e.attributeStorageInfo,t.field)})):[]}function ek(e){let t=e?.pointSizeAlgorithm;return t&&"fixed-size"===t.type?t:null}function eZ(e,t){for(let i of e??[])if(i.name===t&&null!=i.attributeValues&&"UInt8"===i.attributeValues.valueType&&3===i.attributeValues.valuesPerElement)return{name:t,storageInfo:i,useElevation:!1};return null}function eT(e,t){for(let i of e??[])if(i.name===t){let e="embedded-elevation"===i.encoding;return e?{name:t,storageInfo:null,useElevation:e}:{name:t,storageInfo:i,useElevation:e}}return"elevation"===t?.toLowerCase()?{name:t,storageInfo:null,useElevation:!0}:null}var eB=i(90487),eD=i(61609),eL=i(24482),eH=i(4710),eW=i(19194),ej=i(98066),eQ=i(12974),eU=i(51870);let eG=e=>{let t=e,i=class extends t{constructor(...e){super(...e),this.layer=null}get availableFields(){return[]}highlight(e,t){throw Error("Not implemented")}queryFeatures(){throw Error("Not implemented")}queryFeatureCount(){throw Error("Not implemented")}createQuery(){throw Error("Not implemented")}queryExtent(){throw Error("Not implemented")}};return(0,r.Cg)([(0,g.MZ)()],i.prototype,"layer",void 0),(0,r.Cg)([(0,g.MZ)()],i.prototype,"availableFields",null),i=(0,r.Cg)([(0,f.$)("esri.views.layers.PointCloudLayerView")],i)};var e$=i(71386),eJ=i(13686),eY=i(5951),eK=i(84628);let eX=(0,C.vt)(),e0=class extends eG((0,eL.R)((0,F.w)(eU.A))){constructor(){super(...arguments),this.type="point-cloud-3d",this.maximumPointCount=4e6,this.slicePlaneEnabled=!1,this._renderer=null,this._rendererAdded=!1,this._renderedNodes=new Set,this._updateViewNeeded=!0,this._lodFactor=1,this._maxLoggedBoxWarnings=5,this._pageMultiplier=1,this._nodeLoadEpoch=0,this._indexQueue=[],this._workQueue=[],this._idleQueue=new eY.T,this._indexPagesLoading=new Map,this._loadingNodes=new Map,this._recalcWork=!0,this._layerIsVisible=!1,this._codedDomainPopulationPromise=null,this._codedDomainPopulationAbortController=null,this._totalWork=0,this._index=null,this._loadingInitNodePage=!1,this._nodeIdArray=[],this.ignoresMemoryFactor=!1}get baseUrl(){return this.layer.parsedUrl?.path??""}get pointScale(){var e;let t,i=(e=this.layer?.renderer,(t=e?.pointSizeAlgorithm)&&"splat"===t.type?t:null);return null!=i?.scaleFactor?i.scaleFactor:1}get useRealWorldSymbolSizes(){let e=ek(this.layer?.renderer);return null!=e?.useRealWorldSymbolSizes&&e.useRealWorldSymbolSizes}get pointSize(){let e=ek(this.layer?.renderer);return null!=e?.size?e.size:0}get inverseDensity(){return this.layer?.renderer?96/this.layer.renderer.pointsPerInch:5}get availableFields(){let e=eE(this.layer),t=new Set;e.primaryAttribute&&t.add(e.primaryAttribute.name),e.modulationAttribute&&t.add(e.modulationAttribute.name);let i=eq(this.layer);if(i)for(let e of i)e.attributeInfo&&t.add(e.attributeInfo.name);if(this.layer.outFields)for(let e of(0,z.hL)(this.layer.fieldsIndex,this.layer.outFields))t.add(e);return Array.from(t)}get _clippingBox(){if(!this.view||!this.view.clippingArea)return null;let e=(0,x.vt)(),t=this.view.renderSpatialReference;return(0,eH.I)(this.view.clippingArea,e,t)?e:null}get _elevationOffset(){let e=this.layer&&this.layer.elevationInfo;return e&&"absolute-height"===e.mode?(0,V.Ze)(e,this.layer.spatialReference):0}get _graphicOrigin(){return this.layer.graphicOrigin}initialize(){var e;let t=this.view.resourceController,i=(e=t,t=>e.immediate.schedule(t));this._worker=new T(i),this.addResolvingPromise(this._worker.promise),this.addResolvingPromise(this.layer.rootPagePromise),(0,D.DJ)(this.layer),(0,D.Kd)(this.layer,this.view),this._indexRequester=t.createStreamDataRequester(2),this._dataRequester=t.createStreamDataRequester(3),this._initRenderer();let r=this._initNodePages(),s=this.view.resourceController.memoryController;this._memCache=s.newCache(`pcl-${this.layer.uid}`),this._queryFeaturesCache=s.newCache(`pcl-query-features-${this.layer.uid};`),this._updatingHandles.add(()=>this._clippingBox,()=>this._setUpdateViewNeeded(),h.Vh),this._updatingHandles.add(()=>this._elevationOffset,()=>this._elevationOffsetChanged(),h.Vh),this._updatingHandles.add(()=>this.layer.renderer,()=>this._rendererChanged(),h.Vh),this._updatingHandles.add(()=>this.layer.filters,()=>this._reload(),h.Vh),this._updatingHandles.add(()=>this.layer.outFields,()=>this._reload(),h.Vh),this._updatingHandles.add(()=>this.layer.effectiveScaleRange,()=>this._setUpdateViewNeeded()),this._updatingHandles.add(()=>this.view.state.contentCamera,()=>this._setUpdateViewNeeded()),this.addHandles([(0,h.wB)(()=>this.view.quality,()=>this._setUpdateViewNeeded(),h.OH)]),this.addResolvingPromise(r),this.when(()=>{this.addHandles([t.scheduler.registerTask(eK.W6.POINT_CLOUD_LAYER,this),(0,h.wB)(()=>2===this.view.state.mode,()=>this._setUpdateViewNeeded(),h.pc),this._updatingHandles.add(()=>this.suspended,e=>{e?this._clearNodeState():this._setUpdateViewNeeded()},h.Vh)])},()=>{this._updatingHandles.removeAll(),this.removeAllHandles()})}_setUpdateViewNeeded(){this._updateViewNeeded=!0,this._updateLoading()}destroy(){this.cancelLoading(),this._worker=(0,a.pR)(this._worker),this._destroyRenderer(),this._memCache=(0,a.pR)(this._memCache),this._queryFeaturesCache=(0,a.pR)(this._queryFeaturesCache),this._queryEngine=(0,a.pR)(this._queryEngine),this._codedDomainPopulationAbortController=(0,a.DC)(this._codedDomainPopulationAbortController),this._codedDomainPopulationPromise=null}_initRenderer(){this._renderer=new eP({createGraphic:(e,t,i)=>this._createGraphic(e,t,i)}),this._renderer.layerViewUid=this.uid,this._updatingHandles.add(()=>this._clippingBox,e=>this._renderer.clippingBox=e,h.Vh),this._updatingHandles.add(()=>this.suspended,e=>this._setPointsVisible(!e),h.Vh),this._updatingHandles.add(()=>this.pointScale,e=>this._renderer.scaleFactor=e,h.Vh),this._renderer.minSizePx=Math.sqrt(2),this._updatingHandles.add(()=>this.useRealWorldSymbolSizes,e=>this._renderer.useRealWorldSymbolSizes=e,h.Vh),this._updatingHandles.add(()=>this.pointSize,e=>{let t=(0,p.Lz)(e);this._renderer.size=e,this._renderer.sizePx=t},h.Vh),this._updatingHandles.add(()=>this.slicePlaneEnabled,e=>this._renderer.slicePlaneEnabled=e,h.Vh),this._updatingHandles.add(()=>this.inverseDensity,()=>this._setUpdateViewNeeded(),h.Vh),this._updatingHandles.add(()=>this.maximumPointCount,()=>this._setUpdateViewNeeded(),h.Vh),this._updatingHandles.add(()=>this.view.qualitySettings.sceneService.pointCloud.lodFactor,e=>{this._lodFactor=e,this._setUpdateViewNeeded()},h.Vh)}_destroyRenderer(){this._renderer.removeAll(),this._setPointsVisible(!1)}_createGraphic(e,t,i,r){let s=null!=e.pointIdFilterMap?e.pointIdFilterMap[t]:t,
1n=i?"declaredClass"in i?i:(0,eW.zC)(this.view,i):null;return r??=this._createGraphicAttributes(e,s),new J({pointCloudMetadata:{nodeId:e.id,pointIndexInNode:t,attributePointIndexInNode:s,epoch:this._nodeLoadEpoch},geometry:n,attributes:r,layer:this.layer,sourceLayer:this.layer,origin:this._graphicOrigin})}_createGraphicAttributes(e,t){let i={};for(let r of e.attributes)this._encodeGraphicAttribute(r.attributeInfo,r.values,t,i);return i}_getGraphicAttribute(e,t,i){let r=e.storageInfo?.attributeValues,s=r?.valuesPerElement??1;if(1===s)return t[i];if("UInt8"===r?.valueType&&s<=4){let e=0,r=i*s;for(let i=r;i<r+s;i++)e=(e<<8)+t[i];return e}}_encodeGraphicAttribute(e,t,i,r){r[e.name]=this._getGraphicAttribute(e,t,i)}_setPointsVisible(e){e&&!this._rendererAdded?(this.view.stage.addRenderPlugin(this._renderer),this._rendererAdded=!0):!e&&this._rendererAdded&&(this.view.stage.removeRenderPlugin(this._renderer),this._rendererAdded=!1)}_rendererChanged(){var e;let t;this._renderer.useFixedSizes=(e=this.layer.renderer,t=e?.pointSizeAlgorithm,!!t?.type&&"fixed-size"===t.type),this._reload()}_reload(){this._clearNodeState(),this._memCache.clear(),this._setUpdateViewNeeded()}_elevationOffsetChanged(){this._clearNodeState(),this._memCache.clear(),this._initNodePages()}_displayNodes(e){var t,i,r;this._workQueue=function(e,t,i){for(let e=0;e<t.length;e++)W[e]=!1,j[e]=null;for(let t=0;t<e.length;t++)L[t]=!1,H[t]=null;for(let r=0;r<t.length;r++){let s=Q(t[r],e,i);s>=0&&(W[r]=!0,null!=H[s]?H[s].push(t[r]):H[s]=[t[r]])}for(let r=0;r<e.length;r++){let s=Q(e[r],t,i);s>=0&&(L[r]=!0,null!=j[s]?j[s].push(e[r]):j[s]=[e[r]])}let r=[];for(let t=0;t<e.length;t++)null!=H[t]||L[t]||r.push({load:[],remove:[e[t]]});for(let e=0;e<t.length;e++)null!=j[e]||W[e]||r.push({load:[t[e]],remove:[]});for(let e=0;e<t.length;e++)null!=j[e]&&(j[e].length>1||j[e][0]!==t[e])&&r.push({load:[t[e]],remove:j[e]});for(let t=0;t<e.length;t++)null!=H[t]&&(H[t].length>1||H[t][0]!==e[t])&&r.push({load:H[t],remove:[e[t]]});return r}([...this._renderedNodes],e,this._index),t=this._workQueue,i=this.view.state.contentCamera.viewForward,r=this._index,t.sort((e,t)=>{if(0===e.load.length&&0===t.load.length)return 0;if(0===e.load.length)return -1;if(0===t.load.length)return 1;if(0===e.remove.length&&0===t.remove.length){let s=r.getRenderObb(e.load[0]).center,n=r.getRenderObb(t.load[0]).center;return(0,_.f)(s,i)-(0,_.f)(n,i)}if(0===e.remove.length)return -1;if(0===t.remove.length)return 1;if(1===e.load.length&&1===t.load.length){let s=r.getRenderObb(e.load[0]).center,n=r.getRenderObb(t.load[0]).center;return(0,_.f)(s,i)-(0,_.f)(n,i)}if(1===e.load.length)return -1;if(1===t.load.length)return 1;{let s=r.getRenderObb(e.remove[0]).center,n=r.getRenderObb(t.remove[0]).center;return(0,_.f)(s,i)-(0,_.f)(n,i)}}),function(e,t){for(let i=0;i<e.length;++i){let r=e[i];r.load.length>8&&1===r.remove.length&&function(e,t,i){let r=[t.remove[0]],s=[];for(;1===r.length;){let e=r.pop();s.length=0;for(let n=0;n<t.load.length;n++){let o=t.load[n],l=i.getParentId(o);for(;l!==e;)o=l,l=i.getParentId(o);let a=r.indexOf(o);a<0&&(a=r.length,r.push(o),s.push([])),s[a].push(t.load[n])}}t.load=r;for(let t=0;t<r.length;t++)s[t].length>1?e.push({remove:[r[t]],load:s[t]}):r[t]=s[t][0]}(e,r,t)}}(this._workQueue,this._index),this._updateQueues(),this._totalWork=this._computeWork(),this._updateLoading(),this._layerIsVisible=e.length>0||this._loadingInitNodePage,this.notifyChange("suspended")}cancelLoading(){this._cancelNodeLoading(),this._cancelIndexLoading()}_cancelNodeLoading(){let e=[];for(let t of(this._loadingNodes.forEach(({abortController:t})=>e.push(t)),this._loadingNodes.clear(),e))t.abort();this._workQueue=[],this._idleQueue.cancelAll(),this._totalWork=this._computeWork(),this._updateLoading()}_updateQueues(){let e=new Set;this._workQueue.forEach(t=>t.load.forEach(t=>e.add(t)));let t=[],i=new Map;for(let{abortController:r}of(this._loadingNodes.forEach((r,s)=>{e.has(s)?i.set(s,r):t.push(r)}),this._loadingNodes=i,t))r.abort();this._workQueue=this._workQueue.filter(e=>{for(let t of e.load)if(this._loadingNodes.has(t))return this._recalcWork=!0,!1;return!0}),this._totalWork=this._computeWork(),this._updateLoading()}_cancelIndexLoading(){this._indexQueue=[],this._indexPagesLoading.forEach(({abortController:e})=>e.abort()),this._indexPagesLoading.clear(),this._totalWork=this._computeWork(),this._updateLoading()}_clearNodeState(){this._nodeLoadEpoch++,this._renderedNodes.forEac
1h(e=>this._removeFromRenderer(e)),this._cancelNodeLoading()}get readyToRun(){return this.suspended?this._updateViewNeeded:this._updateViewNeeded||this._indexQueue.length>0||this._workQueue.length>0||this._idleQueue.readyToRun}runTask(e){if(this.suspended){if(this._updateViewNeeded){this._updateViewNeeded=!1;let e=this._isRootNodeVisible();e!==this._layerIsVisible&&(this._layerIsVisible=e,this.notifyChange("suspended")),this._updateLoading()}}else{for(e.run(()=>this._updateWorkQueues());this._indexQueue.length>0&&e.run(()=>this._processIndexQueue()););this._processWorkQueue(e),this._idleQueue.runTask(e)}}_processIndexQueue(){let e=this._indexQueue.shift(),t=this._loadNodePage(e);return this._indexPagesLoading.set(e,t),t.promise.then(t=>{this._index.addPage(e,t,this._elevationOffset),this._setUpdateViewNeeded()}).then(()=>{this._indexPagesLoading.delete(e)},()=>{this._indexPagesLoading.delete(e)}),!0}_processWorkQueue(e){for(;!e.done;){let t=this._scheduleWorkEntry();if(null==t)return void e.madeProgress();this._processWorkEntry(t),e.madeProgress()}}_scheduleWorkEntry(){let e=this._workQueue.length;for(;e--;){let e=this._workQueue.shift();if(!e.remove.find(e=>!this._renderedNodes.has(e)))return e;this._workQueue.push(e)}return null}_processWorkEntry(e){if(0!==e.load.length)Promise.all(e.load.map(e=>{let t=new AbortController,i=this._memCache.pop(e.toString());return null!=i?this._loadingNodes.set(e,{abortController:t,promise:Promise.resolve(i)}):this._loadingNodes.has(e)||this._loadingNodes.set(e,{abortController:t,promise:this._loadNode(e,t.signal)}),this._loadingNodes.get(e).promise})).then(t=>{for(let i=0;i<e.load.length;i++)if(t[i]){let r=this._setupRendererData(e.load[i],t[i]);this._addToRenderer(r)}for(let t of e.remove)this._removeFromRenderer(t)}).catch(()=>{}).then(()=>{for(let t of e.load)this._loadingNodes.delete(t);this._updateLoading(),this._recalcWork&&!this._idleQueue.updating&&0===this._indexQueue.length&&0===this._loadingNodes.size&&(this._recalcWork=!1,this._setUpdateViewNeeded())}),this._updateLoading();else for(let t of e.remove)this._removeFromRenderer(t)}async _populateClassCodeCodedDomain(e,t){let i="CLASS_CODE",r=this.layer.fieldsIndex.get(i);if(!r||r.domain||!e.includes(r.name))return;let s=await (0,o.Ke)(this.layer.queryCachedStatistics(i,{signal:t}));if(!1===s.ok)return;let n=s.value?.stats?.labels?.labels;n&&Array.isArray(n)&&(r.domain=new N.A({name:"CLASS_CODE",codedValues:n.map(e=>new M.H({code:e.value,name:e.label}))}))}async prepareFetchPopupFeatures(e){return this._codedDomainPopulationPromise||(this._codedDomainPopulationAbortController=new AbortController,this._codedDomainPopulationPromise=this._populateClassCodeCodedDomain(e,this._codedDomainPopulationAbortController.signal).then(()=>{this._codedDomainPopulationAbortController=null})),this._codedDomainPopulationPromise}async whenGraphicAttributes(e,t){let i=this._splitGraphicsPerNode(e),r=this.layer.attributeStorageInfo,s=t.map(e=>eT(r,e)).filter(n.Ru),l=async(e,t)=>{let i=this._index.getNode(t);await (0,o.jJ)(s,async t=>{let r=t.useElevation?await this._loadElevationAttributeFromGeometry(i.resourceId):await this._loadAndParseAttribute(i,t);if(r){for(let i of e)if(this._isValidPointGraphic(i)){let e=i.pointCloudMetadata.attributePointIndexInNode;this._encodeGraphicAttribute(t,r,e,i.attributes)}}})},a=[];return i.forEach((e,t)=>{a.push(l(e,t))}),await Promise.allSettled(a),e}_isValidPointGraphic(e){return e instanceof J&&e.pointCloudMetadata?.epoch===this._nodeLoadEpoch}_splitGraphicsPerNode(e){let t=new Map;for(let i of e){if(!this._isValidPointGraphic(i))continue;let e=i.pointCloudMetadata,r=t.get(e.nodeId);r?r.push(i):t.set(e.nodeId,[i])}return t}async _loadAndParseAttribute(e,t){let i=await this._loadAttribute(e.resourceId,t,null);return i?(0,eB.jy)({attributeInfo:t,buffer:i},null,e.vertexCount):null}async _loadElevationAttributeFromGeometry(e){let t=this.layer.store.defaultGeometrySchema,i=(0,eB.RC)(t,await this._loadGeometry(e,null));return(0,eB.GY)(i,i.length/3)}highlight(e,t){let i=(0,eD.tM)(e);return 0!==i.length&&i[0]instanceof s.A?this._renderer.highlight(i.map(e=>this._graphicToPointDefinition(e)),(0,e$.i)(t)):eD.Wg}_graphicToPointDefinition(e){if(!this._isValidPointGraphic(e))return null;let{nodeId:t,pointIndexInNode:i}=e.pointCloudMetadata;return null!=t&&null!=i?{nodeId:t,pointId:i}:null}_computeWork(){let e=0;for(let t of this._workQueue)e+=t.load.length+t.remove.length;return e+=this._loadingNodes.size,e+=(this._indexQueue.length+this._indexPagesLoading.size)*this._index.pageSize,e+=100*!!this._loadingInitNodePage,e+=100*!!this._updateViewNeeded}get updatingProgressValue(){if(this.suspended)return+!this._updateViewNeeded;let e=this._computeWork();return 1-Math.min(this._totalWork,e)/this._totalWork}_updateLoading(){this.notifyChange("updating"),this.notifyChange("updatingProgressValue")}canResume(){return super.canResume()&&this._layerIsVisible}isUpdating(){return this.suspended?this._updateViewNeeded:this._computeWork()>0}get visibleAtCurrentScale(){return(0,eJ.E5)(this.layer.effectiveScaleRange,this.view.scale)}
1async queryFeatures(e,t){let i=await this._ensureQueryEngine().executeQuery(this._ensureQueryJSON(e),t?.signal),r=i.features;i.features=[];let n=I.A.fromJSON(i),o=this.view.spatialReference;return n.features=r.map(e=>{let{attributes:t,metadata:i}=e;if(!i){let t=s.A.fromJSON(e);return t.geometry&&(t.geometry.spatialReference=n.spatialReference??o),t.layer=this.layer,t.sourceLayer=this.layer,t.origin=this._graphicOrigin,t}let r=e.geometry?v.A.fromJSON(e.geometry):void 0;return r&&(r.spatialReference=n.spatialReference??o),this._createGraphic(i.node,i.pointId,r,t)}),n}createQuery(){let e={outFields:["*"],returnGeometry:!0,outSpatialReference:this.view.spatialReference,returnZ:!0};return new O.A(e)}async queryFeatureCount(e,t){return await this._ensureQueryEngine().executeQueryForCount(this._ensureQueryJSON(e),t?.signal)}async queryExtent(e,t){let{count:i,extent:r}=await this._ensureQueryEngine().executeQueryForExtent(this._ensureQueryJSON(e),t?.signal);return{count:i,extent:b.A.fromJSON(r)}}_ensureQueryJSON(e){return null==e?new O.A({outSpatialReference:this.view.spatialReference}).toJSON():O.A.from(e).toJSON()}_ensureQueryEngine(){if(this._queryEngine)return this._queryEngine;let{spatialReference:e}=this.view;return this._queryEngine=new A.do({fieldsIndex:this.layer.fieldsIndex.toJSON(),geometryType:"esriGeometryPoint",spatialReference:e,featureIdInfo:{type:"object-id",fieldName:"objectId"},hasZ:!0,featureStore:new B.D({sourceSpatialReference:e,viewSpatialReference:e,forAllFeatures:(e,t)=>{let i=!1;this._renderer.forEachNode(r=>{if(i)return;if(t){let e=r.obb,s=(0,P.f)(e.center[0],e.center[1],e.center[2],(0,_.b)(e.halfSize));(0,w.z)(s,this.view.renderSpatialReference,s,this.view.spatialReference);let n=t(s);if(2===n||(i=0===n))return}let s=this._queryFeaturesCache.get(`${r.id}`);s||(s=this._createQueryPointFeatures(r),this._queryFeaturesCache.put(`${r.id}`,s)),s.features.forEach(e)})},getFeatureExtent:({point:e},t)=>(0,x.V9)(e,e,t),featureAdapter:{cloneWithGeometry:(e,t)=>new e3(e.node,e.pointId,t.coords),getAttribute:({node:e,attributePointId:t},i)=>{for(let r of e.attributes)if(r.attributeInfo.name===i)return this._getGraphicAttribute(r.attributeInfo,r.values,t)},getAttributes:({node:e,attributePointId:t})=>this._createGraphicAttributes(e,t),getCentroid:e=>e.getGeometry(),getGeometry:e=>e.getGeometry(),getObjectId:()=>{},getMetadata:e=>e}})}),this._queryEngine}_createQueryPointFeatures(e){let t=e.coordinates,i=[];for(let r=0;r<t.length/3;r++){let s=3*r,n=(0,m.fA)(t[s+0],t[s+1],t[s+2]);(0,_.g)(n,n,e.origin),(0,S.F)(n,this.view.renderSpatialReference,n,this.view.spatialReference);let o=new e3(e,r,n);i.push(o)}return new e8(i)}async _initNodePages(){let e=this.layer.store.index,t=e.nodesPerPage||e.nodePerIndexBlock;this._index=new G(this.layer.spatialReference,this.view.renderCoordsHelper.spatialReference,t),this._cancelIndexLoading(),this._traverseVisible=this._index.createVisibilityTraverse(),this._loadingInitNodePage=!0,this._layerIsVisible=!0,this.notifyChange("suspended"),this._updateLoading(),this._pageMultiplier=null!=e.nodesPerPage?1:e.nodePerIndexBlock;let i=await this.layer.rootPagePromise;this._loadingInitNodePage=!1,i?(this._index.addPage(0,this._processJSONNodes(i,0),this._elevationOffset),this._setUpdateViewNeeded()):l.A.getLogger(this).error("Point cloud layer root page not loaded")}_loadNodePage(e){let t=new AbortController,i=`${this.baseUrl}/nodepages/${e*this._pageMultiplier}`;return{promise:this._requestNodePage(i,t.signal).then(t=>this._processJSONNodes(t,e)),abortController:t}}_processJSONNodes(e,t){let i=t*this._index.pageSize;return e.nodes.map((e,t)=>({resourceId:e.resourceId??i+t,obb:ej.ab.fromJSON(e.obb),obbInRenderSR:new ej.ab,firstChild:e.firstChild,childCount:e.childCount,vertexCount:e.vertexCount??e.pointCount,lodThreshold:e.lodThreshold??e.effectiveArea}))}_updateWorkQueues(){if(!this._updateViewNeeded)return!1;let e=this.view.quality,t=this.inverseDensity/this._lodFactor*e,i=this.maximumPointCount*this._lodFactor*e,r=this._computeNodesForMinimumDensity(t),s=this._computePointCount(r),n=Math.sqrt(s/(.75*i));for(;s>i;)t*=n,r=this._computeNodesForMinimumDensity(t),s=this._computePointCount(r),n=Math.sqrt(2);return this._displayNodes(r),this._updateViewNeeded=!1,this._updateLoading(),!0}_computePointCount(e){let t=0;for(let i=0;i<e.length;i++){let r=this._index.getNode(e[i]);r&&(t+=r.vertexCount)}return t}_isRootNodeVisible(){let e=!1;return this._traverseVisible({frustum:this.view.state.contentCamera.frustum,clippingBox:this._clippingBox},{predicate:(t,i,r)=>
1(e=r,!1),pageMiss:()=>{}}),e}_computeNodesForMinimumDensity(e){let t=this.view.state.contentCamera,i=t.frustum,r=this._clippingBox,s=t.viewForward,n=(0,_.f)(s,t.eye),o=(0,C.UB)(s,-n,eX),l=t.perScreenPixelRatio/2,a=e*e,d=this._nodeIdArray;return d.length=0,this._traverseVisible({frustum:i,clippingBox:r},{predicate:(e,t,i)=>{if(!i)return!1;if(0===t.childCount)return d.push(e),!1;let r=this._index.getRenderObb(e);return!(this._computeAveragePixelArea(r,t.lodThreshold,t.vertexCount,o,l)<=a)||(d.push(e),!1)},pageMiss:(e,t)=>{d.push(e),this._indexQueue.includes(t)||this._indexQueue.push(t)}}),d}_computeAveragePixelArea(e,t,i,r,s){let n=Math.max(1e-7,e.minimumDistancePlane(r));return t/(n*n)/(4*s*s)/i}_loadNode(e,t){try{return this._loadNodeAsync(e,t)}catch(e){throw(0,u.zf)(e)||l.A.getLogger(this).error(e),e}}async _loadAdditionalUserAttributes(e,t,i){let r=this.layer.outFields;if(!r)return[];let s=(0,z.hL)(this.layer.fieldsIndex,r),o=new Set(e.map(e=>null!=e?e.name:null)),l=this.layer.attributeStorageInfo,a=[];for(let e of s){if(o.has(e))continue;let i=eT(l,e);i&&a.push(t(i))}let d=await (0,u.nA)(a);return(0,u.Te)(i),d.filter(n.Ru)}async _loadNodeAsync(e,t){let i=this._index.getNode(e),r=eE(this.layer),s=eq(this.layer),n=i.resourceId,o=async e=>{if(!e)return null;if(e.useElevation)return{attributeInfo:e,buffer:null};let i=await this._loadAttribute(n,e,t);return null!=i?{attributeInfo:e,buffer:i}:null};return this._idleQueue.push(async()=>{let i=this._loadGeometry(n,t),{primaryAttribute:l,modulationAttribute:a}=r,d=o(l),h=o(a),p=s.map(e=>e.attributeInfo),c=p.map(e=>o(e)),g=this._loadAdditionalUserAttributes([l,a,...p],o,t),[f,_,y,m,b]=await Promise.all([i,d,h,Promise.all(c),g]);(0,u.Te)(t);let v={geometryBuffer:f,primaryAttributeData:_,modulationAttributeData:y,filterAttributesData:m,userAttributesData:b,schema:this.layer.store.defaultGeometrySchema,rendererInfo:r,filterInfo:s,obbData:this._index.getRenderObb(e).data,elevationOffset:this._elevationOffset,inSR:this.layer.spatialReference.toJSON(),outSR:this.view.renderCoordsHelper.spatialReference.toJSON()};return this._worker.invoke(v,t)},t)}async _loadGeometry(e,t){return this._requestData(`${this.baseUrl}/nodes/${e}/geometries/0`,t)}async _loadAttribute(e,t,i){if(!t?.storageInfo)return null;let r=t.storageInfo.key;return this._requestData(`${this.baseUrl}/nodes/${e}/attributes/${r}`,i)}_requestNodePage(e,t){let i={f:"json",...this.layer.customParameters,token:this.layer.apiKey};return this._indexRequester.request(e,0,{query:i,signal:t})}_requestData(e,t){return this._dataRequester.request(e,1,{query:{...this.layer.customParameters,token:this.layer.apiKey},signal:t})}_removeFromRenderer(e){if(this._renderedNodes.has(e)){let t=this._renderer.removeNode(e);this._renderedNodes.delete(e),this._memCache.put(t.id.toString(),t)}}_addToRenderer(e){this._renderedNodes.has(e.id)||(this._renderedNodes.add(e.id),this._renderer.addNode(e))}_setupRendererData(e,t){let i=this._index.getNode(e),r=Math.sqrt(i.lodThreshold/i.vertexCount),s=this._index.getRenderObb(e);if(t.hasOwnProperty("splatSize"))return t.splatSize=r,t.obb=s,(0,_.d)(t.origin,t.obb.center),t;let n=ej.ab.fromData(t.obbData),o=n.halfSize,a=s.halfSize,d=.01*Math.max(a[0],a[1],a[2]);if(o[0]>a[0]+d||o[1]>a[1]+d||o[2]>a[2]+d){if(this._maxLoggedBoxWarnings>0){let t=e=>`[${e.halfSize[0]}, ${e.halfSize[1]}, ${e.halfSize[2]}]`;l.A.getLogger(this).warn(`Node ${e} reported bounding box too small. got ${t(s)} but points cover ${t(n)}`),0==--this._maxLoggedBoxWarnings&&l.A.getLogger(this).warn(" Too many bounding box errors, stopping reporting for this layer.")}this._index.setRenderObb(e,n)}return new eO(e,r,(0,y.o8)(s.center),s,0===i.childCount,t.points,t.rgb,t.attributes,t.pointIdFilterMap)}get usedMemory(){let e=0;return this._renderer.forEachNode(t=>{for(let i of(e+=e2,e+=(0,d.Qf)(t.coordinates),t.attributes)){let t=i.values;(0,c.mw)(t.buffer)&&(e+=(0,d.Qf)(t))}}),e}get unloadedMemory(){let e=this._renderedNodes.size;if(e<4)return 0;let t=[...this._renderedNodes].reduce((e,t)=>e+this._index.getNode(t).vertexCount),i=this._loadingNodes.size;
1for(let e=0;e<this._workQueue.length;e++)i+=this._workQueue[e].load.length,i-=this._workQueue[e].remove.length;return i<0?0:i*t/e*((this.usedMemory-e*e2)/t)+i*e2}get performanceInfo(){return new q(this.usedMemory,this._renderedNodes.size,[...this._renderedNodes].reduce((e,t)=>e+this._index.getNode(t).vertexCount,0),this.maximumPointCount,new k(this._loadingNodes.size,this._indexQueue.length,this._workQueue.length,this._idleQueue.length))}get test(){}};(0,r.Cg)([(0,g.MZ)()],e0.prototype,"layer",void 0),(0,r.Cg)([(0,g.MZ)()],e0.prototype,"baseUrl",null),(0,r.Cg)([(0,g.MZ)()],e0.prototype,"pointScale",null),(0,r.Cg)([(0,g.MZ)()],e0.prototype,"useRealWorldSymbolSizes",null),(0,r.Cg)([(0,g.MZ)()],e0.prototype,"pointSize",null),(0,r.Cg)([(0,g.MZ)()],e0.prototype,"inverseDensity",null),(0,r.Cg)([(0,g.MZ)()],e0.prototype,"maximumPointCount",void 0),(0,r.Cg)([(0,g.MZ)({readOnly:!0})],e0.prototype,"availableFields",null),(0,r.Cg)([(0,g.MZ)({readOnly:!0})],e0.prototype,"_clippingBox",null),(0,r.Cg)([(0,g.MZ)({readOnly:!0})],e0.prototype,"_elevationOffset",null),(0,r.Cg)([(0,g.MZ)({type:Boolean})],e0.prototype,"slicePlaneEnabled",void 0),(0,r.Cg)([(0,g.MZ)()],e0.prototype,"_graphicOrigin",null),(0,r.Cg)([(0,g.MZ)()],e0.prototype,"updating",void 0),(0,r.Cg)([(0,g.MZ)(eQ.S)],e0.prototype,"updatingProgress",void 0),(0,r.Cg)([(0,g.MZ)({readOnly:!0})],e0.prototype,"updatingProgressValue",null),(0,r.Cg)([(0,g.MZ)({readOnly:!0})],e0.prototype,"visibleAtCurrentScale",null);let e1=e0=(0,r.Cg)([(0,f.$)("esri.views.3d.layers.PointCloudLayerView3D")],e0);class e3{constructor(e,t,i){this.node=e,this.pointId=t,this.point=i}getGeometry(){return new R.A([1],Array.from(this.point))}get attributePointId(){let{node:e,pointId:t}=this;return null!=e.pointIdFilterMap?e.pointIdFilterMap[t]:t}get usedMemory(){return d.qK+d.qK+d.RS+(0,d.rq)(this.point,d.RS)}}class e8{constructor(e){this.features=e}get usedMemory(){return this.features.reduce((e,t)=>e+t.usedMemory,d.qK+d.ez)}}let e2=160},9919:(e,t,i)=>{i.d(t,{z:()=>a});var r=i(94323),s=i(29128),n=i(63124),o=i(74550),l=i(3018);function a(e,t,i,r){if(null==t||null==r)return!1;let s=(0,n.Tp)(t,r);if(null==s?.projector)return!1;if(s.projector===n.pO)return e!==i&&(i[0]=e[0],i[1]=e[1],i[2]=e[2],i[3]=e[3]),!0;let{source:a,dest:p,projector:c}=s;if(3===p.spatialReferenceId){let t=n.w5[a.spatialReferenceId][2];if(null==t)return!1;t((0,l.a)(e),0,u,0),(0,n.s7)(u,0,h,0);let r=d(u[1],e[2],e[3],o.$O.radius);return(0,l.e)(i,h,r),!0}if(2!==a.spatialReferenceId&&5!==a.spatialReferenceId||11!==p.spatialReferenceId){c((0,l.a)(e),0,h,0);let t=a.metersPerUnit??1,r=p.metersPerUnit??1,s=e[3]*t/r;(0,l.e)(i,h,s)}else{let t=n.w5[a.spatialReferenceId][1],r=n.w5[1][11],s=e[3];null!=t&&null!=r&&(s=d(e[1],e[2],e[3],o.$O.radius)),c((0,l.a)(e),0,h,0),(0,l.e)(i,h,s)}return!0}function d(e,t,i,r){let s=r+t;if(s<r/2||i>s)return Number.MAX_VALUE;let n=Math.abs(p*e)+Math.asin(i/s);return n>=Math.PI/2?Number.MAX_VALUE:i/Math.cos(n)}let u=(0,s.vt)(),h=(0,s.vt)(),p=(0,r.kU)(1)},23459:(e,t,i)=>{i.d(t,{A:()=>m});var r,s,n=i(32978),o=i(85436),l=i(5539);i(96336),i(85068);var a=i(47549),d=i(32899),u=i(69368),h=i(27439),p=i(46047),c=i(97077),g=i(70693);let f=r=class extends c.o{constructor(){super(...arguments),this.description=null,this.label=null,this.values=null,this.color=null}clone(){return new r({description:this.description,label:this.label,values:(0,o.o8)(this.values),color:(0,o.o8)(this.color)})}};(0,n.Cg)([(0,l.MZ)({type:String,json:{write:!0}})],f.prototype,"description",void 0),(0,n.Cg)([(0,l.MZ)({type:String,json:{write:!0}})],f.prototype,"label",void 0),(0,n.Cg)([(0,l.MZ)({type:[String],json:{write:{isRequired:!0}}})],f.prototype,"values",void 0),(0,n.Cg)([(0,l.MZ)({type:p.A,json:{type:[g.jz],write:{isRequired:!0}}})],f.prototype,"color",void 0);let _=f=r=(0,n.Cg)([(0,d.$)("esri.renderers.support.pointCloud.ColorUniqueValueInfo")],f);var y=i(48108);let m=s=class extends u.A{constructor(e){super(e),this.type="point-cloud-unique-value",this.field=null,this.fieldTransformType=null,this.colorUniqueValueInfos=null,this.legendOptions=null}clone(){return new s({...this.cloneProperties(),field:(0,o.o8)(this.field),fieldTransformType:(0,o.o8)(this.fieldTransformType),colorUniqueValueInfos:(0,o.o8)(this.colorUniqueValueInfos),legendOptions:(0,o.o8)(this.legendOptions)})}};(0,n.Cg)([(0,a.e)({pointCloudUniqueValueRenderer:"point-cloud-unique-value"})],m.prototype,"type",void 0),(0,n.Cg)([(0,l.MZ)({json:{write:{isRequired:!0}},type:String})],m.prototype,"field",void 0),(0,n.Cg)([(0,l.MZ)({type:y.i.apiValues,json:{type:y.i.jsonValues,read:y.i.read,write:y.i.write}})],m.prototype,"fieldTransformType",void 0),(0,n.Cg)([(0,l.MZ)({type:[_],json:{write:{isRequired:!0}}})],m.prototype,"colorUniqueValueInfos",void 0),(0,n.Cg)([(0,l.MZ)({type:h.A,
1json:{write:!0}})],m.prototype,"legendOptions",void 0),m=s=(0,n.Cg)([(0,d.$)("esri.renderers.PointCloudUniqueValueRenderer")],m)},24482:(e,t,i)=>{i.d(t,{R:()=>a});var r=i(32978),s=i(93054);i(85068),i(96336),i(78075);var n=i(32899),o=i(93010),l=i(25965);let a=e=>{let t=e,i=class extends t{_validateFetchPopupFeatures(e){let{layer:t}=this,{popupEnabled:i}=t;if(!i)throw new s.A("scenelayerview3d:fetchPopupFeatures","Popups are disabled",{layer:t});if(!(0,l.D8)(t,e))throw new s.A("scenelayerview3d:fetchPopupFeatures","Layer does not define a popup template",{layer:t})}async prepareFetchPopupFeatures(e){}async fetchPopupFeaturesFromGraphics(e,t){if(this._validateFetchPopupFeatures(t),0===e.length)return[];let i="scene"===this.layer.type&&null!=this.layer.associatedLayer?this.layer.associatedLayer:this.layer,r=[];"fieldsIndex"in this.layer&&(r=(0,o.hL)(this.layer.fieldsIndex,await (0,l.TO)(i,(0,l.D8)(this.layer,t)))),await this.prepareFetchPopupFeatures(r);let s=new Set,n=[],a=[];for(let t of e)(0,o.Q1)(t,r,s)?a.push(t):n.push(t);if(0===a.length)return n;let d=new Map;for(let t=0;t<e.length;t++)d.set(e[t].getObjectId()??0,t);let u=await this.whenGraphicAttributes(a,[...s]).catch(()=>a).then(e=>n.concat(e));return u.sort((e,t)=>{let i=e.getObjectId()??0,r=d.get(i)??0,s=t.getObjectId()??0;return r-(d.get(s)??0)}),u}};return(0,r.Cg)([(0,n.$)("esri.views.3d.layers.support.PopupSceneLayerView")],i)}},35311:(e,t,i)=>{i.d(t,{w:()=>u});var r=i(32978),s=i(26687),n=i(84046),o=i(84904),l=i(5539);i(96336),i(85068),i(78075);var a=i(32899),d=i(48236);let u=e=>{let t=e,i=class extends t{constructor(){super(...arguments),this.slicePlaneEnabled=!1,this.supportsHeightUnitConversion=!1}postscript(){super.postscript(),(0,d.jI)(this.layer)&&this.addResolvingPromise(this._val
1idateHeightModelInfo())}async _validateHeightModelInfo(){let e=new AbortController,t=e.signal;this.addHandles((0,s.hA)(()=>e.abort())),await (0,o.C_)(()=>this.view.defaultsFromMap?.heightModelInfoReady,t),(0,n.Te)(t);let i=(0,d.Hu)(this.layer,this.view.heightModelInfo,this.supportsHeightUnitConversion);if(i)throw i}};return(0,r.Cg)([(0,l.MZ)()],i.prototype,"view",void 0),(0,r.Cg)([(0,l.MZ)()],i.prototype,"slicePlaneEnabled",void 0),i=(0,r.Cg)([(0,a.$)("esri.views.3d.layers.LayerView3D")],i)}},48108:(e,t,i)=>{i.d(t,{i:()=>r});let r=new(i(51648)).J({none:"none",lowFourBit:"low-four-bit",highFourBit:"high-four-bit",absoluteValue:"absolute-value",moduloTen:"modulo-ten"})},51870:(e,t,i)=>{i.d(t,{A:()=>c});var r=i(32978),s=i(953),n=i(30688),o=i(85068),l=i(98924),a=i(28053),d=i(5539);i(96336),i(78075);var u=i(32899),h=i(70765),p=i(13686);let c=class extends(0,n.sA)((0,a.g)(s.nJ)){get spatialReferenceSupported(){return!0}constructor(e){super(e),this._updatingHandles=new h.U,this.layer=null,this.parent=null}initialize(){this.when().catch(e=>{if("layerview:create-error"!==e.name){let t=this.layer&&this.layer.id||"no id",i=this.layer?.title||"no title";o.A.getLogger(this).error("#resolve()",`Failed to resolve layer view (layer title: '${i}', id: '${t}')`,e)}})}destroy(){this._updatingHandles=(0,l.pR)(this._updatingHandles),this._set("parent",null)}get fullOpacity(){return(this.layer?.opacity??1)*(this.parent?.fullOpacity??1)}get suspended(){return this.destroyed||!this.canResume()}get suspendInfo(){return this.getSuspendInfo()}get legendEnabled(){return!this.suspended&&!0===this.layer?.legendEnabled}get updating(){return!(!this._updatingHandles?.updating&&!this.isUpdating())}get updatingProgress(){return+!this.updating}get updateSuspended(){return this.suspended}get visible(){return!0===this.layer?.visible}set visible(e){this._overrideIfSome("visible",e)}get visibleAtCurrentScale(){return!0}get visibleAtCurrentTimeExtent(){let e=this.view.timeExtent,t=this.layer?.visibilityTimeExtent;return!e||!t||!e.intersection(t).isEmpty}canResume(){let e=this.layer&&"effectiveScaleRange"in this.layer?this.layer.effectiveScaleRange:null;return this.visible&&this.layer?.loaded&&this.parent&&!this.parent.suspended&&this.view?.ready&&(0,p.g7)(e)&&this.visibleAtCurrentScale&&this.visibleAtCurrentTimeExtent||!1}getSuspendInfo(){let e=this.parent?.suspended?this.parent.suspendInfo:{};this.view?.ready||(e.viewNotReady=!0),this.layer&&this.layer.loaded||(e.layerNotLoaded=!0);let t=this.layer&&"effectiveScaleRange"in this.layer?this.layer.effectiveScaleRange:null;return(0,p.g7)(t)&&this.visibleAtCurrentScale||(e.outsideScaleRange=!0),this.visibleAtCurrentTimeExtent||(e.outsideVisibilityTimeExtent=!0),this.visible||(e.layerInvisible=!0),e}isUpdating(){return!1}};(0,r.Cg)([(0,d.MZ)({readOnly:!0})],c.prototype,"spatialReferenceSupported",null),(0,r.Cg)([(0,d.MZ)()],c.prototype,"view",void 0),(0,r.Cg)([(0,d.MZ)()],c.prototype,"fullOpacity",null),(0,r.Cg)([(0,d.MZ)()],c.prototype,"layer",void 0),(0,r.Cg)([(0,d.MZ)()],c.prototype,"parent",void 0),(0,r.Cg)([(0,d.MZ)({readOnly:!0})],c.prototype,"suspended",null),(0,r.Cg)([(0,d.MZ)({readOnly:!0})],c.prototype,"suspendInfo",null),(0,r.Cg)([(0,d.MZ)({readOnly:!0})],c.prototype,"legendEnabled",null),(0,r.Cg)([(0,d.MZ)({type:Boolean,readOnly:!0})],c.prototype,"updating",null),(0,r.Cg)([(0,d.MZ)({readOnly:!0})],c.prototype,"updatingProgress",null),(0,r.Cg)([(0,d.MZ)()],c.prototype,"updateSuspended",null),(0,r.Cg)([(0,d.MZ)()],c.prototype,"visible",null),(0,r.Cg)([(0,d.MZ)({readOnly:!0})],c.prototype,"visibleAtCurrentScale",null),(0,r.Cg)([(0,d.MZ)({readOnly:!0})],c.prototype,"visibleAtCurrentTimeExtent",null),c=(0,r.Cg)([(0,u.$)("esri.views.layers.LayerView")],c)},60186:(e,t,i)=>{i.d(t,{P:()=>S,a:()=>x,b:()=>N,c:()=>C,g:()=>P});var r=i(94323),s=i(59049),n=i(32183),o=i(41231),l=i(96609),a=i(60842),d=i(29128),u=i(61068),h=i(68181),p=i(11097),c=i(98068),g=i(87480),f=i(39370),_=i(31398),y=i(65375),m=i(16239),b=i(75628),v=i(50753),w=i(10911);class S extends v.Y{constructor(){super(...arguments),this.clipBox=(0,u.vt)(u.sI),this.useFixedSizes=!1,this.useRealWorldSymbolSizes=!1,this.scaleFactor=1,this.minSizePx=0,this.size=0,this.sizePx=0}get fixedSize(){return this.drawScreenSpace?this.sizePx:this.size}get screenMinSize(){return this.useFixedSizes?0:this.minSizePx}get drawScreenSpace(){return this.useFixedSizes&&!this.useRealWorldSymbolSizes}}class x extends p.dk{constructor(e,t,i){super(e),this.origin=e,this.isLeaf=t,this.splatSize=i}}function C(e){let t=new w.N5,i=(0,h.RN)(e.output),{vertex:n,fragment:l}=t;return t.vertex.include(p.rA,e),t.attributes.add("position","vec3"),t.attributes.add("color","vec3"),n.uniforms.add(new b.S("modelView",(e,t)=>(0,s.lw)(R,t.camera.viewMatrix,(0,s.kN)(R,e.origin))),new m.F("proj",e=>e.camera.projectionMatrix),new g.t("screenMinMaxSize",(e,t,i)=>(0,o.hZ)(M,i.useFixedSizes?0:i.minSizePx*t.camera.pixelRatio,P(e.isLeaf)*t.camera.pixelRatio)),e.useFixedSizes?new f.G("pointScale",(e,t)=>(0,o.hZ)(M,e.fixedSize*t.camera.pixelRatio,t.camera.fullHeight)):new g.t("pointScale",(e,t,i)=>(0,o.hZ)(M,e.splatSize*i.scaleFactor*t.camera.pixelRatio,t.camera.fullHeight/t.camera.pixelRatio))),e.clippingEnabled?n.uniforms.add(new _.W("clipMin",(e,t,i)=>(0,a.j)(A,i.clipBox[0]-e.origin[0],i.clipBox[1]-e.origin[1],i.clipBox[2]-e.origin[2])),new _.W("clipMax",(e,t,i)=>(0,a.j)(A,i.clipBox[3]-e.origin[0],i.clipBox[4]-e.origin[1],i.clipBox[5]-e.origin[2]))):(n.constants.add("clipMin","vec3",[-r.pq,-r.pq,-r.pq]),n.constants.add("clipMax","vec3",[r.pq,r.pq,r.pq])),i&&t.varyings.add("vColor","vec3"),n.main.add((0,y.H)` 2 // Move clipped points outside of clipspace 3 if (position.x < clipMin.x || position.y < clipMin.y || position.z < clipMin.z || 4 position.x > clipMax.x || position.y > clipMax.y || position.z > clipMax.z) { 5 gl_Position = vec4(1e038, 1e038, 1e038, 1.0); 6 gl_PointSize = 0.0; 7 return; 8 } 9 10 if (rejectBySlice(position)) { 11 gl_Position = vec4(1e038, 1e038, 1e038, 1.0); 12 gl_PointSize = 0.0; 13 return; 14 } 15 16 // Position in camera space
17 vec4 camera = modelView * vec4(position, 1.0); 18 19 float pointSize = pointScale.x; 20 vec4 position = proj * camera; 21 ${e.drawScreenSize?(0,y.H)`float clampedScreenSize = pointSize;`:(0,y.H)`float pointRadius = 0.5 * pointSize; 22 vec4 cameraOffset = camera + vec4(0.0, pointRadius, 0.0, 0.0); 23 vec4 positionOffset = proj * cameraOffset; 24 float radius = abs(positionOffset.y - position.y); 25 float viewHeight = pointScale.y; 26 // screen diameter = (2 * r / w) * (h / 2) 27 float screenPointSize = (radius / position.w) * viewHeight; 28 float clampedScreenSize = clamp(screenPointSize, screenMinMaxSize.x, screenMinMaxSize.y); 29 // Shift towards camera, to move rendered point out of terrain i.e. to 30 // the camera-facing end of the virtual point when considering it as a 31 // 3D sphere. 32 camera.xyz -= normalize(camera.xyz) * pointRadius * clampedScreenSize / screenPointSize; 33 position = proj * camera;`} 34 35 gl_PointSize = clampedScreenSize; 36 gl_Position = position; 37 ${i?(0,y.H)`vColor = color;`:""}`),t.include(c.Q,e),l.main.add((0,y.H)` 38 vec2 vOffset = gl_PointCoord - vec2(0.5, 0.5); 39 float r2 = dot(vOffset, vOffset); 40 41 if (r2 > 0.25) { 42 discard; 43 } 44 calculateOcclusionAndOutputHighlight(); 45 ${i?(0,y.H)`fragColor = vec4(vColor, 1.0);`:""}`),t}function P(e){return e?256:64}let R=(0,n.vt)(),A=(0,d.vt)(),M=(0,l.vt)(),N=Object.freeze(Object.defineProperty({__proto__:null,PointRendererDrawParameters:x,PointRendererPassParameters:S,build:C,getMaxPointSizeScreenspace:P},Symbol.toStringTag,{value:"Module"}))},61609:(e,t,i)=>{i.d(t,{TS:()=>l,Wg:()=>d,tM:()=>o});var r=i(2440),s=i(26687),n=i(68902);function o(e){return r.A.isCollection(e)?e.toArray():Array.isArray(e)?e:l(e)||(0,n.DU)(e)||"esri.views.3d.layers.i3s.PointCloudGraphic"===e.declaredClass?[e]:a}function l(e){return"number"==typeof e||"string"==typeof e}let a=[],d=(0,s.hA)()},61610:(e,t,i)=>{i.d(t,{D:()=>g});var r=i(32978),s=i(38830),n=i(25190),o=i(953),l=i(5539);i(85068),i(78075);var a=i(32899),d=i(9919),u=i(61068),h=i(83117),p=i(3018);let c=(0,u.vt)(),g=class extends s.A{constructor(e){super(e),this.events=new o.bk}forEach(e){this.forAllFeatures(t=>(e(t),1))}forEachBounds(e,t){for(let i of e)t(this.getFeatureExtent(i,c))}forEachInBounds(e,t){this.forAllFeatures(i=>{let r=this.getFeatureExtent((0,n.zI)(i),_);return(0,h.HY)(e,(0,u.ES)(r,y))&&t((0,n.zI)(i)),1},t=>{if((0,d.z)(t,this.sourceSpatialReference,f,this.viewSpatialReference),f[0]>=e[0]&&f[2]<=e[2]&&f[1]>=e[1]&&f[3]<=e[3])return 1;let i=Math.max(e[0],Math.min(f[0],e[2])),r=Math.max(e[1],Math.min(f[1],e[3])),s=f[0]-i,n=f[1]-r;return s*s+n*n<=f[3]*f[3]?1:2})}};(0,r.Cg)([(0,l.MZ)({constructOnly:!0})],g.prototype,"featureAdapter",void 0),(0,r.Cg)([(0,l.MZ)({constructOnly:!0})],g.prototype,"forAllFeatures",void 0),(0,r.Cg)([(0,l.MZ)({constructOnly:!0})],g.prototype,"getFeatureExtent",void 0),(0,r.Cg)([(0,l.MZ)({constructOnly:!0})],g.prototype,"sourceSpatialReference",void 0),(0,r.Cg)([(0,l.MZ)({constructOnly:!0})],g.prototype,"viewSpatialReference",void 0),g=(0,r.Cg)([(0,a.$)("esri.views.3d.layers.i3s.I3SQueryFeatureStore")],g);let f=(0,p.f)(0,0,0,0),_=(0,u.vt)(),y=(0,h.vt)()},69368:(e,t,i)=>{i.d(t,{A:()=>x});var r,s,n,o=i(32978),l=i(51648),a=i(97077),d=i(85436),u=i(5539);i(96336),i(85068);var h=i(32899);i(78075);let p=r=class extends a.o{constructor(){super(...arguments),this.field=null,this.minValue=0,this.maxValue=255}clone(){return new r({field:this.field,minValue:this.minValue,maxValue:this.maxValue})}};(0,o.Cg)([(0,u.MZ)({type:String,json:{write:{isRequired:!0}}})],p.prototype,"field",void 0),(0,o.Cg)([(0,u.MZ)({type:Number,nonNullable:!0,json:{write:{isRequired:!0}}})],p.prototype,"minValue",void 0),(0,o.Cg)([(0,u.MZ)({type:Number,nonNullable:!0,json:{write:{isRequired:!0}}})],p.prototype,"maxValue",void 0);let c=p=r=(0,o.Cg)([(0,h.$)("esri.renderers.support.pointCloud.ColorModulation")],p),g=new l.J({pointCloudFixedSizeAlgorithm:"fixed-size",pointCloudSplatAlgorithm:"splat"}),f=class extends a.o{};(0,o.Cg)([(0,u.MZ)({type:g.apiValues,readOnly:!0,nonNullable:!0,json:{type:g.jsonValues,read:!1,write:{writer:g.write,isRequired:!0}}})],f.prototype,"type",void 0);let _=f=(0,o.Cg)([(0,h.$)("esri.renderers.support.pointCloud.PointSizeAlgorithm")],f);var y=i(47549);let m=s=class extends _{constructor(){super(...arguments),this.type="fixed-size",this.size=0,this.useRealWorldSymbolSizes=null}clone(){return new s({size:this.size,useRealWorldSymbolSizes:this.useRealWorldSymbolSizes})}};(0,o.Cg)([(0,y.e)({pointCloudFixedSizeAlgorithm:"fixed-size"})],m.prototype,"type",void 0),(0,o.Cg)([(0,u.MZ)({type:Number,nonNullable:!0,json:{write:{isRequired:!0}}})],m.prototype,"size",void 0),(0,o.Cg)([(0,u.MZ)({type:Boolean,json:{write:!0}})],m.prototype,"useRealWorldSymbolSizes",void 0);let b=m=s=(0,o.Cg)([(0,h.$)("esri.renderers.support.pointCloud.PointSizeFixedSizeAlgorithm")],m),v=n=class extends _{constructor(){super(...arguments),this.type="splat",this.scaleFactor=1}clone(){return new n({scaleFactor:this.scaleFactor})}};(0,o.Cg)([(0,y.e)({pointCloudSplatAlgorithm:"splat"})],v.prototype,"type",void 0),(0,o.Cg)([(0,u.MZ)({type:Number,value:1,nonNullable:!0,json:{write:{isRequired:!0}}})],v.prototype,"scaleFactor",void 0);let w=v=n=(0,o.Cg)([(0,h.$)("esri.renderers.support.pointCloud.PointSizeSplatAlgorithm")],v),S=(0,l.O)()({pointCloudClassBreaksRenderer:"point-cloud-class-breaks",pointCloudRGBRenderer:"point-cloud-rgb",pointCloudStretchRenderer:"point-cloud-stretch",pointCloudUniqueValueRenderer:"point-cloud-unique-value"}),x=class extends a.o{constructor(e){super(e),this.type=void 0,this.pointSizeAlgorithm=null,this.colorModulation=null,this.pointsPerInch=10}clone(){return console.warn(".clone() is not implemented for "+this.declaredClass),null}cloneProperties(){return{pointSizeAlgorithm:(0,d.o8)(this.pointSizeAlgorithm),colorModulation:(0,d.o8)(this.colorModulation),pointsPerInch:(0,d.o8)(this.pointsPerInch)}}};(0,o.Cg)([(0,u.MZ)({type:S.apiValues,readOnly:!0,nonNullable:!0,json:{type:S.jsonValues,read:!1,write:{writer:S.write,isRequired:!0}}})],x.prototype,"type",void 0),(0,o.Cg)([(0,u.MZ)({types:{key:"type",base:_,typeMap:{"fixed-size":b,splat:w}},json:{write:!0}})],x.prototype,"pointSizeAlgorithm",void 0),(0,o.Cg)([(0,u.MZ)({type:c,json:{write:!0}})],x.prototype,"colorModulation",void 0),(0,o.Cg)([(0,u.MZ)({json:{write:!0},nonNullable:!0,type:Number})],x.prototype,"pointsPerInch",void 0),x=(0,o.Cg)([(0,h.$)("esri.renderers.PointCloudRenderer")],x)},71386:(e,t,i)=>{i.d(t,{i:()=>s});var r=i(81979);function s(e){return e?.name??r.Tv}},81296:(e,t,i)=>{i.d(t,{A:()=>c});var r,s=i(32978),n=i(85436),o=i(5539);i(96336),i(85068);var l=i(47549),a=i(32899),d=i(69368),u=i(27439),h=i(48108),p=i(82790);let c=r=class extends d.A{constructor(e){super(e),this.type="point-cloud-stretch",this.field=null,this.legendOptions=null,this.fieldTransformType=null,this.stops=null}clone(){return new r({...this.cloneProperties(),field:(0,n.o8)(this.field),fieldTransformType:(0,n.o8)(this.fieldTransformType),stops:(0,n.o8)(this.stops),legendOptions:(0,n.o8)(this.legendOptions)})}};(0,s.Cg)([(0,l.e)({pointCloudStretchRenderer:"point-cloud-stretch"})],c.prototype,"type",void 0),(0,s.Cg)([(0,o.MZ)({json:{write:{isRequired:!0}},type:String})],c.prototype,"field",void 0),(0,s.Cg)([(0,o.MZ)({type:u.A,json:{write:!0}})],c.prototype,"legendOptions",void 0),(0,s.Cg)([(0,o.MZ)({type:h.i.apiValues,json:{type:h.i.jsonValues,read:h.i.read,write:h.i.write}})],c.prototype,"fieldTransformType",void 0),(0,s.Cg)([(0,o.MZ)({type:[p.A],json:{write:{isRequired:!0}}})],c.prototype,"stops",void 0),c=r=(0,s.Cg)([(0,a.$)("esri.renderers.PointCloudStretchRenderer")],c)},90487:(e,t,i)=>{i.d(t,{$i:()=>p,GY:()=>h,RC:()=>d,bh:()=>a,jy:()=>u}),i(96336);var r=i(2392),s=i(81296),n=i(23459),o=i(8048),l=i(8261);function a(e,t,i,o){let{rendererJSON:l,isRGBRenderer:a}=e,d=null,u=null;if(t&&a)d=t;else if(t&&"pointCloudUniqueValueRenderer"===l?.type){let e=(u=n.A.fromJSON(l)).colorUniqueValueInfos;d=new Uint8Array(3*o);let i=c(u.fieldTransformType);for(let r=0;r<o;r++){let s=(i?i(t[r]):t[r])+"";for(let t=0;t<e.length;t++)if(e[t].values.includes(s)){d[3*r]=e[t].color.r,d[3*r+1]=e[t].color.g,d[3*r+2]=e[t].color.b;break}}}else if(t&&"pointCloudStretchRenderer"===l?.type){let e=(u=s.A.fromJSON(l)).stops;d=new Uint8Array(3*o);let i=c(u.fieldTransformType);for(let r=0;r<o;r++){let s=i?i(t[r]):t[r],n=e.length-1;if(s<e[0].value)d[3*r]=e[0].color.r,d[3*r+1]=e[0].color.g,d[3*r+2]=e[0].color.b;else if(s>=e[n].value)d[3*r]=e[n].color.r,d[3*r+1]=e[n].color.g,d[3*r+2]=e[n].color.b;else for(let t=1;t<e.length;t++)if(s<e[t].value){let i=(s-e[t-1].value)/(e[t].value-e[t-1].value);d[3*r]=e[t].color.r*i+e[t-1].color.r*(1-i),d[3*r+1]=e[t].color.g*i+e[t-1].color.g*(1-i),d[3*r+2]=e[t].color.b*i+e[t-1].color.b*(1-i);break}}}else if(t&&"pointCloudClassBreaksRenderer"===l?.type){let e=(u=r.A.fromJSON(l)).colorClassBreakInfos;d=new Uint8Array(3*o);let i=c(u.fieldTransformType);for(let r=0;r<o;r++){let s=i?i(t[r]):t[r];for(let t=0;t<e.length;t++)if(s>=e[t].minValue&&s<=e[t].maxValue){d[3*r]=e[t].color.r,d[3*r+1]=e[t].color.g,d[3*r+2]=e[t].color.b;break}}}else d=new Uint8Array(3*o).fill(255);if(i&&u?.colorModulation){let e=u.colorModulation.minValue,t=u.colorModulation.maxValue;for(let r=0;r<o;r++){let s=i[r],n=s>=t?1:s<=e?.3:.3+.7*(s-e)/(t-e);d[3*r]=n*d[3*r],d[3*r+1]=n*d[3*r+1],d[3*r+2]=n*d[3*r+2]}}return d}function d(e,t){if(null==e.encoding||""===e.encoding){let i=(0,o.wH)(t,e);if(null==i.vertexAttributes.position)return;let r=(0,o.MA)(t,i.vertexAttributes.position),s=i.header.fields,n=[s.offsetX,s.offsetY,s.offsetZ],l=[s.scaleX,s.scaleY,s.scaleZ
45],a=r.length/3,d=new Float64Array(3*a);for(let e=0;e<a;e++)d[3*e]=r[3*e]*l[0]+n[0],d[3*e+1]=r[3*e+1]*l[1]+n[1],d[3*e+2]=r[3*e+2]*l[2]+n[2];return d}if("lepcc-xyz"===e.encoding)return(0,l.Me)(t).result}function u(e,t,i){return e?.attributeInfo.useElevation?t?h(t,i):null:e?.attributeInfo.storageInfo?(0,o.m0)(e.attributeInfo.storageInfo,e.buffer,i,!0):null}function h(e,t){let i=new Float64Array(t);for(let r=0;r<t;r++)i[r]=e[3*r+2];return i}function p(e,t,i,r,s){let n=e.length/3,o=0;for(let l=0;l<n;l++){let n=!0;for(let e=0;e<r.length&&n;e++){let{filterJSON:t}=r[e],i=s[e].values[l];switch(t.type){case"pointCloudValueFilter":{let e="exclude"===t.mode;t.values.includes(i)===e&&(n=!1);break}case"pointCloudBitfieldFilter":{let e=g(t.requiredSetBits),r=g(t.requiredClearBits);(i&e)===e&&0==(i&r)||(n=!1);break}case"pointCloudReturnFilter":{let e=15&i,r=i>>>4&15,s=r>1,o=1===e,l=e===r,a=!1;for(let e of t.includedReturns)if("last"===e&&l||"firstOfMany"===e&&o&&s||"lastOfMany"===e&&l&&s||"single"===e&&!s){a=!0;break}a||(n=!1)}}}n&&(i[o]=l,e[3*o]=e[3*l],e[3*o+1]=e[3*l+1],e[3*o+2]=e[3*l+2],t[3*o]=t[3*l],t[3*o+1]=t[3*l+1],t[3*o+2]=t[3*l+2],o++)}return o}function c(e){switch(e){default:case null:case"none":return e=>e;case"low-four-bit":return e=>15&e;case"high-four-bit":return e=>(240&e)>>4;case"absolute-value":return e=>Math.abs(e);case"modulo-ten":return e=>e%10}}function g(e){let t=0;for(let i of e||[])t|=1<<i;return t}}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.