WIP

parent b462d882
......@@ -18,6 +18,7 @@ include_directories( "include" )
set( ITAPropagationModelsHeader
"include/ITAPropagationModels/Base.h"
"include/ITAPropagationModels/Definitions.h"
"include/ITAPropagationModels/DiffractionFilter.h"
"include/ITAPropagationModels/FilterEngine.h"
"include/ITAPropagationModels/FilterGenerator.h"
"include/ITAPropagationModels/Kirchhoff.h"
......
......@@ -19,7 +19,7 @@
#ifndef INCLUDE_WATCHER_ITA_PROPAGATION_MODELS_FILTER
#define INCLUDE_WATCHER_ITA_PROPAGATION_MODELS_FILTER
#include <ITAPropagationModelsDefinitions.h>
#include "Definitions.h"
// ITA includes
#include <ITASampleBuffer.h>
......
......@@ -16,12 +16,12 @@
*
*/
#ifndef INCLUDE_WATCHER_ITA_PROPAGATION_MODELS_FILTER_GENERATOR
#define INCLUDE_WATCHER_ITA_PROPAGATION_MODELS_FILTER_GENERATOR
#ifndef INCLUDE_WATCHER_ITA_PROPAGATION_MODELS_FILTER_ENGINE
#define INCLUDE_WATCHER_ITA_PROPAGATION_MODELS_FILTER_ENGINE
#include <ITAPropagationModelsDefinitions.h>
#include <ITADiffractionFilter.h>
#include <ITAPropagationModelsBase.h>
// ITAPropagationModel includes
#include "Base.h"
#include "Definitions.h"
// ITA includes
#include <ITAGeoBase.h>
......@@ -38,41 +38,11 @@ namespace ITAPropagationModels
* Generates transfer functions in the frequency-domain that
* can be used as filters, e.g. for auralization.
*/
class ITA_PROPAGATION_MODELS_API CTFGenerator
class ITA_PROPAGATION_MODELS_API CFilterEngine
{
public:
//! Construct a generator with predetermined output channels, e.g. for binaural or SH filters
/**
* @param[in] iNumOutputChannels Number of output channels
* @param[in] iDFTSize Length of the DFT used to construct and combine filter components
*/
CTFGenerator( const int iNumOutputChannels, const int iDFTSize = 128 );
//! Cunstruct a generator with matching properties of a target spectrum
inline CTFGenerator( const ITABase::CHDFTSpectrum& pTransferFunction )
: CTFGenerator( 1, pTransferFunction.GetDFTSize() )
{
};
//! Cunstruct a generator with matching properties of multi-channel target spectra
CTFGenerator( const ITABase::CHDFTSpectra& pTransferFunctions )
: CTFGenerator( pTransferFunctions.GetNumChannels(), pTransferFunctions.GetDFTSize() )
{
};
//! Generate a single-channel transfer function
inline void GenerateTF( ITABase::CHDFTSpectrum& pTransferFunction )
{
const std::vector< ITABase::CHDFTSpectrum* > vpSpectra = { &( pTransferFunction ) };
GenerateTF( ITABase::CHDFTSpectra( vpSpectra ) );
};
//! Generate a multi-channel transfer function
inline void GenerateTF( ITABase::CHDFTSpectra& pTransferFunctions );
private:
};
}
#endif // INCLUDE_WATCHER_ITA_PROPAGATION_MODELS_FILTER_GENERATOR
#endif // INCLUDE_WATCHER_ITA_PROPAGATION_MODELS_FILTER_ENGINE
......@@ -19,9 +19,9 @@
#ifndef INCLUDE_WATCHER_ITA_PROPAGATION_MODELS_FILTER_GENERATOR
#define INCLUDE_WATCHER_ITA_PROPAGATION_MODELS_FILTER_GENERATOR
#include <ITAPropagationModelsDefinitions.h>
#include <ITADiffractionFilter.h>
#include <ITAPropagationModelsBase.h>
#include "Base.h"
#include "Definitions.h"
#include "DiffractionFilter.h"
// ITA includes
#include <ITAGeoBase.h>
......
#include <ITAPropagationModelFilterGenerator.h>
#include <ITAPropagationModels/FilterGenerator.h>
// ITA includes
#include <ITAException.h>
......@@ -12,16 +12,10 @@
#include <stdio.h>
using namespace ITAGeo;
using namespace ITAPropagationModels;
CTFGenerator::CFilterGenerator( int iModel )
: m_iModel( iModel )
{
}
/* see @todo
void CITAFilterGenerator::GenerateFIR( const CPropagationAnchor& oSource, const CPropagationAnchor& oDestination, CITADiffractionWedgeAperture& oWedge, CITADiffractionFilter& oFilter )
{
}
*/
\ No newline at end of file
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment