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 | NONEEnumeration flag to avoid further attenuation of color intensity. | 
| static int | T_LEnumeration flag to attenuate color intensity by transmission loss (T_L, pronounced "T sub L"). | 
| static int | TIMEEnumeration 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.