segs.js 740 B

123456789101112131415161718192021222324252627
  1. import { isRectsSimilar } from './geom'
  2. import { getBoundingRects } from './dom-geom'
  3. export function doElsMatchSegs(els, segs, segToRectFunc) {
  4. var elRect, found, i, j, k, len, len1, seg, segRect, unmatchedRects
  5. unmatchedRects = getBoundingRects(els)
  6. if (unmatchedRects.length !== segs.length) {
  7. return false
  8. }
  9. for (j = 0, len = segs.length; j < len; j++) {
  10. seg = segs[j]
  11. segRect = segToRectFunc(seg)
  12. found = false
  13. for (i = k = 0, len1 = unmatchedRects.length; k < len1; i = ++k) {
  14. elRect = unmatchedRects[i]
  15. if (isRectsSimilar(elRect, segRect)) {
  16. unmatchedRects.splice(i, 1)
  17. found = true
  18. break
  19. }
  20. }
  21. if (!found) {
  22. return false
  23. }
  24. }
  25. return true
  26. }