SimpleSegmentSetMutualIntersector.js 1.0 KB

12345678910111213141516171819202122232425262728293031323334
  1. import SegmentSetMutualIntersector from './SegmentSetMutualIntersector'
  2. export default class SimpleSegmentSetMutualIntersector {
  3. constructor() {
  4. SimpleSegmentSetMutualIntersector.constructor_.apply(this, arguments)
  5. }
  6. static constructor_() {
  7. this._baseSegStrings = null
  8. const segStrings = arguments[0]
  9. this._baseSegStrings = segStrings
  10. }
  11. intersect(ss0, ss1, segInt) {
  12. const pts0 = ss0.getCoordinates()
  13. const pts1 = ss1.getCoordinates()
  14. for (let i0 = 0; i0 < pts0.length - 1; i0++)
  15. for (let i1 = 0; i1 < pts1.length - 1; i1++) {
  16. segInt.processIntersections(ss0, i0, ss1, i1)
  17. if (segInt.isDone()) return null
  18. }
  19. }
  20. process(segStrings, segInt) {
  21. for (let i = this._baseSegStrings.iterator(); i.hasNext(); ) {
  22. const baseSS = i.next()
  23. for (let j = segStrings.iterator(); j.hasNext(); ) {
  24. const ss = j.next()
  25. this.intersect(baseSS, ss, segInt)
  26. if (segInt.isDone()) return null
  27. }
  28. }
  29. }
  30. get interfaces_() {
  31. return [SegmentSetMutualIntersector]
  32. }
  33. }