TuttleOFX  1
ColorTransformPlugin.hpp
Go to the documentation of this file.
00001 #ifndef _TUTTLE_PLUGIN_COLORTRANSFORM_PLUGIN_HPP_
00002 #define _TUTTLE_PLUGIN_COLORTRANSFORM_PLUGIN_HPP_
00003 
00004 #include "ColorTransformDefinitions.hpp"
00005 #include "ColorTransformAlgorithm.hpp"
00006 
00007 #include <tuttle/plugin/ImageEffectGilPlugin.hpp>
00008 
00009 #include <terry/math/Matrix.hpp>
00010 
00011 namespace tuttle {
00012 namespace plugin {
00013 namespace colorTransform {
00014 
00015 /**
00016  * @brief ColorTransform plugin
00017  */
00018 class ColorTransformPlugin : public ImageEffectGilPlugin
00019 {
00020 public:
00021         typedef float Scalar;
00022 public:
00023     ColorTransformPlugin( OfxImageEffectHandle handle );
00024 
00025 public:
00026         ColorTransformParams getProcessParams( const OfxPointD& renderScale = OFX::kNoRenderScale ) const;
00027 
00028     void changedParam( const OFX::InstanceChangedArgs &args, const std::string &paramName );
00029 
00030 //      bool getRegionOfDefinition( const OFX::RegionOfDefinitionArguments& args, OfxRectD& rod );
00031 //      void getRegionsOfInterest( const OFX::RegionsOfInterestArguments& args, OFX::RegionOfInterestSetter& rois );
00032         bool isIdentity( const OFX::RenderArguments& args, OFX::Clip*& identityClip, double& identityTime );
00033 
00034     void render( const OFX::RenderArguments &args );
00035         
00036 public:
00037         OFX::DoubleParam* _paramHueShift;
00038         OFX::DoubleParam* _paramSaturation;
00039         
00040         OFX::DoubleParam* _paramContrastRGB;
00041         OFX::RGBAParam* _paramContrast;
00042         OFX::DoubleParam* _paramBrightnessRGB;
00043         OFX::RGBAParam* _paramBrightness;
00044         OFX::DoubleParam* _paramOffsetRGB;
00045         OFX::RGBAParam* _paramOffset;
00046         OFX::DoubleParam* _paramPivotRGB;
00047         OFX::RGBAParam* _paramPivot;
00048 };
00049 
00050 }
00051 }
00052 }
00053 
00054 #endif