Struct NormalPrecisionMode

Source
pub struct NormalPrecisionMode(/* private fields */);
Expand description

Setting dictating how much can any normal in a model deviate, expressed as an angle.

Implementations§

Source§

impl NormalPrecisionMode

Source

pub fn from_deg_dev(deg: FloatType) -> Self

Creates NormalPrecisionMode from maximal allowed deviation angle in degrees, for radians use Self::from_rad_dev

// Maximal angle between compressed and original normal will be 1.0 degrees.
let dev_1_deg = NormalPrecisionMode::from_deg_dev(1.0);
// Maximal angle between compressed and original normal will be 0.01 degrees.
let dev_0_point_01_deg = NormalPrecisionMode::from_deg_dev(0.01);
// Maximal angle between compressed and original normal will be 5.0 degrees.
let dev_5_deg = NormalPrecisionMode::from_deg_dev(5.0);
Source

pub fn from_rad_dev(rad: FloatType) -> Self

Creates NormalPrecisionMode from maximal allowed deviation angle in radians, for degrees use Self::from_deg_dev

// Maximal angle between compressed and original normal will be 0.01 radians
let dev_0_point_01_rad = NormalPrecisionMode::from_rad_dev(0.01);
// Maximal angle between compressed and original normal will be 0.05 radians
let dev_0_point_05_rad = NormalPrecisionMode::from_rad_dev(0.05);

Trait Implementations§

Source§

impl Clone for NormalPrecisionMode

Source§

fn clone(&self) -> NormalPrecisionMode

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 Default for NormalPrecisionMode

Source§

fn default() -> Self

Default precision of saved normals is 1.0 degrees

 let mode = NormalPrecisionMode::from_deg_dev(1.0);
 let default_mode = NormalPrecisionMode::default();
 // The same
 assert!(mode == default_mode);
Source§

impl PartialEq for NormalPrecisionMode

Source§

fn eq(&self, other: &NormalPrecisionMode) -> 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 NormalPrecisionMode

Source§

impl StructuralPartialEq for NormalPrecisionMode

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.