package optics.view;

import basics.math.algebra.Matrix;
import basics.math.algebra.Ray;
import basics.math.algebra.Vector;

public interface Camera {
    /**
     * Generate a view ray for a 2D point on the image plane of the camera
     *
     * @param u X-Coordiante of image plane
     * @param v Y-Coordiante of image plane
     * @return
     */
    Ray generateViewRay(double u, double v);

    void transform(Vector translation, Matrix rotation);
}
