20 package net.sf.gridarta.model.floodfill;
22 import java.awt.Point;
23 import java.util.List;
32 import org.jetbrains.annotations.NotNull;
64 private static final byte BORDER = 1;
77 public void floodFill(@NotNull
final MapModel<G, A, R> mapModel, @NotNull
final Point start, @NotNull
final List<? extends
BaseObject<G, A, R, ?>> archList, @NotNull
final InsertionModeSet<G, A, R> insertionModeSet) {
82 mapModel.beginTransaction(
"Flood Fill");
86 final Point p =
new Point();
87 for (p.x = 0; p.x < mapSize.
getWidth(); p.x++) {
88 for (p.y = 0; p.y < mapSize.
getHeight(); p.y++) {
91 if (mapArchObject.
isPointValid(p) && mapModel.getMapSquare(p).isEmpty()) {
94 mapModel.insertBaseObject(gameObject, p,
false,
false, insertionModeSet.getTopmostInsertionMode());
101 }
catch (
final ArrayIndexOutOfBoundsException ignored) {
110 }
catch (
final ArrayIndexOutOfBoundsException ignored) {
119 }
catch (
final ArrayIndexOutOfBoundsException ignored) {
128 }
catch (
final ArrayIndexOutOfBoundsException ignored) {
139 mapModel.endTransaction();