|
|||||||||
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 planepublic 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.Object
ParaxialRay
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 Ray
public boolean isInvalid()
isInvalid
in class Ray
boolean
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 Ray
Position
Three-dimensional position
of the Ray.public java.lang.String toString()
String
with package specified format.
toString
in class java.lang.Object
String
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 Ray
plane
- 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 |