TuttleOFX
1
|
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 ¶mName ); 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