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.