/*****************************************************************************
** FILE IDENTIFICATION
**
-** Name: filter.h
+** Name: filter.h
** Purpose: Signal filter header file
-** Programmer: Kevin Rosenberg
-** Date Started: June 2000
+** Programmer: Kevin Rosenberg
+** Date Started: June 2000
**
** This is part of the CTSim program
** Copyright (c) 1983-2001 Kevin Rosenberg
**
-** $Id: filter.h,v 1.24 2001/01/28 19:10:18 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
#include "config.h"
#endif
#ifdef HAVE_FFTW
-#include <fftw.h>
-#include <rfftw.h>
+#include <fftw3.h>
#endif
class SignalFilter {
public:
static const int FILTER_INVALID;
- static const int FILTER_ABS_BANDLIMIT; // filter times |x|
+ static const int FILTER_ABS_BANDLIMIT; // filter times |x|
static const int FILTER_ABS_SINC;
static const int FILTER_ABS_G_HAMMING;
+ static const int FILTER_ABS_HANNING;
static const int FILTER_ABS_COSINE;
static const int FILTER_SHEPP;
static const int FILTER_BANDLIMIT;
static const int FILTER_SINC;
static const int FILTER_G_HAMMING;
+ static const int FILTER_HANNING;
static const int FILTER_COSINE;
static const int FILTER_TRIANGLE;
static const int DOMAIN_INVALID;
static const int DOMAIN_FREQUENCY;
static const int DOMAIN_SPATIAL;
-
+
SignalFilter (const char* szFilterName, double dFilterMinimum, double dFilterMaximum, int nFilterPoints, double dBandwidth, double dFilterParam, const char* szDomainName);
SignalFilter (const int idFilter, double dFilterMinimum, double dFilterMaximum, int nFilterPoints, double dBandwidth, double dFilterParam, const int idDomain);
double* getFilter (void) const
{ return m_adFilter; }
- bool fail(void) const {return m_fail;}
+ bool fail(void) const {return m_fail;}
const std::string& failMessage(void) const {return m_failMessage;}
- 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;}
+ 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;}
int getNFilterPoints (void) const { return m_nFilterPoints; }
const double getFilterMin(void) const {return m_dFilterMin;}
static void setNumIntegral(int nIntegral) {N_INTEGRAL = nIntegral;}
static const int getFilterCount() {return s_iFilterCount;}
- static const char** getFilterNameArray() {return s_aszFilterName;}
- static const char** getFilterTitleArray() {return s_aszFilterTitle;}
+ static const int getReconstructFilterCount() { return s_iReconstructFilterCount; }
+
+ static const char* const* getFilterNameArray() {return s_aszFilterName;}
+ static const char* const* getFilterTitleArray() {return s_aszFilterTitle;}
static int convertFilterNameToID (const char* const filterName);
static const char* convertFilterIDToName (const int idFilter);
static const char* convertFilterIDToTitle (const int idFilter);
static const int getDomainCount() {return s_iDomainCount;}
- static const char** getDomainNameArray() {return s_aszDomainName;}
- static const char** getDomainTitleArray() {return s_aszDomainTitle;}
+ static const char* const* getDomainNameArray() {return s_aszDomainName;}
+ static const char* const* getDomainTitleArray() {return s_aszDomainTitle;}
static int convertDomainNameToID (const char* const domainName);
static const char* convertDomainIDToName (const int idDomain);
static const char* convertDomainIDToTitle (const int idDomain);
bool m_fail;
std::string m_failMessage;
- static const char* s_aszFilterName[];
- static const char* s_aszFilterTitle[];
+ static const char* const s_aszFilterName[];
+ static const char* const s_aszFilterTitle[];
static const int s_iFilterCount;
- static const char* s_aszDomainName[];
- static const char* s_aszDomainTitle[];
+ static const int s_iReconstructFilterCount;
+ static const char* const s_aszDomainName[];
+ static const char* const s_aszDomainTitle[];
static const int s_iDomainCount;
static int N_INTEGRAL;