SMSSpectralShapeShift.cxx
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 #include "SMSSpectralShapeShift.hxx"
00023 #include "ProcessingFactory.hxx"
00024
00025 namespace CLAM
00026 {
00027
00028 namespace Hidden
00029 {
00030 static const char * metadata[] = {
00031 "key", "SMSSpectralShapeShift",
00032 "category", "SMS Transformations",
00033 "description", "SMSSpectralShapeShift",
00034 0
00035 };
00036 static FactoryRegistrator<ProcessingFactory, SMSSpectralShapeShift> reg = metadata;
00037 }
00038
00039 bool SMSSpectralShapeShift::Do(const SpectralPeakArray&
00040 inPeaks,SpectralPeakArray& outPeaks)
00041 {
00042 if (!mConfig.GetPreserveOuts())
00043 {
00044 outPeaks = inPeaks;
00045 }
00046
00047 mSpectralEnvelope.SetSpectralRange(mSpectralRange);
00048
00049 if (!mSpectralEnvelopeExtract.Do(inPeaks,mSpectralEnvelope))
00050 return true;
00051
00052 TData amount = mSteps.GetLastValue();
00053
00054
00055 BPF& magBPF=mSpectralEnvelope.GetMagBPF();
00056 int nPoints=magBPF.Size();
00057 for(int i=0;i<nPoints;i++)
00058 {
00059 magBPF.SetXValue(i, magBPF.GetXValue(i)+amount);
00060 }
00061 magBPF.UpdateSplineTable();
00062
00063 mSpectralEnvelopeApply.Do(inPeaks,mSpectralEnvelope,outPeaks);
00064 return true;
00065 }
00066
00067
00068 }
00069