Sys::Lens class reference
[Core module]

Declaration  

#include <Goptical/Sys/Lens>

namespace Goptical {
namespace Sys {
class Lens;
};
};

This class is a member of the Sys namespace.

Inheritance  


 
 

 
 


 
 
 

 
 


 
 

 
 


Description  

This class is a group of optical surfaces. It contains functions to describe a lens or lens group component in a convenient way.

If Material::none is passed as material, it will be replaced by system environement proxy material when the optical surface becomes part of a System.

See also The Lens component section.

Members  

See also the full member list section for this class.

Inherited members  

  • 51 members inherited from Group

Functions  

  • Lens(const Math::VectorPair3 &p, double offset = [...], const const_ref<Material::Base> &env = [...])
  • Lens(const Math::VectorPair3 &p, const const_ref<Curve::Base> &curve0, const const_ref<Shape::Base> &shape0, const const_ref<Curve::Base> &curve1, const const_ref<Shape::Base> &shape1, double thickness0, const const_ref<Material::Base> &glass0, const const_ref<Material::Base> &env = [...])
  • Lens(const Math::VectorPair3 &p, double roc0, double ap_radius0, double roc1, double ap_radius1, double thickness, const const_ref<Material::Base> &glass0, const const_ref<Material::Base> &env = [...])
  • virtual ~Lens()
  • void add_stop(const const_ref<Shape::Base> &shape, double thickness)
  • void add_stop(double ap_radius, double thickness)
  • unsigned int add_surface(const const_ref<Curve::Base> &curve, const const_ref<Shape::Base> &shape, double thickness = [...], const const_ref<Material::Base> &glass = [...])
  • unsigned int add_surface(double roc, double ap_radius, double thickness = [...], const const_ref<Material::Base> &glass = [...])
  • Math::VectorPair3 get_exit_plane() const
  • const OpticalSurface & get_left_surface() const
  • OpticalSurface & get_left_surface()
  • const OpticalSurface & get_right_surface() const
  • OpticalSurface & get_right_surface()
  • const OpticalSurface & get_surface(unsigned int index) const
  • OpticalSurface & get_surface(unsigned int index)
  • double get_thickness(unsigned int index = [...]) const
  • void set_curve(const const_ref<Curve::Base> &c, unsigned int index)
  • void set_glass_material(const const_ref<Material::Base> &m, unsigned int index = [...])
  • void set_left_curve(const const_ref<Curve::Base> &c)
  • void set_left_material(const const_ref<Material::Base> &m)
  • void set_right_curve(const const_ref<Curve::Base> &c)
  • void set_right_material(const const_ref<Material::Base> &m)
  • void set_shape(const const_ref<Shape::Base> &s)
  • void set_shape(const const_ref<Shape::Base> &s, unsigned int index)
  • void set_thickness(double thickness, unsigned int index = [...])

Members detail  

Lens(const Math::VectorPair3 &p, double offset = 0., const const_ref<Material::Base> &env = Material::none)  

Create an empty lens. Surfaces can be added with the add_surface functions.

Lens(const Math::VectorPair3 &p, const const_ref<Curve::Base> &curve0, const const_ref<Shape::Base> &shape0, const const_ref<Curve::Base> &curve1, const const_ref<Shape::Base> &shape1, double thickness0, const const_ref<Material::Base> &glass0, const const_ref<Material::Base> &env = Material::none)  

Create a lens at given position with given thickness, shapes, curvatures and glass.

See also add_surface function.

Lens(const Math::VectorPair3 &p, double roc0, double ap_radius0, double roc1, double ap_radius1, double thickness, const const_ref<Material::Base> &glass0, const const_ref<Material::Base> &env = Material::none)  

Create a circular lens with flat or spherical surfaces at given position with given thickness, radius of curvature, aperture radius and glass.

See also add_surface function.

virtual ~Lens()  

No documentation available

void add_stop(const const_ref<Shape::Base> &shape, double thickness)  

Add an aperture stop with given, shape and thickness.

void add_stop(double ap_radius, double thickness)  

Add an aperture stop with circular aperture.

Parameters list:

  • radius: circular aperture radius.
  • thickness: distance to the next stop or exit plane. .

unsigned int add_surface(const const_ref<Curve::Base> &curve, const const_ref<Shape::Base> &shape, double thickness = 0., const const_ref<Material::Base> &glass = Material::none)  

Add an optical surface with given curve, shape, thickness and material.

unsigned int add_surface(double roc, double ap_radius, double thickness = 0., const const_ref<Material::Base> &glass = Material::none)  

Add a spherical or flat optical surface with circular aperture.

Parameters list:

  • roc: spherical radius of curvature. 0 means flat curve.
  • ap_radius: circular aperture radius.
  • thickness: distance to the next surface or exit plane. .
  • glass: material between added surface and next surface.

Math::VectorPair3 get_exit_plane() const  

Get plane of last surface + thickness z offset

const OpticalSurface & get_left_surface() const  

Get a reference to left optical surface element

OpticalSurface & get_left_surface()  

Get a reference to left optical surface element

const OpticalSurface & get_right_surface() const  

Get a reference to right optical surface element

OpticalSurface & get_right_surface()  

Get a reference to right optical surface element

const OpticalSurface & get_surface(unsigned int index) const  

Get a reference to optical surface at given index

OpticalSurface & get_surface(unsigned int index)  

Get a reference to optical surface at given index

double get_thickness(unsigned int index = 0) const  

Get thickness between two surfaces

void set_curve(const const_ref<Curve::Base> &c, unsigned int index)  

Set curve of given surface index

void set_glass_material(const const_ref<Material::Base> &m, unsigned int index = 0)  

Set glass material

void set_left_curve(const const_ref<Curve::Base> &c)  

Set left curve

void set_left_material(const const_ref<Material::Base> &m)  

Set left material

void set_right_curve(const const_ref<Curve::Base> &c)  

Set right curve

void set_right_material(const const_ref<Material::Base> &m)  

Set left material

void set_shape(const const_ref<Shape::Base> &s)  

Set lens shape (all surfaces)

void set_shape(const const_ref<Shape::Base> &s, unsigned int index)  

Set lens shape of given surface index

void set_thickness(double thickness, unsigned int index = 0)  

Adjust thickness between two surfaces

Valid XHTML 1.0 StrictGenerated by diaxen on Sun Jan 8 00:47:24 2012 using MkDoc