00001 #ifndef TRACINGSTRATEGY_H_
00002 #define TRACINGSTRATEGY_H_
00003
00004 #include "../RGBColor.h"
00005 #include "../Scene.h"
00006 #include "../Intersection.h"
00007 #include "../textures/Image.h"
00008 #include "../cameras/Camera.h"
00009 #include <vector>
00010
00011 namespace rcrt
00012 {
00013
00019 class TracingStrategy
00020 {
00021 protected:
00022 Scene* scene;
00023
00024 public:
00025 TracingStrategy(Scene* s);
00026 virtual ~TracingStrategy();
00027
00035 virtual RGBColor trace(Ray& r) const =0;
00036
00044 virtual Image trace(Camera* cam) const;
00045
00053 virtual Image trace(Camera* cam, const int& x0, const int& y0,
00054 const int& x1, const int& y1) const;
00055
00059 virtual Scene* getScene() const;
00060
00061 };
00062
00063 }
00064
00065 #endif