Skip to content
Snippets Groups Projects
Select Git revision
  • 2c7c7f0c6cd442e38b345e43ab30a26fac377f73
  • master default protected
  • devel
  • hruska-feature-clients-api
  • malostik-#5066-deduplicate-idea-ids
  • warden-postgresql-port
  • hruska-feature-#6799-filter-keys
  • hruska-feature-5066-duplicateIdeaID
  • warden-client-3.0-beta3
  • warden-server-3.0-beta3
  • warden-client-2.2-final
  • warden-server-2.2-final
  • warden-client-3.0-beta2
  • warden-server-3.0-beta2
  • warden-client-2.2
  • warden-server-2.2-patch3
  • warden-client-3.0-beta1
  • warden-server-3.0-beta1
  • warden-server-2.2-patch1
  • warden-client-3.0-beta0
  • warden-server-3.0-beta0
  • warden-server-2.2
  • warden-server-2.1-patch1
  • warden-client-2.1
  • warden-server-2.1
  • warden-server-2.1-beta6
  • warden-server-2.1-beta5
  • warden-server-2.1-beta4
28 results

getWebStatus.sh

Blame
  • misc.ts 1.67 KiB
    /**
     * Copyright (c) 2018-2021 mol* contributors, licensed under MIT, See LICENSE file for more info.
     *
     * @author Alexander Rose <alexander.rose@weirdbyte.de>
     */
    
    export const halfPI = Math.PI / 2;
    export const PiDiv180 = Math.PI / 180;
    
    export function degToRad(deg: number) {
        return deg * PiDiv180; // deg * Math.PI / 180
    }
    
    export function radToDeg(rad: number) {
        return rad / PiDiv180; // rad * 180 / Math.PI
    }
    
    export function isPowerOfTwo(x: number) {
        return (x !== 0) && (x & (x - 1)) === 0;
    }
    
    /** return the value that has the largest absolute value */
    export function absMax(...values: number[]) {
        let max = 0;
        let absMax = 0;
        for (let i = 0, il = values.length; i < il; ++i) {
            const value = values[i];
            const 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: number, radius: number) {
        return angle * radius;
    }
    
    /** Create an outward spiral of given `radius` on a 2d grid */
    export function spiral2d(radius: number) {
        let x = 0;
        let y = 0;
        const delta = [0, -1];
        const size = radius * 2 + 1;
        const halfSize = size / 2;
        const out: [number, number][] = [];
    
        for (let 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)) {
                [delta[0], delta[1]] = [-delta[1], delta[0]]; // change direction
            }
    
            x += delta[0];
            y += delta[1];
        }
        return out;
    }