@Override public boolean contains(GridPoint referencePoint, GridPoint targetPoint) { return this.relativeLocations.contains( new GridPoint( targetPoint.getColumn() - referencePoint.getColumn(), targetPoint.getRow() - referencePoint.getRow())); }
@Override public Set<GridPoint> getAllAffectedLocations(GridPoint referencePoint) { Set<GridPoint> results = new HashSet<GridPoint>(); for (GridPoint relativeLocation : this.relativeLocations) { int x = referencePoint.getColumn() + relativeLocation.getColumn(); int y = referencePoint.getRow() + relativeLocation.getRow(); if (this.grid.isInBounds(x, y)) { results.add(new GridPoint(x, y)); } } return results; }