diff -r 4e0955fca797 -r f22952603f29 src/raytracer.h --- a/src/raytracer.h Mon Nov 26 23:12:40 2007 +0100 +++ b/src/raytracer.h Thu Nov 29 18:30:16 2007 +0100 @@ -10,6 +10,7 @@ #include +#include "common.h" #include "kdtree.h" #include "scene.h" @@ -38,14 +39,15 @@ Vector3 SphereDistribute(int i, int n, float extent, Vector3 &normal); public: - Raytracer(): camera(NULL), lights(), bg_colour(0.0, 0.0, 0.0), - ao_samples(0), num_threads(4) { top = new KdTree(); }; - ~Raytracer() { delete top; }; - float *render(int w, int h); + Raytracer(): top(NULL), camera(NULL), lights(), bg_colour(0.0, 0.0, 0.0), + ao_samples(0), num_threads(4) {}; + void render(int w, int h, float *buffer); Colour raytrace(Ray &ray, int depth, Shape *origin_shape); void addshape(Shape *shape) { top->addShape(shape); }; void addlight(Light *light); void setCamera(Camera *cam) { camera = cam; }; + void setTop(Container *atop) { top = atop; }; + Container *getTop() { return top; }; void ambientocclusion(int samples, float distance, float angle); void setThreads(int num) { num_threads = num; };