Trait angular_units::Angle
source · pub trait Angle: Clone + FromAngle<Self> + PartialEq + PartialOrd + Zero {
type Scalar: Float;
Show 19 methods
fn new(value: Self::Scalar) -> Self;
fn period() -> Self::Scalar;
fn scalar(&self) -> Self::Scalar;
fn set_scalar(&mut self, value: 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;
fn full_turn() -> Self;
fn half_turn() -> Self;
fn quarter_turn() -> Self;
fn invert(self) -> Self;
fn reflect_x(self) -> Self;
}
Expand description
Base functionality for all angle types.
Required Associated Types§
Required Methods§
sourcefn new(value: Self::Scalar) -> Self
fn new(value: Self::Scalar) -> Self
Construct a new angle.
Equivalent to constructing the tuple struct directly, eg. Deg(value)
,
but usable in a generic context.
sourcefn scalar(&self) -> Self::Scalar
fn scalar(&self) -> Self::Scalar
Return the scalar (unitless) value.
Equivalent to self.0
or to doing let Deg(val) = self
sourcefn set_scalar(&mut self, value: Self::Scalar)
fn set_scalar(&mut self, value: Self::Scalar)
Set the internal scalar value of the angle.
sourcefn normalize(self) -> 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.
sourcefn is_normalized(&self) -> bool
fn is_normalized(&self) -> bool
Whether the angle is in the standard domain.
sourcefn atan2(x: Self::Scalar, y: Self::Scalar) -> Self
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.
sourcefn full_turn() -> Self
fn full_turn() -> Self
Return one full rotation in some unit.
Equivalent to Self(Self::period())
.
sourcefn quarter_turn() -> Self
fn quarter_turn() -> Self
Return one quarter of a full rotation in some unit.