package dan.dit.whatsthat.util.mosaic.reconstruction.pattern;
import android.graphics.Bitmap;
import android.graphics.Paint;
import android.graphics.PorterDuff;
import android.graphics.PorterDuffXfermode;
import dan.dit.whatsthat.util.image.ColorMetric;
import dan.dit.whatsthat.util.mosaic.matching.TileMatcher;
import dan.dit.whatsthat.util.mosaic.reconstruction.RectReconstructor;
/**
* Created by daniel on 05.12.15.
*/
public abstract class PatternReconstructor extends RectReconstructor {
public static final Paint CLEAR_PAINT = new Paint();
static {
CLEAR_PAINT.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.CLEAR));
}
public PatternReconstructor(Bitmap source, int wantedRows, int
wantedColumns, int groundingColor) {
super(source, wantedRows, wantedColumns);
mResultCanvas.drawPaint(CLEAR_PAINT);
mResultCanvas.drawColor(groundingColor);
}
// this is invoked by parent constructor, not best practice as subclass constructor not yet
// initialized (missing members ...!)
protected abstract int evaluateRectValue(Bitmap source, int startX, int endX, int startY, int
endY);
public abstract <S> PatternSource<S> makeSource();
public abstract <S> TileMatcher<S> makeMatcher(boolean useAlpha, ColorMetric metric);
}