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

32 lines (30 loc) 1.02 kB
import SplitSegment from './SplitSegment' import ConstraintSplitPointFinder from './ConstraintSplitPointFinder' export default class NonEncroachingSplitPointFinder { findSplitPoint (seg, encroachPt) { const lineSeg = seg.getLineSegment() const segLen = lineSeg.getLength() const midPtLen = segLen / 2 const splitSeg = new SplitSegment(lineSeg) const projPt = NonEncroachingSplitPointFinder.projectedSplitPoint(seg, encroachPt) const nonEncroachDiam = projPt.distance(encroachPt) * 2 * 0.8 let maxSplitLen = nonEncroachDiam if (maxSplitLen > midPtLen) { maxSplitLen = midPtLen } splitSeg.setMinimumLength(maxSplitLen) splitSeg.splitAt(projPt) return splitSeg.getSplitPoint() } interfaces_ () { return [ConstraintSplitPointFinder] } getClass () { return NonEncroachingSplitPointFinder } static projectedSplitPoint (seg, encroachPt) { const lineSeg = seg.getLineSegment() const projPt = lineSeg.project(encroachPt) return projPt } }