Custom Gis Application with Arcgis Javascript API with modern layouting
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

45 lines
22 KiB

// All material copyright Esri, All Rights Reserved, unless otherwise specified.
// See https://js.arcgis.com/4.30/esri/copyright.txt for details.
//>>built
define("../../../chunks/tslib.es6 ../../../core/arrayUtils ../../../core/asyncUtils ../../../core/Collection ../../../core/handleUtils ../../../core/has ../../../core/Logger ../../../core/maybe ../../../core/promiseUtils ../../../core/reactiveUtils ../../../core/screenUtils ../../../core/typedArrayUtil ../../../core/accessorSupport/decorators/property ../../../core/accessorSupport/decorators/subclass ../../../chunks/vec32 ../../../core/libs/gl-matrix-2/factories/vec3f32 ../../../geometry/support/aaBoundingBox ../../../geometry/support/plane ../../../layers/support/CodedValue ../../../layers/support/CodedValueDomain ../../../layers/support/Domain ../../../layers/support/InheritedDomain ../../../layers/support/RangeDomain ../../../layers/support/fieldUtils ../../../layers/support/PromiseQueue ../../../support/elevationInfoUtils ./LayerView3D ./PointCloudLayerViewPerformanceInfo ./PointCloudWorkerHandle ./i3s/I3SUtil ./i3s/LoDUtil ./i3s/PagedNodeIndex ./i3s/PointCloudRendererUtil ./i3s/PointCloudWorkerUtil ./i3s/PointGraphic ./i3s/PointRenderer ./support/PopupSceneLayerView ../support/extentUtils ../support/hitTest ../support/index ../support/orientedBoundingBox ../support/updatingProperties ../../layers/LayerView ../../support/layerViewUtils ../../support/Scheduler".split(" "),
function(m,F,G,O,P,k,x,y,w,l,Q,z,n,R,H,S,T,I,U,V,ra,sa,ta,J,W,X,Y,K,Z,L,A,aa,v,B,M,C,ba,ca,da,N,D,ea,fa,ha,ia){function ja(a){return b=>a.immediate.schedule(b)}const ka=I.create();k=class extends ba.PopupSceneLayerView(Y.LayerView3D(fa)){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 W.PromiseQueue;this._indexPagesLoading=new Map;this._loadingNodes=new Map;this._recalcWork=!0;this._layerIsVisible=!1;this._codedDomainPopulationAbortController=this._codedDomainPopulationPromise=null;this._totalWork=0;this._index=null;this._loadingInitNodePage=!1;this._nodeIdArray=[];this.ignoresMemoryFactor=!1}get baseUrl(){return this.layer.parsedUrl?.path??""}get pointScale(){const a=v.getSplatSizeAlgorithm(this.layer?.renderer);
return null!=a?.scaleFactor?a.scaleFactor:1}get useRealWorldSymbolSizes(){const a=v.getFixedSizeAlgorithm(this.layer?.renderer);return null!=a?.useRealWorldSymbolSizes?a.useRealWorldSymbolSizes:!1}get pointSize(){const a=v.getFixedSizeAlgorithm(this.layer?.renderer);return null!=a?.size?a.size:0}get inverseDensity(){return this.layer?.renderer?96/this.layer.renderer.pointsPerInch:5}get availableFields(){var a=v.getRendererInfo(this.layer);const b=new Set;a.primaryAttribute&&b.add(a.primaryAttribute.name);
a.modulationAttribute&&b.add(a.modulationAttribute.name);if(a=v.getFilterInfo(this.layer))for(const c of a)c.attributeInfo&&b.add(c.attributeInfo.name);if(this.layer.outFields)for(const c of J.unpackFieldNames(this.layer.fieldsIndex,this.layer.outFields))b.add(c);return Array.from(b)}get _clippingBox(){if(!this.view||!this.view.clippingArea)return null;const a=T.create();return ca.projectToBoundingBox(this.view.clippingArea,a,this.view.renderSpatialReference)?a:null}get _elevationOffset(){const a=
this.layer&&this.layer.elevationInfo;return a&&"absolute-height"===a.mode?X.getElevationOffset(a,this.layer.spatialReference):0}initialize(){const a=this.view.resourceController;var b=ja(a);this._worker=new Z.PointCloudWorkerHandle(b);this.addResolvingPromise(this._worker.promise);L.checkPointCloudLayerValid(this.layer);L.checkPointCloudLayerCompatibleWithView(this.layer,this.view);this._indexRequester=a.createStreamDataRequester(N.ClientType.I3S_INDEX);this._dataRequester=a.createStreamDataRequester(N.ClientType.I3S_DATA);
this._initRenderer();b=this._initNodePages();this._memCache=this.view.resourceController.memoryController.newCache(`pcl-${this.layer.uid}`);this._updatingHandles.add(()=>this._clippingBox,()=>this._setUpdateViewNeeded(),l.initial);this._updatingHandles.add(()=>this._elevationOffset,()=>this._elevationOffsetChanged(),l.initial);this._updatingHandles.add(()=>this.layer.renderer,()=>this._rendererChanged(),l.initial);this._updatingHandles.add(()=>this.layer.filters,()=>this._reload(),l.initial);this._updatingHandles.add(()=>
this.layer.outFields,()=>this._reload(),l.initial);this._updatingHandles.add(()=>this.layer.effectiveScaleRange,()=>this._setUpdateViewNeeded());this._updatingHandles.add(()=>this.view.state.contentCamera,()=>this._setUpdateViewNeeded());this.addHandles([l.watch(()=>this.view.quality,()=>this._setUpdateViewNeeded(),l.sync)]);this.addResolvingPromise(b);this.when(()=>{this.addHandles([a.scheduler.registerTask(ia.TaskPriority.POINT_CLOUD_LAYER,this),a.scheduler.registerIdleStateCallbacks(()=>this._idleBegin(),
()=>this._idleEnd()),this._updatingHandles.add(()=>this.suspended,c=>{c?this._clearNodeState():this._setUpdateViewNeeded()},l.initial)])},()=>{this._updatingHandles.removeAll();this.removeAllHandles()})}_setUpdateViewNeeded(){this._updateViewNeeded=!0;this._updateLoading()}destroy(){this.cancelLoading();this._worker=y.destroyMaybe(this._worker);this._destroyRenderer();this._memCache=y.destroyMaybe(this._memCache);this._codedDomainPopulationAbortController=y.abortMaybe(this._codedDomainPopulationAbortController);
this._codedDomainPopulationPromise=null}_initRenderer(){this._renderer=new C.PointRenderer({createGraphic:(a,b,c)=>this._createGraphic(a,b,c)});this._renderer.layerUid=this.layer.uid;this._updatingHandles.add(()=>this._clippingBox,a=>this._renderer.clippingBox=a,l.initial);this._updatingHandles.add(()=>this.suspended,a=>this._setPointsVisible(!a),l.initial);this._updatingHandles.add(()=>this.pointScale,a=>this._renderer.scaleFactor=a,l.initial);this._renderer.minSizePx=Math.sqrt(2);this._updatingHandles.add(()=>
this.useRealWorldSymbolSizes,a=>this._renderer.useRealWorldSymbolSizes=a,l.initial);this._updatingHandles.add(()=>this.pointSize,a=>{const b=Q.pt2px(a);this._renderer.size=a;this._renderer.sizePx=b},l.initial);this._updatingHandles.add(()=>this.slicePlaneEnabled,a=>this._renderer.slicePlaneEnabled=a,l.initial);this._updatingHandles.add(()=>this.inverseDensity,()=>this._setUpdateViewNeeded(),l.initial);this._updatingHandles.add(()=>this.maximumPointCount,()=>this._setUpdateViewNeeded(),l.initial);
this._updatingHandles.add(()=>this.view.qualitySettings.sceneService.pointCloud.lodFactor,a=>{this._lodFactor=a;this._setUpdateViewNeeded()},l.initial)}_destroyRenderer(){this._renderer.removeAll();this._setPointsVisible(!1)}_createGraphic(a,b,c){const d=null!=a.pointIdFilterMap?a.pointIdFilterMap[b]:b;c=da.computeMapPointFromVec3d(this.view,c);const e=this._createGraphicAttributes(a,d);return new M.PointGraphic({pointCloudMetadata:{nodeId:a.id,pointIndexInNode:b,attributePointIndexInNode:d,epoch:this._nodeLoadEpoch},
geometry:c,attributes:e,layer:this.layer,sourceLayer:this.layer})}_createGraphicAttributes(a,b){const c={};for(const d of a.attributes)this._encodeGraphicAttribute(d.attributeInfo,d.values,b,c);return c}_encodeGraphicAttribute(a,b,c,d){var e=a.storageInfo?.attributeValues;const h=e?.valuesPerElement??1;if(1===h)d[a.name]=b[c];else if("UInt8"===e?.valueType&&4>=h){e=0;c*=h;for(let g=c;g<c+h;g++)e=(e<<8)+b[g];d[a.name]=e}else d[a.name]=void 0}_setPointsVisible(a){a&&!this._rendererAdded?(this.view._stage.addRenderPlugin(this._renderer),
this._rendererAdded=!0):!a&&this._rendererAdded&&(this.view._stage.removeRenderPlugin(this._renderer),this._rendererAdded=!1)}_rendererChanged(){this._renderer.useFixedSizes=v.rendererUsesFixedSizes(this.layer.renderer);this._reload()}_reload(){this._clearNodeState();this._memCache.clear();this._setUpdateViewNeeded()}_elevationOffsetChanged(){this._clearNodeState();this._memCache.clear();this._initNodePages()}_displayNodes(a){this._workQueue=A.nodeDiff([...this._renderedNodes],a,this._index);A.sortFrontToBack(this._workQueue,
this.view.state.contentCamera.viewForward,this._index);A.splitWorkEntries(this._workQueue,8,this._index);this._updateQueues();this._totalWork=this._computeWork();this._updateLoading();this._layerIsVisible=0<a.length||this._loadingInitNodePage;this.notifyChange("suspended")}cancelLoading(){this._cancelNodeLoading();this._cancelIndexLoading()}_cancelNodeLoading(){const a=[];this._loadingNodes.forEach(({abortController:b})=>a.push(b));this._loadingNodes.clear();for(const b of a)b.abort();this._workQueue=
[];this._idleQueue.cancelAll();this._totalWork=this._computeWork();this._updateLoading()}_updateQueues(){const a=new Set;this._workQueue.forEach(d=>d.load.forEach(e=>a.add(e)));const b=[],c=new Map;this._loadingNodes.forEach((d,e)=>{a.has(e)?c.set(e,d):b.push(d)});this._loadingNodes=c;for(const {abortController:d}of b)d.abort();this._workQueue=this._workQueue.filter(d=>{for(const e of d.load)if(this._loadingNodes.has(e))return this._recalcWork=!0,!1;return!0});this._totalWork=this._computeWork();
this._updateLoading()}_cancelIndexLoading(){this._indexQueue=[];this._indexPagesLoading.forEach(({abortController:a})=>a.abort());this._indexPagesLoading.clear();this._totalWork=this._computeWork();this._updateLoading()}_clearNodeState(){this._nodeLoadEpoch++;this._renderedNodes.forEach(a=>this._removeFromRenderer(a));this._cancelNodeLoading()}_idleBegin(){this._setUpdateViewNeeded()}_idleEnd(){this._setUpdateViewNeeded()}get running(){return this.suspended?this._updateViewNeeded:this._updateViewNeeded||
0<this._indexQueue.length||0<this._workQueue.length||this._idleQueue.running}runTask(a){if(this.suspended)this._updateViewNeeded&&(this._updateViewNeeded=!1,a=this._isRootNodeVisible(),a!==this._layerIsVisible&&(this._layerIsVisible=a,this.notifyChange("suspended")),this._updateLoading());else{for(a.run(()=>this._updateWorkQueues());0<this._indexQueue.length&&a.run(()=>this._processIndexQueue()););this._processWorkQueue(a);this._idleQueue.runTask(a)}}_processIndexQueue(){const a=this._indexQueue.shift(),
b=this._loadNodePage(a);this._indexPagesLoading.set(a,b);b.promise.then(c=>{this._index.addPage(a,c,this._elevationOffset);this._setUpdateViewNeeded()}).then(()=>{this._indexPagesLoading.delete(a)},()=>{this._indexPagesLoading.delete(a)});return!0}_processWorkQueue(a){for(;!a.done;){const b=this._scheduleWorkEntry();if(null==b){a.madeProgress();break}this._processWorkEntry(b);a.madeProgress()}}_scheduleWorkEntry(){let a=this._workQueue.length;for(;a--;){const b=this._workQueue.shift();if(b.remove.find(c=>
!this._renderedNodes.has(c)))this._workQueue.push(b);else return b}return null}_processWorkEntry(a){if(0===a.load.length)for(const b of a.remove)this._removeFromRenderer(b);else Promise.all(a.load.map(b=>{const c=new AbortController,d=this._memCache.pop(b.toString());null!=d?this._loadingNodes.set(b,{abortController:c,promise:Promise.resolve(d)}):this._loadingNodes.has(b)||this._loadingNodes.set(b,{abortController:c,promise:this._loadNode(b,c.signal)});return this._loadingNodes.get(b).promise})).then(b=>
{for(let c=0;c<a.load.length;c++)if(b[c]){const d=this._setupRendererData(a.load[c],b[c]);this._addToRenderer(d)}for(const c of a.remove)this._removeFromRenderer(c)}).catch(()=>{}).then(()=>{for(const b of a.load)this._loadingNodes.delete(b);this._updateLoading();this._recalcWork&&!this._idleQueue.running&&0===this._indexQueue.length&&0===this._loadingNodes.size&&(this._recalcWork=!1,this._setUpdateViewNeeded())}),this._updateLoading()}async _populateClassCodeCodedDomain(a,b){const c=this.layer.fieldsIndex.get("CLASS_CODE");
c&&!c.domain&&a.includes(c.name)&&(a=await G.result(this.layer.queryCachedStatistics("CLASS_CODE",{signal:b})),!1!==a.ok&&(a=a.value?.stats?.labels?.labels)&&Array.isArray(a)&&(c.domain=new V({name:"CLASS_CODE",codedValues:a.map(d=>new U.CodedValue({code:d.value,name:d.label}))})))}async prepareFetchPopupFeatures(a){this._codedDomainPopulationPromise||(this._codedDomainPopulationAbortController=new AbortController,this._codedDomainPopulationPromise=this._populateClassCodeCodedDomain(a,this._codedDomainPopulationAbortController.signal).then(()=>
{this._codedDomainPopulationAbortController=null}));return this._codedDomainPopulationPromise}async whenGraphicAttributes(a,b){const c=this._splitGraphicsPerNode(a),d=this.layer.attributeStorageInfo,e=b.map(f=>v.getAttributeInfo(d,f)).filter(F.isSome),h=async(f,p)=>{const r=this._index.getNode(p);await G.forEach(e,async t=>{const u=t.useElevation?await this._loadElevationAttributeFromGeometry(r.resourceId):await this._loadAndParseAttribute(r,t);if(u)for(const q of f)this._isValidPointGraphic(q)&&
this._encodeGraphicAttribute(t,u,q.pointCloudMetadata.attributePointIndexInNode,q.attributes)})},g=[];c.forEach((f,p)=>{g.push(h(f,p))});await Promise.allSettled(g);return a}_isValidPointGraphic(a){return a instanceof M.PointGraphic&&a.pointCloudMetadata?.epoch===this._nodeLoadEpoch}_splitGraphicsPerNode(a){const b=new Map;for(const c of a){if(!this._isValidPointGraphic(c))continue;a=c.pointCloudMetadata;const d=b.get(a.nodeId);d?d.push(c):b.set(a.nodeId,[c])}return b}async _loadAndParseAttribute(a,
b){const c=await this._loadAttribute(a.resourceId,b,null);return null!=c?B.getAttributeValues({attributeInfo:b,buffer:c},null,a.vertexCount):null}async _loadElevationAttributeFromGeometry(a){a=B.readGeometry(this.layer.store.defaultGeometrySchema,await this._loadGeometry(a,null));return B.elevationFromPositions(a,a.length/3)}highlight(a){if(!a)return P.makeHandle();a=O.isCollection(a)?a.toArray():Array.isArray(a)?a:[a];return this._renderer.highlight(a.map(b=>this._graphicToPointDefinition(b)))}_graphicToPointDefinition(a){if(!this._isValidPointGraphic(a))return null;
const {nodeId:b,pointIndexInNode:c}=a.pointCloudMetadata;return null!=b&&null!=c?{nodeId:b,pointId:c}:null}_computeWork(){let a=0;for(const b of this._workQueue)a+=b.load.length+b.remove.length;a+=this._loadingNodes.size;a+=(this._indexQueue.length+this._indexPagesLoading.size)*this._index.pageSize;a+=this._loadingInitNodePage?100:0;return a+=this._updateViewNeeded?100:0}get updatingProgressValue(){if(this.suspended)return this._updateViewNeeded?0:1;const a=this._computeWork();return 1-Math.min(this._totalWork,
a)/this._totalWork}_updateLoading(){this.notifyChange("updating");this.notifyChange("updatingProgressValue")}canResume(){return super.canResume()&&this._layerIsVisible}isUpdating(){return this.suspended?this._updateViewNeeded:0<this._computeWork()}get visibleAtCurrentScale(){return ha.isInEffectiveScaleRange(this.layer.effectiveScaleRange,this.view.terrainScale)}_initNodePages(){const a=this.layer.store.index;this._index=new aa.PagedNodeIndex(this.layer.spatialReference,this.view.renderCoordsHelper.spatialReference,
a.nodesPerPage||a.nodePerIndexBlock);this._cancelIndexLoading();this._traverseVisible=this._index.createVisibilityTraverse();this._layerIsVisible=this._loadingInitNodePage=!0;this.notifyChange("suspended");this._updateLoading();this._pageMultiplier=null!=a.nodesPerPage?1:a.nodePerIndexBlock;return this._loadNodePage(0).promise.then(b=>{this._index.addPage(0,b,this._elevationOffset);this._loadingInitNodePage=!1;this._setUpdateViewNeeded()})}_loadNodePage(a){const b=new AbortController;return{promise:this._requestNodePage(`${this.baseUrl}/nodepages/${a*
this._pageMultiplier}`,b.signal).then(c=>c.nodes.map((d,e)=>({resourceId:null!=d.resourceId?d.resourceId:a*this._index.pageSize+e,obb:D.Obb.fromJSON(d.obb),obbInRenderSR:new D.Obb,firstChild:d.firstChild,childCount:d.childCount,vertexCount:d.vertexCount??d.pointCount,lodThreshold:d.lodThreshold??d.effectiveArea}))),abortController:b}}_updateWorkQueues(){if(!this._updateViewNeeded)return!1;var a=this.view.quality;let b=this.inverseDensity/this._lodFactor*a;a*=this.maximumPointCount*this._lodFactor;
let c=this._computeNodesForMinimumDensity(b),d=this._computePointCount(c),e=Math.sqrt(d/(.75*a));for(;d>a;)b*=e,c=this._computeNodesForMinimumDensity(b),d=this._computePointCount(c),e=Math.sqrt(2);this._displayNodes(c);this._updateViewNeeded=!1;this._updateLoading();return!0}_computePointCount(a){let b=0;for(let c=0;c<a.length;c++){const d=this._index.getNode(a[c]);d&&(b+=d.vertexCount)}return b}_isRootNodeVisible(){let a=!1;this._traverseVisible({frustum:this.view.state.contentCamera.frustum,clippingBox:this._clippingBox},
{predicate:(b,c,d)=>{a=d;return!1},pageMiss:()=>{}});return a}_computeNodesForMinimumDensity(a){const b=this.view.state.contentCamera,c=b.frustum,d=this._clippingBox,e=b.viewForward,h=H.dot(e,b.eye),g=I.fromNormalAndOffset(e,-h,ka),f=b.perScreenPixelRatio/2,p=a*a,r=this._nodeIdArray;r.length=0;this._traverseVisible({frustum:c,clippingBox:d},{predicate:(t,u,q)=>{if(!q)return!1;if(0===u.childCount)return r.push(t),!1;q=this._index.getRenderObb(t);return this._computeAveragePixelArea(q,u.lodThreshold,
u.vertexCount,g,f)<=p?(r.push(t),!1):!0},pageMiss:(t,u)=>{r.push(t);this._indexQueue.includes(u)||this._indexQueue.push(u)}});return r}_computeAveragePixelArea(a,b,c,d,e){a=Math.max(1E-7,a.minimumDistancePlane(d));return b/(a*a)/(4*e*e)/c}_loadNode(a,b){try{return this._loadNodeAsync(a,b)}catch(c){throw w.isAbortError(c)||x.getLogger(this).error(c),c;}}async _loadAdditionalUserAttributes(a,b,c){var d=this.layer.outFields;if(!d)return[];d=J.unpackFieldNames(this.layer.fieldsIndex,d);a=new Set(a.map(g=>
null!=g?g.name:null));const e=this.layer.attributeStorageInfo,h=[];for(const g of d)a.has(g)||(d=v.getAttributeInfo(e,g))&&h.push(b(d));b=await w.allSettledValues(h);w.throwIfAborted(c);return b.filter(F.isSome)}async _loadNodeAsync(a,b){const c=this._index.getNode(a),d=v.getRendererInfo(this.layer),e=v.getFilterInfo(this.layer),h=c.resourceId,g=async f=>{if(!f)return null;if(f.useElevation)return{attributeInfo:f,buffer:null};const p=await this._loadAttribute(h,f,b);return null!=p?{attributeInfo:f,
buffer:p}:null};return this._idleQueue.push(async()=>{var f=this._loadGeometry(h,b);const {primaryAttribute:p,modulationAttribute:r}=d,t=g(p),u=g(r);var q=e.map(E=>E.attributeInfo);const la=q.map(E=>g(E));q=this._loadAdditionalUserAttributes([p,r,...q],g,b);const [ma,na,oa,pa,qa]=await Promise.all([f,t,u,Promise.all(la),q]);w.throwIfAborted(b);f={geometryBuffer:ma,primaryAttributeData:na,modulationAttributeData:oa,filterAttributesData:pa,userAttributesData:qa,schema:this.layer.store.defaultGeometrySchema,
rendererInfo:d,filterInfo:e,obbData:this._index.getRenderObb(a).data,elevationOffset:this._elevationOffset,inSR:this.layer.spatialReference.toJSON(),outSR:this.view.renderCoordsHelper.spatialReference.toJSON()};return this._worker.invoke(f,b)},b)}async _loadGeometry(a,b){return this._requestData(`${this.baseUrl}/nodes/${a}/geometries/0`,b)}async _loadAttribute(a,b,c){return b?.storageInfo?this._requestData(`${this.baseUrl}/nodes/${a}/attributes/${b.storageInfo.key}`,c):null}_requestNodePage(a,b){return this._indexRequester.request(a,
"json",{query:{f:"json",...this.layer.customParameters,token:this.layer.apiKey},signal:b})}_requestData(a,b){return this._dataRequester.request(a,"binary",{query:{...this.layer.customParameters,token:this.layer.apiKey},signal:b})}_removeFromRenderer(a){if(this._renderedNodes.has(a)){const b=this._renderer.removeNode(a);this._renderedNodes.delete(a);this._memCache.put(b.id.toString(),b,5*b.coordinates.length+128)}}_addToRenderer(a){this._renderedNodes.has(a.id)||(this._renderedNodes.add(a.id),this._renderer.addNode(a))}_setupRendererData(a,
b){const c=this._index.getNode(a),d=Math.sqrt(c.lodThreshold/c.vertexCount),e=this._index.getRenderObb(a);if(C.isPointRendererNode(b))return b.splatSize=d,b.obb=e,H.copy(b.origin,b.obb.center),b;const h=D.Obb.fromData(b.obbData),g=h.halfSize,f=e.halfSize,p=.01*Math.max(f[0],f[1],f[2]);if(g[0]>f[0]+p||g[1]>f[1]+p||g[2]>f[2]+p)0<this._maxLoggedBoxWarnings&&(x.getLogger(this).warn(`Node ${a} reported bounding box too small. got ${`[${e.halfSize[0]}, ${e.halfSize[1]}, ${e.halfSize[2]}]`} but points cover ${`[${h.halfSize[0]}, ${h.halfSize[1]}, ${h.halfSize[2]}]`}`),
0===--this._maxLoggedBoxWarnings&&x.getLogger(this).warn(" Too many bounding box errors, stopping reporting for this layer.")),this._index.setRenderObb(a,h);return new C.PointRendererNode(a,d,S.clone(e.center),e,0===c.childCount,b.points,b.rgb,b.attributes,b.pointIdFilterMap)}get usedMemory(){let a=0;this._renderer.forEachNode(b=>{a+=160;a+=z.estimateSize(b.coordinates);for(const c of b.attributes)b=c.values,z.isArrayBuffer(b.buffer)&&(a+=z.estimateSize(b))});return a}get unloadedMemory(){const a=
this._renderedNodes.size;if(4>a)return 0;const b=[...this._renderedNodes].reduce((d,e)=>d+this._index.getNode(e).vertexCount);let c=this._loadingNodes.size;for(let d=0;d<this._workQueue.length;d++)c+=this._workQueue[d].load.length,c-=this._workQueue[d].remove.length;return 0>c?0:c*b/a*((this.usedMemory-160*a)/b)+160*c}get performanceInfo(){return new K.PointCloudLayerViewPerformanceInfo(this.usedMemory,this._renderedNodes.size,[...this._renderedNodes].reduce((a,b)=>a+this._index.getNode(b).vertexCount,
0),this.maximumPointCount,new K.QueuePerformanceInfo(this._loadingNodes.size,this._indexQueue.length,this._workQueue.length,this._idleQueue.length))}get test(){}};m.__decorate([n.property()],k.prototype,"layer",void 0);m.__decorate([n.property()],k.prototype,"baseUrl",null);m.__decorate([n.property()],k.prototype,"pointScale",null);m.__decorate([n.property()],k.prototype,"useRealWorldSymbolSizes",null);m.__decorate([n.property()],k.prototype,"pointSize",null);m.__decorate([n.property()],k.prototype,
"inverseDensity",null);m.__decorate([n.property()],k.prototype,"maximumPointCount",void 0);m.__decorate([n.property({readOnly:!0})],k.prototype,"availableFields",null);m.__decorate([n.property({readOnly:!0})],k.prototype,"_clippingBox",null);m.__decorate([n.property({readOnly:!0})],k.prototype,"_elevationOffset",null);m.__decorate([n.property({type:Boolean})],k.prototype,"slicePlaneEnabled",void 0);m.__decorate([n.property()],k.prototype,"updating",void 0);m.__decorate([n.property(ea.updatingProgress)],
k.prototype,"updatingProgress",void 0);m.__decorate([n.property({readOnly:!0})],k.prototype,"updatingProgressValue",null);m.__decorate([n.property({readOnly:!0})],k.prototype,"visibleAtCurrentScale",null);return k=m.__decorate([R.subclass("esri.views.3d.layers.PointCloudLayerView3D")],k)});