r7061: initial property settings
[ctsim.git] / include / procsignal.h
index 3448baed12f5ceea360d03b3cd1590a6354c372d..2c37de89ddc43ef17909606e599ffb50fca8dd27 100644 (file)
@@ -9,7 +9,7 @@
 **  This is part of the CTSim program
 **  Copyright (c) 1983-2001 Kevin Rosenberg
 **
-**  $Id: procsignal.h,v 1.14 2001/02/22 18:22:40 kevin Exp $
+**  $Id$
 **
 **  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
@@ -66,7 +66,10 @@ class ProcessSignal {
       BACKWARD = 1,
     };
 
-    ProcessSignal (const char* szFilterName, const char* szFilterMethodName,double bw, double signalIncrement, int n, double param, const char* szDomainName, const char* szFilterGenerationName, const int zeropad = 0, const int preinterpolationFactor = 1, const int iTraceLevel = Trace::TRACE_NONE, int iGeometry = Scanner::GEOMETRY_PARALLEL, double dFocalLength = 1., SGP* pSGP = NULL);
+    ProcessSignal (const char* szFilterName, const char* szFilterMethodName,double bw, double signalIncrement, 
+      int n, double param, const char* szDomainName, const char* szFilterGenerationName, 
+      const int zeropad, const int preinterpolationFactor, const int iTraceLevel, int iGeometry, 
+      double dFocalLength, double dSourceDetectorLength, SGP* pSGP = NULL);
 
     ~ProcessSignal();
 
@@ -106,6 +109,7 @@ class ProcessSignal {
     static void finiteFourierTransform (const std::complex<double> input[], std::complex<double> output[], const int n, const int direction);
     static void finiteFourierTransform (const std::complex<double> input[], double output[], const int n, const int direction);
 
+    static int addZeropadFactor (int n, int iZeropad);
 
  private:
         std::string m_nameFilterMethod;
@@ -135,6 +139,7 @@ class ProcessSignal {
     int m_iPreinterpolationFactor;
     int m_idGeometry;
     double m_dFocalLength;
+    double m_dSourceDetectorLength;
 
     bool m_fail;
     std::string m_failMessage;
@@ -153,7 +158,10 @@ class ProcessSignal {
     fftw_plan m_complexPlanForward, m_complexPlanBackward;
 #endif
 
-    void init (const int idFilter, int idFilterMethod, double dBandwidth, double dSignalIncrement, int nSignalPoints, double dFilterParam, const int idDomain, int idFilterGeneration, const int iZeropad, const int iPreinterpolationFactor, const int iTraceLevel, const int iGeometry, double dFocalLength, SGP* pSGP);
+    void init (const int idFilter, int idFilterMethod, double dBandwidth, double dSignalIncrement, 
+      int nSignalPoints, double dFilterParam, const int idDomain, int idFilterGeneration, const int iZeropad, 
+      const int iPreinterpolationFactor, const int iTraceLevel, const int iGeometry, double dFocalLength, 
+      double dSourceDetectorLength, SGP* pSGP);
 
     // transforms that use precalculated trig tables, therefore don't 
     // require number of data points (n) as an argument