00001
00005 #pragma once
00006
00007 #include <usml/ublas/ublas.h>
00008 #include <usml/types/types.h>
00009
00010 namespace usml {
00011 namespace ocean {
00012
00013 using namespace usml::ublas ;
00014 using namespace usml::types ;
00015
00016 using boost::numeric::ublas::vector;
00017
00020
00058 class USML_DECLSPEC scattering_model {
00059
00060 public:
00061
00073 virtual void scattering( const wposition1& location,
00074 const seq_vector& frequencies, double de_incident, double de_scattered,
00075 double az_incident, double az_scattered, vector<double>* amplitude ) = 0 ;
00076
00092 virtual void scattering( const wposition& location,
00093 const seq_vector& frequencies, double de_incident, matrix<double> de_scattered,
00094 double az_incident, matrix<double> az_scattered, matrix< vector<double> >* amplitude ) = 0 ;
00095
00099 virtual ~scattering_model() {}
00100
00101 };
00102
00104 }
00105 }