UNPKG

fast-morton

Version:

Fast morton encoding and decoding for 2D and 3D coordinates

3 lines (2 loc) 971 B
!function(n,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((n||self).fastMorton={})}(this,function(n){var e=new Error("All input coords must be in Uint15 range (0 - 32,767)"),r=new Error("Morton code must be in Uint32 range (0 - 65,535)"),o=[4294967295,65535,16711935,252645135,858993459,1431655765];function t(n){var e=n&o[0];return((e=((e=((e=((e=(e|e<<16)&o[1])|e<<8)&o[2])|e<<4)&o[3])|e<<2)&o[4])|e<<1)&o[5]}var i=[4294967295,65535,16711935,252645135,858993459,1431655765];function f(n){var e=n&i[5];return((e=((e=((e=(e^e>>1)&i[4])^e>>2)&i[3])^e>>4)&i[2])^e>>8)&i[1]}n.morton2DDecode=function(n,e){if(n<0||n>4294967295)throw r;var o=null!=e?e:new Array(2);return o[0]=f(n),o[1]=f(n>>1),o},n.morton2DEncode=function(n,r){if(!function(){return[].slice.call(arguments).every(function(n){return n>=0&&n<=32767})}(n,r))throw e;return t(n)|t(r)<<1}}); //# sourceMappingURL=2d-mb.umd.js.map