pub enum Component {
Element {
surf_idxs: (usize, usize),
},
Stop {
stop_idx: usize,
},
UnpairedSurface {
surf_idx: usize,
},
}Expand description
A component is a part of an optical system that can interact with light rays.
Components come in two types: elements, and stops. Elements are the most basic compound optical component and are represented as a set of surfaces pairs. Stops are hard stops that block light rays.
To avoid copying data, only indexes are stored from the surface models are stored.
Variants§
Trait Implementations§
Source§impl<'de> Deserialize<'de> for Component
impl<'de> Deserialize<'de> for Component
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
impl Eq for Component
impl StructuralPartialEq for Component
Auto Trait Implementations§
impl Freeze for Component
impl RefUnwindSafe for Component
impl Send for Component
impl Sync for Component
impl Unpin for Component
impl UnwindSafe for Component
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