00001 #ifndef __AdaptiveRasterizer_H__ 00002 #define __AdaptiveRasterizer_H__ 00003 00004 #include "Rasterizer.h" 00005 #include "Rasterizable.h" 00006 #include "Image.h" 00007 00008 namespace EdgeDetection 00009 { 00010 // The AdaptiveRasterizer uses recursive subdivision to rasterize given objects. 00011 class AdaptiveRasterizer : public Rasterizer 00012 { 00013 private: double threshold; 00014 00015 public: AdaptiveRasterizer(double threshold) 00016 { 00017 if (threshold <= 0) throw "The parameter 'threshold' was out of range."; 00018 00019 this->threshold= threshold; 00020 } 00021 public: ~AdaptiveRasterizer() { } 00022 00023 public: Image* Rasterize(Rasterizable* object, int width, int height); 00024 00025 private: double GetValue(Rasterizable* object, Rectangle rectangle); 00026 }; 00027 }; 00028 00029 #endif