TuttleOFX  1
TuttleOFX/libraries/tuttle/src/tuttle/plugin/context/SamplerPlugin.hpp
Go to the documentation of this file.
00001 #ifndef _TUTTLE_PLUGIN_CONTEXT_SAMPLERPLUGIN_HPP_
00002 #define _TUTTLE_PLUGIN_CONTEXT_SAMPLERPLUGIN_HPP_
00003 
00004 #include "SamplerDefinition.hpp"
00005 #include <tuttle/plugin/ImageEffectGilPlugin.hpp>
00006 #include <tuttle/plugin/exceptions.hpp>
00007 
00008 namespace tuttle {
00009 namespace plugin {
00010 
00011 
00012 struct SamplerProcessParams
00013 {
00014         terry::sampler::EParamFilter               _filter;
00015         double                                     _filterSize;
00016         double                                     _filterSigma;
00017         double                                     _filterSharpen;
00018         double                                     _paramB;
00019         double                                     _paramC;
00020 
00021         terry::sampler::EParamFilterOutOfImage     _outOfImageProcess;
00022 };
00023 
00024 
00025 class SamplerPlugin : public ImageEffectGilPlugin
00026 {
00027 public:
00028         SamplerPlugin( OfxImageEffectHandle handle );
00029         virtual ~SamplerPlugin() = 0;
00030 
00031 public:
00032         virtual void changedParam( const OFX::InstanceChangedArgs& args, const std::string& paramName );
00033 
00034         virtual void fillProcessParams( SamplerProcessParams& samplerprocessParam ) const;
00035 
00036         ::terry::sampler::EParamFilter getInterpolation() { return (terry::sampler::EParamFilter) _paramFilter -> getValue(); }
00037 public:
00038         OFX::ChoiceParam*       _paramFilter;
00039         OFX::IntParam*          _paramFilterSize;
00040         OFX::DoubleParam*       _paramFilterSigma;
00041         OFX::DoubleParam*       _paramFilterSharpen;
00042         OFX::DoubleParam*       _paramB;
00043         OFX::DoubleParam*       _paramC;
00044         OFX::ChoiceParam*       _paramOutOfImage;
00045 
00046 };
00047 
00048 }
00049 }
00050 
00051 #endif