New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@thi.ng/morton

Package Overview
Dependencies
Maintainers
1
Versions
184
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@thi.ng/morton - npm Package Compare versions

Comparing version 0.1.0 to 0.2.0

11

CHANGELOG.md

@@ -6,2 +6,13 @@ # Change Log

# [0.2.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/morton@0.1.0...@thi.ng/morton@0.2.0) (2018-10-21)
### Features
* **morton:** update/add muxScaled2/3 versions, add error handling ([ac2f3e8](https://github.com/thi-ng/umbrella/commit/ac2f3e8))
# 0.1.0 (2018-10-17)

@@ -8,0 +19,0 @@

12

index.d.ts

@@ -17,6 +17,10 @@ export declare const encode5: (x: number) => number;

export declare const demux3: (n: number) => number[];
export declare const muxScaled2: (x: number, y: number, min?: number, max?: number) => number;
export declare const muxScaled3: (x: number, y: number, z: number, min?: number, max?: number) => number;
export declare const demuxScaled2: (n: number, min?: number, max?: number) => number[];
export declare const demuxScaled3: (n: number, min?: number, max?: number) => number[];
export declare const muxScaled2: (x: number, y: number, minx?: number, maxx?: number, miny?: number, maxy?: number) => number;
export declare const muxScaled3: (x: number, y: number, z: number, minx?: number, maxx?: number, miny?: number, maxy?: number, minz?: number, maxz?: number) => number;
export declare const demuxScaled2: (n: number, minx?: number, maxx?: number, miny?: number, maxy?: number) => number[];
export declare const demuxScaled3: (n: number, minx?: number, maxx?: number, miny?: number, maxy?: number, minz?: number, maxz?: number) => number[];
export declare const muxScaled2v: (v: ArrayLike<number>, min?: ArrayLike<number>, max?: ArrayLike<number>) => number;
export declare const muxScaled3v: (v: ArrayLike<number>, min?: ArrayLike<number>, max?: ArrayLike<number>) => number;
export declare const demuxScaled2v: (n: number, min?: ArrayLike<number>, max?: ArrayLike<number>) => number[];
export declare const demuxScaled3v: (n: number, min?: ArrayLike<number>, max?: ArrayLike<number>) => number[];
export declare const treeToMorton: (t: number[], dim: number) => number;

@@ -23,0 +27,0 @@ export declare const mortonToTree: (m: number, dim: number) => number[];

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const api_1 = require("@thi.ng/binary/api");
const pow_1 = require("@thi.ng/binary/pow");
const illegal_arguments_1 = require("@thi.ng/errors/illegal-arguments");
const fit_1 = require("@thi.ng/math/fit");
const interval_1 = require("@thi.ng/math/interval");
const MIN = [0, 0, 0];
const MAX = [1, 1, 1];
exports.encode5 = (x) => {

@@ -50,5 +55,8 @@ x &= 0x0000001f;

};
exports.encodeScaled5 = (x, min = 0, max = 1) => exports.encode5(Math.round(fit_1.fit(x, min, max, 0, 0x1f)));
exports.encodeScaled10 = (x, min = 0, max = 1) => exports.encode10(Math.round(fit_1.fit(x, min, max, 0, 0x3ff)));
exports.encodeScaled16 = (x, min = 0, max = 1) => exports.encode16(Math.round(fit_1.fit(x, min, max, 0, 0xffff)));
const prescale = (x, min, max, bits) => !interval_1.inRange(x, min, max) ?
illegal_arguments_1.illegalArgs(`value ${x} not in range [${min}..${max}]`) :
Math.round(fit_1.fit(x, min, max, 0, api_1.MASKS[bits]));
exports.encodeScaled5 = (x, min = 0, max = 1) => exports.encode5(prescale(x, min, max, 5));
exports.encodeScaled10 = (x, min = 0, max = 1) => exports.encode10(prescale(x, min, max, 10));
exports.encodeScaled16 = (x, min = 0, max = 1) => exports.encode16(prescale(x, min, max, 16));
exports.decodeScaled5 = (x, min = 0, max = 1) => fit_1.fit01(exports.decode5(x) / 0x1f, min, max);

@@ -61,16 +69,20 @@ exports.decodeScaled10 = (x, min = 0, max = 1) => fit_1.fit01(exports.decode10(x) / 0x3ff, min, max);

exports.demux3 = (n) => [exports.decode10(n), exports.decode10(n >>> 1), exports.decode10(n >>> 2)];
exports.muxScaled2 = (x, y, min = 0, max = 1) => (exports.encodeScaled16(x, min, max) |
exports.encodeScaled16(y, min, max) << 1) >>> 0;
exports.muxScaled3 = (x, y, z, min = 0, max = 1) => (exports.encodeScaled10(x, min, max) |
exports.encodeScaled10(y, min, max) << 1 |
exports.encodeScaled10(z, min, max) << 2) >>> 0;
exports.demuxScaled2 = (n, min = 0, max = 1) => [
exports.decodeScaled16(n, min, max),
exports.decodeScaled16(n >>> 1, min, max)
exports.muxScaled2 = (x, y, minx = 0, maxx = 1, miny = minx, maxy = maxx) => (exports.encodeScaled16(x, minx, maxx) |
exports.encodeScaled16(y, miny, maxy) << 1) >>> 0;
exports.muxScaled3 = (x, y, z, minx = 0, maxx = 1, miny = minx, maxy = maxx, minz = minx, maxz = maxx) => (exports.encodeScaled10(x, minx, maxx) |
exports.encodeScaled10(y, miny, maxy) << 1 |
exports.encodeScaled10(z, minz, maxz) << 2) >>> 0;
exports.demuxScaled2 = (n, minx = 0, maxx = 1, miny = minx, maxy = maxx) => [
exports.decodeScaled16(n, minx, maxx),
exports.decodeScaled16(n >>> 1, miny, maxy)
];
exports.demuxScaled3 = (n, min = 0, max = 1) => [
exports.decodeScaled10(n, min, max),
exports.decodeScaled10(n >>> 1, min, max),
exports.decodeScaled10(n >>> 2, min, max)
exports.demuxScaled3 = (n, minx = 0, maxx = 1, miny = minx, maxy = maxx, minz = minx, maxz = maxx) => [
exports.decodeScaled10(n, minx, maxx),
exports.decodeScaled10(n >>> 1, miny, maxy),
exports.decodeScaled10(n >>> 2, minz, maxz)
];
exports.muxScaled2v = (v, min = MIN, max = MAX) => exports.muxScaled2(v[0], v[1], min[0], max[0], min[1], max[1]);
exports.muxScaled3v = (v, min = MIN, max = MAX) => exports.muxScaled3(v[0], v[1], v[2], min[0], max[0], min[1], max[1], min[2], max[2]);
exports.demuxScaled2v = (n, min = MIN, max = MAX) => exports.demuxScaled2(n, min[0], max[0], min[1], max[1]);
exports.demuxScaled3v = (n, min = MIN, max = MAX) => exports.demuxScaled3(n, min[0], max[0], min[1], max[1], min[2], max[2]);
exports.treeToMorton = (t, dim) => {

@@ -77,0 +89,0 @@ let n = 0;

{
"name": "@thi.ng/morton",
"version": "0.1.0",
"version": "0.2.0",
"description": "Z-order-curve / Morton encoding & decoding for 1D, 2D, 3D",

@@ -24,11 +24,12 @@ "main": "./index.js",

"@types/mocha": "^5.2.5",
"@types/node": "^10.5.5",
"@types/node": "^10.12.0",
"mocha": "^5.2.0",
"nyc": "^12.0.2",
"typedoc": "^0.11.1",
"typescript": "^3.0.1"
"nyc": "^13.1.0",
"typedoc": "^0.13.0",
"typescript": "^3.1.3"
},
"dependencies": {
"@thi.ng/binary": "^0.1.0",
"@thi.ng/math": "^0.1.0"
"@thi.ng/binary": "^0.1.1",
"@thi.ng/errors": "^0.1.11",
"@thi.ng/math": "^0.2.0"
},

@@ -47,3 +48,3 @@ "keywords": [

},
"gitHead": "6e563377f8cdbdda904559c956a2a558eb9fed64"
"gitHead": "5bb513915cb3c533bd4278f6f365389b3664f4d1"
}
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc