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
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
Create an empty lens. Surfaces can be added with the add_surface functions.
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.
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. .
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.
Get plane of last surface + thickness z offset
Get a reference to left optical surface element
Get a reference to left optical surface element
Get a reference to right optical surface element
Get a reference to right optical surface element
Get a reference to optical surface at given 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 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