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
34 lines (33 loc) • 1.09 kB
JavaScript
import NodeBase from './NodeBase'
import Node from './Node'
import IntervalSize from '../quadtree/IntervalSize'
import Assert from '../../util/Assert'
export default class Root extends NodeBase {
constructor() {
super()
}
insert(itemInterval, item) {
const index = NodeBase.getSubnodeIndex(itemInterval, Root.origin)
if (index === -1) {
this.add(item)
return null
}
const node = this._subnode[index]
if (node === null || !node.getInterval().contains(itemInterval)) {
const largerNode = Node.createExpanded(node, itemInterval)
this._subnode[index] = largerNode
}
this.insertContained(this._subnode[index], itemInterval, item)
}
isSearchMatch(interval) {
return true
}
insertContained(tree, itemInterval, item) {
Assert.isTrue(tree.getInterval().contains(itemInterval))
const isZeroArea = IntervalSize.isZeroWidth(itemInterval.getMin(), itemInterval.getMax())
let node = null
if (isZeroArea) node = tree.find(itemInterval); else node = tree.getNode(itemInterval)
node.add(item)
}
}
Root.origin = 0.0