Skip to main content

Symmetry

Enum Symmetry 

Source
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

Source

pub fn from_int(value: i32) -> Result<Self>

Create from integer value.

Source

pub fn as_int(&self) -> i32

Convert to integer value.

Source

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)
Source

pub fn description(&self) -> &'static str

Get human-readable description.

Trait Implementations§

Source§

impl Clone for Symmetry

Source§

fn clone(&self) -> Symmetry

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Symmetry

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for Symmetry

Source§

fn default() -> Symmetry

Returns the “default value” for a type. Read more
Source§

impl PartialEq for Symmetry

Source§

fn eq(&self, other: &Symmetry) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Copy for Symmetry

Source§

impl Eq for Symmetry

Source§

impl StructuralPartialEq for Symmetry

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.