import SGGUI.*;
import SGCamera.*;
import Raytracing.*;
 
SGCamera cam;
Raytracer tracer;
 
KDTree accel;
 
 
SGGUI controller;
VerticalLayout settings;
 
SGSlider depth;
SGCheckBox showOctree;
SGButton update;
SGLabel numHit;
PFont fnt;
void setup(){
 
size(550,550,P3D);
 
fnt = loadFont("writing.vlw");
textFont(fnt);
textMode(SCREEN);
controller = new SGGUI(this,fnt);
controller.GUI_HIGHLIGHT = color(200,220,200);
settings = new VerticalLayout(controller,10,10,150);
settings.title = "Settings";
depth = new SGSlider( "Depth",5,1,1,24);
showOctree = new SGCheckBox("ShowOctree",1);
update = new SGButton("Update tree");
update.addGUIListener(this);
 
settings.add(showOctree);
settings.add(depth);
settings.add(update);
controller.add(settings);
 
 
cam = new SGCamera(this,100,-50,100,0,0,0,SGCamera.ORBIT,SGCamera.ZOOM);
 
tracer = new Raytracer(this);
tracer.openFile("balancebotTextured.mra",cam);
 
accel = (KDTree)tracer.accelerator;
 
}
 
public void draw(){
 
lights();
background(255);
cam.feed();
accel.showTree = showOctree.getVal();
tracer.draw();
 
 
}
 
void GUIEventPerformed(GUIEvent e){
 
accel.maxDepth = (int)depth.getVal();
accel.validate();
 
}