00001
00005 #pragma once
00006
00007 #include <usml/ocean/reflect_loss_model.h>
00008 #include <usml/ocean/reflect_loss_rayleigh.h>
00009 #include <vector>
00010
00011 namespace usml {
00012 namespace ocean {
00013
00014 using boost::numeric::ublas::vector;
00015
00018
00025 class USML_DECLSPEC reflect_loss_rayleigh_grid : public reflect_loss_model {
00026
00027 public:
00028
00039 reflect_loss_rayleigh_grid(data_grid<double, 2>* bottom_type_grid) ;
00040
00044 virtual ~reflect_loss_rayleigh_grid() ;
00045
00057 virtual void reflect_loss(
00058 const wposition1& location,
00059 const seq_vector& frequencies, double angle,
00060 vector<double>* amplitude, vector<double>* phase=NULL ) ;
00061
00062 private:
00063
00067 std::vector<reflect_loss_rayleigh*> _rayleigh ;
00068
00072 data_grid<double, 2>* _bottom_grid ;
00073
00074 } ;
00075
00077 }
00078 }