All Downloads are FREE. Search and download functionalities are using the official Maven repository.

prng.image.BasePainter Maven / Gradle / Ivy

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");
    }


    @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