00001 #ifndef _FrameTransformation_ 00002 #define _FrameTransformation_ 00003 00004 #include "Processing.hxx" 00005 #include "InControl.hxx" 00006 00007 #include "FrameTransformationConfig.hxx" 00008 00009 namespace CLAM 00010 { 00011 class Frame; 00012 00013 class FrameTransformation : public Processing 00014 { 00015 public: 00016 FrameTransformation() 00017 : mAmount("Amount", this) //soon to be deprecated 00018 { 00019 } 00020 virtual bool Do(const Frame& in,Frame& out) = 0; 00021 00022 const ProcessingConfig& GetConfig() const { return mConfig; } 00023 00024 virtual bool ConcreteStart(){ return InitControls();} 00025 00027 virtual bool InitControls() 00028 { 00029 mAmount.DoControl(0.); 00030 return true; 00031 } 00032 00033 protected: 00034 00035 FrameTransformationConfig mConfig; 00036 00037 FloatInControl mAmount; //soon to be deprecated 00038 }; 00039 00040 //@todo: could also add ports here 00041 template <typename T> 00042 class FrameTransformationTmpl : public FrameTransformation 00043 { 00044 public: 00045 virtual bool Do(const T&, T&) = 0; 00046 }; 00047 00048 } // namespace CLAM 00049 00050 #endif 00051