TuttleOFX  1
Move2DPlugin.hpp
Go to the documentation of this file.
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 &paramName );
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