UNPKG

molstar

Version:

A comprehensive macromolecular library.

60 lines 1.83 kB
/** * Copyright (c) 2018-2021 mol* contributors, licensed under MIT, See LICENSE file for more info. * * @author Alexander Rose <alexander.rose@weirdbyte.de> */ export var halfPI = Math.PI / 2; export var PiDiv180 = Math.PI / 180; export function degToRad(deg) { return deg * PiDiv180; // deg * Math.PI / 180 } export function radToDeg(rad) { return rad / PiDiv180; // rad * 180 / Math.PI } export function isPowerOfTwo(x) { return (x !== 0) && (x & (x - 1)) === 0; } /** return the value that has the largest absolute value */ export function absMax() { var values = []; for (var _i = 0; _i < arguments.length; _i++) { values[_i] = arguments[_i]; } var max = 0; var absMax = 0; for (var i = 0, il = values.length; i < il; ++i) { var value = values[i]; var abs = Math.abs(value); if (abs > absMax) { max = value; absMax = abs; } } return max; } /** Length of an arc with angle in radians */ export function arcLength(angle, radius) { return angle * radius; } /** Create an outward spiral of given `radius` on a 2d grid */ export function spiral2d(radius) { var _a; var x = 0; var y = 0; var delta = [0, -1]; var size = radius * 2 + 1; var halfSize = size / 2; var out = []; for (var i = Math.pow(size, 2); i > 0; --i) { if ((-halfSize < x && x <= halfSize) && (-halfSize < y && y <= halfSize)) { out.push([x, y]); } if (x === y || (x < 0 && x === -y) || (x > 0 && x === 1 - y)) { _a = [-delta[1], delta[0]], delta[0] = _a[0], delta[1] = _a[1]; // change direction } x += delta[0]; y += delta[1]; } return out; } //# sourceMappingURL=misc.js.map