diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/service/ImportedRedactionService.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/service/ImportedRedactionService.java index 098626a6..a2edb7dd 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/service/ImportedRedactionService.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/service/ImportedRedactionService.java @@ -76,7 +76,8 @@ public class ImportedRedactionService { var importedRedactionsOnPage = importedRedactions.getImportedRedactions().get(rectangle.getPage()); for (ImportedRedaction importedRedaction : importedRedactionsOnPage) { for (Rectangle importedRedactionPosition : importedRedaction.getPositions()) { - if (rectOverlap(normalizedRectangle, normalize(importedRedactionPosition))) { + var normalizedImportedRedactionPos = normalize(importedRedactionPosition); + if (rectOverlap(normalizedRectangle, normalizedImportedRedactionPos)) { if (redactionLogEntry.getImportedRedactionIntersections() == null) { redactionLogEntry.setImportedRedactionIntersections(new HashSet<>()); } @@ -109,13 +110,18 @@ public class ImportedRedactionService { } + public boolean contains(Rectangle rect, Rectangle other) { + return rect.getPage() == other.getPage() && rect.getTopLeft().getX() <= other.getTopLeft().getX() && rect.getTopLeft().getX() + rect.getWidth() >= other.getTopLeft().getX() + other.getWidth() && rect.getTopLeft().getY() <= other.getTopLeft().getY() && rect.getTopLeft().getY() + rect.getHeight() >= other.getTopLeft().getY() + other.getHeight(); + } + + private Rectangle normalize(Rectangle rectangle) { Rectangle r = new Rectangle(); Point p = new Point(); if (rectangle.getWidth() < 0) { - p.setX(rectangle.getTopLeft().getX() - rectangle.getWidth()); + p.setX(rectangle.getTopLeft().getX() + rectangle.getWidth()); r.setWidth(Math.abs(rectangle.getWidth())); } else { p.setX(rectangle.getTopLeft().getX()); @@ -127,6 +133,7 @@ public class ImportedRedactionService { r.setHeight(Math.abs(rectangle.getHeight())); } else { p.setY(rectangle.getTopLeft().getY()); + r.setHeight(rectangle.getHeight()); } r.setTopLeft(p);