| 
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectoptics.Optics
optics.Ray
optics.ParaxialRay
public class ParaxialRay
Class to implement ParaxialRays for Matrix Ray Tracing with
    a ParaxialRay being characterised by it height from the optical axis,
    its angle from the optical axis (in radians) and the position, 
    or plane, along the optical axis. The position of the plane
    is in global coordinates. The wavelength is also inherited
    from Ray which defaults to Constants.GREEN.
| Field Summary | |
|---|---|
protected  double | 
angle
Angle wrt to optical axis in radians  | 
protected  double | 
height
Height of the ray  | 
protected  double | 
plane
Plane of the rays, being distance along optical axis  | 
| Fields inherited from class optics.Ray | 
|---|
intensity, monitor, waveLength | 
| Fields inherited from class optics.Optics | 
|---|
DEFAULT_WAVELENGTH, errorStream, fmt, MICRONS | 
| Constructor Summary | |
|---|---|
ParaxialRay()
Default construct for ParaxialRay with height, angle all plane att set to zero.  | 
|
ParaxialRay(double h,
            double a)
Constructor for paraxial ray at specified height and angle in plane at position zero.  | 
|
ParaxialRay(double h,
            double a,
            double p)
Constructor for ParaxialRay at specified height, angle and plane.  | 
|
ParaxialRay(double h,
            double p,
            double h1,
            double p1)
Constructor to for a ray of height h in 
    plane p towards height h1 in 
    plane p1. | 
|
ParaxialRay(ParaxialRay r)
Constructor for a ParaxialRay with parameters, including wavelength, but not the RayMonitor set by
    specified ParaxialRay. | 
|
| Method Summary | |
|---|---|
 ParaxialRay | 
clone()
Method to return a clone (copy) of the current ParaxialRay.  | 
 double | 
crosses(ParaxialRay r)
Method to calculate where the given ray will cross the current ray.  | 
 double | 
crossesZero()
Method to calculate where the ray will intersect the optical axis in global coordinates.  | 
 void | 
edit()
Method to invoke the RayEditor. | 
 double | 
getAngle()
Method to get the ray angle in radians.  | 
 double | 
getAngleInDegrees()
Method to get the ray angle in degrees.  | 
 double | 
getHeight()
Method to get the ray height  | 
 double | 
getPlane()
Method to get the ray plane in global coordinates.  | 
 Position | 
getPosition()
Method get the three dimensional Position of the
     Ray being (0.0,height,plane). | 
 double | 
heightInPlane(double p)
Method to calculate the height of the ray in the specified plane.  | 
 boolean | 
isInvalid()
Method to test if a ray has been set invalid.  | 
 boolean | 
mult(ParaxialMatrix p)
Method to pre-multiply the current ray by a ParaxialMatrix.  | 
 javax.vecmath.Point2d | 
pointInPlane(double plane)
Method to calculate the point where this ray will intersect a x/y plane specified by it location on the optical z-axis.  | 
 boolean | 
propagate(double distance)
Method to propagate a ray a specified distance along the optical axis without using the matrix scheme.  | 
 boolean | 
propagateThrough(ParaxialGroup g)
Method to propagate a ray through an ParaxialGroup. | 
 int | 
propagateThrough(ParaxialSystem s)
Method to propagate the ray through a ParaxialSystem which consists
       of a number of ParaxialGroups. | 
 boolean | 
propagateTo(double p)
Method to propagate a ray to a specified plane.  | 
 void | 
setAngle(double a)
Method to set the ray angle in radians.  | 
 void | 
setAngleInDegrees(double d)
Method to set the ray angle in degrees.  | 
 void | 
setHeight(double h)
Method to set the ray height.  | 
 void | 
setInvalid()
Method to set the array as invalid (by setting the angle to be Double.NaN. | 
 void | 
setPlane(double p)
Method to set the plane of a ray in global coordinates.  | 
 java.lang.String | 
toString()
Method for format ray as String 
    with package specified format. | 
| Methods inherited from class optics.Ray | 
|---|
addMonitor, clearMonitor, getIntensity, getMonitor, getWaveLength, isValid, monitorUpdate, setIntensity, setWaveLength | 
| Methods inherited from class optics.Optics | 
|---|
getDefaultWaveLength, getErrorStream, getFormatString, getName, getStaticName, getVersion, printError, setDefaultWaveLength, setErrorStream, setFormatString, setMicrons | 
| Methods inherited from class java.lang.Object | 
|---|
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait | 
| Field Detail | 
|---|
protected double height
protected double angle
protected double plane
| Constructor Detail | 
|---|
public ParaxialRay()
public ParaxialRay(double h,
                   double a)
h - the ray heighta - the ray angle.
public ParaxialRay(double h,
                   double a,
                   double p)
h - the ray heighta - the ray angle.p - the ray plane
public ParaxialRay(double h,
                   double p,
                   double h1,
                   double p1)
h in 
    plane p towards height h1 in 
    plane p1.
h - height of rayp - plane ray defined it.h1 - height of ray is plane 1p1 - location of plane 1public ParaxialRay(ParaxialRay r)
RayMonitor set by
    specified ParaxialRay.
r - The ParaxialRayRayMonitor| Method Detail | 
|---|
public ParaxialRay clone()
clone in class java.lang.ObjectParaxialRay clone of current ParaxialRay.public void setHeight(double h)
h - the ray height.public void setAngle(double a)
a - the ray angle in radians.public void setAngleInDegrees(double d)
d - the ray angle in degrees.public void setPlane(double p)
p - position of the plane.public double getHeight()
public double getAngle()
double the ray angle in radians.public double getAngleInDegrees()
double the ray angle in degrees.public double getPlane()
double position of ray plane in 
     global coordinatespublic void setInvalid()
Double.NaN. No further propagation 
      is possible.
setInvalid in class Raypublic boolean isInvalid()
isInvalid in class Rayboolean true is Ray is invalid.public Position getPosition()
Position of the
     Ray being (0.0,height,plane). This is normally used for graphical
     display or in monitoring a RayPath.
getPosition in class RayPosition Three-dimensional position
       of the Ray.public java.lang.String toString()
String 
    with package specified format.
toString in class java.lang.ObjectString containing formatted information 
    about the ParaxialRay.public double crossesZero()
double where ray will cross optical axis.public double crosses(ParaxialRay r)
r - the given ray.
double where the two rays crosspublic double heightInPlane(double p)
p - position of the plane.
double the height in the specified planepublic boolean mult(ParaxialMatrix p)
    The RayMonitor (if attached) will be called after the 
    multiplication.
p - The matrix.
boolean true if successful, false is ray is 
    invalid.public boolean propagate(double distance)
   The RayMonitor (if attached) will be called after the 
   propagation.
distance - The distance
boolean true is successful, false if ray is 
    invalid or distance is Double.NaN.public boolean propagateTo(double p)
   Any attached RayMonitor will be called after the 
   propagation.
p - the plane in global coordinates.
boolean true is successful, 
   false if ray is invalid or distance is Double.NaN.public boolean propagateThrough(ParaxialGroup g)
ParaxialGroup.
   The ray is initially propagated to the input plane of the
   group and then multiplied by the group system matrix.
   
   The height and will tested at both the input and output
   planes of the ParaxialGroup and the Ray will
   be set invalid if it exceeds these.
   
   Any attached RayMonitor will be called twice, once
   after the propagation and then again after the multiplication.
g - the ParaxialGroup
boolean true is successful, false if either
   propagation or height tests fail.public int propagateThrough(ParaxialSystem s)
ParaxialSystem which consists
       of a number of ParaxialGroups.
       The number of groups successfully  propagated thought is returned.
s - the ParaxialSystempublic javax.vecmath.Point2d pointInPlane(double plane)
Note this does NOT propagate the ray to the plane so does not change the rays position.
pointInPlane in class Rayplane - the z location of the plane
Point2d the location in the plane.public void edit()
RayEditor. 
       Execution will be suspended until Update/Cancel pressed in Editor.
       Any RayMonitor will be called if the ray has been modified by the editor.
  | 
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||