TuttleOFX
1
|
00001 #ifndef _TUTTLE_PLUGIN_PINNING_PROCESS_HPP_ 00002 #define _TUTTLE_PLUGIN_PINNING_PROCESS_HPP_ 00003 00004 #include <tuttle/plugin/ImageGilFilterProcessor.hpp> 00005 #include <terry/math/Rect.hpp> 00006 #include <boost/scoped_ptr.hpp> 00007 00008 namespace tuttle { 00009 namespace plugin { 00010 namespace pinning { 00011 00012 /** 00013 * @brief Pinning process 00014 * 00015 */ 00016 template<class View> 00017 class PinningProcess : public ImageGilFilterProcessor<View> 00018 { 00019 public: 00020 typedef PinningPlugin::Scalar Scalar; 00021 protected : 00022 PinningPlugin& _plugin; ///< Rendering plugin 00023 00024 PinningProcessParams<Scalar> _params; 00025 00026 public: 00027 PinningProcess( PinningPlugin& effect ); 00028 00029 void setup( const OFX::RenderArguments& args ); 00030 00031 void multiThreadProcessImages( const OfxRectI& procWindowRoW ); 00032 00033 private: 00034 template<class Sampler> 00035 void resample( View& srcView, View& dstView, const terry::Rect<std::ssize_t>& procWindow, const Sampler& sampler = Sampler() ); 00036 }; 00037 00038 } 00039 } 00040 } 00041 00042 #include "PinningProcess.tcc" 00043 00044 #endif