TuttleOFX
1
|
00001 #ifndef _TUTTLE_PLUGIN_CONVOLUTION_PROCESS_HPP_ 00002 #define _TUTTLE_PLUGIN_CONVOLUTION_PROCESS_HPP_ 00003 00004 #include <tuttle/plugin/ImageGilFilterProcessor.hpp> 00005 #include <boost/scoped_ptr.hpp> 00006 00007 namespace tuttle { 00008 namespace plugin { 00009 namespace convolution { 00010 00011 /** 00012 * @brief Convolution process 00013 * 00014 */ 00015 template<class View> 00016 class ConvolutionProcess : public ImageGilFilterProcessor<View> 00017 { 00018 public: 00019 typedef float Scalar; 00020 typedef typename View::value_type Pixel; 00021 typedef typename View::point_t Point; 00022 typedef typename View::coord_t Coord; 00023 typedef typename terry::image_from_view<View>::type Image; 00024 00025 protected: 00026 ConvolutionPlugin& _plugin; ///< Rendering plugin 00027 ConvolutionProcessParams _params; 00028 00029 public: 00030 ConvolutionProcess( ConvolutionPlugin& instance ); 00031 00032 void setup( const OFX::RenderArguments& args ); 00033 void multiThreadProcessImages( const OfxRectI& procWindowRoW ); 00034 }; 00035 00036 } 00037 } 00038 } 00039 00040 #include "ConvolutionProcess.tcc" 00041 00042 #endif