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§

Internal type storing the angle value.

Required Methods§

Construct a new angle.

Equivalent to constructing the tuple struct directly, eg. Deg(value), but usable in a generic context.

The length of a full rotation.

Return the scalar (unitless) value.

Equivalent to self.0 or to doing let Deg(val) = self

Set the internal scalar value of the angle.

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.

Whether the angle is in the standard domain.

Compute the sine of an angle.

Compute the cosine of an angle.

Compute the tangent of an angle.

Simultaneously compute sine and cosine.

Compute the arcsine of a value, returning an angle.

Compute the arccosine of a value, returning an angle.

Compute the arctangent of a value, returning an angle.

Compute the arctangent of a value, using information from the numerator and denominator in order to increase the domain.

Return one full rotation in some unit.

Equivalent to Self(Self::period()).

Return one half of a full rotation in some unit.

Return one quarter of a full rotation in some unit.

Return the inverse of an angle.

The inverse is equivalent to adding half a rotation or inverting the unit vector pointing from the origin along the angle.

Return the reflection of an angle over the x axis.

Equivalent to full_turn() - self.

Implementors§