USML
spreading_ray Class Reference
Collaboration diagram for spreading_ray:

Constructor & Destructor Documentation

spreading_ray ( wave_queue wave)
protected

Estimate initial ensonfied area between rays at radius of 1 meter.

\[ A_{ab} = \left( cos( \mu_b ) - cos( mu_a) \right) \left( \eta_b - \eta_a\right) \]

where:

  • $ \mu_a, \mu_b $ = depression/elevation angles at source
  • $ \eta_a, \eta_b $ = azimuthal angles at source
  • $ A_{ab} = $ = initial area of interest between these rays
Parameters
waveWavefront object associated with this model.
virtual ~spreading_ray ( )
inlineprotectedvirtual

Virtual destructor.

Member Function Documentation

const vector< double > & intensity ( const wposition1 location,
unsigned  de,
unsigned  az,
const vector< double > &  offset,
const vector< double > &  distance 
)
protectedvirtual

Estimate intensity as the ratio of current area to initial area.

Approximates the area as the sum of two triangles that connect the corner points.

Extrapolates across edges in the wavefront by keeping a constant level for three (3) extra beam widths. This compensates for the fact that the detection scheme used by wavefront.on_edges() may leave the closest valid wavefront segment may be up to 1 1/2 segments away from the actual edge. A failure to properly take this into account will show up as weak eignerays near the surface, bottom, or caustics.

Parameters
locationTarget location.
deDE index of closest point of approach.
azAZ index of closest point of approach.
offsetOffsets in time, DE, and AZ at collision.
distanceOffsets in distance units.
Returns
Intensity of ray at this point.

Implements spreading_model.

Friends And Related Function Documentation

friend class wave_queue
friend

Member Data Documentation

matrix<double> _init_area
private

Initial ensonified area for each ray span.

Assign the area for each span to the index of the ray that precedes it in D/E and azimuth. Copy the last element in each direction from the one before it. Divide the initial area by the initial speed of sound so that we don't have to do this each time intensity is calculated.