Trait angular_units::Angle
[−]
[src]
pub trait Angle: Clone { type Scalar: Float; fn period() -> Self::Scalar; fn scalar(&self) -> Self::Scalar; fn normalize(&self) -> Self; fn is_normalized(&self) -> bool; fn sin(self) -> Self::Scalar; fn cos(self) -> Self::Scalar; fn tan(self) -> Self::Scalar; fn sin_cos(self) -> (Self::Scalar, Self::Scalar); fn asin(value: Self::Scalar) -> Self; fn acos(value: Self::Scalar) -> Self; fn atan(value: Self::Scalar) -> Self; fn atan2(x: Self::Scalar, y: Self::Scalar) -> Self; }
Base functionality for all angle types.
Associated Types
type Scalar: Float
Internal type storing the angle value.
Required Methods
fn period() -> Self::Scalar
The length of a full rotation.
fn scalar(&self) -> Self::Scalar
Return the scalar (unitless) value.
Equivalent to self.0
or to doing let Deg(val) = self
fn normalize(&self) -> Self
Normalize the angle, wrapping it back into the standard domain.
After normalization, an angle will be in the range [0, self.period())
.
For performance reasons, normalization does not happen automatically during most operations. Thus, when passing an angle to a method that expects it to be within the standard domain, first normalize the angle.
fn is_normalized(&self) -> bool
Whether the angle is in the standard domain.
fn sin(self) -> Self::Scalar
Compute the sine of an angle.
fn cos(self) -> Self::Scalar
Compute the cosine of an angle.
fn tan(self) -> Self::Scalar
Compute the tangent of an angle.
fn sin_cos(self) -> (Self::Scalar, Self::Scalar)
Simultaneously compute sine and cosine.
fn asin(value: Self::Scalar) -> Self
Compute the arcsine of a value, returning an angle.
fn acos(value: Self::Scalar) -> Self
Compute the arccosine of a value, returning an angle.
fn atan(value: Self::Scalar) -> Self
Compute the arctangent of a value, returning an angle.
fn atan2(x: Self::Scalar, y: Self::Scalar) -> Self
Compute the arctangent of a value, using information from the numerator and denominator in order to increase the domain.
Implementors
impl<T: Float> Angle for Deg<T>
impl<T: Float> Angle for Rad<T>
impl<T: Float> Angle for Turns<T>
impl<T: Float> Angle for ArcMinutes<T>
impl<T: Float> Angle for ArcSeconds<T>