r175: *** empty log message ***
[ctsim.git] / include / filter.h
index d898103367830b034858d322748f44554b6b0a56..a0c4b4b15c57a7e627a51f4b15aec63026c06bb1 100644 (file)
@@ -9,7 +9,7 @@
 **  This is part of the CTSim program
 **  Copyright (C) 1983-2000 Kevin Rosenberg
 **
-**  $Id: filter.h,v 1.17 2000/07/22 16:14:49 kevin Exp $
+**  $Id: filter.h,v 1.18 2000/08/03 09:57:33 kevin Exp $
 **
 **  This program is free software; you can redistribute it and/or modify
 **  it under the terms of the GNU General Public License (version 2) as
@@ -69,10 +69,13 @@ class SignalFilter {
     static const int DOMAIN_FREQUENCY;
     static const int DOMAIN_SPATIAL;
     
+    static const int FREQUENCY_FILTER_INVALID;
+    static const int FREQUENCY_FILTER_DIRECT_FREQUENCY;
+    static const int FREQUENCY_FILTER_INVERSE_SPATIAL;
 
-    SignalFilter (const char* filterName, const char* filterMethodName,double bw, double signalIncrement, int n, double param, const char* domainName, const int zeropad = 0, const int preinterpolationFactor = 1);
+    SignalFilter (const char* filterName, const char* filterMethodName,double bw, double signalIncrement, int n, double param, const char* domainName, const char* frequencyFilterName, const int zeropad = 0, const int preinterpolationFactor = 1);
 
-    SignalFilter (const int filt_type, int filterMethodID, double bw, double signalIncrement, int n, double param, const int domain, const int zeropad = 0, const int preinterpolationFactor = 1);
+    SignalFilter (const int filt_type, int filterMethodID, double bw, double signalIncrement, int n, double param, const int domain, int filterFilterID, const int zeropad = 0, const int preinterpolationFactor = 1);
 
     SignalFilter (const char* filterName, const char* domainName, double bw, double param);
 
@@ -108,6 +111,7 @@ class SignalFilter {
     const string& nameDomain(void) const       { return m_nameDomain;}
     const int idFilter(void) const     { return m_idFilter;}
     const int idDomain(void) const     { return m_idDomain;}
+    const int idFrequencyFilter() const { return m_idFrequencyFilter;}
     const double getFilterMin(void) const {return m_filterMin;}
     const double getFilterMax(void) const {return m_filterMax;}
     const double getFilterIncrement(void) const {return m_filterInc;}
@@ -144,8 +148,9 @@ class SignalFilter {
   static int convertDomainNameToID (const char* const domainName);
   static const char* convertDomainIDToName (const int idDomain);
   static const char* convertDomainIDToTitle (const int idDomain);
-  
-  
+  static int convertFrequencyFilterNameToID (const char* const ffName);
+  static const char* convertFrequencyFilterIDToName (const int idFF);
+  static const char* convertFrequencyFilterIDToTitle (const int idFF);
   
  private:
     double m_bw;
@@ -171,8 +176,10 @@ class SignalFilter {
     string m_nameFilter;
     string m_nameFilterMethod;
     string m_nameDomain;
+    string m_nameFrequencyFilter;
     int m_idFilter;
     int m_idFilterMethod;
+    int m_idFrequencyFilter;
     int m_idDomain;
     double m_filterParam;
     int m_traceLevel;
@@ -189,12 +196,15 @@ class SignalFilter {
     static const char* s_aszDomainName[];
     static const char* s_aszDomainTitle[];
     static const int s_iDomainCount;
+    static const char* s_aszFrequencyFilterName[];
+    static const char* s_aszFrequencyFilterTitle[];
+    static const int s_iFrequencyFilterCount;
 
     static int N_INTEGRAL;
 
     static const bool haveAnalyticSpatial (const int filterID);
 
-    void init (const int filt_type, const int filterMethod, double bw, double signalIncrement, int n, double param, const int domain, const int zeropad, const int preInterpScale);
+    void init (const int filt_type, const int filterMethod, double bw, double signalIncrement, int n, double param, const int domain, const int frequencyFilter, const int zeropad, const int preInterpScale);
 
     double spatialResponseCalc (double x, double param) const;