// By Haw-ren Fang, TA of cmsc420 section 0401, Spring 2002 import java.lang.*; import java.io.*; public interface Quadtree { // set the root node of the quadtree public void setRoot(Quadnode root); // returns the root of the quadtree public Quadnode getRoot(); // returns true if the quadtree has a node contains the patch // with name patchName. // This is mainly for grading purpose. public boolean containsNodeWithPatchName(String patchName); // It should have some more methods, such as: // (1) Given a point, find the smallest patch containing it, if any. // (2) Given a point, find all the patches adjacent to it. // However, they are not required in this project. // constructs the 2 quadtrees representing floor and wall respectively. // returns them as a LightInteractionObject. // Feps and Aeps are the arguments for the pseudo code refine(). // Conceptually, you may treat it as a static method. public LightInteractionObject lightInteraction(Patch floor, Patch wall, double Feps, double Aeps) throws NonPositiveEpsException; }