EdgeSetNoder.js 942 B

12345678910111213141516171819202122232425262728
  1. import SimpleMCSweepLineIntersector from '../../geomgraph/index/SimpleMCSweepLineIntersector'
  2. import SegmentIntersector from '../../geomgraph/index/SegmentIntersector'
  3. import ArrayList from '../../../../../java/util/ArrayList'
  4. export default class EdgeSetNoder {
  5. constructor() {
  6. EdgeSetNoder.constructor_.apply(this, arguments)
  7. }
  8. static constructor_() {
  9. this._li = null
  10. this._inputEdges = new ArrayList()
  11. const li = arguments[0]
  12. this._li = li
  13. }
  14. addEdges(edges) {
  15. this._inputEdges.addAll(edges)
  16. }
  17. getNodedEdges() {
  18. const esi = new SimpleMCSweepLineIntersector()
  19. const si = new SegmentIntersector(this._li, true, false)
  20. esi.computeIntersections(this._inputEdges, si, true)
  21. const splitEdges = new ArrayList()
  22. for (let i = this._inputEdges.iterator(); i.hasNext(); ) {
  23. const e = i.next()
  24. e.getEdgeIntersectionList().addSplitEdges(splitEdges)
  25. }
  26. return splitEdges
  27. }
  28. }