UNPKG

@arcgis/core

Version:

ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API

3 lines (2 loc) 1.11 kB
/* COPYRIGHT Esri - https://js.arcgis.com/5.0.8/LICENSE.txt */ import{isFloat32Array as t}from"../../core/typedArrayUtil.js";import{ensureTypeStrict as a}from"../../core/accessorSupport/ensureType.js";var s;const e=Symbol("ElevationTileDataClass");class u{static{s=e}constructor({values:a,width:e,height:u,noDataValue:i}){this[s]=!0,this._hasNoDataValues=null,this._minValue=null,this._maxValue=null,this.values=t(a)?a:new Float32Array(a),this.width=e,this.height=u,this.noDataValue=i}get hasNoDataValues(){if(null==this._hasNoDataValues){const t=this.noDataValue;this._hasNoDataValues=this.values.includes(t)}return this._hasNoDataValues}get minValue(){return this._ensureBounds(),this._minValue}get maxValue(){return this._ensureBounds(),this._maxValue}get usedMemory(){return this.values.byteLength+256}_ensureBounds(){if(null!=this._minValue)return;const{noDataValue:t,values:a}=this;let s=1/0,e=-1/0,u=!0;for(const i of a)i===t?this._hasNoDataValues=!0:(s=i<s?i:s,e=i>e?i:e,u=!1);u?(this._minValue=0,this._maxValue=0):(this._minValue=s,this._maxValue=e>-3e38?e:0)}static{this.from=a(u)}}export{u as default};