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.
No documentation available
Add an aperture stop with given, shape and 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
Get thickness between two surfaces
Set curve of given surface index
Set glass material
Set left curve
Set left material
Set right curve
Set left material
Set lens shape (all surfaces)
Set lens shape of given surface index
Adjust thickness between two surfaces