pub enum Symmetry {
None = 0,
VerticalAxis = 1,
PlaneC0C180 = 2,
PlaneC90C270 = 3,
BothPlanes = 4,
}Expand description
Symmetry indicator for the luminaire.
Defines how the luminous intensity distribution is symmetric, which affects how much data needs to be stored.
Variants§
None = 0
No symmetry (Isym = 0) - full 360° data required
VerticalAxis = 1
Symmetry about the vertical axis (Isym = 1) - only 1 C-plane needed
PlaneC0C180 = 2
Symmetry to plane C0-C180 (Isym = 2) - half the C-planes needed
PlaneC90C270 = 3
Symmetry to plane C90-C270 (Isym = 3) - half the C-planes needed
BothPlanes = 4
Symmetry to both planes C0-C180 and C90-C270 (Isym = 4) - quarter C-planes needed
Implementations§
Source§impl Symmetry
impl Symmetry
Sourcepub fn calc_mc(&self, nc: usize) -> usize
pub fn calc_mc(&self, nc: usize) -> usize
Calculate the actual number of C-planes needed based on symmetry.
This is the key optimization that reduces storage requirements:
- No symmetry: all Nc planes
- Vertical axis: 1 plane (360x reduction!)
- C0-C180: Nc/2 + 1 planes (2x reduction)
- C90-C270: Nc/2 + 1 planes (2x reduction)
- Both planes: Nc/4 + 1 planes (4x reduction)
Sourcepub fn description(&self) -> &'static str
pub fn description(&self) -> &'static str
Get human-readable description.
Trait Implementations§
impl Copy for Symmetry
impl Eq for Symmetry
impl StructuralPartialEq for Symmetry
Auto Trait Implementations§
impl Freeze for Symmetry
impl RefUnwindSafe for Symmetry
impl Send for Symmetry
impl Sync for Symmetry
impl Unpin for Symmetry
impl UnsafeUnpin for Symmetry
impl UnwindSafe for Symmetry
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