UNPKG

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

36 lines (35 loc) 1.21 kB
import Coordinate from '../../geom/Coordinate' import NodeBase from './NodeBase' import Node from './Node' import IntervalSize from './IntervalSize' import Assert from '../../util/Assert' export default class Root extends NodeBase { constructor() { super() } insert(itemEnv, item) { const index = NodeBase.getSubnodeIndex(itemEnv, Root.origin.x, Root.origin.y) if (index === -1) { this.add(item) return null } const node = this._subnode[index] if (node === null || !node.getEnvelope().contains(itemEnv)) { const largerNode = Node.createExpanded(node, itemEnv) this._subnode[index] = largerNode } this.insertContained(this._subnode[index], itemEnv, item) } isSearchMatch(searchEnv) { return true } insertContained(tree, itemEnv, item) { Assert.isTrue(tree.getEnvelope().contains(itemEnv)) const isZeroX = IntervalSize.isZeroWidth(itemEnv.getMinX(), itemEnv.getMaxX()) const isZeroY = IntervalSize.isZeroWidth(itemEnv.getMinY(), itemEnv.getMaxY()) let node = null if (isZeroX || isZeroY) node = tree.find(itemEnv); else node = tree.getNode(itemEnv) node.add(item) } } Root.origin = new Coordinate(0.0, 0.0)