[][src]Trait vek::ops::Clamp

pub trait Clamp<Bound = Self>: Sized {
    pub fn clamped(self, lower: Bound, upper: Bound) -> Self;

    pub fn clamp(val: Self, lower: Bound, upper: Bound) -> Self { ... }
pub fn clamped01(self) -> Self
    where
        Bound: Zero + One
, { ... }
pub fn clamp01(val: Self) -> Self
    where
        Bound: Zero + One
, { ... }
pub fn clamped_minus1_1(self) -> Self
    where
        Bound: One + Neg<Output = Bound>
, { ... }
pub fn clamp_minus1_1(val: Self) -> Self
    where
        Bound: One + Neg<Output = Bound>
, { ... } }

A scalar or vector that can be constrained to be between two values (inclusive).

Required methods

pub fn clamped(self, lower: Bound, upper: Bound) -> Self[src]

Constrains this value to be between lower and upper (inclusive).

This would rather make use of inclusive ranges, but it's an unstable feature.

Panics

Panics if lower is greater than upper. Swap the values yourself if necessary.

use vek::ops::Clamp;

assert_eq!(7.clamped(5, 10), 7);
assert_eq!(4.clamped(5, 10), 5);
assert_eq!(5.clamped(5, 10), 5);
assert_eq!(10.clamped(5, 10), 10);
assert_eq!(11.clamped(5, 10), 10);
Loading content...

Provided methods

pub fn clamp(val: Self, lower: Bound, upper: Bound) -> Self[src]

Alias to clamped, which doesn't take self.

Panics

Panics if lower is greater than upper. Swap the values yourself if necessary.

pub fn clamped01(self) -> Self where
    Bound: Zero + One
[src]

Constrains this value to be between 0 and 1 (inclusive).

pub fn clamp01(val: Self) -> Self where
    Bound: Zero + One
[src]

Alias to clamped01, which doesn't take self.

pub fn clamped_minus1_1(self) -> Self where
    Bound: One + Neg<Output = Bound>, 
[src]

Constrains this value to be between -1 and 1 (inclusive).

pub fn clamp_minus1_1(val: Self) -> Self where
    Bound: One + Neg<Output = Bound>, 
[src]

Alias to clamped_minus1_1, which doesn't take self.

Loading content...

Implementations on Foreign Types

impl Clamp<f32> for f32[src]

impl Clamp<f64> for f64[src]

impl Clamp<i8> for i8[src]

impl Clamp<i16> for i16[src]

impl Clamp<i32> for i32[src]

impl Clamp<i64> for i64[src]

impl Clamp<isize> for isize[src]

impl Clamp<u8> for u8[src]

impl Clamp<u16> for u16[src]

impl Clamp<u32> for u32[src]

impl Clamp<u64> for u64[src]

impl Clamp<usize> for usize[src]

impl Clamp<Wrapping<i8>> for Wrapping<i8>[src]

impl Clamp<Wrapping<i16>> for Wrapping<i16>[src]

impl Clamp<Wrapping<i32>> for Wrapping<i32>[src]

impl Clamp<Wrapping<i64>> for Wrapping<i64>[src]

impl Clamp<Wrapping<isize>> for Wrapping<isize>[src]

impl Clamp<Wrapping<u8>> for Wrapping<u8>[src]

impl Clamp<Wrapping<u16>> for Wrapping<u16>[src]

impl Clamp<Wrapping<u32>> for Wrapping<u32>[src]

impl Clamp<Wrapping<u64>> for Wrapping<u64>[src]

impl Clamp<Wrapping<usize>> for Wrapping<usize>[src]

Loading content...

Implementors

impl<T: Clamp + Copy> Clamp<T> for vek::vec::repr_c::extent2::Extent2<T>[src]

impl<T: Clamp + Copy> Clamp<T> for vek::vec::repr_c::extent3::Extent3<T>[src]

impl<T: Clamp + Copy> Clamp<T> for vek::vec::repr_c::rgb::Rgb<T>[src]

impl<T: Clamp + Copy> Clamp<T> for vek::vec::repr_c::rgba::Rgba<T>[src]

impl<T: Clamp + Copy> Clamp<T> for vek::vec::repr_c::vec2::Vec2<T>[src]

impl<T: Clamp + Copy> Clamp<T> for vek::vec::repr_c::vec3::Vec3<T>[src]

impl<T: Clamp + Copy> Clamp<T> for vek::vec::repr_c::vec4::Vec4<T>[src]

impl<T: Clamp + Copy> Clamp<T> for vek::vec::repr_simd::extent2::Extent2<T>[src]

impl<T: Clamp + Copy> Clamp<T> for vek::vec::repr_simd::extent3::Extent3<T>[src]

impl<T: Clamp + Copy> Clamp<T> for vek::vec::repr_simd::rgb::Rgb<T>[src]

impl<T: Clamp + Copy> Clamp<T> for vek::vec::repr_simd::rgba::Rgba<T>[src]

impl<T: Clamp + Copy> Clamp<T> for vek::vec::repr_simd::vec2::Vec2<T>[src]

impl<T: Clamp + Copy> Clamp<T> for vek::vec::repr_simd::vec3::Vec3<T>[src]

impl<T: Clamp + Copy> Clamp<T> for vek::vec::repr_simd::vec4::Vec4<T>[src]

impl<T: Clamp> Clamp<Extent2<T>> for vek::vec::repr_c::extent2::Extent2<T>[src]

impl<T: Clamp> Clamp<Extent3<T>> for vek::vec::repr_c::extent3::Extent3<T>[src]

impl<T: Clamp> Clamp<Rgb<T>> for vek::vec::repr_c::rgb::Rgb<T>[src]

impl<T: Clamp> Clamp<Rgba<T>> for vek::vec::repr_c::rgba::Rgba<T>[src]

impl<T: Clamp> Clamp<Vec2<T>> for vek::vec::repr_c::vec2::Vec2<T>[src]

impl<T: Clamp> Clamp<Vec3<T>> for vek::vec::repr_c::vec3::Vec3<T>[src]

impl<T: Clamp> Clamp<Vec4<T>> for vek::vec::repr_c::vec4::Vec4<T>[src]

impl<T: Clamp> Clamp<Extent2<T>> for vek::vec::repr_simd::extent2::Extent2<T>[src]

impl<T: Clamp> Clamp<Extent3<T>> for vek::vec::repr_simd::extent3::Extent3<T>[src]

impl<T: Clamp> Clamp<Rgb<T>> for vek::vec::repr_simd::rgb::Rgb<T>[src]

impl<T: Clamp> Clamp<Rgba<T>> for vek::vec::repr_simd::rgba::Rgba<T>[src]

impl<T: Clamp> Clamp<Vec2<T>> for vek::vec::repr_simd::vec2::Vec2<T>[src]

impl<T: Clamp> Clamp<Vec3<T>> for vek::vec::repr_simd::vec3::Vec3<T>[src]

impl<T: Clamp> Clamp<Vec4<T>> for vek::vec::repr_simd::vec4::Vec4<T>[src]

Loading content...