public class Bottom extends Object
Since a ray is the normal vector to a plane wave, rays interact with surfaces the same way that plane waves do. Rays obey Snell's law and the equations of reflection and transmission of wave energy. This model uses vector algebra to determine when the end of a ray has passed through the bottom and to reflect any rays that have penetrated.
Beams of energy can be considered to consist of bundles of sound rays. The energy in a bundle can be shown not to diverge from the bundle. Thus the energy in a bundle is constant, and subsequently the product of the intensity versus the area of the bundle perpendicular to direction of propagation is a constant as well. Therefore a beam is a fundamental building block for constructing a multiple-beam Lobe of a sonar pattern.
Contact: Don Brutzman (web.nps.navy.mil/~brutzman) brutzman@nps.navy.mil
8 November 97 | Timothy M. Holliday | New |
18 March 98 | Timothy M. Holliday | Added HTML comment convention |
16 October 98 | Don Brutzman | Javadoc updates for jdk1.2b4 |
25 April 99 | Don Brutzman | Javadoc updates for jdk1.2.1, revised some method names to match get/set naming convention. |
Surface
Constructor and Description |
---|
Bottom(Bathymetry bathValues,
double size,
double spacing)
Constructs Bottom object giving bath values, size, and spacing.
|
Modifier and Type | Method and Description |
---|---|
double |
depth(double x,
double z)
This method returns the bottom depth at the given
(x,z) coordinate (expressed in the Ziomek Coordinate System).
|
String |
generateColorScheme(double[] array)
This method generates the color scheme.
|
static boolean |
getAppendLineFeed()
This is a static method that returns the current line appendage.
|
double[] |
getLocalDepths(Vec3d pos)
This method gets the local depths.
|
double |
getMinDepth()
This method returns the maximum or minimum depth.
|
double |
getTranslation()
This method returns translation.
|
String |
getVRMLBottom()
This method returns the VRML string representing the bottom of the ocean.
|
double |
interpolateCurrentDepth(double[] localDepths)
Pos is in meters from NE point of column
|
double |
reflect(Vec3d Pos,
Vec3d normal,
double curDepth)
This method causes a Snell's Law reflection to occur.
|
static void |
setAppendLineFeed(boolean pAppendLineFeed)
This is a static method used to indicate whether a line feed is desired
at the end of every line.
|
String |
VRMLScales()
This method applies scales to the VRML bottom for the x, y and z directions.
|
public Bottom(Bathymetry bathValues, double size, double spacing)
bathValues
- The array of bathymetric values (in meters).size
- The size of area.spacing
- The size of spacing.public double getMinDepth()
public double getTranslation()
public double[] getLocalDepths(Vec3d pos)
pos
- Three elements of vectors.public double interpolateCurrentDepth(double[] localDepths)
localDepths
- The array of the depths.public double reflect(Vec3d Pos, Vec3d normal, double curDepth)
Pos
- Vector arithmetic routines for 3-element vectors of type Double.normal
- Vector arithmetic routines for 3-element vectors of type Double.curDepth
- double.public double depth(double x, double z)
x
- The coordinate x.z
- The coordinate z.public String getVRMLBottom()
public String generateColorScheme(double[] array)
array
- The array of bathymetric values (in meters)public String VRMLScales()
public static void setAppendLineFeed(boolean pAppendLineFeed)
pAppendLineFeed
- 'true' indicates a linefeed is desired and 'false' indicates that a space
is desired"public static boolean getAppendLineFeed()