22 #ifndef __SpectralPeakDescriptors_H__
23 #define __SpectralPeakDescriptors_H__
36 class SpectralPeakArray;
139 TData ComputeCentroid();
140 TData ComputeFirstTristimulus();
141 TData ComputeSecondTristimulus();
142 TData ComputeThirdTristimulus();
143 TData ComputeHarmonicDeviation();
144 TData ComputeOddHarmonics();
145 TData ComputeEvenHarmonics();
146 TData ComputeOddToEvenRatio();
165 if (a.HasMagnitudeMean() && b.HasMagnitudeMean())
167 if(b.GetMagnitudeMean()>a.GetMagnitudeMean())
168 tmpD.SetMagnitudeMean(b.GetMagnitudeMean());
170 if (a.HasHarmonicCentroid() && b.HasHarmonicCentroid())
172 if(b.GetHarmonicCentroid()>a.GetHarmonicCentroid())
173 tmpD.SetHarmonicCentroid(b.GetHarmonicCentroid());
175 if (a.HasFirstTristimulus() && b.HasFirstTristimulus())
177 if(b.GetFirstTristimulus()>a.GetFirstTristimulus())
178 tmpD.SetFirstTristimulus(b.GetFirstTristimulus());
180 if (a.HasSecondTristimulus() && b.HasSecondTristimulus())
182 if(b.GetSecondTristimulus()>a.GetSecondTristimulus())
183 tmpD.SetSecondTristimulus(b.GetSecondTristimulus());
185 if (a.HasThirdTristimulus() && b.HasThirdTristimulus())
187 if(b.GetThirdTristimulus()>a.GetThirdTristimulus())
188 tmpD.SetThirdTristimulus(b.GetThirdTristimulus());
190 if (a.HasHarmonicDeviation() && b.HasHarmonicDeviation())
192 if(b.GetHarmonicDeviation()>a.GetHarmonicDeviation())
193 tmpD.SetHarmonicDeviation(b.GetHarmonicDeviation());
195 if (a.HasOddHarmonics() && b.HasOddHarmonics())
197 if(b.GetOddHarmonics()>a.GetOddHarmonics())
198 tmpD.SetOddHarmonics(b.GetOddHarmonics());
200 if (a.HasEvenHarmonics() && b.HasEvenHarmonics())
202 if(b.GetEvenHarmonics()>a.GetEvenHarmonics())
203 tmpD.SetEvenHarmonics(b.GetEvenHarmonics());
205 if (a.HasOddToEvenRatio() && b.HasOddToEvenRatio())
207 if(b.GetOddToEvenRatio()>a.GetOddToEvenRatio())
208 tmpD.SetOddToEvenRatio(b.GetOddToEvenRatio());
219 if (a.HasMagnitudeMean() && b.HasMagnitudeMean())
221 if(b.GetMagnitudeMean()<a.GetMagnitudeMean())
222 tmpD.SetMagnitudeMean(b.GetMagnitudeMean());
224 if (a.HasHarmonicCentroid() && b.HasHarmonicCentroid())
226 if(b.GetHarmonicCentroid()<a.GetHarmonicCentroid())
227 tmpD.SetHarmonicCentroid(b.GetHarmonicCentroid());
229 if (a.HasFirstTristimulus() && b.HasFirstTristimulus())
231 if(b.GetFirstTristimulus()<a.GetFirstTristimulus())
232 tmpD.SetFirstTristimulus(b.GetFirstTristimulus());
234 if (a.HasSecondTristimulus() && b.HasSecondTristimulus())
236 if(b.GetSecondTristimulus()<a.GetSecondTristimulus())
237 tmpD.SetSecondTristimulus(b.GetSecondTristimulus());
239 if (a.HasThirdTristimulus() && b.HasThirdTristimulus())
241 if(b.GetThirdTristimulus()<a.GetThirdTristimulus())
242 tmpD.SetThirdTristimulus(b.GetThirdTristimulus());
244 if (a.HasHarmonicDeviation() && b.HasHarmonicDeviation())
246 if(b.GetHarmonicDeviation()<a.GetHarmonicDeviation())
247 tmpD.SetHarmonicDeviation(b.GetHarmonicDeviation());
249 if (a.HasOddHarmonics() && b.HasOddHarmonics())
251 if(b.GetOddHarmonics()<a.GetOddHarmonics())
252 tmpD.SetOddHarmonics(b.GetOddHarmonics());
254 if (a.HasEvenHarmonics() && b.HasEvenHarmonics())
256 if(b.GetEvenHarmonics()<a.GetEvenHarmonics())
257 tmpD.SetEvenHarmonics(b.GetEvenHarmonics());
259 if (a.HasOddToEvenRatio() && b.HasOddToEvenRatio())
261 if(b.GetOddToEvenRatio()<a.GetOddToEvenRatio())
262 tmpD.SetOddToEvenRatio(b.GetOddToEvenRatio());