5 #ifndef USML_WAVEQ3D_REFLECTION_MODEL_H
6 #define USML_WAVEQ3D_REFLECTION_MODEL_H
8 #include <usml/waveq3d/wave_queue.h>
13 using namespace usml::ocean ;
97 : _wave( wave ), _bottom_reverb(0), _surface_reverb(0),
98 TOO_SHALLOW( 300.0 * wave._time_step )
145 bool bottom_reflection(
unsigned de,
unsigned az,
double depth ) ;
181 bool surface_reflection(
unsigned de,
unsigned az ) ;
197 void collision_location(
198 unsigned de,
unsigned az,
double dtime,
215 void reflection_reinit(
216 unsigned de,
unsigned az,
double dtime,
229 static void reflection_copy(
230 wave_front* element,
unsigned de,
unsigned az,
reflection_model(wave_queue &wave)
Hide default constructor to prohibit use by non-friends.
Definition: reflection_model.h:96
reverb_model * _surface_reverb
Callback model for surface reverberation.
Definition: reflection_model.h:62
Wavefront characteristics at a specific point in time.
Definition: wave_front.h:68
Wavefront propagator for the WaveQ3D model.
Definition: wave_queue.h:63
Individual world vector in spherical earth coordinates.
Definition: wvector1.h:27
wave_queue & _wave
Wavefront object associated with this model.
Definition: reflection_model.h:56
Definition: reflection_model.h:49
A reverberation model listens for interface collision callbacks from a wavefront. ...
Definition: reverb_model.h:24
World location in geodetic earth coordinates (latitude, longitude, and altitude). ...
Definition: wposition1.h:23
const double TOO_SHALLOW
If the water is too shallow, bottom_reflection() uses a horizontal normal to simulate reflection from...
Definition: reflection_model.h:78
reverb_model * _bottom_reverb
Callback model for bottom reverberation.
Definition: reflection_model.h:59
static const double MIN_REFLECT
The assumption that the surface normal is constant across the time step breaks down when the incident...
Definition: reflection_model.h:91