USML
boundary_model.h
1 
6 #ifndef USML_OCEAN_BOUNDARY_MODEL_H
7 #define USML_OCEAN_BOUNDARY_MODEL_H
8 
9 #include <usml/ocean/reflect_loss_constant.h>
10 
11 namespace usml {
12 namespace ocean {
13 
14 using boost::numeric::ublas::vector;
15 
18 
58 class USML_DECLSPEC boundary_model : public reflect_loss_model {
59 
60  //**************************************************
61  // height model
62 
63  public:
64 
74  virtual void height( const wposition& location,
75  matrix<double>* rho, wvector* normal=NULL, bool quick_interp=false ) = 0 ;
76 
86  virtual void height( const wposition1& location,
87  double* rho, wvector1* normal=NULL, bool quick_interp=false ) = 0 ;
88 
89  //**************************************************
90  // reflection loss model
91 
92  protected:
93 
96 
97  public:
98 
104  void reflect_loss( reflect_loss_model* reflect_loss ) {
105  if ( _reflect_loss_model ) delete _reflect_loss_model ;
106  _reflect_loss_model = reflect_loss ;
107  }
108 
118  virtual void reflect_loss(
119  const wposition1& location,
120  const seq_vector& frequencies, double angle,
121  vector<double>* amplitude, vector<double>* phase=NULL )
122  {
123  _reflect_loss_model->reflect_loss( location,
124  frequencies, angle, amplitude, phase ) ;
125  }
126 
127  //**************************************************
128  // initialization
129 
135  boundary_model( reflect_loss_model* reflect_loss=NULL ) :
136  _reflect_loss_model( reflect_loss )
137  {
138  }
139 
143  virtual ~boundary_model() {
144  if ( _reflect_loss_model ) delete _reflect_loss_model ;
145  }
146 };
147 
149 } // end of namespace ocean
150 } // end of namespace usml
151 
152 #endif
boundary_model(reflect_loss_model *reflect_loss=NULL)
Initialize reflection loss components for a boundary.
Definition: boundary_model.h:135
virtual void reflect_loss(const wposition1 &location, const seq_vector &frequencies, double angle, vector< double > *amplitude, vector< double > *phase=NULL)
Computes the broadband reflection loss and phase change.
Definition: boundary_model.h:118
World location in geodetic earth coordinates (latitude, longitude, and altitude). ...
Definition: wposition.h:39
A reflection loss model computes the changes in amplitude and phase that result from the reflection o...
Definition: reflect_loss_model.h:30
Individual world vector in spherical earth coordinates.
Definition: wvector1.h:27
reflect_loss_model * _reflect_loss_model
Reference to the reflection loss model.
Definition: boundary_model.h:95
void reflect_loss(reflect_loss_model *reflect_loss)
Define a new reflection loss model.
Definition: boundary_model.h:104
World location in geodetic earth coordinates (latitude, longitude, and altitude). ...
Definition: wposition1.h:23
virtual ~boundary_model()
Delete reflection loss model.
Definition: boundary_model.h:143
World vector in spherical earth coordinates.
Definition: wvector.h:42
A read-only, monotonic sequence of values.
Definition: seq_vector.h:36
A "boundary model" computes the environmental parameters of the ocean's surface or bottom...
Definition: boundary_model.h:58