spreading_model.h

00001 
00005 #pragma once
00006 
00007 #include <usml/waveq3d/wave_queue.h>
00008 
00009 namespace usml {
00010 namespace waveq3d {
00011 
00012 using namespace usml::ocean ;
00013 
00020 class USML_DECLSPEC spreading_model {
00021 
00022     friend class wave_queue ;
00023 
00024     protected:
00025 
00027         wave_queue& _wave ;
00028 
00030         vector<double> _spread ;
00031 
00038         spreading_model( wave_queue& wave, size_t num_freqs ) :
00039             _wave(wave), _spread(num_freqs)
00040         {}
00041 
00045         virtual ~spreading_model() {}
00046 
00057         virtual const vector<double>& intensity(
00058             const wposition1& location, size_t de, size_t az,
00059             const vector<double>& offset, const vector<double>& distance ) = 0 ;
00060 
00069         virtual double width_de(
00070             size_t de, size_t az, const vector<double>& offset ) = 0 ;
00071 
00080         virtual double width_az(
00081             size_t de, size_t az, const vector<double>& offset ) = 0 ;
00082 } ;
00083 
00084 }  // end of namespace waveq3d
00085 }  // end of namespace usml

Generated on 4 May 2015 for USML by  doxygen 1.6.1