node-red-contrib-tak-registration
Version:
A Node-RED node to register to TAK and to help wrap files as datapackages to send to TAK
56 lines (54 loc) • 1.62 kB
JavaScript
import Double from '../../../../java/lang/Double'
export default class MathUtil {
static log10(x) {
const ln = Math.log(x)
if (Double.isInfinite(ln)) return ln
if (Double.isNaN(ln)) return ln
return ln / MathUtil.LOG_10
}
static min(v1, v2, v3, v4) {
let min = v1
if (v2 < min) min = v2
if (v3 < min) min = v3
if (v4 < min) min = v4
return min
}
static clamp() {
if (typeof arguments[2] === 'number' && (typeof arguments[0] === 'number' && typeof arguments[1] === 'number')) {
const x = arguments[0], min = arguments[1], max = arguments[2]
if (x < min) return min
if (x > max) return max
return x
} else if (Number.isInteger(arguments[2]) && (Number.isInteger(arguments[0]) && Number.isInteger(arguments[1]))) {
const x = arguments[0], min = arguments[1], max = arguments[2]
if (x < min) return min
if (x > max) return max
return x
}
}
static wrap(index, max) {
if (index < 0)
return max - -index % max
return index % max
}
static max() {
if (arguments.length === 3) {
const v1 = arguments[0], v2 = arguments[1], v3 = arguments[2]
let max = v1
if (v2 > max) max = v2
if (v3 > max) max = v3
return max
} else if (arguments.length === 4) {
const v1 = arguments[0], v2 = arguments[1], v3 = arguments[2], v4 = arguments[3]
let max = v1
if (v2 > max) max = v2
if (v3 > max) max = v3
if (v4 > max) max = v4
return max
}
}
static average(x1, x2) {
return (x1 + x2) / 2.0
}
}
MathUtil.LOG_10 = Math.log(10)