Appendix: Reference Guide
A.1 Listing of Objects and Functions
A.2 Listing of Objects Grouped by Category
Component Functions
Ray Sources
Model Functions
Optical Media
Ray-Tracing Engine
Parameters of Ray
Parameters of Component
Genetic Building Blocks
A.3 Description of Objects and Functions
A B C D E F G I J K L M N O P Q R S T U V W X Y Z
Introduction to the Appendix
The following sections in this Appendix provide you with a reference guide to every function and object of the standard LensLab package. Section A.1 gives you an alphabetized listing of LensLab's built-in objects and functions. Then, Section A.2 groups LensLab's objects and functions by category. Finally, Section A.3 lists definitions for LensLab's objects and functions. Since, these definitions are derived from LensLab's help messages, you can also use the Function Browser to examine these definitions on line.
A.1 Listing of LensLab Objects and Functions
Here is an alphabetical listing of LensLab's built-in objects and functions.
ABCDMatrix ConjugateReflection FocalPoint
ABCDOptic CreatedRay FreezeIncrement
Absorption CreateRay Fresnel
Acetone CreateRefractiveIndexModel FresnelSymmetry
ActiveComponent CrossRendering Front
AddTo CrownGlass FrontView
AffectedSurfaces CurvatureDirection Full3D
Air CustomBaffle FunctionCenter
AllCreatedRays CustomBeamSplitter FusedSilica
AllDeflections CustomBranchingSurface
AllSurfaces CustomGeneticFunction GenerationLimit
AuthorizeNewOptions CustomGratingSurface GenerationNumber
CustomIntrinsicSurface Glycerine
Back CustomLens GraphicalOutput
Baffle CustomLensSurface GraphicDesign
BaffleSpan CustomMirror GratingMirror
BaffleWithHole CustomScreen GratingSurface
BaK1 CylinderGraphic GridOfRays
BallLens CylindricalBaffle GroupDescription
BallMirror CylindricalLens
BeamSplitter CylindricalLensSurface Hole
BeamSplitterCube CylindricalMirror HoleBoundary
BiConcaveCylindricalLens CylindricalScreen HoleOffset
BiConcaveLens CylindricalShape HorizontalSymmetry
BiConvexCylindricalLens
BiConvexLens DeflectionFunction IncrementComponentNumber
BirthPoint Deflections IndexFunction
BK7 DeflectionNumber InsideMedium
Black DesignWaveLength Intensity
Boundary DiffractedOrders InternalDirectionChange
BoxGraphic Diffraction IntersectionNumber
BranchingSurface DiffractionMismatch IntrinsicCylindricalSurface
BuildComponent DiffractionOrderNumber IntrinsicMedium
DovePrism IntrinsicSphericalSurface
ChangedComponent DovePrismMirrored IntrinsicSurface
ChangedRay DrawSystem
ChangedSurface JacobianMatrix
ChangeSurfaceIncrement EdgeRendering
ChangeSurfacePosition EfficiencyFunction LaSF9
CircleGraphic Empty LastSlot
CircleOfRays EntranceCoordinates LensDoublet
ClearBoundary EscapeComponent LensSurface
ColorView Ethanol LensTriplet
Component Ether LineOfRays
ComponentDescription ExitPosition LineStyle
ComponentFoundation
ComponentIncrement Fiber Mesh
ComponentMedium Fill, FillStyle Methanol
ComponentNumber FindIntensity Mirror
ComponentRendering FindFocus MirrorSpan
ConeOfRays FindFocusFast MismatchCutOff
Confine FindSpotSize ModelIntensity
ConfinedNumber FinishPoint ModelRayColor
ConfinedPaths FirstSlot ModelRefractiveIndex
ConfinedPosition FocalLength ModelSurfaceShape
ConjugateMirror FocalPlaneTilt ModulationTransferFunction
Listing of objects and functions, part one.
MoveDirected RainbowOfRays SphericalShape
MoveDirected3D Ray SpotPosition
MoveLinear RayChoice SpotSize
MoveLinear3D RayCurve StandardGraphics
MoveReflected RayEnd StartPoint
MoveReflected3D RayLabel Surface
Move, Move3D RayLength SurfaceBoundary
RayLineRGB SurfaceCenter
NewAuthorizedOptions RayLineStyle SurfaceCoordinates
NewRay RayLineThickness SurfaceFunction
NotFirstSlot RayPointRGB SurfaceIncrement
NotLastSlot RayPointSize SurfaceLabel
NumberOfRays RayPointStyle SurfaceNormalCalculations
Numeric RaySelect SurfaceNormalFunction
RayStart SurfaceNormalMatrix
Off RayTilt SurfaceNumber
OffAxis ReadRays SurfaceRayIntersections
OpenSide RectangleGraphic SurfaceRendering
OpticalLength Reflectance Surfaces
OpticalMedium Reflection SurfaceValue
OpticalSystem Refraction SwitchDirectionOnReflection
OriginalRay RefractiveIndex SwitchIntrinsicMedium
OtherShape RenderedPolygons
OutputType RenderedSurfaces TakeFrom
RenderSystem Temperature
PAN RenderType ThickLens
ParabolicLensSurface ReplaceFor ThinBaffle
ParabolicMirror Resonate ThinBeamSplitter
ParabolicMirrorWithHole ReverseMigration ThinLens
ParabolicShape RodLens ThinMirror
PinHole RodMirror ThinParabolicMirror
Pipe RotationMatrix ThinSphericalMirror
PlanarShape RunningCommentary ThresholdIntensity
PlanoConcaveCylindricalLens TiltVector
PlanoConcaveLens Sapphire Toluene
PlanoConvexCylindricalLens Screen TopView
PlanoConvexLens ScreenPosition Trace
PlotType SF11 TranslationVector
PMMA SF5 Transmission
Polarization ShadowProject Transmittance
PolygonalMirror ShowRange Turpentine
PolygonGraphic ShowSystem TwistAngle
Prism SideOfObject
PropagateSystem SideView Unconfine
PS Silicon UnconfinedPosition
PVA Sketch UnconfinedPath
PVB SK11
PVF Solid Vacuum
PVP SphereGraphic VerticalSymmetry
Pyrex SphericalBaffle
SphericalGratingMirror Water
Quartz SphericalLens WaveLength
QuickTrace SphericalLensSurface WedgeOfRays
SphericalMirror Window
RadialSymmetry SphericalScreen Wire
ZincSelenide
Listing of objects and functions, part two.
A.2 Listing of LensLab Objects Grouped by Category
Component Functions
ABCDOptic CylindricalLensSurface PinHole
CylindricalMirror Pipe
Back CylindricalScreen PlanoConcaveCylindricalLens
Baffle PlanoConcaveLens
BaffleSpan DesignWaveLength PlanoConvexCylindricalLens
BaffleWithHole DovePrism PlanoConvexLens
BallLens DovePrismMirrored PolygonalMirror
BallMirror PolygonGraphic
BeamSplitter EdgeRendering Prism
BeamSplitterCube Empty
BiConcaveCylindricalLens RectangleGraphic
BiConcaveLens Fiber RodLens
BiConvexCylindricalLens Fill RodMirror
BiConvexLens Front
Boundary Screen
BoxGraphic GratingMirror SphereGraphic
BranchingSurface ce GratingSurfa SphericalBaffle
SphericalGratingMirror
CircleGraphic InsideMedium SphericalLens
ClearBoundary IntrinsicCylindricalSurfaceSphericalLensSurface
ComponentMedium IntrinsicSphericalSurface SphericalMirror
ConjugateMirror IntrinsicSurface SphericalScreen
CrossRendering SurfaceLabel
CurvatureDirection LensDoublet SurfaceRendering
CustomBaffle LensSurface
CustomBeamSplitter LensTriplet ThickLens
CustomBranchingSurface ThinBaffle
CustomGratingSurface Mesh ThinBeamSplitter
CustomIntrinsicSurface Mirror ThinLens
CustomLens MirrorSpan ThinMirror
CustomLensSurface ThinParabolicMirror
CustomMirror OpenSide ThinSphericalMirror
CustomScreen Trace
CylinderGraphic ParabolicLensSurface
CylindricalBaffle ParabolicMirror Window
CylindricalLens ParabolicMirrorWithHole
Functions and related options that generate Component objects.
Ray Sources
CircleOfRays GridOfRays NumberOfRays Ray
ConeOfRays LineOfRays RainbowOfRays WedgeOfRays
Ray-source functions and related options that generate Ray objects.
Model Functions
Black ModelRayColor
CreateRefractiveIndexModel ModelRefractiveIndex
IndexFunction ModelSurfaceShape
ModelIntensity
Model functions and related options.
Optical Media
Acetone Ether PMMA Pyrex SK11 Water
Air FusedSilica PS Quartz Suprasil ZincSelenide
BaK1 Glycerine PVA Sapphire Toluene
BK7 LaSF9 PVB SF11 Turpentine
CrownGlass Methanol PVF SF5 Ultran30
Ethanol PAN PVP Silicon Vacuum
Labels for optical materials.
Ray-Tracing Engine
After GraphicalOutput RaySelect
Before LineStyle ReadRays
Black ModulationTransferFunction RenderSystem
ColorView MoveDirected RunningCommentary
Component MoveDirected3D ScreenPosition
CreateRay MoveLinear ShadowProject
DrawSystem MoveLinear3D ShowRange
FindIntensity MoveReflected ShowSystem
FindFocus MoveReflected3D SideOfObject
FindFocusFast Move, Move3D SideView
FindSpotSize OpticalSystem SpotPosition
FocalLength OutputType SpotSize
FocalPlaneTilt PlotType StandardGraphics
FocalPoint PropagateSystem Surface
FrontView QuickSurfaceSort ThresholdIntensity
Full3D Ray TopView
GenerationLimit RayChoice TwistAngle
Functions and options related to the ray-tracing engine portion of the package.
Parameters of Ray
BirthPoint RayLabel
ComponentIncrement RayLength
ComponentNumber RayLineRGB
ConfinedNumber RayLineStyle
ConfinedPosition RayLineThickness
DiffractionMismatch RayPointRGB
DiffractionOrderNumber RayPointSize
FreezeIncrement RayPointStyle
GenerationNumber RayStart
HoleBoundary RayTilt
HoleOffset RefractiveIndex
Intensity RotationMatrix
InternalDirectionChange SurfaceBoundary
IntersectionNumber SurfaceCoordinates
IntrinsicMedium SurfaceIncrement
NewAuthorizedOptions SurfaceNormalMatrix
OffAxis SurfaceNumber
OpticalLength Temperature
OpticalMedium UnconfinedPath
Polarization UnconfinedPosition
RayCurve WaveLength
RayEnd
Parameters of the Ray object.
Parameters of Component
AddTo OriginalRay
AllCreatedRays OtherShape
ChangedComponent ParabolicShape
ChangedRay PlanarShape
ChangedSurface RenderedSurfaces
Component RenderedPolygons
ComponentDescription RenderType
ConfinedPaths ReplaceFor
CreatedRay RotationMatrix
CylindricalShape SphericalShape
DeflectionFunction SurfaceBoundary
DeflectionNumber SurfaceCenter
Deflections SurfaceFunction
Empty SurfaceLabel
EntranceCoordinates SurfaceNormalFunction
Fill SurfaceNumber
FinishPoint SurfaceRayIntersections
HoleBoundary Surfaces
HoleOffset SurfaceValue
JacobianMatrix TakeFrom
Mesh Trace
NewRay TranslationVector
Numeric
Parameters of the Component object.
Genetic Building Blocks
ABCDMatrix EfficiencyFunction PlanarShape
Absorption EscapeComponent
ActiveComponent RadialSymmetry
AddTo FirstSlot Reflectance
AffectedSurfaces FreezeIncrement Reflection
AllCreatedRays Fresnel Refraction
AllDeflections FresnelSymmetry ReplaceFor
AllSurfaces FunctionCenter Resonate
AuthorizeNewOptions ReverseMigration
GraphicDesign
BuildComponent GroupDescription Sketch
Solid
ChangedComponent Hole SphericalShape
ChangedRay HorizontalSymmetry SurfaceCenter
ChangedSurface SurfaceLabel
ChangeSurfaceIncrement IncrementComponentNumber SurfaceNormalCalculations
ChangeSurfacePosition SurfaceRayIntersections
ComponentFoundation LastSlot SurfaceRendering
ComponentRendering SwitchDirectionOnReflection
Confine MismatchCutOff SwitchIntrinsicMedium
ConjugateReflection ModelSurfaceShape
CreatedRay TakeFrom
CrossRendering NewRay Temperature
CustomGeneticFunction NotFirstSlot Transmission
CylindricalShape NotLastSlot Transmittance
Numeric
DeflectionFunction Unconfine
DiffractedOrders Off
Diffraction OffAxis VerticalSymmetry
DiffractionMismatch OriginalRay
DiffractionOrderNumber OtherShape Wire
EdgeRendering ParabolicShape
Genetic building blocks and related options comprising LensLab's component-structuring language.
A.3 Description of LensLab Objects and Functions
ABCDMatrix
ABCDMatrix[component, {{a,b},{c,d}}, options] is a genetic building block that uses DeflectionFunction[ABCDMatrix, {{a,b},{c,d}}, {functionvariables}] to produce scattered rays according to the ABCD matrix law.
See also: ExitPosition, ThinLens, ThickLens, and ABCDOptic.
ABCDOptic
ABCDOptic[abcdmatrix, aperture, thickness, options] denotes a two-surfaced planar component that scatters rays using the abcdmatrix specified with an entrance plane and an exit plane separated by the indicated thickness.
The thickness parameter specifies either a number or a surface function of two variables. ABCDOptic is intended for simple two-dimensional ray-tracing procedures. See also: ABCDMatrix, ThinLens, and ThickLens.
Absorption
Absorption[component, options] is a genetic building block that creates a ray-tracing function to absorb the intensity of rays hitting the optical surface.
Acetone
Acetone specifies the use of an acetone liquid medium at 20 degrees Celsius.
The refractive index model for Acetone is most suitable for the wavelength range of .43 microns to .66 microns. Acetone has a density of 0.791, relative to the density of water.
ActiveComponent
ActiveComponent -> True is an option that designates whether the component contains active surfaces where rays can interact.
ActiveComponent -> False is used when constructing inactive components made up of only graphical information. ActiveComponent is an option of ComponentFoundation.
AddTo
AddTo -> objecttypes is a rule within Deflections of Component that specifies the types of objects that receive the new parameter results.
AddTo does not replace the entire contents of the object but instead includes the new results with the old object contents. Possible object types of AddTo include NewRay, ChangedRay, OriginalRay, CreatedRay, AllCreatedRays, ChangedSurface, and ChangedComponent. Note that the OriginalRay object type is rarely changed. Modifications to the past Ray object type are generally made using ChangedRay instead. AddTo can take a list of object types, but is often a single value. See also: DeflectionFunction, TakeFrom, and ReplaceFor.
AffectedSurfaces
AffectedSurfaces is an option of BuildComponent that specifies which surfaces of Component are to be affected by a newly introduced ray-tracing function.
AffectedSurfaces carries a list of numbers and word values that denotes the surfaces inheriting a new ray-tracing function trait. As an example, AffectedSurfaces -> {1} specifies that the first surface function slotted in Surfaces is to inherit the new ray-tracing function trait. See also: AllDeflections, AllSurfaces, FirstSlot, NotFirstSlot, LastSlot, and NotLastSlot.
After
After is a value of SideOfObject.
Air
Air denotes the use of an air medium at 0 degrees Celsius and 760 millimeters Hg.
The refractive index model for Air is most suitable for the wavelength range of .43 microns to .66 microns.
AllCreatedRays
AllCreatedRays is a value of TakeFrom, AddTo, and ReplaceFor and specifies that all Ray objects returned by previous ray-tracing function calculations are passed to or returned from DeflectionFunction.
If AllCreatedRays is listed by TakeFrom, then AllCreatedRays is included as an input to the ray-tracing function calculation. If AllCreatedRays is listed by AddTo, then the elements of AllCreatedRays replace the previous AllCreatedRays object. See also: NewRay, CreatedRay, ChangedRay, OriginalRay, AddTo, and TakeFrom.
AllDeflections
AllDeflections is a value of AffectedSurfaces that denotes that the added genetic ray-tracing function slot number is interlaced throughout the listing of DeflectionNumber values.
In general, ray-tracing function traits are added to a surface by appending the ray-tracing function position (within Deflections) to the affected DeflectionNumber value within ConfinedPaths. See also: AllSurfaces, FirstSlot, NotFirstSlot, LastSlot, NotLastSlot, and AffectedSurfaces.
AllSurfaces
AllSurfaces is a value of AffectedSurfaces of BuildComponent that specifies that the added ray-tracing function slot number is appended to all DeflectionNumber values.
In general, ray-tracing function traits are added to a surface by appending the ray-tracing function position (within Deflections) to the affected DeflectionNumber value within ConfinedPaths. See also: AllDeflections, FirstSlot, NotFirstSlot, LastSlot, NotLastSlot, and AffectedSurfaces.
AuthorizeNewOptions
AuthorizeNewOptions[component, optionlabels, options] is a genetic building block used for adding new Ray option labels that are authorized to be carried within Ray objects across multiple ray/surface generations.
Ray parameters created by ray-tracing functions that are not listed in Options[Ray] or included in the NewAuthorizedOptions Ray object parameter are removed after the following surface encounter. Contents of optionlabels are added to NewAuthorizedOptions. See also: NewAuthorizedOptions.
Back
Back is a value of CurvatureDirection.
Baffle
Baffle[aperture, thickness, options] denotes a planar, double-surfaced component having two absorbing sides.
Baffle is created with its first surface centered about the origin and its second surface positioned down the positive x axis. The aperture parameter may specify a circle, rectangle, or polygon depending on the number and type of elements listed by it.
BaffleSpan
BaffleSpan[{x1, y1}, {x2, y2}, thickness, height, options] is similar to Baffle except that its size and placement are specified by the two two-dimensional coordinates {x1, y1} and {x2, y2}.
BaffleSpan spans the specified coordinates and has the specified height.
BaffleWithHole
BaffleWithHole[aperture, holeaperture, thickness, options] designates a thick planar component with a hole created in its middle.
BaffleWithHole is created with its first surface centered about the origin and its second surface positioned down the positive x axis. The aperture and holeaperture arguments may denote a circle, rectangle, or polygon depending on the number and type of elements listed by it.
BaK1
BaK1 specifies the use of the BaK1 glass medium.
The refractive index model for BaK1 is most suitable for the wavelength range of .35 microns to 2.3 microns.
BallLens
BallLens[diameter, options] denotes an entire spherical refractive component.
BallLens is created with its first surface centered about the origin and its second surface positioned down the x axis.
BallMirror
BallMirror[radius, options] denotes an entire spherical mirror.
BallMirror is created with a surface positioned at the origin and its diameter positioned down the x axis.
BeamSplitter
BeamSplitter[{percentreflected, percenttransmitted}, aperture, thickness, options] designates a planar, double-surfaced component that has a partially reflective/refractive side and a refractive side.
BeamSplitterCube is created with its splitting surface centered about the origin and its second surface positioned down the positive x axis. The aperture parameter may designate a circle, rectangle, or polygon depending on the number and type of elements listed by it.
BeamSplitterCube
BeamSplitterCube[{percentreflected, percenttransmitted}, side, options] refers to a solid cube beam splitter that has a partially reflective/refractive surface across its diagonal.
BeamSplitter is created with one face centered about the origin and the opposite face positioned down the positive x axis. The side parameter specifies the edge dimension of a cube.
Before
Before is a value of SideOfObject.
BiConcaveCylindricalLens
BiConcaveCylindricalLens[focallength, aperture, thickness, options] refers to a lens with two equally concave cylindrical surfaces.
BiConcaveCylindricalLens is created with its first surface centered about the origin and its second surface positioned down the positive x axis. The aperture parameter may specify a circle, rectangle, or polygon depending on the number and type of elements listed by it.
BiConcaveLens
BiConcaveLens[focallength, aperture, thickness, options] refers to a lens with two equally concave spherical surfaces.
BiConcaveLens is created with its first surface centered about the origin and its second surface positioned down the positive x axis. The aperture parameter may specify a circle, rectangle, or polygon depending on the number and type of elements listed by it.
BiConvexCylindricalLens
BiConvexCylindricalLens[focallength, aperture, thickness, options] designates a lens with two equally convex cylindrical surfaces.
BiConvexCylindricalLens is created with its first surface centered about the origin and its second surface positioned down the positive x axis. The aperture parameter may denote a circle, rectangle, or polygon depending on the number and type of elements listed by it.
BiConvexLens
BiConvexLens[focallength, aperture, thickness, options] designates a lens with two equally convex spherical surfaces.
BiConvexLens is created with its first surface centered about the origin and its second surface positioned down the positive x axis. The aperture parameter may denote a circle, rectangle, or polygon depending on the number and type of elements listed by it.
BirthPoint
BirthPoint is a rule of Ray that gives the three-dimensional spatial coordinates of the original light source.
BK7
BK7 indicates the use of the BK7 glass medium.
The refractive index model for BK7 is most suitable for the wavelength range of .35 microns to 2.3 microns.
Black
Black is a value used by the ColorView parameter where ColorView -> Black causes the rays to be rendered in black.
See also: ModelRayColor, ColorView, and RayLineRGB.
Boundary
Boundary[boundaryparameters] designates a rectangular box that absorbs rays intercepted by its walls.
There are three methods for specifying boundaryparameters: Boundary[{x1, y1, z1}, {x2, y2, z2}] uses the coordinates of top and bottom opposite corners of a rectangular box, Boundary[side] assumes a cube boundary, and Boundary[aside, bside] assumes a three-dimensional box that has a length specified by aside, a width specified by bside, and a height specified by bside. Optical systems usually have at least one boundary component listed at the end. Boundary is not rendered. See also: ClearBoundary.
BoxGraphic
BoxGraphic[{xmin, ymin, zmin}, {xmax, ymax, zmax}, options] specifies a three-dimensional rectangular box with its diagonally opposite corners placed at {xmin, ymin, zmin} and {xmax, ymax, zmax}.
BoxGraphic does not interact with rays in any way, but can be listed with active components or with other graphic components for creating passive three-dimensional shapes.
BranchingSurface
BranchingSurface[aperture, componentincrement, options] refers to a planar component that causes intersecting rays to branch to a different component position relative to the list position held by BranchingSurface.
BranchingSurface is usually employed after a beam-splitter-type component, in order to redirect split rays down a different component-listing pathway, thereby shortening ray-trace calculation times. BranchingSurface is not visually rendered, but can be used to sample the ray/surface positions. BranchingSurface is created with its surface centered about the origin. The aperture parameter may designate a circle, rectangle, or polygon depending on the number and type of elements listed by it.
BuildComponent
BuildComponent[objectset, options] synthesizes genetic traits from several Component objects into a single object.
While BuildComponent is usually used by genetic building block functions, BuildComponent may also be used as an external function to combine several Component objects into a single Component unit. See also: GroupDescription and AffectedSurfaces.
ChangedComponent
ChangedComponent is a value of TakeFrom, AddTo, and ReplaceFor and specifies that the Component object may be passed to or returned from DeflectionFunction.
ChangedComponent contains all of the Component object's contents, including changed parameters. The contents of ChangedComponent are used to replace the original Component object. See also: ChangedSurface, AddTo, and TakeFrom.
ChangedRay
ChangedRay is a value of TakeFrom, AddTo, and ReplaceFor and indicates that the modified Ray objects returned by previous ray-tracing function calculations are passed to or returned from the current DeflectionFunction.
ChangedRay results contain only modifications made to the original ray entering the surface. Note that OriginalRay contains the unmodified ray parameters entering the surface. See also: NewRay, CreatedRay, OriginalRay, AddTo, and TakeFrom.
ChangedSurface
ChangedSurface is a value of TakeFrom, AddTo, and ReplaceFor and specifies that a slotted element from Surfaces may be passed to or returned from DeflectionFunction.
Normally the contents indicated by ChangedSurface is slotted inside the Surfaces rule of Component, replacing the slot's previous contents. See also: ChangedComponent, AddTo, and TakeFrom.
ChangeSurfaceIncrement
ChangeSurfaceIncrement[component, newincrement, options] is a genetic building block that changes the value of SurfaceIncrement.
ChangeSurfacePosition
ChangeSurfacePosition[component, newsurfaceposition, options] is a genetic building block that changes ConfinedPosition to a new value indicated by newsurfaceposition.
CircleGraphic
CircleGraphic[aperture, options] relates to a two-dimensional circle, ellipse, rectangle, or polygon lying in the horizontal x-y plane, depending on the designation of aperture.
CircleGraphic does not interact with rays in any way, but can be listed with active components or with other graphics components for creating passive three-dimensional shapes. The aperture parameter may designate a circle, rectangle, or polygon depending on the number and type of elements listed by it.
CircleOfRays
CircleOfRays[radius, options] creates a set of rays, starting in the y-z plane, equally distributed on the surface of a cylinder placed symmetrically about the positive x axis.
See also: NumberOfRays.
ClearBoundary
ClearBoundary[boundaryparameters] refers to a rectangular box that terminates rays intercepted by its walls.
ClearBoundary does not set the value of Intensity to zero, and therefore is useful for defining modular optical subunits to be pieced into a larger system. There are three methods for specifying boundaryparameters: ClearBoundary[{x1, y1, z1}, {x2, y2, z2}] uses the coordinates of top and bottom opposite corners of a rectangular box, ClearBoundary[side] assumes a cube boundary, and ClearBoundary[aside, bside] assumes a three-dimensional box that has a length specified by aside, a width specified by bside, and a height specified by bside. Optical systems usually have at least one boundary component listed at the end. ClearBoundary is not rendered. See also: Boundary.
ColorView
ColorView -> rayparameterlabel is an option of DrawSystem and ShowSystem used to render rays with colors specified according to rayparameterlabel.
ColorView gives rayparameterlabel to ModelRayColor for determining ray colors. As examples: you can use ColorView -> Black to render the rays in black; ColorView -> WaveLength attempts to match the color of the ray to the wavelength; ColorView -> Automatic displays the initial RGBColor values assigned for the RayLineRGB ray parameter; ColorView -> rayparameterlabel for any rayparameterlabel other than WaveLength attempts to colorize each ray segment according to the rank of the rayparameterlabel value within the possible range of rayparameterlabel values, for the displayed rays selected by RayChoice and ShowRange. If more than one rayparameterlabel is indicated or the parameter contains a vector of three elements, then each of three values are assigned to the red, green, and blue colors. ColorView may also point to a list of three numbers representing the red, green, and blue colors used. See also: ModelRayColor, Black, and RayChoice.
Component
Component[genetic traits] is an object made up of genetic traits that define the properties of an optical component.
These genetic traits describe the ray-tracing behavior as well as the rendering of Component. Component may actively interact with rays, or may be purely graphical in content. Any of the Move functions may be nested around Component to change its position and orientation.
ComponentDescription
ComponentDescription -> {descriptionlist} is a rule within Component, made up of a description that identifies the optical component and denotes the genetic building blocks used in the creation of Component.
ComponentFoundation
ComponentFoundation[{surfacevalue, surfacevalue}, aperture, thickness, objectname, options] and ComponentFoundation[surfacevalue, aperture, objectname, options] create double-surfaced or single-surfaced object foundations for building up a component.
The aperture parameter may indicate a circle, rectangle, or polygon depending on the number and type of elements listed by it. The surfacevalue parameters usually specify the surface curvature. The types of surface shapes used in ComponentFoundation are given by the SurfaceLabel option. SurfaceLabel identifies the surface types as either SphericalShape, ParabolicShape, PlanarShape, OtherShape, or a user-defined shape label. SphericalShape designates a spherical radius of curvature for surfacevalue. ParabolicShape specifies a parabolic focal length for surfacevalue. Surfaces can be set to planar shapes either by using Infinity in surfacevalue or by using PlanarShape in SurfaceLabel. Users can add new surface definitions by assigning new functions to ModelSurfaceShape with an accompanying SurfaceLabel value as an argument. Otherwise, user-defined surface functions can be directly specified by selecting SurfaceLabel -> OtherShape and using three-dimensional pure functions of two variables in surfacevalue. Component objects are built by nesting ComponentFoundation at the center of the various other genetic building blocks that give additional attributes to the component. See also: OffAxis, ActiveComponent, FunctionCenter, and ModelSurfaceShape.
ComponentIncrement
ComponentIncrement -> value is a rule of Ray that forces a change in the next generated Ray object's component target.
ComponentIncrement -> Automatic causes Ray to proceed in the same direction through the component listing according to SurfaceIncrement, a related parameter. ComponentIncrement -> integer forces an immediate change of the component targeted by Ray, by the amount given by integer. As an example, ComponentIncrement -> -2, would cause -2 to be subtracted from the ComponentNumber parameter in Ray. The ComponentIncrement parameter reverts back to the Automatic setting after one propagation iteration. See also: ConfinedPosition, ComponentNumber, IntersectionNumber, GenerationNumber, ConfinedNumber, and SurfaceNumber.
ComponentMedium
ComponentMedium is an option of component functions that indicates the material type used in the fabrication of the component.
This label is used by ModelRefractiveIndex in calculating the RefractiveIndex parameter, but can be used by other material-related models as well as ModelIntensity. ComponentMedium is an option of all refractive components such as the Refraction genetic building block. See also: IntrinsicMedium, OpticalMedium, RefractiveIndex, and ModelRefractiveIndex.
ComponentNumber
ComponentNumber is a rule of Ray that indicates the slot position of the affected component encountered by the ray segment.
SurfaceNumber, ComponentNumber, ConfinedPosition, UnconfinedPosition, IntersectionNumber, GenerationNumber, and ConfinedNumber are all pointer parameters stored in Ray.
ComponentRendering
ComponentRendering[component, options] creates the genetic information for the rendering of the component.
GraphicDesign is an option to ComponentRendering that characterizes the component rendering. GraphicDesign has possible five styles. These are Automatic, Sketch, Wire, Solid, and Off. These styles are also options of ComponentRendering that characterize the rendering at a primitive level and are further defined with SurfaceRendering, EdgeRendering, and CrossRendering, although EdgeRendering does not apply to single-surfaced components. The component rendering can be controlled either by giving separate rendering commands for each suboption or by using the GraphicDesign option. See also: GraphicDesign, SurfaceRendering, EdgeRendering, and CrossRendering.
ConeOfRays
ConeOfRays[conicangle, options] creates a set of rays, starting at the origin of the coordinate system, equally distributed on the surface of a cone placed symmetrically about the positive x axis.
See also: NumberOfRays.
Confine
Confine[listofcomponents, entrancesurfacenumbers, options] is a genetic building block used to encapsulate the list of Component objects into a single Component object that allows rays to enter the component only through surfaces specified by entrancesurfacenumbers.
Confine is used in conjunction with the Resonate genetic building block to create arrays of multiple-surfaced elements, such as fiber optic bundles. Confine passes options to BuildComponent. See also: Resonate and Unconfine.
ConfinedNumber
ConfinedNumber is a rule of Ray that gives the present slot position of the outermost nested element within ConfinedPaths of Component.
SurfaceNumber, ComponentNumber, ConfinedPosition, UnconfinedPosition, IntersectionNumber, GenerationNumber, and ConfinedNumber are all pointer parameters stored in Ray.
ConfinedPaths
ConfinedPaths is a rule of Component that indicates a nested list of rules that define the confined propagation behavior of a ray migrating through the component.
ConfinedPaths lists all of the confined migration pathways available for the impinging ray. ConfinedPaths contains lists including SurfaceNumber and DeflectionNumber rules. See also: ConfinedNumber.
ConfinedPosition
ConfinedPosition is a rule of Ray that gives the present slot position of the innermost nested element within ConfinedPaths of Component.
SurfaceNumber, ComponentNumber, ConfinedPosition, UnconfinedPosition, IntersectionNumber, GenerationNumber, and ConfinedNumber are all pointer parameters stored in Ray.
ConjugateMirror
ConjugateMirror[aperture, options] refers to a planar, phase-conjugate reflective mirror.
ConjugateMirror is created with its surface centered about the origin. The aperture parameter may specify a circle, rectangle, or polygon depending on the number and type of elements listed by it.
ConjugateReflection
ConjugateReflection[component, options] is a genetic building block that uses DeflectionFunction[Reflection, {reflectionvariables}] to produce conjugate-reflected rays from optical surfaces.
CreatedRay
CreatedRay is a value of TakeFrom, AddTo, and ReplaceFor and denotes that the Ray objects created by previous ray-tracing function calculations are passed to or returned from DeflectionFunction.
If CreatedRay is listed by TakeFrom, then CreatedRay is sequentially fed as an input to the ray-tracing function, with each sequential result creating a different output. The elements of CreatedRay are inserted into the previous Ray objects generated at this surface if CreatedRay is listed by AddTo. See also: ChangedRay, AllCreatedRays, and OriginalRay.
CreateRay
CreateRay[Ray[sequenceofrules]] is a function that takes a Ray object and fills in any essential rules missing from its rule parameter sequence by taking default values from Options[Ray].
CreateRay is applied automatically to all new Ray objects before being moved or propagated, allowing the user to begin with the empty Ray[ ] object as an input object to the system. Check Options[Ray] for default settings.
CreateRefractiveIndexModel
CreateRefractiveIndexModel[datalist, materiallabel] creates a wavelength-dependent model that is fitted to the data according to the standard refractive index power series formula, used by IndexFunction.
Note that the materiallabel is a character string identifier used for the purposes of referencing the particular material within LensLab. The datalist should have the following format: {{wavelength1, index1}, {wavelength2, index2}, {wavelength3, index3}, ...}. Ideally, there should be at least six data points spanning the wavelength range of interest. CreateRefractiveIndexModel plots the data points against the fitted function, revealing model deficiencies. Finally, CreateRefractiveIndexModel prints out a command line to be used for defining the refractive model in LensLab. This output can then be pasted into an input cell for building a user-defined material library. See also: IndexFunction, ModelRefractiveIndex, and ModelIntensity.
CrossRendering
CrossRendering is an option of ComponentRendering that designates the graphical rendering of a cross that bridges the interior of a double-sided component and forms crossed lines on a single-sided component.
CrossRendering may take the values: Fill, Trace, Mesh, Empty, and {Fill, Mesh}. See also: ComponentRendering, EdgeRendering, SurfaceRendering, and RenderType.
CrownGlass
CrownGlass designates the use of a crown glass medium.
The refractive index model for CrownGlass is most suitable for the wavelength range of .44 microns to .66 microns.
CurvatureDirection
CurvatureDirection is an option of convex and concave lenses that specifies which side of the created lens is curved as indicated by word values Front or Back.
If Front is used, then the curved side is placed at the origin and the planar side is created one thickness position down the x axis.
CustomBaffle
CustomBaffle[surfacefunction, aperture, objectlabel, options] designates a single-surfaced, light-absorbing component that has a user-defined surfacefunction, and a user-named objectlabel.
The component shape, given by surfacefunction, is specified either by a function of two variables or by Function[0.] for planar surfaces. CustomBaffle is created with its surface centered about the origin. The aperture parameter may designate a circle, rectangle, or polygon depending on the number and type of elements listed by it.
CustomBeamSplitter
CustomBeamSplitter[surfacefunction, {percentreflected, percenttransmitted}, aperture, objectlabel, options] denotes a single-surfaced component that partially reflects and partially transmits rays of light that has a user-defined surfacefunction, and a user-named objectlabel.
The component shape, given by surfacefunction, is specified either by a function of two variables or by Function[0.] for planar surfaces. ThinBeamSplitter is created with its splitting surface centered about the origin. The aperture parameter may denote a circle, rectangle, or polygon depending on the number and type of elements listed by it.
CustomBranchingSurface
CustomBranchingSurface[surfacefunction, aperture, componentincrement, objectlabel, options] designates a component that causes intersecting rays to branch to a different component position relative to the list position held by CustomBranchingSurface.
The component shape, given by surfacefunction, is specified either by a function of two variables or by Function[0.] for planar surfaces. CustomBranchingSurface is usually employed after a beam-splitter-type component, in order to redirect split rays down a different component-listing pathway, thereby shortening ray-trace calculation times. CustomBranchingSurface is not visually rendered, but can be used to sample the ray/surface positions. CustomBranchingSurface is created with its surface centered about the origin. The aperture parameter may specify a circle, rectangle, or polygon depending on the number and type of elements listed by it.
CustomGeneticFunction
CustomGeneticFunction[component, raydeflectfunction, functionlabel, options] is a genetic building block that allows the user to create custom ray-tracing functions.
CustomGratingSurface
CustomGratingSurface[surfacefunction, gratingfunction, aperture, objectlabel, options] designates a diffractive component that splits incoming rays into multiple diffracted orders according to the gratingfunction parameter and the DiffractedOrders option.
CustomGratingSurface refers to a single-surfaced component that has a user-defined surfacefunction, and a user-named objectlabel. The component shape, given by surfacefunction, is specified either by a function of two variables or by Function[0.] for planar surfaces. The gratingfunction parameter specifies a grating vector either as a one-dimensional value, a two-dimensional list of values, a three-dimensional list of values, or a three-dimensional Function[{horizontal, vertical, perp}], where horizontal, vertical, and perp specify the indicated grating directions with the grating surface initially oriented parallel to the y-z plane. These vector quantities have units of spatial frequency and are given in line pairs per millimeter. A single number used in the grating parameter indicates a uniformly distributed grating vector pointing in the direction of the y axis. A list of two numbers relates to a uniformly distributed grating vector whose direction lies within the surface plane. CustomGratingSurface returns DiffractionMismatch and DiffractionOrderNumber as ray parameters. See also: EfficiencyFunction, GratingMirror, GratingSurface, and Diffraction.
CustomIntrinsicSurface
CustomIntrinsicSurface[surfacefunction, aperture, medium1, medium2, label, options] indicates a component that has a user-defined surfacefunction that models the refractive index boundary between two different refractive mediums.
The component shape, given by surfacefunction, is specified either by a function of two variables or by Function[0.] for planar surfaces. Refractive components encountered by rays that have previously encountered CustomIntrinsicSurface are refracted using the new IntrinsicMedium value given by IntrinsicSurface. CustomIntrinsicSurface uses parameters medium1 and medium2 to obtain intrinsic index functions on each side of the fluid boundary. If the ray is coming from an environment that has an intrinsic index given by medium1, then the value of IntrinsicMedium of the Ray object is replaced by medium2. Likewise, if the ray is coming from an environment that has an intrinsic index given by medium2, then the value of IntrinsicMedium of the Ray object is replaced by medium1. CustomIntrinsicSurface is created with its surface centered about the origin. The aperture parameter may indicate a circle, rectangle, or polygon depending on the number and type of elements listed by it. See also: the SwitchIntrinsicMedium genetic building block. IntrinsicSurface, IntrinsicSphericalSurface, and IntrinsicCylindricalSurface are all related components.
CustomLens
CustomLens[f1, f2, aperture, thickness, objectlabel, options] designates a double-surfaced refractive component having user-defined surface functions and a user-named objectlabel.
The surfaces are given by f1 and f2, where f1 and f2 are three-dimensional surface equations, and Function[0.] is used to specify planar surfaces. CustomLens is created with its first surface centered about the origin and its second surface positioned down the x axis. The aperture parameter may denote a circle, rectangle, or polygon depending on the number and type of elements listed by it.
CustomLensSurface
CustomLensSurface[surfacefunction, aperture, label, options] indicates a component that has a user-defined surfacefunction that models the refractive index boundary at a lens surface, and a user-named objectlabel.
CustomLensSurface is always used in combination with one or more additional LensSurface component types to create a complete lens object. The component shape, given by surfacefunction, is specified either by a function of two variables or by Function[0.] for planar surfaces. CustomLensSurface is created with its surface centered about the origin. The aperture parameter may indicate a circle, rectangle, or polygon depending on the number and type of elements listed by it. LensSurface, SphericalLensSurface, CylindricalLensSurface, ParabolicLensSurface, and CustomLensSurface are all related components.
CustomMirror
CustomMirror[surfacefunction, aperture, objectlabel, options] designates a single-surfaced mirror that has a user-defined surfacefunction, and a user-named objectlabel.
The component shape, given by surfacefunction, is specified either by a function of two variables or by Function[0.] for planar surfaces. CustomMirror is created with its surface centered about the origin. The aperture parameter may designate a circle, rectangle, or polygon depending on the number and type of elements listed by it.
CustomScreen
CustomScreen[surfacefunction, aperture, objectlabel, options] designates a component that intersects rays without disturbing them.
CustomScreen denotes a single-surfaced component that has a user-defined surfacefunction, and a user-named objectlabel. The component shape, given by surfacefunction, is specified either by a function of two variables or by Function[0.] for planar surfaces. Although CustomScreen is usually not rendered, the ray/screen intersections can be rendered by using the DrawSystem option, PlotType->Surface. CustomScreen is created with its surface centered about the origin. The aperture parameter may denote a circle, rectangle, or polygon depending on the number and type of elements listed by it.
CylinderGraphic
CylinderGraphic[diameter, length, options] refers to a three-dimensional cylinder with one circular center placed at the origin and its length directed down the positive x axis.
CylinderGraphic can be created with a partially opened side wall, using the option OpenSide from Options[CylinderGraphic]. OpenSide takes values {startangle, finishangle} or False. CylinderGraphic does not interact with rays in any way, but can be listed with active components or with other graphics components for creating passive three-dimensional shapes.
CylindricalBaffle
CylindricalBaffle[radius, aperture, options] refers to a cylindrical, single-surfaced component that absorbs light.
CylindricalBaffle is created with its surface centered about the origin. The aperture parameter may indicate a circle, rectangle, or polygon depending on the number and type of elements listed by it.
CylindricalLens
CylindricalLens[r1, r2, aperture, thickness, label, options] specifies a lens having cylindrical surfaces.
The radii of curvatures are specified by r1 and r2 where Infinity is used to specify planar surfaces. CylindricalLens is created with its first surface centered about the origin and its second surface positioned down the x axis. The aperture parameter may denote a circle, rectangle, or polygon depending on the number and type of elements listed by it.
CylindricalLensSurface
CylindricalLensSurface[radius, aperture, options] refers to a cylindrical component occupying half a complete cylinder that models the refractive index boundary at a lens surface.
CylindricalLensSurface is always used in combination with one or more additional LensSurface component types to create a complete lens object. CylindricalLensSurface is created with its surface centered about the origin. The aperture parameter may designate a circle, rectangle, or polygon depending on the number and type of elements listed by it. LensSurface, SphericalLensSurface, CylindricalLensSurface, ParabolicLensSurface, and CustomLensSurface are all related components.
CylindricalMirror
CylindricalMirror[radius, aperture, options] refers to a cylindrical single-surfaced mirror.
CylindricalMirror is created with its surface centered about the origin. The aperture parameter may specify a circle, rectangle, or polygon depending on the number and type of elements listed by it.
CylindricalScreen
CylindricalScreen[radius, aperture, options] designates a cylindrical component that intersects rays without disturbing them.
Although CylindricalScreen is usually not rendered, the ray/screen intersections can be rendered by using the DrawSystem option, PlotType->Surface. CylindricalScreen is created with its surface centered about the origin. The aperture parameter may specify a circle, rectangle, or polygon depending on the number and type of elements listed by it.
CylindricalShape
CylindricalShape is a value of SurfaceLabel within Component that denotes the cylindrical SurfaceFunction.
DeflectionFunction
DeflectionFunction -> functionlisting denotes the ray-tracing behavior at component surfaces.
DeflectionFunction is used both as a function and as a rule parameter label in Component. As a rule parameter label, DeflectionFunction -> functionlisting is contained within the Deflections rule of Component, where functionlisting can be in a direct or indirect form. In the direct form, the ray-tracing function is explicitly defined by the functionlisting. In this case, DeflectionFunction -> Function[#] specifies a pure function that uses in its input a list of objects specified by TakeFrom and returns its results to the objects specified by AddTo and ReplaceFor as a list of modified Ray or Component objects carrying only the ray or component parameters being modified. In the indirect form, the ray-tracing function is defined elsewhere, and only parameter values are passed, rather than the actual ray-tracing function definition in the functionlisting. In this case, DeflectionFunction -> {deflectionlabel, {inputparameters}} uses deflectionlabel as an identifying label to call up the appropriate external ray-tracing function. In the case of indirect ray-tracing function definitions, DeflectionFunction also plays a role as the external function head. Here, DeflectionFunction[deflectionlabel, inputparameters] = Function[#] denotes the external ray-tracing function identified by deflectionlabel. See also: Deflections, AddTo, ReplaceFor, and TakeFrom.
DeflectionNumber
DeflectionNumber is a rule embedded within ConfinedPaths of Component that gives the slot positions of ray-tracing functions listed in Deflections.
DeflectionNumber designates all ray-tracing functions used when a ray hits the given surface. Each ray-tracing function is called up in sequence with its list position in DeflectionNumber.
Deflections
Deflections -> {{functionelement1, functionelement2, ...}, {...}, ...} is a rule giving a list of elements that define the various functions used in tracing rays within a component.
Each functionelement of Deflections follows a standard format.
{TakeFrom -> {takefromobjects},
AddTo -> {addtoobjects},
DeflectionFunction -> functionlisting}
Here takefromobjects denotes the objects used by DeflectionFunction and addtoobjects specifies the objects given by DeflectionFunction. In some cases, ReplaceFor is used instead of AddTo.
DesignWaveLength
DesignWaveLength is an option of most built-in lens functions that indicates the design wavelength value used in calculating the lens curvatures from the focal length specified.
DiffractedOrders
DiffractedOrders is an option that indicates the number of diffracted orders generated during diffraction.
DiffractedOrders uses a list of ordered paired numbers that has a length of any size. The left number in each pair is an integer that specifies the diffracted order. The right number in each pair has a value between 0.0 and 1.0 that denotes the relative order strength. DiffractedOrders is an option of all grating components, as well as the Diffraction genetic building block. See also: Diffraction and GratingSurface.
Diffraction
Diffraction[component, gratingfunction, options] is a genetic building block that uses DeflectionFunction[Diffraction, {diffractionvariables}] to produce diffracted rays through optical surfaces according to the gratingfunction parameter and the DiffractedOrders option.
The gratingfunction parameter specifies a grating vector either as a one-dimensional value, a two-dimensional list of values, a three-dimensional list of values, or a three-dimensional Function[{horizontal, vertical, perp}], where horizontal, vertical, and perp specify the indicated grating directions with the grating surface initially oriented parallel to the y-z plane. These vector quantities have units of spatial frequency and are given in line pairs per millimeter. A single number used in the grating parameter refers to a uniformly distributed grating vector pointing horizontally with the surface. A list of two numbers indicates a uniformly distributed grating vector whose direction lies within the surface plane. An example of a functional grating parameter is Function[{0.,1500.,0.}], which creates a uniform grating vector having 1500 lines per millimeter, pointing horizontally down the y axis. Note that the grating direction is independent of the surface shape on which the grating is formed. The grating directon is initially defined with respect to an absolute spatial coordinate system, not the surface curvature direction. However, the grating direction is affected with Move rotations. Diffraction creates multiple diffracted rays according to the DiffractedOrders option. Diffraction returns DiffractionMismatch and DiffractionOrderNumber as ray parameters. See also: GratingSurface and GratingMirror.
DiffractionMismatch
DiffractionMismatch is a rule of Ray returned by diffractive components that denote the mismatch fraction of the diffracted ray.
The mismatch fraction is defined as the difference in magnitude between the incident wave vector and the diffracted wave vector divided by the magnitude of the incident wave vector. DiffractionMismatch can take on both positive and negative values. See also: EfficiencyFunction, MismatchCutOff, Diffraction, GratingSurface, and GratingMirror.
DiffractionOrderNumber
DiffractionOrderNumber is a rule of Ray returned by diffractive components and relates to the diffraction order of the ray.
See also: DiffractedOrders, Diffraction, GratingSurface, and GratingMirror.
DovePrism
DovePrism[width, slantlength, length, options] refers to a six-sided prism having trapezoidal dimensions on two sides and rectangular dimensions on the remaining sides.
DovePrism is commonly used as an image rotator. As the prism is rotated, the image that passes through it will rotate at twice the angular rate of the prism. DovePrism uses internal reflection off the hypotenuse face to rotate the image. The hypotenuse face of a dove prism is the face of the largest area. See also: DovePrismMirrored and Prism.
DovePrismMirrored
DovePrismMirrored[width, slantlength, length, options] is identical to DovePrism with the addition of a mirrored surface on the hypotenuse face.
DrawSystem
DrawSystem[objectset, options] takes an object set composed of a mixed list of Ray, Component, and OpticalSystem objects, propagates the rays through the components, and renders the ray tracing according to PlotType, RayChoice, ShowRange, and ColorView options.
DrawSystem uses PropagateSystem and ShowSystem. DrawSystem passes options to Plot and Plot3D.
EdgeRendering
EdgeRendering is an option of ComponentRendering that indicates the graphical rendering of an annular surface that joins the two outer perimeters of a double-sided component. In the prism component, EdgeRendering is used to define the two triangular faces of the prism.
EdgeRendering may take the values: Fill, Trace, Mesh, Empty, and {Fill, Mesh}. See also: ComponentRendering, SurfaceRendering, CrossRendering, and RenderType.
EfficiencyFunction
EfficiencyFunction is an option that indicates the diffraction efficiency of the grating component as a function of the DiffractionMismatch parameter.
EfficiencyFunction uses a real function that scales Intensity according to the value indicated by DiffractionMismatch. EfficiencyFunction is initially set to return 1.0 for all input values; however, the user can reset EfficiencyFunction for modeling the behavior of particular grating structures. EfficiencyFunction is an option of all grating components, as well as the Diffraction genetic building block. See also: DiffractionMismatch, MismatchCutOff, Diffraction, GratingSurface, and GratingMirror.
Empty
Empty is a value of RenderType within Component that indicates no rendering.
EntranceCoordinates
EntranceCoordinates is a rule of Component that gives the center coordinates of the first surface encountered within each confined migration pathway.
The slot position of the each EntranceCoordinates element corresponds with a slot position within ConfinedPaths. EntranceCoordinates is used in constructing UnconfinedPath. See also: ConfinedPaths and UnconfinedPath.
EscapeComponent
EscapeComponent[component, options] is a genetic building block that forces an increment to a new component after the ray encounters the specified surface given in the AffectedSurfaces option.
EscapeComponent preserves the initial increment direction of ray propagation through the component listing. An earlier nested FreezeIncrement genetic building block may be used to enable multiple ray interactions at the surface site before escaping.
Ethanol
Ethanol specifies the use of an ethanol liquid medium at 20 degrees Celsius.
The refractive index model for Ethanol is most suitable for the wavelength range of .43 microns to .66 microns. Ethanol has a density of 0.800, relative to the density of water.
Ether
Ether designates the use of the ether liquid medium at 20 degrees Celsius.
The refractive index model for Ether is most suitable for the wavelength range of .43 microns to .66 microns.
ExitPosition
ExitPosition is an option of ABCDMatrix that denotes the starting position of the exiting ray from the component.
ExitPosition uses either a number or a surface function of two variables.
Fiber
Fiber[corediameter, claddingdiameter, length, options] designates a stepped index optical fiber.
The refractive core and cladding materials are given by the option, ComponentMedium -> {corematerial, claddingmaterial}. Fiber is created with an end located at x = 0 and with its length oriented along the x axis.
Fill
Fill is a value of RenderType within Component that designates that the surface graphics should be filled with shaded areas.
FillStyle
FillStyle is an option of DrawSystem that carries a list of graphics styles for the rendering of filled surfaces. See also: LineStyle.
FindFocus
FindFocus[objectset, selectionproperties, options] is an advanced function that takes an object set carrying Component and Ray objects, and determines the minimum spot size for a locus of rays specified in selectionproperties.
See also: FindFocusFast, FindSpotSize, and RaySelect.
FindFocusFast
FindFocusFast[objectset, selectionproperties, options] is a function similar to FindFocus that takes an object set made up of Component and Ray objects, and determines the minimum spot size for a locus of rays specified in selectionproperties.
FindFocusFast uses a faster technique that sometimes results in a reduced measurement accuracy. See also: FindFocus, FindSpotSize, and RaySelect.
FindIntensity
FindIntensity[system, options] calculates the intensity function for each optical surface that gets reported from the ray trace of the system.
For its input, FindIntensity works best with either an untraced, raw, optical system or a previously calculated result of FindIntensity. However, when necessary, FindIntensity can also work with externally generated trace results. FindIntensity works equally well for surfaces that either are close to a focal plane or far from any focus. If a light sheet light source is used (ie. WedgeOfRays or LineOfRays), then a one-dimensional intensity function is automatically calculated. If a volume-filling light source is used (ie. PointOfRays or GridOfRays), then the intensity calculations are automatically carried out for each reported surface in two-dimensions.
FindIntensity uses the KernelScale and SmoothKernelSize options to specify a Gaussian smoothing kernel that gets convolved with the intensity data. This smoothing kernel can be set to the diffraction-limited spot-size of the systen in order to incorporate the diffraction-limited behavior with the geometric ray-trace data.
FindIntensity uses the IntensityScale option to specify spatial scaling of the system.
FindIntensity uses the Energy option to manually specify the total integrated energy at the surface. With the default Energy-> Automatic setting, the integrated energy is automatically determined from the ray-trace information. However, Energy -> number is used to manually specify a constant value for the total integrated energy. See also: IntensitySetting, KernelScale, SmoothKernelSize, and SmoothKernelRange.
FindSpotSize
FindSpotSize[objectset, selectionproperties, options] takes an object set containing Ray objects, and returns the diameter and position of a circle enclosing the locus of ray/surface intersection points that shares the common set of traits specified in selectionproperties.
See also: FindFocus and RaySelect.
FinishPoint
FinishPoint is a rule nested within RenderedPolygons of Component that gives the two-dimensional ending coordinate on a surface indicated by SurfaceNumber.
FinishPoint is used for creating the sides of a polygon that span several surfaces.
FirstSlot
FirstSlot is a value of AffectedSurfaces and indicates that the first slot position within each confined path in ConfinedPaths inherits the new ray-tracing function trait.
In general, ray-tracing function traits are added to a surface by appending the ray-tracing function position (within Deflections) to the affected DeflectionNumber value within ConfinedPaths. See also: AllDeflections, AllSurfaces, NotFirstSlot, LastSlot, NotLastSlot, and AffectedSurfaces.
FocalLength
FocalLength specifies the length of the chief ray running between the last optical surface and the FocalPoint position.
See also: FindFocus.
FocalPlaneTilt
FocalPlaneTilt labels the unit vector that denotes the direction of the ray bundle's optical axis.
See also: FindFocus.
FocalPoint
FocalPoint labels, in three-dimensions, the point in space lying in the focal plane and at the center of the locus of ray/focal plane intersections.
See also: FindFocus.
FreezeIncrement
FreezeIncrement[component, options] is a genetic building block that causes the ray to remain targeted to the same surface for successive propagation generations.
This effect enables successive ray interactions with the same surface to occur. The ray is allowed to continue propagating to other surfaces once the current surface is no longer in its trajectory path. FreezeIncrement is also an unauthorized option of Ray. The ray parameter FreezeIncrement -> True causes rays not to increment to other surfaces until no intersection is found with the current surface.
Fresnel
Fresnel[component, linespacing, options] is a genetic building block used for transforming a regular optical element into a flattened Fresnel equivalent.
The linespacing argument specifies the width of the Fresnel grooves and the groove direction is specified by the FresnelSymmetry option. Fresnel uses the AffectedSurfaces option to specify the component surfaces affected by Fresnel. If AffectedSurfaces does not specify a number or list of numbers, Fresnel will transform all surfaces present. See also: FresnelSymmetry, RadialSymmetry, HorizontalSymmetry, and VerticalSymmetry.
FresnelSymmetry
FresnelSymmetry is an option of Fresnel that indicates the groove symmetry of the Fresnel surface.
FresnelSymmetry can be set to RadialSymmetry, HorizontalSymmetry, and VerticalSymmetry.
Front
Front is a value of CurvatureDirection.
FrontView
FrontView is a value of PlotType that gives a two-dimensional orthoscopic rendering showing a projection onto the y-z plane of the optical system.
See also: Surface, TopView, SideView, ShadowProject, Off, and Full3D.
Full3D
Full3D is a value of PlotType that gives the full three-dimensional rendering of the optical system.
See also: Surface, TopView, SideView, FrontView, ShadowProject, and Off.
FunctionCenter
FunctionCenter is an option of ComponentFoundation that gives the values of the component surface functions at the function origin.
Well-behaved surface functions have finite values at their origin and the default setting FunctionCenter -> Automatic is used. However, some custom-defined functions, whose limits approach infinity at their function origin, need to be manually set to some finite value, FunctionCenter -> {x1, x2, ...} where typically xi = 0. For a single-surfaced component, use FunctionCenter -> x where typically x = 0. See also: SurfaceCenter and EntranceCoordinates.
FusedSilica
FusedSilica indicates the use of a fused silica medium.
The refractive index model for FusedSilica is most suitable for the wavelength range of .18 microns to 2.0 microns.
GenerationLimit
GenerationLimit is an option of PropagateSystem and DrawSystem that determines the maximum number of ray/surface interactions permitted before the ray propagation is discontinued.
See also: GenerationNumber and ThresholdIntensity.
GenerationNumber
GenerationNumber is a rule of Ray that specifies the maximum-valued IntersectionNumber found within the global system of Ray objects at the creation of the specified Ray object.
SurfaceNumber, ComponentNumber, ConfinedPosition, UnconfinedPosition, IntersectionNumber, GenerationNumber, and ConfinedNumber are all pointer parameters stored in Ray.
Glycerine
Glycerine indicates the use of a glycerine liquid medium at 20 degrees Celsius.
The refractive index model for Glycerine is most suitable for the wavelength range of .43 microns to .66 microns. Glycerine has a density of 1.260, relative to the density of water.
GraphicalOutput
GraphicalOutput[graphicalprimitives] is an object carrying the listing of graphic primitives for the rendering of components.
GraphicDesign
GraphicDesign is an option of all rendered components that specifies the style of rendering.
GraphicDesign can be set to Automatic, Sketch, Wire, Solid, or Off.
GratingMirror
GratingMirror[gratingfunction, aperture, options] indicates a planar, diffractive, reflective component that splits incoming rays into multiple diffracted, reflected orders according to the gratingfunction parameter and the DiffractedOrders option.
The gratingfunction parameter specifies a grating vector either as a one-dimensional value, a two-dimensional list of values, a three-dimensional list of values, or a three-dimensional Function[{horizontal, vertical, perp}], where horizontal, vertical, and perp specify the indicated grating directions with the grating surface initially oriented parallel to the y-z plane. These vector quantities have units of spatial frequency and are given in line pairs per millimeter. A single number used in the grating parameter designates a uniformly distributed grating vector pointing in the direction of the y axis. A list of two numbers specifies a uniformly distributed grating vector whose direction lies within the surface plane. GratingMirror returns DiffractionMismatch and DiffractionOrderNumber as ray parameters. For other options of GratingMirror, see EfficiencyFunction and MismatchCutOff. See also: GratingSurface, Diffraction, and Reflection.
GratingSurface
GratingSurface[gratingfunction, aperture, options] denotes a planar, diffractive component that splits incoming rays into multiple diffracted orders according to the gratingfunction parameter and the DiffractedOrders option.
The gratingfunction parameter specifies a grating vector either as a one-dimensional value, a two-dimensional list of values, a three-dimensional list of values, or a three-dimensional Function[{horizontal, vertical, perp}], where horizontal, vertical, and perp specify the indicated grating directions with the grating surface initially oriented parallel to the y-z plane. These vector quantities have units of spatial frequency and are given in line pairs per millimeter. A single number used in the grating parameter indicates a uniformly distributed grating vector pointing in the direction of the y axis. A list of two numbers designates a uniformly distributed grating vector whose direction lies within the surface plane. GratingSurface returns DiffractionMismatch and DiffractionOrderNumber as ray parameters. See also: EfficiencyFunction, GratingMirror, GratingSurface, and Diffraction.
GrinLens
GrinLens designates an unimplemented component that focuses rays according to a gradient index profile.
GridOfRays
GridOfRays[size, options] creates a rectangular or circular grid of rays, starting in the y-z plane, distributed at a grid of intervals about the positive x axis.
If size is a list of two positive numbers {width, height}, then GridOfRays forms a rectangular grid of dimensions {width, height}. If size is a single number, then GridOfRays forms a circular grid of rays that has a diameter dictated by size. If size is a list of two negative numbers {-width, -height}, then GridOfRays forms an elliptical grid of elliptical dimensions {width, height}. The number of rays in each of the grid dimensions is given in the option NumberOfRays. NumberOfRays may also point to a list of two numbers for each direction of the grid of starting points.
GroupDescription
GroupDescription is an option of BuildComponent that supplies a new ComponentDescription label for the combined grouping of Component objects.
Hole
Hole[component, holeaperture, options] is a genetic building block for creating a hole within a component surface.
The holeaperture parameter specifies the hole dimensions, which can be either circular, rectangular, or polygonal. Hole also modifies the component rendering to show the hole. You can use the HoleOffset option to position the hole away from the affected surface center.
HoleBoundary
HoleBoundary is a rule of Ray that gives the hole aperture dimensions for the last surface to intercept the ray.
HoleBoundary is also a rule parameter of Component and is nested within the Surfaces rule when a hole in the surface is present.
HoleOffset
HoleOffset is a rule of Ray that gives the offset dimensions of a hole aperture for the last surface to intercept the ray.
HoleOffset is also a rule parameter of Component and is nested within the Surfaces rule when a hole in the surface is present.
HorizontalSymmetry
HorizontalSymmetry is a value of FresnelSymmetry that implies that the surface grooves are symmetric about the component's vertical axis.
IncrementComponentNumber
IncrementComponentNumber[component, componentincrement, options] is a genetic building block that increments ComponentNumber, relative to its present value.
IndexFunction
IndexFunction[a0, a1, a2, a3, a4, a5] takes six terms and creates the pure function Function[Sqrt[a0+a1 #^2+a2 #^-2+a3 #^-4+a4 #^-6+a5 #^-8]] used to model the index of refraction for various materials.
IndexFunction is used by built-in optical material models.
InsideMedium
InsideMedium is an option of Pipe. InsideMedium sets the value of IntrinsicMedium used within the middle of Pipe.
Intensity
Intensity is a rule of Ray that gives the ray's intensity value.
See also: ThresholdIntensity.
InternalDirectionChange
InternalDirectionChange is a rule of Ray that is an internal flag variable used by PropagateSystem to indicate an internal reflection inside a double-surfaced component.
This causes Ray to increment backwards within the component.
IntersectionNumber
IntersectionNumber is a rule of Ray that gives the total number of surface intersections encountered for the creation of the specified Ray object.
SurfaceNumber, ComponentNumber, ConfinedPosition, UnconfinedPosition, IntersectionNumber, GenerationNumber, and ConfinedNumber are all pointer parameters stored in Ray.
IntrinsicCylindricalSurface
IntrinsicCylindricalSurface[radius, aperture, medium1, medium2, options] refers to a cylindrical component occupying half a complete cylinder that models the refractive index boundary between two different refractive mediums.
Refractive components encountered by rays that have previously encountered IntrinsicCylindricalSurface are refracted using the new IntrinsicMedium value given by IntrinsicCylindricalSurface. IntrinsicCylindricalSurface uses parameters medium1 and medium2 to obtain intrinsic index functions on each side of the fluid boundary. If the ray is coming from an environment that has an intrinsic index given by medium1, then the value of IntrinsicMedium of the Ray object is replaced by medium2. Likewise, if the ray is coming from an environment that has an intrinsic index given by medium2, then the value of IntrinsicMedium of the Ray object is replaced by medium1. IntrinsicCylindricalSurface is created with its surface centered about the origin. The aperture parameter may designate a circle, rectangle, or polygon depending on the number and type of elements listed by it. See also: the SwitchIntrinsicMedium genetic building block. IntrinsicSurface, IntrinsicSphericalSurface, and IntrinsicCylindricalSurface are all related components.
IntrinsicMedium
IntrinsicMedium is a rule of Ray that gives a label that identifies the background optical medium surrounding components.
As examples: Air, Water, and Vacuum are typical settings for IntrinsicMedium. OpticalMedium, ComponentMedium, and RefractiveIndex are other options involving the refractive index.
IntrinsicSphericalSurface
IntrinsicSphericalSurface[radius, aperture, medium1, medium2, options] designates a spherical component that has a given radius of curvature that models the refractive index boundary between two different refractive mediums.
Refractive components encountered by rays that have previously encountered IntrinsicSphericalSurface are refracted using the new IntrinsicMedium value given by IntrinsicSphericalSurface. IntrinsicSphericalSurface uses parameters medium1 and medium2 to obtain intrinsic index functions on each side of the fluid boundary. If the ray is coming from an environment that has an intrinsic index given by medium1, then the value of IntrinsicMedium of the Ray object is replaced by medium2. Likewise, if the ray is coming from an environment that has an intrinsic index given by medium2, then the value of IntrinsicMedium of the Ray object is replaced by medium1. IntrinsicSphericalSurface is created with its surface centered about the origin. The aperture parameter may specify a circle, rectangle, or polygon depending on the number and type of elements listed by it. See also: the SwitchIntrinsicMedium genetic building block. IntrinsicSurface, IntrinsicSphericalSurface, and IntrinsicCylindricalSurface are all related components.
IntrinsicSurface
IntrinsicSurface[aperture, medium1, medium2, options] denotes a planar component that models the refractive index boundary between two different refractive mediums.
Refractive components encountered by rays that have previously encountered IntrinsicSurface are refracted using the new IntrinsicMedium value given by IntrinsicSurface. IntrinsicSurface uses parameters medium1 and medium2 to obtain intrinsic index functions on each side of the fluid boundary. If the ray is coming from an environment that has an intrinsic index given by medium1, then the value of IntrinsicMedium of the Ray object is replaced by medium2. Likewise, if the ray is coming from an environment that has an intrinsic index given by medium2, then the value of IntrinsicMedium of the Ray object is replaced by medium1. IntrinsicSurface is created with its surface centered about the origin. The aperture parameter may denote a circle, rectangle, or polygon depending on the number and type of elements listed by it. See also: the SwitchIntrinsicMedium genetic building block. IntrinsicSurface, IntrinsicSphericalSurface, IntrinsicCylindricalSurface, and CustomIntrinsicSurface are all related components.
JacobianMatrix
JacobianMatrix is a rule sometimes embedded within Surfaces of Component that gives a matrix of symbolic functions to be used by the Jacobian option of FindRoot for finding the ray/surface intersections at a particular surface.
LaSF9
LaSF9 denotes the use of the LaSF9 glass medium.
The refractive index model for LaSF9 is most suitable for the wavelength range of .35 microns to 2.3 microns.
LastSegment
LastSegment labels an unauthorized rule of Ray that is an internal flag variable used by PropagateSystem to indicate the last segment of each Ray pathway to be propagated through an optical system without having its Intensity value attenuated below the ThresholdIntensity level.
LastSlot
LastSlot is a value of AffectedSurfaces and specifies that the last slot position within each confined path in ConfinedPaths inherits the new ray-tracing function trait.
In general, ray-tracing function traits are added to a surface by appending the ray-tracing function position (within Deflections) to the affected DeflectionNumber value within ConfinedPaths. See also: AllDeflections, AllSurfaces, FirstSlot, NotFirstSlot, NotLastSlot, and AffectedSurfaces.
LensDoublet
LensDoublet[r1, r2, r3, aperture, t1, t2, index1, index2, options] designates a lens having three spherical surfaces.
The radii of curvatures are specified by r1, r2, and r3, where Infinity is used to indicate planar surfaces. In addition, LensDoublet is specified by two thicknesses: t1, t2. The two refractive indexes must also be specified either as a function of wavelength or using one of the built-in optical material labels. LensDoublet is created with its first surface centered about the origin and the remaining surfaces positioned down the x axis. The aperture parameter may designate a circle, rectangle, or polygon depending on the number and type of elements listed by it.
LensTriplet
LensTriplet[r1, r2, r3, r4, aperture, t1, t2, t3, index1, index2, index3, options] refers to a lens having four spherical surfaces.
The radii of curvatures are specified by r1, r2, r3, and r4, where Infinity is used to indicate planar surfaces. In addition, LensTriplet is specified by three thicknesses: t1, t2, and t3. The three refractive indexes must also be specified either as a function of wavelength or using one of the built-in index functions. LensTriplet is created with its first surface centered about the origin and the remaining surfaces positioned down the x axis. The aperture parameter may indicate a circle, rectangle, or polygon depending on the number and type of elements listed by it.
LineOfRays
LineOfRays[linewidth, options] creates a set of rays, starting at the y axis, lying in the horizontal plane, equally distributed within the specified linewidth, and directed down the positive x axis.
See also: NumberOfRays.
LineStyle
LineStyle is an option of DrawSystem that carries a list of graphics styles for the rendering of edges and wire-framed surfaces. See also: FillStyle.
LensSurface
LensSurface[aperture, options] denotes a planar component that models the refractive index boundary at a lens surface.
LensSurface is always used in combination with one or more additional LensSurface component types to create a complete lens object. LensSurface is created with its surface centered about the origin. The aperture parameter may denote a circle, rectangle, or polygon depending on the number and type of elements listed by it. LensSurface, SphericalLensSurface, CylindricalLensSurface, ParabolicLensSurface, and CustomLensSurface are all related components.
Mesh
Mesh is a value of RenderType within Component that specifies that the surface graphics should be rendered with mesh outlines.
Methanol
Methanol indicates the use of a methanol liquid medium at 20 degrees Celsius.
The refractive index model for Methanol is most suitable for the wavelength range of .43 microns to .66 microns.
Mirror
Mirror[aperture, thickness, options] denotes a planar, double-surfaced mirror that has a reflective side and a refractive side.
Mirror is created with its first surface centered about the origin and its second surface positioned down the positive x axis. The aperture parameter may indicate a circle, rectangle, or polygon depending on the number and type of elements listed by it.
MirrorSpan
MirrorSpan[{x1, y1}, {x2, y2}, thickness, height, options] is similar to Mirror except that its size and placement are specified by the two two-dimensional coordinates {x1, y1} and {x2, y2}.
MirrorSpan spans the specified coordinates and has the specified height.
MismatchCutOff
MismatchCutOff is an option that denotes a real number that designates the maximum mismatch cutoff value of a diffracting ray.
If a diffraction order has a DiffractionMismatch value greater than specified by MismatchCutOff, the ray is terminated by setting its Intensity parameter to zero. MismatchCutOff is an option of all grating components, as well as the Diffraction genetic building block. See also: DiffractionMismatch, EfficiencyFunction, Diffraction, GratingSurface, and GratingMirror.
ModelIntensity
ModelIntensity[materialname] is a function evaluated by the ray-tracing engine at every ray/surface interface and is used for modeling the bulk absorptive properties of materials identified by materialname.
ModelIntensity may depend on various parameters including Intensity, WaveLength, OpticalLength, RefractiveIndex, and Temperature, and returns a single intensity value that is stored in the Intensity parameter of the ray. User-specified intensity model libraries of refractive materials can be created by listing and evaluating: ModelIntensity[materialname] = intensityfunction for different specified materialnames. The default intensityfunction for unspecified materialnames leaves Intensity unchanged. ModelIntensity may be based on spectroscopic data, and can be used to model gain (in lasers) as well as absorption. Before the user can define new ModelIntensity functions, they must first be unprotected or included in the "Material Models" section of the LensLab package. See also: ModelRefractiveIndex.
ModelRayColor
ModelRayColor[rayparameterlabels, {minvalue, maxvalue}] = Function[parametervalue] attempts to convert the ray parameters indicated by rayparameterlabels into rendered color values.
Custom ray-rendering schemes can be defined for various ray-parameter labels by using ModelRayColor[rayparameterlabel, {min_, max_}] = Function[{parametervalue}, function[parametervalue]], where function[parametervalue] returns graphics styles such as Hue, GreyLevel, and RGBColor. ModelRayColor uses rayparameterlabel from the ColorView option of DrawSystem. Arguments minvalue and maxvalue are calculated based on the minimum and maximum parameter values from the currently displayed rays, selected by the RayChoice option. As a default for undefined ray parameter labels given by the ColorView option, ModelRayColor assigns a color Hue to each ray according to the segment parameter's numerical position between minvalue and maxvalue, with red assigned to the maximum encountered parameter value. Parameters made up of three elements are evaluated by representing each element independently with a red, green, or blue value. Two-element parameters are assigned a red and a green value, each representing an element. DrawSystem option ColorView -> WaveLength attempts to match the wavelength of the ray to the perceived visual color of that wavelength. The option ColorView -> Black may be used to produce black-rendered ray lines. Before the user can define new ModelRayColor functions, ModelRayColor must be unprotected or included within the "ModelRayColor" section of the LensLab package. See also: Black, ColorView, RayChoice, and RayLineRGB.
ModelRefractiveIndex
ModelRefractiveIndex[materialname] is a ray-parameter-dependent function that models the refractive properties of materials identified by materialname. Such properties depend on parameters such as WaveLength and Temperature.
In addition to the existing material models, user-specified model libraries of refractive materials can be created by listing and evaluating: ModelRefractiveIndex[materialname] = indexfunction[...] for different material names. Note that the indexfunction can either be a user-specified function or the built-in IndexFunction resource. The CreateRefractiveIndexModel can be used in facilitating this process. Before the user can define new ModelRefractiveIndex functions, the ModelRefractiveIndex must first be unprotected or included within the "Material Models" section of the LensLab package. See also: IndexFunction, CreateRefractiveIndexModel, and ModelIntensity.
ModelSurfaceShape
ModelSurfaceShape[surfacelabel, value] is a global function that is used by ComponentFoundation to create surface functions that define the component surfaces.
ModelSurfaceShape gives a surface function expression to SurfaceFunction in Component. Users can add new surface definitions by assigning new functions to ModelSurfaceShape with surfacelabel that names the surface type. The value parameter can be a single number or list of numbers, and it specifies surface curvature characteristics. ModelSurfaceShape can either define a three-dimensional surface using a function of two parameters or a list of three parametric functions. New definitions may be assigned to ModelSurfaceShape by evaluating either: ModelSurfaceShape[surfacelabel, value] = {SurfaceFunction -> {Function[fx[s, t]], Function[fy[s, t]], Function[fz[s, t]]}} for explicitly parametric surface functions or ModelSurfaceShape[surfacelabel, value] = {SurfaceFunction -> Function[fx[s, t]]} for simple surface functions. Before the user can define new ModelSurfaceShape functions, the ModelSurfaceShape must first be unprotected or included within the "Model Functions" section of the LensLab package.
ModulationTransferFunction
ModulationTransferFunction[system, options] calculates the modulation and phase transfer functions of the optical system for a given object source input.
ModulationTransferFunction works together with FindIntensity. As input, ModulationTransferFunction takes the returned output from FindIntensity. The optical system must contain a light source followed by the imaging optics with the focal surface as its last element.
Note: ModulationTransferFunction works equally well for both point sources and planar sources, as long as the described imaging system contains a focus. If a one-dimensional light source is used (ie. WedgeOfRays or LineOfRays), then a one-dimensional modulation transfer function is calculated. If a two-dimensional light source is used (ie. PointOfRays or GridOfRays), then the optical transfer function calculations are carried out in two-dimensions. Warning: in general, most one-dimensional and two-dimensional results are not fully equivalent to each other.
ModulationTransferFunction is also a label used with the RenderedParameters option. ModulationTransferFunction is a rule returned by gives the modulation transfer function of an imaging system for a specific image point. ModulationTransferFunction is related to: FindIntensity, PhaseTransferFunction, and MTF.
MTF
MTF[system, options] is an alias to ModulationTransferFunction[system, options].
Move
Move[objectset, {x, y, rotationangle}, options] is used to move the relative position and orientation of a set of components and rays within a horizontal plane.
The rotationangle determines the angular orientation of objectset within the horizontal plane. The option TwistAngle -> # can be used to specify a rotation around the axis of orientation. Other related commands used for positioning components and rays include: Move3D, MoveDirected, MoveDirected3D, MoveLinear, MoveLinear3D, MoveReflected, and MoveReflected3D.
MoveDirected
MoveDirected[objectset, {xpos, ypos}, {xpoint, ypoint}, options] is used to move the relative position and orientation of a set of components and rays within a horizontal plane whose axis of orientation is defined by a line intersecting the object's position and a second defined point in the plane.
The option TwistAngle -> # can be used to specify a rotation around the axis of orientation. The option SideOfObject is used to specify on which side of the object the second defined point is located. SideOfObject takes the values Before and After. Other related commands used for positioning components and rays include: Move, Move3D, MoveLinear, MoveLinear3D, MoveDirected3D, MoveReflected, and MoveReflected3D.
MoveDirected3D
MoveDirected3D[objectset, {xpos, ypos, zpos}, {xpoint, ypoint, zpoint}, twistangle, options] is used to move the relative position and orientation of a set of components and rays in three-dimensional space, whose axis of orientation is defined by a line intersecting the object set's position and a second defined point in space.
The twistangle specifies a rotation around the axis of orientation. The option SideOfObject is used to specify on which side of the object the second defined point is located. SideOfObject takes the values Before and After. Other related commands used for positioning components and rays include: Move, Move3D, MoveLinear, MoveLinear3D, MoveDirected, MoveReflected, and MoveReflected3D.
MoveLinear
MoveLinear[objectset, {xstart, ystart}, lineposition, {xend, yend}, options] is used to move the relative position and orientation of a set of components and rays along a line specified by a starting point and ending point within the horizontal plane.
The returned set of objects is placed on the line at a distance of lineposition from the specified starting point. The option TwistAngle -> # can be used to specify a rotation around the axis of orientation. Other related commands used for positioning components and rays include: MoveLinear3D, Move, Move3D, MoveDirected, MoveDirected3D, MoveReflected, and MoveReflected3D.
MoveLinear3D
MoveLinear3D[objectset, {xstart, ystart, zstart}, lineposition, {xend, yend, zend}, twistangle, options] is used to move the relative position and orientation of a set of components and rays along a line specified by a starting point and ending point in three-dimensional space.
The returned set of objects is placed on the line at a distance of lineposition from the specified starting point. The twistangle specifies a rotation around the axis of orientation. Other related commands used for positioning components and rays include: MoveLinear, Move, Move3D, MoveDirected, MoveDirected3D, MoveReflected, and MoveReflected3D.
MoveReflected
MoveReflected[objectset, {xbegin, ybegin},{xpos, ypos}, {xend, yend}, options] is used to move the relative position and orientation of a set of components and rays within a horizontal plane whose axis of orientation is defined by a line intersecting the object set's position and bisecting a starting point and ending point in the plane.
The option TwistAngle -> # can be used to specify a rotation around the axis of orientation. Other related commands used for positioning components and rays include: Move, Move3D, MoveLinear, MoveLinear3D, MoveDirected, MoveDirected3D, and MoveReflected3D.
MoveReflected3D
MoveReflected3D[objectset, {xbegin, ybegin, zbegin},{xpos, ypos, zpos},{xend, yend, zend}, twistangle, options] is used to move the relative position and orientation of a set of components and rays in three-dimensional space, whose axis of orientation is defined by a line intersecting the object set's position and bisecting a starting point and ending point in space.
The twistangle specifies a rotation around the axis of orientation. Other related commands used for positioning components and rays include: Move, Move3D, MoveLinear, MoveLinear3D, MoveDirected, MoveDirected3D, and MoveReflected.
Move3D
Move3D[objectset, {xpos, ypos, zpos}, tiltvector, twistangle, options] is used to move the relative position and orientation of a set of components and rays in three-dimensional space.
The tiltvector is a three-dimensional unit vector that points the direction of the axis of orientation. The twistangle specifies a rotation around the axis of orientation. Other related commands used for positioning components and rays include: Move, MoveLinear, MoveLinear3D, MoveDirected, MoveDirected3D, MoveReflected, and MoveReflected3D.
NewAuthorizedOptions
NewAuthorizedOptions is a rule of Ray that gives a list of Ray option names authorized in addition to the names listed in Options[Ray] for propagating several generations.
Ray parameter names may be added or removed from NewAuthorizedOptions by a surface ray-tracing function. Unauthorized ray parameters (labels not listed in NewAuthorizedOptions or in Options[Ray]) are allowed to propagate to the next ray/surface interaction before removal. Note that every Ray object may have its own unique list of new authorized parameters. In general, these lists will not be the same.
NewRay
NewRay is a value of AddTo and ReplaceFor and designates that newly created Ray objects are returned from DeflectionFunction.
If specified in AddTo, NewRay creates a new set of one or more Ray objects. NewRay can only be given as an output object. Inputs from previous NewRay objects are given by CreatedRay and AllCreatedRays. See also: ChangedRay, CreatedRay, OriginalRay, AddTo, and TakeFrom.
NextValue
NextValue is an option of FindFocus that gives a follow-up number to help FindRoot begin its search.
NotFirstSlot
NotFirstSlot is a value of AffectedSurfaces and designates that all but the first slot position within each confined path in ConfinedPaths inherits the new ray-tracing function trait.
In general, ray-tracing function traits are added to a surface by appending the ray-tracing function position (within Deflections) to the affected DeflectionNumber value within ConfinedPaths. See also: AllDeflections, AllSurfaces, FirstSlot, LastSlot, NotLastSlot, and AffectedSurfaces.
NotLastSlot
NotLastSlot is a value of AffectedSurfaces and denotes that all but the last slot position within each confined path in ConfinedPaths inherits the new ray-tracing function trait.
In general, ray-tracing function traits are added to a surface by appending the ray-tracing function position (within Deflections) to the affected DeflectionNumber value within ConfinedPaths. See also: AllDeflections, AllSurfaces, FirstSlot, LastSlot, NotLastSlot, and AffectedSurfaces.
NumberOfRays
NumberOfRays is an option of ray sources that designates the number of rays to be initially created by a ray source function.
NumberOfRays is an option used by: LineOfRays, CircleOfRays, ConeOfRays, WedgeOfRays, GridOfRays, and RainbowOfRays.
Numeric
Numeric is a value of the SurfaceNormalFunction, SurfaceNormalCalculations, and SurfaceRayIntersections, that designates that a direct numerical calculation is used for determining surface normals and ray-intersection coordinates.
Off
Off is a value that designates no graphical output.
Off is a value of the PlotType option of DrawSystem and the GraphicDesign option of ComponentRendering. See also: Surface, TopView, SideView, FrontView, ShadowProject, and Full3D.
OffAxis
OffAxis -> {xoffset, yoffset} is an option that specifies an offset of the axis of symmetry for curved surfaces.
OpenSide
OpenSide is an option used by CylinderGraphic that indicates an opening in the side wall of the cylinder graphic.
OpenSide takes values {startangle, finishangle} or False.
OpticalLength
OpticalLength is a rule of Ray that gives the total optical path length of the ray segment from the beginning of its creation.
OpticalMedium
OpticalMedium is a rule of Ray that identifies the optical material medium traversed by each ray segment.
The value of OpticalMedium is typically used by ModelRefractiveIndex for selecting a refractive index model of the region. See also: ComponentMedium, IntrinsicMedium, and RefractiveIndex.
OpticalSystem
OpticalSystem[{listofrays}, {listofcomponents}, GraphicalOutput[...]] is an object containing an ordered listing of Ray objects, Component objects, and GraphicalOutput.
OpticalSystem doubles as a value of OutputType.
OriginalRay
OriginalRay is a value of TakeFrom and denotes that the original incoming Ray object is passed to DeflectionFunction.
OriginalRay can also be used with AddTo and ReplaceFor, but only in rare instances. Normally ChangedRay is used with AddTo and ReplaceFor instead. OriginalRay contains the original Ray object parameters of the ray incident on the surface from the previous generation. See also: NewRay, CreatedRay, ChangedRay, AddTo, and TakeFrom.
OtherShape
OtherShape is a value of SurfaceLabel within Component that designates that the SurfaceFunction is something other than planar, spherical, parabolic, or cylindrical.
OutputType
OutputType is an option of ShowSystem and DrawSystem, and indicates the final output form from ShowSystem and DrawSystem.
OutputType uses word values OpticalSystem and StandardGraphics. If StandardGraphics mode is indicated, then ShowSystem and DrawSystem return a graphics object in the standard Mathematica format. In the default OpticalSystem mode, ShowSystem and DrawSystem return component and ray information that can be analyzed and manipulated by LensLab. See also: RayChoice and PlotType.
PAN
PAN specifies the use of the polyacrylonitrile polymer medium.
The refractive index model for PAN is most suitable for the wavelength range of .46 microns to 1.06 microns.
ParabolicLensSurface
ParabolicLensSurface[focus, aperture, options] designates a spherical component that has a given radius of curvature that models the refractive index boundary at a lens surface.
ParabolicLensSurface is always used in combination with one or more additional LensSurface component types to create a complete lens object. ParabolicLensSurface is created with its surface centered about the origin. The aperture parameter may specify a circle, rectangle, or polygon depending on the number and type of elements listed by it. LensSurface, ParabolicLensSurface, CylindricalLensSurface, ParabolicLensSurface, and CustomLensSurface are all related components.
ParabolicMirror
ParabolicMirror[focallength, aperture, thickness, options] designates a double-surfaced mirror that has a parabolic reflective side and a planar refractive side.
ParabolicMirror is created with its first surface centered about the origin and its second surface positioned down the positive x axis. The aperture parameter may denote a circle, rectangle, or polygon depending on the number and type of elements listed by it.
ParabolicMirrorWithHole
ParabolicMirrorWithHole[focallength, aperture, holeaperture, thickness, options] designates a double-surfaced mirror that has a parabolic reflective side and a planar refractive side, with a hole cut in its center.
ParabolicMirrorWithHole is created with its first surface centered about the origin and its second surface positioned down the positive x axis. The aperture and holeaperture arguments may denote a circle, rectangle, or polygon depending on the number and type of elements listed by it.
ParabolicShape
ParabolicShape is a value of SurfaceLabel within Component that indicates the parabolic SurfaceFunction.
PinHole
PinHole[aperture, holeaperture, options] denotes a thin planar component with a hole created in its middle.
PinHole is created with its surface centered about the origin. The aperture and holeaperture arguments may denote a circle, rectangle, or polygon depending on the number and type of elements listed by it.
Pipe
Pipe[outerdiameter, wallthickness, height, options] designates a cylindrical pipe that has a given diameter and wall thickness that models the optical properties of a transparent, thick-walled cylinder.
Pipe may be filled with an index medium other than Air by having the interior intrinsic index of refraction given by the option InsideMedium. The refractive index of the pipe walls is given by the ComponentMedium option. Pipe is created with its center located at the origin and its length (height) oriented vertically.
PlanarShape
PlanarShape is a value of SurfaceLabel within Component that designates a planar SurfaceFunction.
PlanoConcaveCylindricalLens
PlanoConcaveCylindricalLens[focallength, aperture, thickness, options] indicates a lens with a planar surface on one side and a concave cylindrical surface on the other side.
PlanoConcaveCylindricalLens is created with its first surface centered about the origin and its second surface positioned down the positive x axis. The aperture parameter may designate a circle, rectangle, or polygon depending on the number and type of elements listed by it.
PlanoConcaveLens
PlanoConcaveLens[focallength, aperture, thickness, options] denotes a lens with a planar surface on one side and a concave spherical surface on the other side.
PlanoConcaveLens is created with its first surface centered about the origin and its second surface positioned down the positive x axis. The aperture parameter may indicate a circle, rectangle, or polygon depending on the number and type of elements listed by it.
PlanoConvexCylindricalLens
PlanoConvexCylindricalLens[focallength, aperture, thickness, options] denotes a lens with a planar surface on one side and a convex cylindrical surface on the other side.
PlanoConvexCylindricalLens is created with its first surface centered about the origin and its second surface positioned down the positive x axis. The aperture parameter may indicate a circle, rectangle, or polygon depending on the number and type of elements listed by it.
PlanoConvexLens
PlanoConvexLens[focallength, aperture, thickness, options] denotes a lens with a planar surface on one side and a convex spherical surface on the other side.
PlanoConvexLens is created with its first surface centered about the origin and its second surface positioned down the positive x axis. The aperture parameter may designate a circle, rectangle, or polygon depending on the number and type of elements listed by it.
PlotType
PlotType is an option of DrawSystem and ShowSystem that designates the display form of the graphics rendering.
PlotType takes TopView, FrontView, SideView, Full3D, Off, Surface, and ShadowProject as values.
PMMA
PMMA designates the use of the poly(methyl methacrylate) polymer medium.
The refractive index model for PMMA is most suitable for the wavelength range of .46 microns to 1.06 microns.
Polarization
Polarization -> {horizontal, vertical, phaseangle} is a rule of Ray that specifies the direction of polarization of the ray segment as measured in the plane transverse to the axis of propagation.
In general, horizontal and vertical and phaseangle are real numbers, with phaseangle indicating a phase-difference between the two transverse directions of polarization. The absolute directions of polarization are given by the second and third vector elements listed in the RotationMatrix ray parameter. Polarization, Intensity, RayTilt, and RotationMatrix are all related parameters. Note that Polarization is a field quantity, while Intensity is an energy quantity. Polarization is not fully implemented at this time.
PolygonalMirror
PolygonalMirror[numberofsides, diameter, height, options] indicates a polygonal mirror having radial symmetry and vertical surfaces.
PolygonalMirror is initially placed with its axis of symmetry located vertically at the origin. The diameter parameter specifies the diameter of a circle circumscribing the polygon.
PolygonGraphic
PolygonGraphic[numberofsides, diameter, options] designates a two-dimensional equilateral polygon lying in the horizontal x-y plane with its center placed at the origin of the coordinate system.
PolygonGraphic does not interact with rays in any way, but can be listed with active components or with other graphics components for creating passive three-dimensional shapes. The diameter parameter specifies the diameter of a circle circumscribing the polygon.
Prism
Prism[{alpha, side, beta}, height, options] designates a triangular refractive prism specified by two angles, alpha and beta, a side between the two angles, and a height.
Prism is created with its triangle lying in the horizontal x-y plane and its height pointing vertically. The specified side is bisected by the origin, pointing in line with the x axis. See also: DovePrism and DovePrismMirrored.
PropagateSystem
PropagateSystem[objectset, options] takes an object set, containing a mixed list of Ray, Component, and OpticalSystem objects, traces the rays through the components, and returns the ray tracing as an OpticalSystem object carrying a divided listing of Ray and Component objects.
PropagateSystem works in the following way. PropagateSystem takes the input object set and separates the Ray objects from the Component objects, storing each Ray object's original position index as a parameter within the Ray object's shell (since the relative ordering of the Ray objects within the mixed Ray/Component object set determines the propagation starting position of each ray within the component list). Each time a ray intersects a component surface, a new Ray object is created containing new Ray parameter values that are either updated from old parameters or introduced as new parameters, according to the component's ray-tracing functions. If only Ray objects, Component objects, or a single OpticalSystem object exist at the input, then PropagateSystem returns them without change. For each object headed by OpticalSystem present in the object set (that denotes a previous ray-trace result), PropagateSystem separates and propagates only the last generation of Ray objects present, using all Component objects present. PropagateSystem is called up internally by DrawSystem.
PS
PS specifies the use of the polystyrene polymer medium.
The refractive index model for PS is most suitable for the wavelength range of .46 microns to 1.06 microns.
PVA
PVA denotes the use of the poly(vinyl alcohol) polymer medium.
The refractive index model for PVA is most suitable for the wavelength range of .46 microns to 1.06 microns.
PVB
PVB indicates the use of the poly(vinyl benzoate) polymer medium.
The refractive index model for PVB is most suitable for the wavelength range of .46 microns to 1.06 microns.
PVF
PVF indicates the use of the poly(vinylformal) polymer medium.
The refractive index model for PVF is most suitable for the wavelength range of .46 microns to 1.06 microns.
PVP
PVP designates the use of the poly(vinyl pyrrolidone) polymer medium.
The refractive index model for PVP is most suitable for the wavelength range of .46 microns to 1.06 microns.
Pyrex
Pyrex denotes the use of low-expansion borosilicate glass medium.
The refractive index model for Pyrex is most suitable for the wavelength range of .49 microns to .64 microns.
Quartz
Quartz specifies the use of a quartz medium.
The refractive index model for Quartz is most suitable for the wavelength range of .46 microns to 1.06 microns.
QuickSurfaceSort
QuickSurfaceSort is an option of DrawSystem and PropagateSystem that selects between two competing methods for determining ray-tracing trajectories.
QuickSurfaceSort->True determines the ray-tracing order through each of the Component object's surfaces by using an efficient, but occasionally fallible method. QuickSurfaceSort->False uses a slower, but more exacting approach.
RadialSymmetry
RadialSymmetry is a value of FresnelSymmetry that implies that the surface grooves are radially symmetric.
RainbowOfRays
RainbowOfRays[{minwavelength, maxwavelength}, options] creates a set of overlapping rays equally distributed over the specified range of wavelengths given in microns, starting at the origin and directed down the positive x axis.
See also: NumberOfRays.
Ray
Ray[options] contains rules that characterize a single ray of light as it propagates through component surfaces and creates a single Ray object with its starting position at the origin and directed down the positive x axis.
The wavelength is determined by the option WaveLength -> # from Options[Ray]. Any of the Move functions may be nested around Ray to change its starting position and direction of propagation. Each time a ray intersects a new component surface, a new Ray is created made up of new Ray rule values that are either updated from old parameters or introduced as new parameters according to the new surface's ray-tracing functions. There are six built-in ray source functions: CircleOfRays, ConeOfRays, WedgeOfRays, LineOfRays, GridOfRays, and RainbowOfRays. See Options[Ray] for a partial listing of the parameters embedded within Ray.
RayChoice
RayChoice -> selectionproperties uses selectionproperties to selectively display ray segments in DrawSystem and ShowSystem.
A typical option value of RayChoice would be RayChoice -> {ComponentNumber -> 1, ConfinedPosition -> 2}. See RaySelect about how selectionproperties can be structured.
RayCurve
RayCurve is a rule of Ray composed of a list of three-dimensional points composing a curved ray trajectory in space.
RayEnd
RayEnd is a rule of Ray that gives the spatial ending coordinate of a ray showing the three-dimensional coordinate point where the ray intersects with the next component surface.
RayLabel
RayLabel -> raylabel is a rule of Ray used to assign a descriptive label to the ray.
RayLength
RayLength is a rule of Ray that gives the geometric length of the ray segment running between two optical surfaces.
RayLineRGB
RayLineRGB is an option of Ray, DrawSystem, and ShowSystem that denotes the color used in rendering the rays.
If RayLineRGB -> Automatic is used, then the RGB value is determined using the value of WaveLength with ModelRayColor. Note that RayLineRGB will not affect the graphical rendering of rays unless the DrawSystem option ColorView -> Automatic is used. See also: ColorView and ModelRayColor.
RayLineStyle
RayLineStyle is an option of Ray, DrawSystem, and ShowSystem that carries a list of user-expressed graphics styles for the rendering of ray lines.
RayLineThickness
RayLineThickness -> # is an option of Ray, DrawSystem, and ShowSystem that supplies AbsoluteThickness[#] thickness values for rendering the ray.
RayPointRGB
RayPointRGB is an option of Ray, DrawSystem, and ShowSystem that designates the color used in rendering the ray/surface intersection points.
RayPointSize
RayPointSize is an option of Ray, DrawSystem, and ShowSystem that passes information to AbsolutePointSize for the rendering of ray/surface intersection points.
RayPointStyle
RayPointStyle is an option of Ray, DrawSystem, and ShowSystem that carries a list of user-expressed graphics styles for the rendering of ray/surface intersection points.
RaySelect
RaySelect[objectset, selectionproperties] takes an object set composed of Ray objects, and returns a filtered list of Ray objects that shares the common set of traits specified in selectionproperties.
There are two ways of specifying selectionproperties: the first way is to give a list of Ray options selected. The second way is to give a function that takes Ray options as inputs and returns True or False. An example of the first method is {IntersectionNumber -> 3, ComponentNumber->2}. An example of the second method is Function[{ComponentNumber, IntersectionNumber}, ComponentNumber == 2 && IntersectionNumber > 10]. If selectionproperties === All or selectionproperties is left out, then all Ray objects are passed back. RaySelect does not use any options. RaySelect[objectset] returns an unfiltered list of Ray objects.
RayStart
RayStart is a rule of Ray that gives the spatial starting coordinate of a ray showing the three-dimensional coordinate point where the ray intersected with a component surface.
RayTilt
RayTilt is a rule of Ray that is a three-dimensional coordinate that designates the direction in which the ray segment is pointing in space.
ReadRays
ReadRays[objectset, rayparameters, selectionproperties, options] is an advanced function that takes an object set composed of Ray objects and returns a list of values for rayparameters given.
ReadRays first obtains a filtered set of Ray objects by calling RaySelect and using the given selectionproperties. Use Options[Ray] for a listing of the ray parameters available. See also: RaySelect for more about selectionproperties.
RectangleGraphic
RectangleGraphic[{xmin, ymin}, {xmax, ymax}, options] refers to a two-dimensional rectangle lying in the horizontal x-y plane with its diagonal corners placed at {xmin, ymin} and {xmax, ymax}.
RectangleGraphic does not interact with rays in any way, but it can be listed with active components or with other graphics components for creating passive three-dimensional shapes.
Reflectance
Reflectance is an option of Reflection that specifies the percentage of the incident ray segment intensity that is reflected in the outgoing ray segment.
Reflectance usually takes values running between 0 and 100. Reflectance is also an option used by mirrors and beam splitters.
Reflection
Reflection[component, options] is a genetic building block that uses DeflectionFunction[Reflection, {reflectionvariables}] to produce reflected rays from optical surfaces.
Refraction
Refraction[component, options] is a genetic building block that uses DeflectionFunction[Refraction, {refractionvariables}] to produce refracted rays through optical surfaces.
RefractiveIndex
RefractiveIndex is a rule of Ray that gives the refractive index value for the ray segment in the local environment and uses ModelRefractiveIndex to calculate its value.
ModelRefractiveIndex uses the model's associated labels supplied by IntrinsicMedium and ComponentMedium. IntrinsicMedium, ComponentMedium, OpticalMedium, and ModelRefractiveIndex are other options involving the refractive index.
RenderedPolygons
RenderedPolygons is a rule of Component that directs the rendering of one or more planes whose polygonal shapes are defined by connecting surfaces given by SurfaceNumber.
RenderedPolygons contains nested lists carrying SurfaceNumber, StartPoint, FinishPoint, and RenderType rules.
RenderedSurfaces
RenderedSurfaces is a rule of Component that denotes a nested list of rules that defines the graphical rendering of simple surfaces.
RenderedSurfaces contains lists containing SurfaceNumber, HoleBoundary, and RenderType rules.
RenderSystem
RenderSystem[objectset, options] takes an object set carrying Component and Ray objects, and renders the object set. These graphics primitives have the head GraphicalOutput.
RenderType
RenderType is a rule nested within the RenderedSurfaces and RenderedPolygons of Component that specifies the type of rendering to be performed.
RenderType uses one or more of the following command words: Empty, Fill, Trace, and Mesh.
ReplaceFor
ReplaceFor -> objecttypes is a rule within Deflections of Component that indicates which types of objects are replaced by the new parameter results of the ray-tracing function calculation.
ReplaceFor supplants the entire contents of an object type regardless of its prior contents. For this reason, the command option AddTo is usually preferred over ReplaceFor. Possible object types of ReplaceFor include NewRay, ChangedRay, OriginalRay, CreatedRay, AllCreatedRays, ChangedSurface, and ChangedComponent. Note that the OriginalRay object type is rarely changed. Modifications to the past Ray object type are generally made using ReplaceFor instead. ReplaceFor can point to a list of object types, but is often a single value. See also: DeflectionFunction, TakeFrom, and AddTo.
Resonate
Resonate[listofcomponents, objectname, options] is a genetic building block, labeled by objectname that causes a ray to resonate within the surfaces originally specified by an encapsulated list of components for successive propagation generations until the ray is not intercepted by any surface within the synthesized Component.
Resonate takes a list of Component objects and creates a single Component object from the list. Once the resonant component is no longer in its trajectory, the ray is allowed to continue propagating to other components. This effect enables repeated nonsequential ray interactions with a number of surfaces to occur. Resonate is also used as an unauthorized option of Ray. A Ray object carrying Resonate -> True will loop through surface targets within the resonant component until no surface intersection can be found within the component. See also: Confine and Unconfine.
ReverseMigration
ReverseMigration[component, options] is a genetic building block that switches the sign of SurfaceIncrement.
RodLens
RodLens[diameter, length, options] designates an entire cylindrical refractive surface.
RodLens is created with one side at the origin of the coordinate system.
RodMirror
RodMirror[diameter, length, options] denotes an entire cylindrical mirror.
RodMirror is created with one side at the origin of the coordinate system.
RotationMatrix
RotationMatrix is a rule that gives a 3 x 3 matrix of spatial rotations invoked on the original object coordinate system by Move functions.
Both Ray and SurfaceFunction use RotationMatrix. See also: TranslationVector.
RunningCommentary
RunningCommentary is an option of PropagateSystem where RunningCommentary->True results in a printed report of the ray-trace calculation process.
Sapphire
Sapphire indicates the use of a sapphire crystal medium.
The refractive index model for Sapphire is most suitable for the wavelength range of .27 microns to .82 microns.
Screen
Screen[aperture, options] refers to a planar component that intersects rays without disturbing them.
Although Screen is usually not rendered, the ray/screen intersections can be rendered by using the DrawSystem option, PlotType->Surface. Screen is created with its surface centered about the origin. The aperture parameter may indicate a circle, rectangle, or polygon depending on the number and type of elements listed by it.
ScreenPosition
ScreenPosition labels the parametric surface coordinates for the center of the locus of ray/surface intersections.
See also: FindSpotSize.
SF11
SF11 designates the use of the SF11 glass medium.
The refractive index model for SF11 is most suitable for the wavelength range of .35 microns to 2.3 microns.
SF5
SF5 designates the use of the SF5 glass medium.
The refractive index model for SF5 is most suitable for the wavelength range of .35 microns to 2.3 microns.
ShadowProject
ShadowProject is a value of PlotType that gives a three-dimensional rendering of the optical system along with two-dimensional projections of the system onto the sides of a box.
See Shadow in the standard Mathematica packages. See also: Surface, TopView, SideView, FrontView, Off, and Full3D.
ShowRange
ShowRange -> values uses ComponentNumber values to select the components and ray segments displayed by DrawSystem and ShowSystem.
ShowRange can take either the value All or a list of the ComponentNumber values. See also: RayChoice and PlotType.
ShowSystem
ShowSystem[objectset, options] takes an object set containing Ray, Component, and OpticalSystem objects and renders them according to PlotType, RayChoice, ShowRange, and ColorView options.
If a GraphicalOutput head is present, then ShowSystem presents the graphics according to the DrawSystem options. If a GraphicalOutput head is not present in the input, then ShowSystem calls RenderSystem first. ShowSystem renders the rays selected from the RayChoice and ShowRange options. The PlotType option determines whether ShowSystem displays the rendered graphics three-dimensionally, with two-dimensional projections, or as surface projections with points that specify where selected rays intersect with the surface. See also: PlotType, RayChoice, ShowRange, and ColorView.
SideOfObject
SideOfObject is an option of MoveDirected and MoveDirected3D that denotes the direction of the axis point, {xaxis, yaxis, zaxis}, from the object.
If Before is used, then the object is oriented such that the point position is upstream from the object. If After is used, then the object is oriented such that the point position is downstream from the object.
SideView
SideView is a value of PlotType that gives a two-dimensional orthoscopic rendering showing a projection onto the x-z plane of the optical system.
See also: Surface, TopView, FrontView, ShadowProject, Off, and Full3D.
Silicon
Silicon designates the use of a silicon crystal medium.
The refractive index model for Silicon is most suitable for the wavelength range of 1.25 microns to 2.0 microns.
Sketch
Sketch is a value of GraphicDesign.
See also: SurfaceRendering, EdgeRendering, and CrossRendering.
SK11
SK11 indicates the use of the SK11 glass medium.
The refractive index model for SK11 is most suitable for the wavelength range of .35 microns to 2.3 microns.
Solid
Solid is a value of GraphicDesign.
See also: SurfaceRendering, EdgeRendering, and CrossRendering.
SphereGraphic
SphereGraphic[diameter, options] denotes a three-dimensional sphere with its center placed at the origin of the coordinate system.
SphereGraphic can be rendered with opened quadrant sides by changing the SurfaceRendering option. SphereGraphic does not interact with rays in any way, but can be listed with active components or with other graphics components for creating passive three-dimensional shapes.
SphericalBaffle
SphericalBaffle[radius, aperture, options] refers to a spherical, single-surfaced component that absorbs light.
SphericalBaffle is created with its surface centered about the origin. The aperture parameter may indicate a circle, rectangle, or polygon depending on the number and type of elements listed by it.
SphericalGratingMirror
SphericalGratingMirror[radius, gratingfunction, aperture, options] denotes a spherical, diffractive, reflective, component that splits incoming rays into multiple diffracted, reflected orders according to the gratingfunction parameter and the DiffractedOrders option.
The gratingfunction parameter specifies a grating vector either as a one-dimensional value, a two-dimensional list of values, a three-dimensional list of values, or a three-dimensional Function[{horizontal, vertical, perp}], where horizontal, vertical, and perp specify the indicated grating directions with the grating surface initially oriented parallel to the y-z plane. These vector quantities have units of spatial frequency and are given in line pairs per millimeter. A single number used in the grating parameter denotes a uniformly distributed grating vector pointing in the direction of the y axis. A list of two numbers indicates a uniformly distributed grating vector whose direction lies within the surface plane. SphericalGratingMirror returns DiffractionMismatch and DiffractionOrderNumber as ray parameters. For other options of SphericalGratingMirror, see EfficiencyFunction and MismatchCutOff. See also: GratingSurface, Diffraction, and Reflection.
SphericalLens
SphericalLens[r1, r2, aperture, thickness, objectlabel, options] denotes a lens having spherical surfaces and a user-named objectlabel.
The radii of curvatures are specified by r1 and r2 where Infinity is used to specify planar surfaces. SphericalLens is created with its first surface centered about the origin and its second surface positioned down the x axis. The aperture parameter may specify a circle, rectangle, or polygon depending on the number and type of elements listed by it.
SphericalLensSurface
SphericalLensSurface[radius, aperture, options] designates a spherical component that has a given radius of curvature that models the refractive index boundary at a lens surface.
SphericalLensSurface is always used in combination with one or more additional LensSurface component types to create a complete lens object. SphericalLensSurface is created with its surface centered about the origin. The aperture parameter may specify a circle, rectangle, or polygon depending on the number and type of elements listed by it. LensSurface, SphericalLensSurface, CylindricalLensSurface, ParabolicLensSurface, and CustomLensSurface are all related components.
SphericalMirror
SphericalMirror[radius, aperture, thickness, options] specifies a double-surfaced mirror that has a spherical reflective side and a planar refractive side.
SphericalMirror is created with its first surface centered about the origin and its second surface positioned down the positive x axis. The aperture parameter may designate a circle, rectangle, or polygon depending on the number and type of elements listed by it.
SphericalScreen
SphericalScreen[radius, aperture, options] designates a spherical component that intersects rays without disturbing them.
Although SphericalScreen is usually not rendered, the ray/screen intersections can be rendered by using the DrawSystem option, PlotType->Surface. SphericalScreen is created with its surface centered about the origin. The aperture parameter may specify a circle, rectangle, or polygon depending on the number and type of elements listed by it.
SphericalShape
SphericalShape is a value of SurfaceLabel within Component that specifies the spherical SurfaceFunction.
SpotPosition
SpotPosition labels the three-dimensional point in space lying at the center of the locus of ray/surface intersections.
See also: FindSpotSize.
SpotSize
SpotSize labels the minimum diameter of a circle that encloses the locus of ray/surface intersections on a given planar surface.
See also: FindFocus and FindSpotSize.
StandardGraphics
StandardGraphics is a value of OutputType.
If StandardGraphics mode is indicated, then ShowSystem and DrawSystem return a standard graphics object that is recognized by the standard graphics packages.
StartPoint
StartPoint is a rule nested within RenderedPolygons of Component that gives the two-dimensional starting coordinate on a surface indicated by SurfaceNumber.
StartPoint is used for creating the sides of a polygon that span several surfaces.
StartValue
StartValue is an option of FindFocus that gives a starting number to help FindRoot begin its search.
Suprasil
Suprasil denotes the use of the Suprasil glass medium.
Surface
Surface is a value of PlotType giving a two-dimensional plot that shows selected intersection points between rays and one or more optical surfaces.
The RayChoice option is used in selecting rays to be displayed. See also: TopView, SideView, FrontView, ShadowProject, Off, and Full3D.
SurfaceBoundary
SurfaceBoundary -> aperture is a Component parameter that gives a list of numbers describing the surface boundary.
Depending on the form of aperture, either a circular, elliptical, rectangular, or polygonal boundary is defined: a single number indicates a circular boundary having the indicated diameter; a list of two positive numbers indicates a rectangular boundary that has a length and a width; a list of two negative numbers indicates an elliptical boundary having the indicated major and minor axis; a list of paired numbers designates a polygonal boundary having the indicated vertex points. SurfaceBoundary is also a ray parameter rule that gives the aperture dimensions of the last surface to intercept the ray.
SurfaceCenter
SurfaceCenter is a rule embedded within the Surfaces rule of Component that gives the three-dimensional surface center coordinates.
See also: EntranceCoordinates and FunctionCenter.
SurfaceCoordinates
SurfaceCoordinates is a rule of Ray that gives the parametric coordinate of the last surface function to intersect with the ray.
SurfaceFunction
SurfaceFunction is a rule embedded within Surfaces of Component giving a list of three parametric pure function equations {fx, fy, fz} that describe a particular optical surface in three-dimensional space.
SurfaceIncrement
SurfaceIncrement -> increment is a rule of Ray that gives the rate of increment used to step through component surfaces.
SurfaceIncrement -> +1 increments ConfinedPosition by 1, while SurfaceIncrement -> -1 increments ConfinedPosition by -1. ConfinedPosition locations can be skipped by forcing SurfaceIncrement to be some integer >1 or <1. By setting SurfaceIncrement -> 0, Ray remains at the same ConfinedPosition location for an iteration. SurfaceIncrement will always revert to Sign[increment] after one propagation iteration. A related parameter is ComponentIncrement. See also: ConfinedPosition, ComponentNumber, IntersectionNumber, GenerationNumber, ConfinedNumber, and SurfaceNumber.
SurfaceLabel
SurfaceLabel is an option of ComponentFoundation and Component that designates the shapes of surfaces created by ComponentFoundation.
SurfaceLabel contains one or more elements of SphericalShape, ParabolicShape, PlanarShape, CylindricalShape, and OtherShape. SurfaceLabel usually has as many elements as there are related surfaces. If only shape element is indicated, all surfaces are assigned the same type of shape. A user-defined value for SurfaceLabel may also be used. SurfaceLabel is also a rule embedded within Surfaces of Component that gives a single-word description of a particular optical surface. See also: ModelSurfaceShape.
SurfaceNormalCalculations
SurfaceNormalCalculations is an option of ComponentFoundation and specifies whether calculations are based on symbolic or direct numerical solutions for the SurfaceNormalFunction parameter.
For some discontinuous and ill-behaved surface functions, SurfaceNormalCalculations -> Numeric may be necessary. Generally, SurfaceNormalCalculations -> Automatic is used for well-behaved functions.
SurfaceNormalFunction
SurfaceNormalFunction is a rule embedded within Surfaces of Component that describes the normals of the surface functions.
SurfaceNormalFunction is not initially present in the unevaluated Component object, but is calculated and added by PropagateSystem to Component when requested by ray-tracing functions. SurfaceNormalFunction is used by ray-tracing functions such as Refraction and Reflection, or where ChangedSurface is included in the TakeForm rule within Deflections.
SurfaceNormalMatrix
SurfaceNormalMatrix is a rule of Ray that gives a matrix containing a unit normal vector of the surface as its first element, as well as the two unit-tangent vectors for the point at the ray/surface intersection.
SurfaceNumber
SurfaceNumber is a rule of both Ray and Component that denotes the slot positions used within Surfaces of Component.
SurfaceNumber, ComponentNumber, ConfinedPosition, UnconfinedPosition, IntersectionNumber, GenerationNumber, and ConfinedNumber are all pointer parameters stored in Ray.
SurfaceRayIntersections
SurfaceRayIntersections is an option of ComponentFoundation and is also embedded within Surfaces of Component that denotes whether calculations are symbolic or direct numerical solutions for the ray/surface intersection points.
For some discontinuous and ill-behaved surface functions, SurfaceRayIntersections -> Numeric may be necessary. Generally, SurfaceRayIntersections -> Automatic yields the most encompassing solutions for well-behaved functions.
SurfaceRendering
SurfaceRendering is an option of ComponentRendering that denotes the surface graphical rendering of single-surfaced and multisurfaced components.
SurfaceRendering uses a list composed of: Fill, Trace, Mesh, Empty, and {Fill, Mesh}. See also: ComponentRendering, EdgeRendering, CrossRendering, and RenderType.
Surfaces
Surfaces -> {...} is a rule within Component giving a list of elements that defines component surfaces.
SurfaceValue
SurfaceValue -> # is a rule within Surfaces of Component that specifies the curvature characteristics of the function given in SurfaceFunction.
SurfaceValue is interpreted differently by LensLab according to the accompanying SurfaceLabel option.
SwitchDirectionOnReflection
SwitchDirectionOnReflection is an option of Refraction and refractive components that determines whether the direction of propagation is reversed by an internal reflection.
SwitchIntrinsicMedium
SwitchIntrinsicMedium[component, medium1, medium2, options] is a genetic building block used for changing the values of IntrinsicMedium between medium1 and medium2.
SwitchIntrinsicMedium uses parameters medium1 and medium2 to obtain intrinsic index functions. If the ray is coming from an environment that has an intrinsic index given by medium1, then the value of IntrinsicMedium of Ray is replaced by medium2. Likewise, if the ray is coming from an environment that has an intrinsic index given by medium2, then the value of IntrinsicMedium of Ray is replaced by medium1. Note that either medium1 or medium2 must correspond with the value of IntrinsicMedium of the incident Ray object. If the Ray object of the incident ray does not already contain one of the two intrinsic index values, then the ray's propagation is terminated by setting its Intensity to zero, which specifies a design entry error. See also: IntrinsicMedium, ComponentMedium, and RefractiveIndex.
TakeFrom
TakeFrom -> objecttypes is a rule within Deflections in Component that designates which types of objects are used as inputs to the ray-tracing function calculation.
Possible object types of TakeFrom include OriginalRay, ChangedRay, CreatedRay, AllCreatedRays, ChangedSurface, and ChangedComponent. TakeFrom often uses a list of object types. See also: DeflectionFunction, AddTo, and ReplaceFor.
Temperature
Temperature is an option of Ray that denotes the temperature of a component surface given in degrees Celsius.
Temperature is an option of refractive components and the Refraction genetic building block. Note that although Temperature is an option of all refractive components, not all refractive materials have temperature-dependent properties incorporated into their working model.
ThickLens
ThickLens[focallength, aperture, principleplanespacing, options] behaves as an ideal thick lens for two-dimensional, paraxial ray traces by using the ABCD matrix representations for a thick lens.
See also: ThinLens, ABCDOptic, and ABCDMatrix.
ThinBaffle
ThinBaffle[aperture, options] refers to a planar, single-surfaced component that absorbs light.
ThinBaffle is created with its surface centered about the origin. The aperture parameter may indicate a circle, rectangle, or polygon depending on the number and type of elements listed by it.
ThinBeamSplitter
ThinBeamSplitter[{percentreflected, percenttransmitted}, aperture, options] denotes a planar, single-surfaced component that partially reflects and partially transmits rays of light.
ThinBeamSplitter is created with its splitting surface centered about the origin. The aperture parameter may indicate a circle, rectangle, or polygon depending on the number and type of elements listed by it.
ThinLens
ThinLens[focallength, aperture, options] behaves as an ideal thin lens for two-dimensional, paraxial ray traces by using the ABCD matrix representation for a thin lens.
See also: ThickLens, ABCDOptic, and ABCDMatrix.
ThinMirror
ThinMirror[aperture, options] designates a planar mirror.
ThinMirror is created with its surface centered about the origin. The reflectivity of ThinMirror is specified with the Reflectance option. The aperture parameter may denote a circle, rectangle, or polygon depending on the number and type of elements listed by it.
ThinParabolicMirror
ThinParabolicMirror[radius, aperture, options] refers to a spherical mirror.
ThinParabolicMirror is created with its surface centered about the origin. The aperture parameter may denote a circle, rectangle, or polygon depending on the number and type of elements listed by it.
ThinSphericalMirror
ThinSphericalMirror[radius, aperture, options] denotes a spherical mirror.
ThinSphericalMirror is created with its surface centered about the origin. The aperture parameter may indicate a circle, rectangle, or polygon depending on the number and type of elements listed by it.
ThresholdIntensity
ThresholdIntensity is an option of PropagateSystem and DrawSystem that dictates the value of the ray intensity, above which the ray will continue to be propagated and below which the ray's propagation through optical surfaces is terminated.
See also: Intensity and GenerationLimit.
TiltVector
TiltVector labels the unit vector that denotes the direction of the ray bundle optical axis.
See also: FindSpotSize.
Toluene
Toluene denotes the use of a toluene liquid medium at 20 degrees Celsius.
The refractive index model for Toluene is most suitable for the wavelength range of .43 microns to .66 microns. Toluene has a density of 0.86, relative to the density of water.
TopView
TopView is a value of PlotType that gives a two-dimensional orthoscopic rendering showing a projection onto the x-y plane of the optical system.
See also: Surface, SideView, FrontView, ShadowProject, Off, and Full3D.
Trace
Trace is a value of RenderType within Component that specifies that surfaces are rendered with outlined borders and no shading.
TranslationVector
TranslationVector is a rule that denotes a three-dimensional vector for spatial translations invoked on the original surface coordinate system by the Move functions.
Each SurfaceFunction has a corresponding TranslationVector listed with it. See also: RotationMatrix.
Transmission
Transmission[component, options] is a genetic building block that creates a ray-tracing function to pass rays through optical surfaces while preserving ray tilts.
Transmission modifies Intensity according to the option Transmittance -> # in Options[Transmission].
Transmittance
Transmittance is an option of Refraction and Transmission that denotes the percent of the incident ray segment intensity that is transmitted in the outgoing ray segment.
Transmittance usually takes values running between 0 and 100. Transmittance is also an option used by mirrors, lenses and beam splitters.
Turpentine
Turpentine designates the use of a turpentine liquid medium at 20 degrees Celsius.
The refractive index model for Turpentine is most suitable for the wavelength range of .4 microns to .66 microns. Turpentine has a density of 0.87, relative to the density of water.
TwistAngle
TwistAngle is an option that relates to an amount of rotation around an axis, given in degrees.
TwistAngle is used by Move, MoveLinear, MoveDirected, and MoveReflected.
Ultran30
Ultran30 specifies the use of the Ultran30 glass medium.
Ultran30 is a UV-transmittant glass produced by Schott.
Unconfine
Unconfine[listofcomponents, options] is a genetic building block that takes one or more Component objects and creates a single Component object that allows rays to enter the component through any surface.
Unconfine passes options to BuildComponent. See also: Resonate and Confine.
UnconfinedPath
UnconfinedPath is a ray parameter that gives the slot positions for entrance surfaces within ConfinedPaths.
UnconfinedPath is determined dynamically during the ray-tracing operation and is updated each time Ray is incremented to a new component. See also: ConfinedNumber.
UnconfinedPosition
UnconfinedPosition is a rule of Ray that specifies the present slot position used within the UnconfinedPath parameter stored in Ray.
SurfaceNumber, ComponentNumber, ConfinedPosition, UnconfinedPosition, IntersectionNumber, GenerationNumber, and ConfinedNumber are all pointer parameters stored in Ray.
Vacuum
Vacuum specifies the use of a vacuum medium (i.e., refractive index = 1.0).
VerticalSymmetry
VerticalSymmetry is a value of FresnelSymmetry that implies that the surface grooves are symmetric about the component's horizontal axis.
Water
Water denotes the use of a water medium at 20 degrees Celsius.
The refractive index model for Water is most suitable for the wavelength range of .4 microns to .66 microns.
WaveLength
WaveLength is a rule of Ray describing the ray's optical wavelength (in microns).
WedgeOfRays
WedgeOfRays[wedgeangle, options] creates a set of rays, starting at the origin of the coordinate system, equally distributed across a horizontal wedge, and fanned symmetrically about the positive x axis.
See also: NumberOfRays.
Window
Window[aperture, thickness, options] refers to a planar, refractive component that has a specified thickness.
Window is created with its first surface centered about the origin and its second surface positioned down the x axis. The aperture parameter may specify a circle, rectangle, or polygon depending on the number and type of elements listed by it.
Wire
Wire is a value of GraphicDesign.
See also: SurfaceRendering, EdgeRendering, and CrossRendering.
ZincSelenide
ZincSelenide denotes the use of a zinc selenide medium.
The refractive index model for ZincSelenide is most suitable for the wavelength range of .5 microns to 10.6 microns.
Copyright Statement
LensLab is a trademark of Optica Software.
Mathematica ® is a registered trademark of Wolfram Research, Inc. All other product names mentioned are trademarks of their producers. Mathematica is not associated with Mathematica Policy Research, Inc. or MathTech, Inc.
Copyright ©1995-2005 by Optica Software, Urbana, Illinois, Champaign, Illinois.
All rights reserved. No part of this document may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, electronic, mechanical, photocopying, recording or otherwise, without prior written permission of the author, Optica Software.
Optica Software is the holder of the copyright to the LensLab package software and documentation ("Product") described in this document, including without limitation such aspects of the Product as its code, structure, sequence, organization, "look and feel", programming language and compilation of command names. Use of the Product, unless pursuant to the terms of a license granted by Wolfram Research, Inc. or as otherwise authorized by law, is an infringement of the copyright.
The author, Optica Software, and publisher, Wolfram Research, Inc., make no representations, express or implied, with respect to this Product, including without limitations, any implied warranties of merchantability or fitness for a particular purpose, all of which are expressly disclaimed. Users should be aware that included in the terms and conditions under which Wolfram Research is willing to license the Product is a provision that the author, Optica Software, publisher, Wolfram Research, Inc., and distribution licensees, distributors and dealers shall in no event be liable for any indirect, incidental or consequential damages, and that liability for direct damages shall be limited to the amount of the purchase price paid for the Product.
In addition to the foregoing, users should recognize that all complex software systems and their documentation contain errors and omissions. The author, Optica Software, and publisher, Wolfram Research, Inc., shall not be responsible under any circumstances for providing information on or corrections to errors and omissions discovered at any time in this document or the package software it describes, whether or not they are aware of the errors or omissions. The author, Optica Software, and publisher, Wolfram Research, Inc., do not recommend the use of the software described in this document for applications in which errors or omissions could threaten life, injury or significant loss.
Created by Mathematica (November 4, 2005)