TuttleOFX
1
|
00001 #ifndef _TUTTLE_PLUGIN_MOVE2D_PLUGIN_HPP_ 00002 #define _TUTTLE_PLUGIN_MOVE2D_PLUGIN_HPP_ 00003 00004 #include "Move2DDefinitions.hpp" 00005 00006 #include <tuttle/plugin/ImageEffectGilPlugin.hpp> 00007 00008 namespace tuttle { 00009 namespace plugin { 00010 namespace move2D { 00011 00012 template<typename Scalar> 00013 struct Move2DProcessParams 00014 { 00015 boost::gil::point2<Scalar> _translation; 00016 }; 00017 00018 /** 00019 * @brief Move2D plugin 00020 */ 00021 class Move2DPlugin : public ImageEffectGilPlugin 00022 { 00023 public: 00024 typedef float Scalar; 00025 public: 00026 Move2DPlugin( OfxImageEffectHandle handle ); 00027 00028 public: 00029 Move2DProcessParams<Scalar> getProcessParams( const OfxPointD& renderScale = OFX::kNoRenderScale ) const; 00030 00031 void changedParam( const OFX::InstanceChangedArgs &args, const std::string ¶mName ); 00032 00033 bool getRegionOfDefinition( const OFX::RegionOfDefinitionArguments& args, OfxRectD& rod ); 00034 void getRegionsOfInterest( const OFX::RegionsOfInterestArguments& args, OFX::RegionOfInterestSetter& rois ); 00035 bool isIdentity( const OFX::RenderArguments& args, OFX::Clip*& identityClip, double& identityTime ); 00036 00037 void render( const OFX::RenderArguments &args ); 00038 00039 public: 00040 // OFX::Clip* _clipSrcMatte; ///< Matte source image clip 00041 OFX::Double2DParam* _paramTranslation; 00042 }; 00043 00044 } 00045 } 00046 } 00047 00048 #endif