public class Surface 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 reflections, 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 also to reflect any Rays that have penetrated. Since the surface is being approximated (to a good degree of accuracy) as a perfect pressure release surface, any wave striking it will have a 180 degree phase shift and a reflection coefficient of one. No effects due to wind or waves are yet included.
Contact: Don Brutzman (web.nps.navy.mil/~brutzman) brutzman@nps.navy.mil
8 Nov 97 | Timothy M. Holliday | New |
18 Mar 98 | Timothy M. Holliday | Added HTML comment convention |
16 Oct 98 | Don Brutzman | Javadoc updates for jdk1.2b4 |
25 April 99 | Don Brutzman | Javadoc updates for jdk1.2.1 |
Bottom
Constructor and Description |
---|
Surface(double windVelocity,
double waveHeight)
This method is in prograss..
|
Surface(String surfaceType)
The surfaceType argument currently has one choice: "smooth"
indicating a perfect pressure-release surface.
|
Modifier and Type | Method and Description |
---|---|
static boolean |
getAppendLineFeed()
This is a static method that returns the current line appendage.
|
String |
getVRMLSurface()
Returns a VRML string representing the Surface of the ocean.
|
boolean |
hasIntersected(Vec3d Pos)
This procedure checks to see if the ray path has crossed the surface
during the current time step, and returns true if it did.
|
double |
reflect(Vec3d Pos,
Vec3d normal)
This method causes a Snell's Law reflection to occur at the surface of the ocean.
|
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.
|
public Surface(String surfaceType)
surfaceType
- The argument currently has "smooth".public Surface(double windVelocity, double waveHeight)
windVelocity
- The velocity of the wind.waveHeight
- The height of the wave.public boolean hasIntersected(Vec3d Pos)
Pos
- Vec3d object.public double reflect(Vec3d Pos, Vec3d normal)
Pos
- Vec3d object.normal
- Vec3d object.public String getVRMLSurface()
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()