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
52 lines (50 loc) • 1.36 kB
JavaScript
import Node from './Node'
import GraphComponent from './GraphComponent'
export default class Edge extends GraphComponent {
constructor () {
super()
this._dirEdge = null
if (arguments.length === 0) {} else if (arguments.length === 2) {
const de0 = arguments[0]
const de1 = arguments[1]
this.setDirectedEdges(de0, de1)
}
}
isRemoved () {
return this._dirEdge === null
}
setDirectedEdges (de0, de1) {
this._dirEdge = [de0, de1]
de0.setEdge(this)
de1.setEdge(this)
de0.setSym(de1)
de1.setSym(de0)
de0.getFromNode().addOutEdge(de0)
de1.getFromNode().addOutEdge(de1)
}
getDirEdge () {
if (Number.isInteger(arguments[0])) {
const i = arguments[0]
return this._dirEdge[i]
} else if (arguments[0] instanceof Node) {
const fromNode = arguments[0]
if (this._dirEdge[0].getFromNode() === fromNode) return this._dirEdge[0]
if (this._dirEdge[1].getFromNode() === fromNode) return this._dirEdge[1]
return null
}
}
remove () {
this._dirEdge = null
}
getOppositeNode (node) {
if (this._dirEdge[0].getFromNode() === node) return this._dirEdge[0].getToNode()
if (this._dirEdge[1].getFromNode() === node) return this._dirEdge[1].getToNode()
return null
}
interfaces_ () {
return []
}
getClass () {
return Edge
}
}