boolean isExactlyUnder(ZLTextElementRegion other) { if (other == null) { return true; } if (!isUnder(other)) { return false; } final List<ZLTextElementArea> areas0 = textAreas(); final List<ZLTextElementArea> areas1 = other.textAreas(); for (ZLTextElementArea i : areas0) { for (ZLTextElementArea j : areas1) { if (i.XStart <= j.XEnd && j.XStart <= i.XEnd) { return true; } } } return false; }
boolean isOver(ZLTextElementRegion other) { return other == null || other.isUnder(this); }
boolean isAtLeftOf(ZLTextElementRegion other) { return other == null || other.isAtRightOf(this); }