USML
spreading_model.h
1 
5 #ifndef USML_WAVEQ3D_SPREADING_MODEL_H
6 #define USML_WAVEQ3D_SPREADING_MODEL_H
7 
8 #include <usml/waveq3d/wave_queue.h>
9 
10 namespace usml {
11 namespace waveq3d {
12 
13 using namespace usml::ocean ;
14 
21 class USML_DECLSPEC spreading_model {
22 
23  friend class wave_queue ;
24 
25  protected:
26 
29 
31  vector<double> _spread ;
32 
39  spreading_model( wave_queue& wave, unsigned num_freqs ) :
40  _wave(wave), _spread(num_freqs)
41  {}
42 
46  virtual ~spreading_model() {}
47 
58  virtual const vector<double>& intensity(
59  const wposition1& location, unsigned de, unsigned az,
60  const vector<double>& offset, const vector<double>& distance ) = 0 ;
61 } ;
62 
63 } // end of namespace waveq3d
64 } // end of namespace usml
65 
66 #endif
Definition: spreading_model.h:21
Wavefront propagator for the WaveQ3D model.
Definition: wave_queue.h:63
wave_queue & _wave
Wavefront object associated with this model.
Definition: spreading_model.h:28
World location in geodetic earth coordinates (latitude, longitude, and altitude). ...
Definition: wposition1.h:23
virtual ~spreading_model()
Virtual destructor.
Definition: spreading_model.h:46
spreading_model(wave_queue &wave, unsigned num_freqs)
Initializes the spreading model.
Definition: spreading_model.h:39
vector< double > _spread
Frequency dependent part of beam spreading.
Definition: spreading_model.h:31