reflect_loss_constant.h

00001 
00005 #pragma once
00006 
00007 #include <usml/ocean/reflect_loss_model.h>
00008 
00009 namespace usml {
00010 namespace ocean {
00011 
00012 using boost::numeric::ublas::vector;
00013 
00016 
00021 class USML_DECLSPEC reflect_loss_constant : public reflect_loss_model {
00022 
00023     public:
00024 
00031         reflect_loss_constant( double amplitude, double phase=0.0 ) :
00032             _amplitude(amplitude), _phase(phase) {}
00033 
00044         virtual void reflect_loss(
00045             const wposition1& location,
00046             const seq_vector& frequencies, double angle,
00047             vector<double>* amplitude, vector<double>* phase=NULL )
00048         {
00049                         noalias(*amplitude) = scalar_vector<double>(frequencies.size(),_amplitude);
00050                         if ( phase ) {
00051                                 noalias(*phase) = scalar_vector<double>(frequencies.size(),_phase);
00052                         }
00053         }
00054 
00055     private:
00056 
00058         double _amplitude ;
00059 
00061         double _phase ;
00062 
00063 } ;
00064 
00066 }  // end of namespace ocean
00067 }  // end of namespace usml

Generated on 4 May 2015 for USML by  doxygen 1.6.1