MaximalEdgeRing.js 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. import MinimalEdgeRing from './MinimalEdgeRing'
  2. import EdgeRing from '../../geomgraph/EdgeRing'
  3. import ArrayList from '../../../../../java/util/ArrayList'
  4. export default class MaximalEdgeRing extends EdgeRing {
  5. constructor() {
  6. super()
  7. MaximalEdgeRing.constructor_.apply(this, arguments)
  8. }
  9. static constructor_() {
  10. const start = arguments[0], geometryFactory = arguments[1]
  11. EdgeRing.constructor_.call(this, start, geometryFactory)
  12. }
  13. buildMinimalRings() {
  14. const minEdgeRings = new ArrayList()
  15. let de = this._startDe
  16. do {
  17. if (de.getMinEdgeRing() === null) {
  18. const minEr = new MinimalEdgeRing(de, this._geometryFactory)
  19. minEdgeRings.add(minEr)
  20. }
  21. de = de.getNext()
  22. } while (de !== this._startDe)
  23. return minEdgeRings
  24. }
  25. setEdgeRing(de, er) {
  26. de.setEdgeRing(er)
  27. }
  28. linkDirectedEdgesForMinimalEdgeRings() {
  29. let de = this._startDe
  30. do {
  31. const node = de.getNode()
  32. node.getEdges().linkMinimalDirectedEdges(this)
  33. de = de.getNext()
  34. } while (de !== this._startDe)
  35. }
  36. getNext(de) {
  37. return de.getNext()
  38. }
  39. }