fast-morton
Version:
Fast morton encoding and decoding for 2D and 3D coordinates
3 lines (2 loc) • 792 B
JavaScript
var r=new Error("All input coords must be in Uint10 range (0 - 1023)"),n=new Error("Morton code must be in Uint32 range (0 - 65,535)"),t=[1023,0,50331903,50393103,51130563,153391689];function e(r){var n=r&t[0];return((n=((n=((n=(n|n<<16)&t[2])|n<<8)&t[3])|n<<4)&t[4])|n<<2)&t[5]}function o(n,t,o){if(!function(){return[].slice.call(arguments).every(function(r){return r>=0&&r<=1023})}(n,t,o))throw r;return e(n)|e(t)<<1|e(o)<<2}var u=[0,1023,50331903,50393103,51130563,153391689];function i(r){var n=r&u[5];return((n=((n=((n=(n^n>>2)&u[4])^n>>4)&u[3])^n>>8)&u[2])^n>>16)&u[1]}function c(r,t){if(r<0||r>4294967295)throw n;var e=null!=t?t:new Array(3);return e[0]=i(r),e[1]=i(r>>1),e[2]=i(r>>2),e}export{c as morton3DDecode,o as morton3DEncode};
//# sourceMappingURL=3d-mb.modern.module.js.map