public Trans findTrans(Set<Trans> s, UniverseCell c) { double a = c.getAvg(); Trans last = null; for (Trans t : s) { if (a < t.getLimit()) { return t; } last = t; } return last; }
public void processCell(int row, int col) { Movement[] movements = getMovements(); UniverseCell acc = this.sourceUniverse.getCellFactory().factor(); UniverseCell thisCell = this.sourceUniverse.get(row, col); UniverseCell targetCell = this.targetUniverse.get(row, col); Trans trans = findTrans(stepTrans, thisCell); for (Movement movement : movements) { int otherRow = row + movement.getRowMovement(); int otherCol = col + movement.getColumnmMovement(); if (this.sourceUniverse.isValid(otherRow, otherCol)) { UniverseCell otherCell = this.sourceUniverse.get(otherRow, otherCol); UniverseCell tp = trans.calculate(otherCell); ((ContinuousCell) acc).add(tp); } } Trans trans2 = findTrans(finalTrans, acc); acc = trans2.calculate(acc); ((ContinuousCell) acc).clamp(0, 1); targetCell.copy(acc); }