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
79 lines (78 loc) • 2.08 kB
JavaScript
import Coordinate from './Coordinate'
import IllegalArgumentException from '../../../../java/lang/IllegalArgumentException'
export default class CoordinateXYZM extends Coordinate {
constructor() {
super()
CoordinateXYZM.constructor_.apply(this, arguments)
}
static constructor_() {
this._m = null
if (arguments.length === 0) {
Coordinate.constructor_.call(this)
this._m = 0.0
} else if (arguments.length === 1) {
if (arguments[0] instanceof CoordinateXYZM) {
const coord = arguments[0]
Coordinate.constructor_.call(this, coord)
this._m = coord._m
} else if (arguments[0] instanceof Coordinate) {
const coord = arguments[0]
Coordinate.constructor_.call(this, coord)
this._m = this.getM()
}
} else if (arguments.length === 4) {
const x = arguments[0], y = arguments[1], z = arguments[2], m = arguments[3]
Coordinate.constructor_.call(this, x, y, z)
this._m = m
}
}
getM() {
return this._m
}
setOrdinate(ordinateIndex, value) {
switch (ordinateIndex) {
case Coordinate.X:
this.x = value
break
case Coordinate.Y:
this.y = value
break
case Coordinate.Z:
this.z = value
break
case Coordinate.M:
this._m = value
break
default:
throw new IllegalArgumentException('Invalid ordinate index: ' + ordinateIndex)
}
}
setM(m) {
this._m = m
}
getOrdinate(ordinateIndex) {
switch (ordinateIndex) {
case Coordinate.X:
return this.x
case Coordinate.Y:
return this.y
case Coordinate.Z:
return this.getZ()
case Coordinate.M:
return this.getM()
}
throw new IllegalArgumentException('Invalid ordinate index: ' + ordinateIndex)
}
copy() {
return new CoordinateXYZM(this)
}
toString() {
return '(' + this.x + ', ' + this.y + ', ' + this.getZ() + ' m=' + this.getM() + ')'
}
setCoordinate(other) {
this.x = other.x
this.y = other.y
this.z = other.getZ()
this._m = other.getM()
}
}