spreading_ray.h

00001 
00005 #pragma once
00006 
00007 #include <usml/waveq3d/spreading_model.h>
00008 
00009 namespace usml {
00010 namespace waveq3d {
00011 
00012 using namespace usml::ocean ;
00013 
00032 class USML_DECLSPEC spreading_ray : public spreading_model {
00033 
00034     friend class wave_queue ;
00035     friend class wave_queue_reverb ;
00036 
00037   private:
00038 
00046     matrix<double> _init_area ;
00047 
00048   protected:
00049 
00066     spreading_ray( wave_queue& wave ) ;
00067 
00071     virtual ~spreading_ray() {}
00072 
00092     virtual const vector<double>& intensity(
00093         const wposition1& location, size_t de, size_t az,
00094         const vector<double>& offset, const vector<double>& distance ) ;
00095 
00106     virtual double width_de(
00107         size_t de, size_t az, const vector<double>& offset ) ;
00108 
00119     virtual double width_az(
00120         size_t de, size_t az, const vector<double>& offset ) ;
00121 
00122 } ;
00123 
00124 }  // end of namespace waveq3d
00125 }  // end of namespace usml

Generated on 4 May 2015 for USML by  doxygen 1.6.1