00001
00006 #pragma once
00007
00008
00009 #include <usml/ocean/reflect_loss_model.h>
00010 #include <usml/ocean/reflect_loss_rayleigh.h>
00011 #include <vector>
00012 #include <netcdfcpp.h>
00013
00014 namespace usml {
00015 namespace ocean {
00016
00017 using boost::numeric::ublas::vector;
00018
00021
00029 class USML_DECLSPEC reflect_loss_netcdf : public reflect_loss_model {
00030
00031 public:
00032
00043 reflect_loss_netcdf( const char *filename ) ;
00044
00056 virtual void reflect_loss(
00057 const wposition1& location,
00058 const seq_vector& frequencies, double angle,
00059 vector<double>* amplitude, vector<double>* phase=NULL ) ;
00060
00064 virtual ~reflect_loss_netcdf() ;
00065
00066 private:
00067
00071 std::vector<reflect_loss_rayleigh*> _rayleigh ;
00072
00076 data_grid<double, 2>* _bottom_grid ;
00077
00078 } ;
00079
00081 }
00082 }