reverberation_model.h

00001 
00005 #pragma once
00006 
00007 #include <usml/ocean/ocean.h>
00008 #include <usml/waveq3d/wave_queue.h>
00009 
00010 namespace usml {
00011 namespace waveq3d {
00012 
00013 using namespace usml::ocean ;
00014 
00015 using namespace boost::numeric::ublas ;
00016 
00023 class USML_DECLSPEC reverberation_model {
00024 
00025     public:
00026 
00030         virtual ~reverberation_model() {}
00031 
00046         virtual void notifyUpperCollision( size_t de, size_t az,
00047                double dt, double grazing, double speed,
00048                const wposition1& position, const wvector1& ndirection,
00049                const wave_queue& wave, size_t ID ) = 0 ;
00050 
00065         virtual void notifyLowerCollision( size_t de, size_t az,
00066                double dt, double grazing, double speed,
00067                const wposition1& position, const wvector1& ndirection,
00068                const wave_queue& wave, size_t ID ) = 0 ;
00069 
00074         virtual void compute_reverberation() = 0 ;
00075 
00079         virtual const vector<double> getReverberation_curve() = 0 ;
00080 
00081 };
00082 
00084 }  // end of namespace waveq3d
00085 }  // end of namespace usml

Generated on 4 May 2015 for USML by  doxygen 1.6.1