TuttleOFX  1
LutProcess.hpp
Go to the documentation of this file.
00001 #ifndef _TUTTLE_PLUGIN_LUTPROCESS_HPP_
00002 #define _TUTTLE_PLUGIN_LUTPROCESS_HPP_
00003 
00004 #include "LutPlugin.hpp"
00005 #include "lutEngine/LutReader.hpp"
00006 #include "lutEngine/Lut.hpp"
00007 
00008 #include <tuttle/plugin/global.hpp>
00009 #include <tuttle/plugin/ImageGilFilterProcessor.hpp>
00010 #include <tuttle/plugin/exceptions.hpp>
00011 
00012 #include <ofxsImageEffect.h>
00013 #include <ofxsMultiThread.h>
00014 
00015 #include <boost/gil/gil_all.hpp>
00016 
00017 namespace tuttle {
00018 namespace plugin {
00019 namespace lut {
00020 
00021 /**
00022  * @brief Lut process
00023  */
00024 template<class View>
00025 class LutProcess : public ImageGilFilterProcessor<View>
00026 {
00027 private:
00028         Lut3D* _lut3D;               ///< Lut3D
00029         LutPlugin&  _plugin;        ///< Rendering plugin
00030 
00031 public:
00032         LutProcess<View>( LutPlugin & instance );
00033 
00034         void multiThreadProcessImages( const OfxRectI& procWindowRoW );
00035 
00036         // Lut3D Transform
00037         void applyLut( View& dst, View& src, const OfxRectI& procWindow );
00038 };
00039 
00040 }
00041 }
00042 }
00043 
00044 #include "LutProcess.tcc"
00045 
00046 #endif