pub struct SequentialModel { /* private fields */ }Expand description
A collection of submodels for sequential ray tracing.
A sequential model is a collection of surfaces and gaps that define the optical system. The model is divided into submodels, each of which is computed along a specific axis and for a specific wavelength.
See the documentation for SequentialSubModel for more information.
Implementations§
Source§impl SequentialModel
impl SequentialModel
Sourcepub fn new(
gap_specs: &[GapSpec],
surface_specs: &[SurfaceSpec],
wavelengths: &[f64],
) -> Result<Self>
pub fn new( gap_specs: &[GapSpec], surface_specs: &[SurfaceSpec], wavelengths: &[f64], ) -> Result<Self>
Sourcepub fn submodels(&self) -> &HashMap<SubModelID, impl SequentialSubModel>
pub fn submodels(&self) -> &HashMap<SubModelID, impl SequentialSubModel>
Returns the submodels in the system.
Sourcepub fn largest_semi_diameter(&self) -> f64
pub fn largest_semi_diameter(&self) -> f64
Returns the largest semi-diameter of any surface in the system.
This ignores surfaces without any size, such as object, probe, and image surfaces.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for SequentialModel
impl RefUnwindSafe for SequentialModel
impl Send for SequentialModel
impl Sync for SequentialModel
impl Unpin for SequentialModel
impl UnwindSafe for SequentialModel
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more