UNPKG

@doegis/core

Version:

DOE GIS API

3 lines (1 loc) 1.31 kB
import{NATIVE_ARRAY_MAX_SIZE as r}from"../../../../core/typedArrayUtil.js";function n(n){if(Array.isArray(n)){if(n.length<r)return n;for(const r of n)if(r>=65536)return new Uint32Array(n);return new Uint16Array(n)}if(n.length<r)return Array.from(n);if(n.BYTES_PER_ELEMENT===Uint16Array.BYTES_PER_ELEMENT)return n;for(const r of n)if(r>=65536)return n;return new Uint16Array(n)}function t(n){const t=3*n;return t<=r?new Array(t):t<=65536?new Uint16Array(t):new Uint32Array(t)}let e=(()=>{const r=new Uint32Array(131072);for(let n=0;n<r.length;++n)r[n]=n;return r})();const i=[0],f=(()=>{const r=new Uint16Array(65536);for(let n=0;n<r.length;++n)r[n]=n;return r})();function o(n){if(1===n)return i;if(n<r)return Array.from(new Uint16Array(f.buffer,0,n));if(n<f.length)return new Uint16Array(f.buffer,0,n);if(n>e.length){const r=Math.max(2*e.length,n);e=new Uint32Array(r);for(let n=0;n<e.length;n++)e[n]=n}return new Uint32Array(e.buffer,0,n)}function u(n){if(1===n)return i;if(n<r)return Array.from(new Uint16Array(f.buffer,0,n));if(n<f.length)return new Uint16Array(f.slice(0,n));if(n>e.length){const r=new Uint32Array(n);for(let n=0;n<r.length;n++)r[n]=n;return r}return new Uint32Array(e.slice(0,n))}export{n as compactIndices,o as generateDefaultIndexArray,u as generateIndexArray,t as newIndexArray};