TuttleOFX  1
ThinningPlugin.hpp
Go to the documentation of this file.
00001 #ifndef _TUTTLE_PLUGIN_THINNING_PLUGIN_HPP_
00002 #define _TUTTLE_PLUGIN_THINNING_PLUGIN_HPP_
00003 
00004 #include "ThinningDefinitions.hpp"
00005 
00006 #include <tuttle/plugin/ImageEffectGilPlugin.hpp>
00007 
00008 namespace tuttle {
00009 namespace plugin {
00010 namespace thinning {
00011 
00012 template<typename Scalar>
00013 struct ThinningProcessParams
00014 {
00015         EParamBorder _border;
00016 };
00017 
00018 /**
00019  * @brief Thinning plugin
00020  */
00021 class ThinningPlugin : public ImageEffectGilPlugin
00022 {
00023 public:
00024         typedef float Scalar;
00025 public:
00026         ThinningPlugin( OfxImageEffectHandle handle );
00027 
00028 public:
00029         ThinningProcessParams<Scalar> getProcessParams( const OfxPointD& renderScale = OFX::kNoRenderScale ) const;
00030 
00031         bool getRegionOfDefinition( const OFX::RegionOfDefinitionArguments& args, OfxRectD& rod );
00032         void getRegionsOfInterest( const OFX::RegionsOfInterestArguments& args, OFX::RegionOfInterestSetter& rois );
00033 
00034         void render( const OFX::RenderArguments &args );
00035         
00036 public:
00037         OFX::ChoiceParam* _paramBorder;
00038 };
00039 
00040 }
00041 }
00042 }
00043 
00044 #endif