00001 #ifndef __Rasterizable_H__ 00002 #define __Rasterizable_H__ 00003 00004 #include "Rectangle.h" 00005 00006 namespace EdgeDetection 00007 { 00008 // This is the interface objects need to implement in order to be rasterized. 00009 class Rasterizable 00010 { 00011 // Gets the region of the object that should be rasterized. 00012 public: virtual Rectangle GetRegion() = 0; 00013 00014 // Returns a value indicating whether the 'CalculateIntegral' method can be 00015 // used to calculate the exact value of the integral of the image function 00016 // over the given rectangle. 00017 public: virtual bool CanCalculateIntegral(Rectangle rectangle) = 0; 00018 // Calculates the exact value of the integral of the image function over the 00019 // given rectangle. 00020 public: virtual double CalculateIntegral(Rectangle rectangle) = 0; 00021 // Estimates the value of the integral of the image function over the given 00022 // rectangle. 00023 public: virtual double EstimateIntegral(Rectangle rectangle) = 0; 00024 }; 00025 }; 00026 00027 #endif