--- a/src/raytracer.h Fri Nov 16 10:25:12 2007 +0100
+++ b/src/raytracer.h Sat Nov 17 17:20:36 2007 +0100
@@ -24,6 +24,16 @@
AABB extends() { return AABB(); };
};
+class Raytracer;
+struct RenderrowData {
+ Raytracer *rt;
+ int w;
+ float vx, vy, dx, dy;
+ Vector3 eye;
+ float *iter;
+};
+static void *renderrow(void *data);
+
class Raytracer
{
ShapeList shapes;
@@ -35,11 +45,11 @@
Vector3 SphereDistribute(int i, int n, float extent, Vector3 &normal);
inline Shape *nearest_intersection(const Shape *origin_shape, const Ray &ray,
float &nearest_distance);
- Colour raytrace(Ray &ray, int depth, Shape *origin_shape);
public:
Raytracer(): shapes(), lights(), bg_colour(0.0, 0.0, 0.0), ao_samples(0) {};
~Raytracer() {};
float *render(int w, int h);
+ Colour raytrace(Ray &ray, int depth, Shape *origin_shape);
void addshape(Shape *shape);
void addlight(Light *light);