Skip to main content

Radians

Struct Radians 

Source
pub struct Radians(pub f32);
Expand description

A type-safe wrapper for angular measurements in radians.

Range: Usually normalized to (-π, π] for flight dynamics.

Tuple Fields§

§0: f32

Implementations§

Source§

impl Radians

Source

pub fn normalize(&self) -> Self

Normalizes the angle to the range (-π, π].

This is essential for preventing “the long way around” maneuvers and ensuring the PID controller receives the smallest possible error.

§Performance

This implementation uses a deterministic approach to ensure consistent execution time in real-time flight loops.

Source

pub fn shortest_distance_to(&self, target: Radians) -> f32

Calculates the shortest angular distance to a target.

Returns a value in the range (-π, π]. A positive result indicates a clockwise rotation, while a negative result indicates counter-clockwise.

§Example

Moving from 179° to -179° will return a distance of 2° (0.035 rad) instead of -358°.

Trait Implementations§

Source§

impl Clone for Radians

Source§

fn clone(&self) -> Radians

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 Radians

Source§

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

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

impl Default for Radians

Source§

fn default() -> Radians

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

impl From<Degrees> for Radians

Source§

fn from(degrees: Degrees) -> Self

Converts Degrees to Radians. Used for ingesting user configuration into the flight-ready physics engine.

Source§

impl From<Radians> for Degrees

Source§

fn from(radians: Radians) -> Self

Converts Radians to Degrees using the standard constant π.

Source§

impl PartialEq for Radians

Source§

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

Source§

impl StructuralPartialEq for Radians

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, 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.