Fundamental.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 #ifndef _Fundamental_
00023 #define _Fundamental_
00024 #include <typeinfo>
00025 #include "DynamicType.hxx"
00026 #include "Array.hxx"
00027 #include "DataTypes.hxx"
00028 #include "OSDefines.hxx"
00029 #include "Err.hxx"
00030 #include "ProcessingData.hxx"
00031
00032 namespace CLAM
00033 {
00034
00036
00037
00038
00044 class Fundamental : public ProcessingData
00045 {
00046 public:
00047 DYNAMIC_TYPE_USING_INTERFACE (Fundamental, 2, ProcessingData);
00049 DYN_ATTRIBUTE (0, public, DataArray, CandidatesFreq);
00051 DYN_ATTRIBUTE (1, public, DataArray, CandidatesErr);
00052
00053 protected:
00054 void DefaultInit();
00055
00056 public:
00057 void SetnMaxCandidates(TSize nMaxCandidates)
00058 {
00059 if (HasCandidatesFreq())
00060 GetCandidatesFreq().Resize(nMaxCandidates);
00061
00062 if (HasCandidatesErr())
00063 GetCandidatesErr().Resize(nMaxCandidates);
00064 }
00065
00066 TSize GetnMaxCandidates() const
00067 {
00068 if (HasCandidatesFreq())
00069 return GetCandidatesFreq().AllocatedSize();
00070
00071 if (HasCandidatesErr())
00072 return GetCandidatesErr().AllocatedSize();
00073
00074 return 0;
00075 }
00076
00077 void SetnCandidates(int size)
00078 {
00079 if (HasCandidatesFreq())
00080 GetCandidatesFreq().SetSize(size);
00081
00082 if (HasCandidatesErr())
00083 GetCandidatesErr().SetSize(size);
00084 }
00085
00086 int GetnCandidates() const
00087 {
00088 if (HasCandidatesFreq())
00089 return GetCandidatesFreq().Size();
00090
00091 if (HasCandidatesErr())
00092 return GetCandidatesErr().Size();
00093
00094 return 0;
00095 }
00096
00102 TData GetFreq(TIndex pos=0) const;
00103
00108 TData GetErr(TIndex pos=0) const;
00109
00110
00115 void SetFreq(TIndex pos,TData newFreq);
00116
00121 void SetErr(TIndex pos,TData newErr);
00122
00123
00124
00129 void AddElem (TData freq=0.f, TData err=0.f);
00130
00136 void InsertElem (TIndex pos, TData freq=0.f, TData err=0.f);
00137
00141 void DeleteElem (TIndex pos);
00142
00143
00144
00145
00150 void SortByFrequency();
00151
00156 void SortByError();
00157
00159 void Init()
00160 {
00161 GetCandidatesFreq().SetSize(0);
00162 GetCandidatesErr().SetSize(0);
00163 SetnCandidates(0);
00164 }
00165 };
00166
00167 }
00168
00169 #endif
00170