r520: no message
[ctsim.git] / include / filter.h
index ca6e67b0314e405d91bbfbf8711bd2353a37f78e..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.22 2000/12/16 06:12:47 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
@@ -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;
@@ -136,6 +144,7 @@ class SignalFilter {
     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)); }
 };