r520: no message
[ctsim.git] / include / filter.h
index d6a3e8fad4cc3dac970a74dabb8357009c94db0c..2dd5ed5f074d7dee0fb9572cd84125747c9cf325 100644 (file)
@@ -7,9 +7,9 @@
 **     Date Started: June 2000
 **
 **  This is part of the CTSim program
-**  Copyright (C) 1983-2000 Kevin Rosenberg
+**  Copyright (c) 1983-2001 Kevin Rosenberg
 **
-**  $Id: filter.h,v 1.21 2000/11/28 14:54:07 kevin Exp $
+**  $Id: filter.h,v 1.25 2001/02/11 04:56:37 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
@@ -77,10 +77,10 @@ class SignalFilter {
       { return m_adFilter; }
 
     bool fail(void) const      {return m_fail;}
-    const string& failMessage(void) const {return m_failMessage;}
+    const std::string& failMessage(void) const {return m_failMessage;}
 
-    const string& nameFilter(void) const       { return m_nameFilter;}
-    const string& nameDomain(void) const       { return m_nameDomain;}
+    const std::string& nameFilter(void) const  { return m_nameFilter;}
+    const std::string& nameDomain(void) const  { return m_nameDomain;}
     const int idFilter(void) const     { return m_idFilter;}
     const int idDomain(void) const     { return m_idDomain;}
 
@@ -103,6 +103,8 @@ class SignalFilter {
     static void setNumIntegral(int nIntegral) {N_INTEGRAL = nIntegral;}
 
   static const int getFilterCount() {return s_iFilterCount;}
+  static const int getReconstructFilterCount() { return s_iReconstructFilterCount; }
+
   static const char** getFilterNameArray() {return s_aszFilterName;}
   static const char** getFilterTitleArray() {return s_aszFilterTitle;}
   static int convertFilterNameToID (const char* const filterName);
@@ -116,6 +118,12 @@ class SignalFilter {
   static const char* convertDomainIDToName (const int idDomain);
   static const char* convertDomainIDToTitle (const int idDomain);
 
+  static double sinc (double x)
+      { return (fabs(x) > F_EPSILON ? (sin (x) / x) : 1.0); }
+
+  static double sinc (double x, double mult)
+      { return (fabs(x) > F_EPSILON ? (sin (x * mult) / x) : 1.0); }
+
  private:
     int m_nFilterPoints;
     double m_dBandwidth;
@@ -125,17 +133,18 @@ class SignalFilter {
     double m_dFilterMax;
     double* m_adFilter;
 
-    string m_nameFilter;
-    string m_nameDomain;
+    std::string m_nameFilter;
+    std::string m_nameDomain;
     int m_idFilter;
     int m_idDomain;
 
     bool m_fail;
-    string m_failMessage;
+    std::string m_failMessage;
 
     static const char* s_aszFilterName[];
     static const char* s_aszFilterTitle[];
     static const int s_iFilterCount;
+    static const int s_iReconstructFilterCount;
     static const char* s_aszDomainName[];
     static const char* s_aszDomainTitle[];
     static const int s_iDomainCount;
@@ -152,8 +161,6 @@ class SignalFilter {
     double spatialResponseAnalytic (double x) const;
     double frequencyResponse (double u) const;
 
-    static double sinc (double x, double mult)
-      { return (fabs(x) > F_EPSILON ? (sin (x * mult) / x) : 1.0); }
     static double integral_abscos (double u, double w)
     { return (fabs (u) > F_EPSILON ? (cos (u * w) - 1) / (u * u) + w / u * sin (u * w) : (w * w / 2)); }
 };