00001 #ifndef THREADEDMETATRACER_H_ 00002 #define THREADEDMETATRACER_H_ 00003 00004 #include "TracingStrategy.h" 00005 00006 namespace rcrt 00007 { 00008 00015 class ThreadedMetaTracer : public rcrt::TracingStrategy 00016 { 00017 private: 00018 TracingStrategy* tracer; 00019 00020 void traceJob(Image& img, Camera* cam, const int& x0, const int& y0, 00021 const int& x1, const int& y1) const; 00022 00023 public: 00024 using TracingStrategy::trace; 00025 ThreadedMetaTracer(TracingStrategy* trac); 00026 virtual ~ThreadedMetaTracer(); 00027 00028 virtual RGBColor trace(Ray& r) const; 00029 00033 virtual Image trace(Camera* cam, const int& x0, const int& y0, 00034 const int& x1, const int& y1) const; 00035 }; 00036 00037 } 00038 00039 #endif /*THREADEDMETATRACER_H_*/