package eu.jonahbauer.raytracing.render.camera;

import eu.jonahbauer.raytracing.math.Ray;
import org.jetbrains.annotations.NotNull;

import java.util.random.RandomGenerator;

public interface Camera {
    /**
     * {@return the width of this camera in pixels}
     */
    int getWidth();

    /**
     * {@return the height of this camera in pixels}
     */
    int getHeight();

    /**
     * Casts a ray through the given pixel.
     * @return a new ray
     */
    @NotNull Ray cast(int x, int y, @NotNull RandomGenerator random);
}
