optics
Class IntensityRayPencil

java.lang.Object
  extended by java.util.AbstractCollection<E>
      extended by java.util.AbstractList<E>
          extended by java.util.Vector<Ray>
              extended by optics.RayPencil
                  extended by optics.IntensityRayPencil
All Implemented Interfaces:
java.io.Serializable, java.lang.Cloneable, java.lang.Iterable<Ray>, java.util.Collection<Ray>, java.util.List<Ray>, java.util.RandomAccess

public class IntensityRayPencil
extends RayPencil

Class to implement a pencil of IntensityRayPencil being a vector of IntensityRays used in the analysis of incoherent, un-polarsied systems.

See Also:
Serialized Form

Field Summary
 
Fields inherited from class java.util.Vector
capacityIncrement, elementCount, elementData
 
Fields inherited from class java.util.AbstractList
modCount
 
Constructor Summary
IntensityRayPencil(Director u, double lambda, double intensity, OpticalPlane plane, int rays)
          Form an IntensityRayPencil being a collimated beam in specified direction, wavelength and number or rays, evenly filling an OpticalPlane to maximum radius.
IntensityRayPencil(SourcePoint s, double lambda, OpticalPlane plane, int rays)
          Form an IntensityRayPencil from a specified SourcePoint at specified wavelength even filling an OpticalPlane to maximum radius with specified number of rays.
IntensityRayPencil(java.lang.String t)
          Constructor to create a new empty IntensityRayPencil with a specified name.
 
Method Summary
 void addCollimated(Director u, double lambda, double intensity, OpticalPlane plane, int rays)
          Method to add a collimated ray pencil filling the specified OpticalPlane with specified number of rays.
 void addFromPoint(SourcePoint s, double lambda, OpticalPlane plane, int rays)
          Method to add a pencil from a SourcePoint evenly filling a circular aperture with a specified number of rays.
 IntensityRay getNext()
          Get the next valid Ray from the Pencil, null if there are none.
 IntensityRay getRay(int i)
          Method to get the nth Intensity Ray
 
Methods inherited from class optics.RayPencil
addRay, getTitle, getWaveLength, propagateThrough, propagateThrough, removeInvalid, reset, setTitle
 
Methods inherited from class java.util.Vector
add, add, addAll, addAll, addElement, capacity, clear, clone, contains, containsAll, copyInto, elementAt, elements, ensureCapacity, equals, firstElement, get, hashCode, indexOf, indexOf, insertElementAt, isEmpty, lastElement, lastIndexOf, lastIndexOf, remove, remove, removeAll, removeAllElements, removeElement, removeElementAt, removeRange, retainAll, set, setElementAt, setSize, size, subList, toArray, toArray, toString, trimToSize
 
Methods inherited from class java.util.AbstractList
iterator, listIterator, listIterator
 
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface java.util.List
iterator, listIterator, listIterator
 

Constructor Detail

IntensityRayPencil

public IntensityRayPencil(java.lang.String t)
Constructor to create a new empty IntensityRayPencil with a specified name.

Parameters:
t - the name

IntensityRayPencil

public IntensityRayPencil(SourcePoint s,
                          double lambda,
                          OpticalPlane plane,
                          int rays)
Form an IntensityRayPencil from a specified SourcePoint at specified wavelength even filling an OpticalPlane to maximum radius with specified number of rays.

Due to rounding approximations the actual number of rays in the pencil may be +/- 2 of the number specified.

Parameters:
s - the SourcePoint, given position and intensity.
lambda - the wavelength
plane - the plane to be filled, usually the entrance aperture of an OpticalGroup.
rays - number of rays.

IntensityRayPencil

public IntensityRayPencil(Director u,
                          double lambda,
                          double intensity,
                          OpticalPlane plane,
                          int rays)
Form an IntensityRayPencil being a collimated beam in specified direction, wavelength and number or rays, evenly filling an OpticalPlane to maximum radius.

All the rays will be in the specifying OpticalPlane.

Parameters:
u - the direction of the pencil
lambda - the wavelength.
intensity - the intensity of each ray.
plane - the OpticalPlane to be filled.
rays - number of rays.
Method Detail

getRay

public IntensityRay getRay(int i)
Method to get the nth Intensity Ray

Overrides:
getRay in class RayPencil
Parameters:
i - the ray index
Returns:
IntensityRay the ray.

getNext

public IntensityRay getNext()
Get the next valid Ray from the Pencil, null if there are none.

Overrides:
getNext in class RayPencil
Returns:
IntensityRay the next valid Ray
See Also:
RayPencil.reset()

addFromPoint

public void addFromPoint(SourcePoint s,
                         double lambda,
                         OpticalPlane plane,
                         int rays)
Method to add a pencil from a SourcePoint evenly filling a circular aperture with a specified number of rays.

The actual number of rays added may be subject to a rounding error.

Parameters:
s - the intensity source point
lambda - the wavelength in microns
plane - the OpticalPlane to fill
rays - number of rays in pencil.

addCollimated

public void addCollimated(Director u,
                          double lambda,
                          double intensity,
                          OpticalPlane plane,
                          int rays)
Method to add a collimated ray pencil filling the specified OpticalPlane with specified number of rays.

The actual number of rays added may be subject to a rounding error.

Parameters:
u - the direction of the collimated pencil
lambda - the wavelength
intensity - the intensity
plane - the plane to be filled
rays - number or rays.