// An object must implement a Renderable interface in order to
// be ray traced. Using this interface it is straight forward
// to add new objects
import java.awt.*;
import java.util.*;

abstract interface Renderable {
    public abstract boolean intersect(Ray r);
    public abstract Color Shade(Ray r, Vector lights, Vector objects, Color bgnd);
    public String toString();
}