Skip to main content

PixelRect

Struct PixelRect 

Source
pub struct PixelRect {
    pub x: u32,
    pub y: u32,
    pub width: u32,
    pub height: u32,
}
Expand description

A rectangle in physical pixels, relative to the top left of the surface.

Every rectangle this library produces is non-empty and clamped to the surface it was computed for, so width and height are at least one.

Fields§

§x: u32

Distance from the left edge of the surface, in physical pixels.

§y: u32

Distance from the top edge of the surface, in physical pixels.

§width: u32

Width in physical pixels.

§height: u32

Height in physical pixels.

Implementations§

Source§

impl PixelRect

Source

pub fn area(self) -> u64

Returns the number of pixels the rectangle covers.

Source

pub fn union(self, other: PixelRect) -> PixelRect

Returns the smallest rectangle covering both operands.

An operand with no area is ignored, so the union of PixelRect::default() with other is other.

Source

pub fn intersect(self, other: PixelRect) -> Option<PixelRect>

Returns the overlapping part of two rectangles, or None when they do not overlap.

Source

pub fn contains_rect(self, other: PixelRect) -> bool

Returns true when other lies entirely inside this rectangle.

The edges are inclusive, so a rectangle with no width or height counts as inside when it sits on the boundary.

Source

pub fn from_logical( rect: Rect, scale: f32, surface_width: u32, surface_height: u32, ) -> Option<PixelRect>

Returns the smallest pixel rectangle covering every physical pixel the logical rectangle touches, clamped to the surface.

The minimum corner is rounded down and the maximum corner is rounded up, so a rectangle that covers part of a pixel still claims that pixel. Returns None when the result would be empty, which includes a rectangle entirely outside the surface.

NaN and infinite coordinates, and a scale that is not positive and finite, are treated as empty.

Trait Implementations§

Source§

impl Clone for PixelRect

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Copy for PixelRect

Source§

impl Debug for PixelRect

Source§

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

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

impl Default for PixelRect

Source§

fn default() -> Self

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

impl Eq for PixelRect

Source§

impl Hash for PixelRect

Source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl PartialEq for PixelRect

Source§

fn eq(&self, other: &Self) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for PixelRect

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> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

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.