UNPKG

@arcgis/core

Version:

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

6 lines (5 loc) 3.31 kB
/* All material copyright ESRI, All Rights Reserved, unless otherwise specified. See https://js.arcgis.com/4.33/esri/copyright.txt for details. */ import{toUint16 as t,fromUint16 as e}from"../../../number.js";import{DataType as n}from"../../../../../../webgl/enums.js";function o(e,o,s,f){const r=s.packPrecisionFactor??1;switch(s.type){case n.BYTE:if(1===s.count)e.setInt8(f+s.offset,o*r);else for(let t=0;t<s.count;t++){const n=t*Int8Array.BYTES_PER_ELEMENT;e.setInt8(f+s.offset+n,o[t]*r)}break;case n.UNSIGNED_BYTE:if(1===s.count)e.setUint8(f+s.offset,o*r);else for(let t=0;t<s.count;t++){const n=t*Uint8Array.BYTES_PER_ELEMENT;e.setUint8(f+s.offset+n,o[t]*r)}break;case n.SHORT:if(1===s.count)e.setInt16(f+s.offset,o*r,!0);else for(let t=0;t<s.count;t++){const n=t*Int16Array.BYTES_PER_ELEMENT;e.setInt16(f+s.offset+n,o[t]*r,!0)}break;case n.UNSIGNED_SHORT:if(1===s.count)e.setUint16(f+s.offset,o*r,!0);else for(let t=0;t<s.count;t++){const n=t*Uint16Array.BYTES_PER_ELEMENT;e.setUint16(f+s.offset+n,o[t]*r,!0)}break;case n.INT:if(1===s.count)e.setInt32(f+s.offset,o*r,!0);else for(let t=0;t<s.count;t++){const n=t*Int32Array.BYTES_PER_ELEMENT;e.setInt32(f+s.offset+n,o[t]*r,!0)}break;case n.UNSIGNED_INT:if(1===s.count)e.setUint32(f+s.offset,o*r,!0);else for(let t=0;t<s.count;t++){const n=t*Uint32Array.BYTES_PER_ELEMENT;e.setUint32(f+s.offset+n,o[t]*r,!0)}break;case n.FLOAT:if(1===s.count)e.setFloat32(f+s.offset,o*r,!0);else for(let t=0;t<s.count;t++){const n=t*Float32Array.BYTES_PER_ELEMENT;e.setFloat32(f+s.offset+n,o[t]*r,!0)}break;case n.HALF_FLOAT:if(1===s.count)e.setUint16(f+s.offset,t(o*r),!0);else for(let n=0;n<s.count;n++){const E=n*Uint16Array.BYTES_PER_ELEMENT;e.setUint16(f+s.offset+E,t(o[n]*r),!0)}}}function s(t,o,s){switch(o.type){case n.BYTE:{if(1===o.count)return t.getInt8(s+o.offset);const e=[];for(let n=0;n<o.count;n++){const f=n*Int8Array.BYTES_PER_ELEMENT;e.push(t.getInt8(s+o.offset+f))}return e}case n.UNSIGNED_BYTE:{if(1===o.count)return t.getUint8(s+o.offset);const e=[];for(let n=0;n<o.count;n++){const f=n*Uint8Array.BYTES_PER_ELEMENT;e.push(t.getUint8(s+o.offset+f))}return e}case n.SHORT:{if(1===o.count)return t.getInt16(s+o.offset,!0);const e=[];for(let n=0;n<o.count;n++){const f=n*Int16Array.BYTES_PER_ELEMENT;e.push(t.getInt16(s+o.offset+f,!0))}return e}case n.UNSIGNED_SHORT:{if(1===o.count)return t.getUint16(s+o.offset,!0);const e=[];for(let n=0;n<o.count;n++){const f=n*Uint16Array.BYTES_PER_ELEMENT;e.push(t.getUint16(s+o.offset+f,!0))}return e}case n.INT:{if(1===o.count)return t.getInt32(s+o.offset,!0);const e=[];for(let n=0;n<o.count;n++){const f=n*Int32Array.BYTES_PER_ELEMENT;e.push(t.getInt32(s+o.offset+f,!0))}return e}case n.UNSIGNED_INT:{if(1===o.count)return t.getUint32(s+o.offset,!0);const e=[];for(let n=0;n<o.count;n++){const f=n*Uint32Array.BYTES_PER_ELEMENT;e.push(t.getUint32(s+o.offset+f,!0))}return e}case n.FLOAT:{if(1===o.count)return t.getFloat32(s+o.offset,!0);const e=[];for(let n=0;n<o.count;n++){const f=n*Float32Array.BYTES_PER_ELEMENT;e.push(t.getFloat32(s+o.offset+f,!0))}return e}case n.HALF_FLOAT:{if(1===o.count)return e(t.getUint16(s+o.offset,!0));const n=[];for(let f=0;f<o.count;f++){const r=f*Uint16Array.BYTES_PER_ELEMENT;n.push(e(t.getUint16(s+o.offset+r,!0)))}return n}}}export{o as packDataView,s as unpackDataView};