TuttleOFX  1
PinningProcess.hpp
Go to the documentation of this file.
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