SMSResidualGain.hxx
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #ifndef _SMSResidualGain_
00024 #define _SMSResidualGain_
00025
00026 #include "InPort.hxx"
00027 #include "OutPort.hxx"
00028 #include "InControl.hxx"
00029 #include "Frame.hxx"
00030 #include "Spectrum.hxx"
00031 #include "SegmentTransformationConfig.hxx"
00032 #include "FrameTransformation.hxx"
00033 #include "FrameTransformationConfig.hxx"
00034
00035 namespace CLAM{
00036
00037 class SMSResidualGain: public FrameTransformation
00038 {
00039 const char *GetClassName() const {return "SMSResidualGain";}
00040
00041 InPort<Spectrum> mIn;
00042 OutPort<Spectrum> mOut;
00043
00044 FloatInControl mGain;
00045 public:
00046
00047 SMSResidualGain()
00048 :
00049 mIn("In Spectrum", this),
00050 mOut("Out Spectrum", this),
00051 mGain("Gain", this)
00052 {
00053 Configure( SegmentTransformationConfig() );
00054 }
00055
00056 ~SMSResidualGain() {}
00057
00058 bool ConcreteConfigure(const ProcessingConfig& c)
00059 {
00060 mGain.SetBounds(0.,25.);
00061 mGain.SetDefaultValue(0.);
00062 mGain.DoControl(0.);
00063 return true;
00064 }
00065
00066 bool Do(const Frame& in, Frame& out)
00067 {
00068 return Do(in.GetResidualSpec(), out.GetResidualSpec());
00069 }
00070
00071 bool Do(const Spectrum& in, Spectrum& out);
00072
00073 bool Do()
00074 {
00075 bool result = Do(mIn.GetData(), mOut.GetData());
00076 mIn.Consume();
00077 mOut.Produce();
00078 return result;
00079 }
00080
00081 };
00082 }
00083
00084 #endif // _SMSResidualGain_
00085