
prng.image.BasePainter Maven / Gradle / Ivy
The newest version!
package prng.image;
import java.awt.Graphics2D;
import java.awt.Rectangle;
import java.awt.geom.AffineTransform;
import java.awt.image.AffineTransformOp;
import java.awt.image.BufferedImage;
import java.util.Random;
import java.util.function.DoubleConsumer;
public abstract class BasePainter implements Painter {
BufferedImage myImage;
Random rand;
BasePainter() {
// do nothing
}
BasePainter(Random rand) {
this.rand = rand;
}
@Override
public void create(DoubleConsumer progress) {
create();
progress.accept(1d);
}
public void create() {
throw new UnsupportedOperationException("Not implemented");
}
public BufferedImage getImage() {
return myImage;
}
@Override
public void paint(Graphics2D graphics) {
Rectangle bounds = graphics.getClipBounds();
AffineTransform trans = AffineTransform.getScaleInstance(
bounds.getWidth() / 512, bounds.getHeight() / 512);
AffineTransformOp op = new AffineTransformOp(trans,
AffineTransformOp.TYPE_BICUBIC);
graphics.drawImage(myImage, op, (int) bounds.getX(),
(int) bounds.getY());
}
@Override
public void setRandom(Random newRand) {
rand = newRand;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy