public class Beam extends Object
This class forms a Beam from four Ray calculations, which are acoustically propagated according to the sound speed profile (SSP) & Surface & Bottom. Calculated values can be used to produce a VRML representation of the Beam.
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
| 15 November 97 | Timothy M. Holliday | New |
| 17 March 98 | Timothy M. Holliday | Added HTML comment convention |
| 12 April 98 | Timothy M. Holliday | Parameterless Constructors |
| 14 April 98 | Timothy M. Holliday | Simplified VRML Routines |
| 21 April 98 | Timothy M. Holliday | Fixed Problem with calculateSoundPressureLevel |
| 16 October 98 | Don Brutzman | Javadoc updates for jdk1.2b4 |
| 24 April 99 | Don Brutzman | Javadoc updates for jdk1.2.1 |
Ray,
Lobe,
Bottom,
Surface,
SSP,
Vec3d| Modifier and Type | Field and Description |
|---|---|
static int |
NONE
Enumeration flag to avoid further attenuation of color intensity.
|
static int |
T_L
Enumeration flag to attenuate color intensity by transmission loss (T_L, pronounced "T sub L").
|
static int |
TIME
Enumeration flag to attenuate color intensity by timestep.
|
| Constructor and Description |
|---|
Beam()
Use accessor methods to set initial values of member variables.
|
| Modifier and Type | Method and Description |
|---|---|
void |
calculateBeam(Targets targets)
Calculates the trajectory of the beam of energy enclosed by the defining rays of the beam tube.
|
void |
calculateSoundPressureLevel(double[][][] field,
double deltaRange,
double deltaDepth,
double frequency)
Calculates the trajectory of the beam of energy enclosed by the defining rays of the beam tube.
|
String |
dynamicVRML()
Creates a dynamic VRML string shape that is the three dimensional representation of the beam pulse that is
propogated.
|
static boolean |
getAppendLineFeed()
This is a static method that returns the current line appendage.
|
double |
getAzimuth()
This method returns the azimuthal angle.
|
int |
getBeamNumber()
Returns BeamNumber.
|
Bottom |
getBottom()
Returns the handle to the bottom object.
|
double |
getDeltaTime()
Returns the simulation time step.
|
int |
getDetectCount()
Returns the total number of detects by the beam
|
double |
getDetectEchoLevel(int N)
Returns the echo level of the detected target
|
double |
getDetectTime(int N)
Returns the detect time for a given detect in the beam
|
int |
getDuration()
Returns the duration of the sonar pulse.
|
double |
getElevation()
Returns the elevation angle.
|
double |
getEndTime()
Returns the simulation end time.
|
double |
getHalfBeamWidthX()
Returns the half beam width of the beam in the azimuthal direction.
|
double |
getHalfBeamWidthY()
Returns the half beam width of the beam in the azimuthal direction.
|
Vec3d |
getPosition()
Returns the position of the beam.
|
SSP |
getSsp()
Returns the handle to the sound speed profile object.
|
Surface |
getSurface()
Returns the handle to the surface object.
|
String |
pingTimerVRML()
Returns a VRML timer string that contains the appropriate timing information for the beam
|
void |
reset()
This method resets all of the beam parameters after
instanciation has occurred, since reuse is more time
efficient than garbage collection and reallocation.
|
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.
|
void |
setAzimuth(double phi)
This method sets the azimuthal angle, which is the angle from
the x-axis to the z-axis rotating about the y-axis.
|
void |
setBeamNumber(int number)
Sets BeamNumber.
|
void |
setBottom(Bottom pBottom)
Sets the handle to the bottom object.
|
void |
setDeltaTime(double pDeltaTime)
Sets the time step in the simulation.
|
void |
setDuration(int duration)
Sets the duration of the sonar pulse.
|
void |
setElevation(double beta)
Sets the elevation angle, which is the angle from the y-axis to the x-axis rotating about the z-axis .
|
void |
setEndTime(double pEndTime)
Sets the simulation end time.
|
void |
setHalfBeamWidthX(double pHalfBeamWidthX)
This method sets the half beam width of the beam in the azimuthal direction.
|
void |
setHalfBeamWidthY(double pHalfBeamWidthY)
Sets the half beam width of the beam in the elevation direction.
|
void |
setPosition(double x,
double y,
double z)
Sets the position of the beam.
|
void |
setSourceLevel(double level)
Sets the source level.
|
void |
setSsp(SSP pSsp)
Sets the handle to the sound speed profile object.
|
void |
setSurface(Surface pSurface)
Sets the handle to the surface object.
|
String |
staticVRML(int colorChoice,
int intensityChoice)
Writes to the console a VRML shape that is the three dimensional representation of the beam that is
propagated.
|
public static final int T_L
public static final int TIME
public static final int NONE
public Beam()
public void reset()
public void setAzimuth(double phi)
phi - The azimuthal angle.public double getAzimuth()
public void setHalfBeamWidthX(double pHalfBeamWidthX)
pHalfBeamWidthX - The half beam width of the beam in the azimuthal direction.public double getHalfBeamWidthX()
public void setElevation(double beta)
beta - The elevation angle.public double getElevation()
public void setHalfBeamWidthY(double pHalfBeamWidthY)
pHalfBeamWidthY - The half beam width of the beam in the elevation direction.public double getHalfBeamWidthY()
public void setPosition(double x,
double y,
double z)
x - The x position of the beam.y - The y position of the beam.z - The z position of the beam.public Vec3d getPosition()
public void setDeltaTime(double pDeltaTime)
pDeltaTime - The time step in the simulation.public double getDeltaTime()
public void setEndTime(double pEndTime)
pEndTime - The simulation end time.public double getEndTime()
public void setDuration(int duration)
duration - The duration of the sonar pulse.public int getDuration()
public void setBottom(Bottom pBottom)
pBottom - The handle to the bottom object.public Bottom getBottom()
public void setSurface(Surface pSurface)
pSurface - The handle to the surface object.public Surface getSurface()
public void setSsp(SSP pSsp)
pSsp - The handle to the sound speed profile object.public SSP getSsp()
public void setBeamNumber(int number)
number - The unique beam number.public int getBeamNumber()
public String staticVRML(int colorChoice, int intensityChoice)
colorChoice - A color for each group of ray positions.intensityChoice - A intensity.public String dynamicVRML()
public void calculateBeam(Targets targets)
targets - The trajectory of the beam of energy.public void calculateSoundPressureLevel(double[][][] field,
double deltaRange,
double deltaDepth,
double frequency)
field - The position x, y, z components.deltaRange - The range of the beam of energy.deltaDepth - The depth of the beam of energy.frequency - The frequency of the beam of energy.public int getDetectCount()
public double getDetectTime(int N)
N - The given detect number.public double getDetectEchoLevel(int N)
N - The givin echo level.public String pingTimerVRML()
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()
public void setSourceLevel(double level)
level - The source level.