package amidst.map;
import java.awt.geom.AffineTransform;
import amidst.logging.Log;
public abstract class ImageLayer extends Layer {
protected float alpha = 1.0f;
protected double scale;
protected int size;
private AffineTransform cachedScalingMatrix = new AffineTransform();
protected int layerId;
private int[] defaultData;
public ImageLayer(int size) {
this.size = size;
defaultData = new int[size*size];
scale = Fragment.SIZE/(double)size;
for (int i = 0; i < defaultData.length; i++)
defaultData[i] = 0x00000000;
}
public int[] getDefaultData() {
return defaultData;
}
public void load(Fragment frag) {
drawToCache(frag);
}
public AffineTransform getMatrix(AffineTransform inMat) {
cachedScalingMatrix.setTransform(inMat);
return cachedScalingMatrix;
}
public AffineTransform getScaledMatrix(AffineTransform inMat) {
cachedScalingMatrix.setTransform(inMat);
cachedScalingMatrix.scale(scale, scale);
return cachedScalingMatrix;
}
public float getAlpha() {
return alpha;
}
public int getLayerId() {
return layerId;
}
public void setLayerId(int id) {
layerId = id;
}
public abstract void drawToCache(Fragment fragment);
}