TuttleOFX
1
|
00001 #ifndef _TUTTLE_PLUGIN_NORMALIZE_PLUGIN_HPP_ 00002 #define _TUTTLE_PLUGIN_NORMALIZE_PLUGIN_HPP_ 00003 00004 #include "NormalizeDefinitions.hpp" 00005 00006 #include <tuttle/plugin/ImageEffectGilPlugin.hpp> 00007 00008 namespace tuttle { 00009 namespace plugin { 00010 namespace normalize { 00011 00012 template<typename Scalar> 00013 struct NormalizeProcessParams 00014 { 00015 EParamMode _mode; 00016 EParamAnalyseMode _analyseMode; 00017 00018 boost::gil::rgba32f_pixel_t _srcMinColor; 00019 boost::gil::rgba32f_pixel_t _srcMaxColor; 00020 boost::gil::rgba32f_pixel_t _dstMinColor; 00021 boost::gil::rgba32f_pixel_t _dstMaxColor; 00022 bool _processR; 00023 bool _processG; 00024 bool _processB; 00025 bool _processA; 00026 00027 }; 00028 00029 /** 00030 * @brief Normalize plugin 00031 */ 00032 class NormalizePlugin : public ImageEffectGilPlugin 00033 { 00034 public: 00035 typedef float Scalar; 00036 public: 00037 NormalizePlugin( OfxImageEffectHandle handle ); 00038 00039 public: 00040 NormalizeProcessParams<Scalar> getProcessParams( const OfxPointD& renderScale = OFX::kNoRenderScale ) const; 00041 00042 void changedParam( const OFX::InstanceChangedArgs &args, const std::string ¶mName ); 00043 00044 void getRegionsOfInterest( const OFX::RegionsOfInterestArguments& args, OFX::RegionOfInterestSetter& rois ); 00045 00046 bool isIdentity( const OFX::RenderArguments& args, OFX::Clip*& identityClip, double& identityTime ); 00047 00048 void render( const OFX::RenderArguments &args ); 00049 00050 public: 00051 OFX::ChoiceParam* _mode; 00052 OFX::ChoiceParam* _analyseMode; 00053 OFX::PushButtonParam* _analyseNow; 00054 00055 OFX::GroupParam* _srcGroup; 00056 OFX::RGBAParam* _srcMinColor; 00057 OFX::RGBAParam* _srcMaxColor; 00058 OFX::GroupParam* _dstGroup; 00059 OFX::RGBAParam* _dstMinColor; 00060 OFX::RGBAParam* _dstMaxColor; 00061 OFX::GroupParam* _processGroup; 00062 OFX::BooleanParam* _processR; 00063 OFX::BooleanParam* _processG; 00064 OFX::BooleanParam* _processB; 00065 OFX::BooleanParam* _processA; 00066 }; 00067 00068 } 00069 } 00070 } 00071 00072 #endif