optics
Class AsphericSurface

java.lang.Object
  extended by optics.Optics
      extended by optics.OpticalSurface
          extended by optics.OpticalPlane
              extended by optics.QuadricSurface
                  extended by optics.AsphericSurface
All Implemented Interfaces:
Diagram2DComponent
Direct Known Subclasses:
EvenAsphericSurface

public class AsphericSurface
extends QuadricSurface

Prtoected class to impements a general AsphericSurface. The distance calcualtion requires itteration, so use of this type of surface will be significantly slower than analyic surfaces.


Field Summary
 double accuracy
          The convergence accuracy, by defaults set to 100 or the default wavelength.
protected  Aspheric surface
          The Aspheric surface profile
 
Fields inherited from class optics.QuadricSurface
curvature, epsilon
 
Fields inherited from class optics.OpticalPlane
blockedNormal, maxRadius, planeNormal
 
Fields inherited from class optics.OpticalSurface
CLEAR, group, REFLECTING, REFRACTING, refractiveIndex, surfacePoint, surfaceType
 
Fields inherited from class optics.Optics
DEFAULT_WAVELENGTH, errorStream, fmt, MICRONS
 
Constructor Summary
protected AsphericSurface(Position p, double rmax, RefractiveIndex n)
          Protected constructor to form the underlying QuadricSurface to set surface point, maximum radius and Refractive Index
 
Method Summary
 double distance(Position r, Director v)
          Method get the distance from a Position to the surface
 Aspheric getAspheric()
          Method to get the Aspheric
 double getEdgePlane()
          Get the edgePlane at the edge of the lens
 Director getNormal(Position r)
          Method to get the surface normal, at a specified point which is assumes to be on the surface.
 void scale(double a)
          Method to scale the surface
 void setAspheric(Aspheric as)
          Method to set the Aspheric
 void setCurvature(double c)
          Method to set the curvature without changeing the other aspheric parameters.
 void setQuadric(double e)
          Method to set the quadric without changeing the other aspheric parameters.
 
Methods inherited from class optics.QuadricSurface
clone, draw, getCurvature, getQuadric, toString
 
Methods inherited from class optics.OpticalPlane
getBounds, getMaxRadius, getPlaneNormal, pointInPlane, setMaxRadius, setPlaneNormal
 
Methods inherited from class optics.OpticalSurface
distance, edit, entranceAperture, exitAperture, fromString, fromTokens, getGroup, getIndex, getNormal, getPoint, getRefractiveIndex, getSurfacePoint, getSurfaceType, getSurfaceType, makeStandAlone, pointInPlane, setGroup, setRefractiveIndex, setSurfacePoint, setSurfaceType
 
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

surface

protected Aspheric surface
The Aspheric surface profile


accuracy

public double accuracy
The convergence accuracy, by defaults set to 100 or the default wavelength.

Constructor Detail

AsphericSurface

protected AsphericSurface(Position p,
                          double rmax,
                          RefractiveIndex n)
Protected constructor to form the underlying QuadricSurface to set surface point, maximum radius and Refractive Index

Parameters:
p - the surface point
rmax - the maximum radius
n - the refractive index
Method Detail

getAspheric

public Aspheric getAspheric()
Method to get the Aspheric

Returns:
Aspheric the Aspheric

setAspheric

public void setAspheric(Aspheric as)
Method to set the Aspheric

Parameters:
as - the Aspheric

setCurvature

public void setCurvature(double c)
Method to set the curvature without changeing the other aspheric parameters.

Overrides:
setCurvature in class QuadricSurface
Parameters:
c - the curvature

setQuadric

public void setQuadric(double e)
Method to set the quadric without changeing the other aspheric parameters.

Overrides:
setQuadric in class QuadricSurface
Parameters:
e - the quadric

scale

public void scale(double a)
Method to scale the surface

Overrides:
scale in class QuadricSurface
Parameters:
a - the scale factor

distance

public double distance(Position r,
                       Director v)
Method get the distance from a Position to the surface

Overrides:
distance in class QuadricSurface
Parameters:
r - The ray position
v - the ray director
Returns:
double the distance to the surface

getNormal

public Director getNormal(Position r)
Method to get the surface normal, at a specified point which is assumes to be on the surface.

Overrides:
getNormal in class QuadricSurface
Parameters:
r - The position
Returns:
Director3d the surface normal

getEdgePlane

public double getEdgePlane()
Get the edgePlane at the edge of the lens

Overrides:
getEdgePlane in class QuadricSurface
Returns:
double the edge plane