PxRect

Struct PxRect 

Source
pub struct PxRect {
    pub x: Px,
    pub y: Px,
    pub width: Px,
    pub height: Px,
}
Expand description

A 2D rectangle in physical pixel space.

This type represents a rectangle with a position (top-left corner) and dimensions in physical pixel space.

Fields§

§x: Px

The x-coordinate of the top-left corner

§y: Px

The y-coordinate of the top-left corner

§width: Px

The width of the rectangle

§height: Px

The height of the rectangle

Implementations§

Source§

impl PxRect

Source

pub const ZERO: Self

A constant representing a zero rectangle (0×0 at position (0, 0)).

Source

pub const fn new(x: Px, y: Px, width: Px, height: Px) -> Self

Creates a new rectangle from position and size.

Source

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

Checks if this rectangle is orthogonal (non-overlapping) with another rectangle.

Two rectangles are orthogonal if they do not overlap in either the x or y axis. This is useful for barrier batching optimization where non-overlapping rectangles can be processed together without requiring barriers.

§Arguments
  • other - The other rectangle to check orthogonality against
§Returns

true if the rectangles are orthogonal (non-overlapping), false otherwise

§Examples
use tessera_ui::px::{Px, PxRect};

let rect1 = PxRect::new(Px::new(0), Px::new(0), Px::new(100), Px::new(100));
let rect2 = PxRect::new(Px::new(150), Px::new(0), Px::new(100), Px::new(100));
assert!(rect1.is_orthogonal(&rect2));

let rect3 = PxRect::new(Px::new(50), Px::new(50), Px::new(100), Px::new(100));
assert!(!rect1.is_orthogonal(&rect3));
Source

pub fn union(&self, other: &Self) -> Self

Creates a new rectangle that is the union of this rectangle and another rectangle. Which is the smallest rectangle that contains both rectangles.

§Arguments
  • other - The other rectangle to union with
§Returns

A new PxRect that is the union of this rectangle and the other rectangle

§Examples
use tessera_ui::px::{Px, PxRect};

let rect1 = PxRect::new(Px::new(0), Px::new(0), Px::new(100), Px::new(100));
let rect2 = PxRect::new(Px::new(50), Px::new(50), Px::new(100), Px::new(100));
let union_rect = rect1.union(&rect2);
assert_eq!(union_rect, PxRect::new(Px::new(0), Px::new(0), Px::new(150), Px::new(150)));
Source

pub fn area(&self) -> u32

Returns the area of this rectangle.

§Returns

The area as a positive integer, or 0 if width or height is negative

Source

pub fn intersection(&self, other: &Self) -> Option<Self>

Gets the intersection of this rectangle with another rectangle.

If the rectangles do not intersect, returns None.

§Arguments
  • other - The other rectangle to intersect with
§Returns

An Option<PxRect> that is Some if the rectangles intersect, or None if they do not.

§Examples
use tessera_ui::px::{Px, PxRect};

let rect1 = PxRect::new(Px::new(0), Px::new(0), Px::new(100), Px::new(100));
let rect2 = PxRect::new(Px::new(50), Px::new(50), Px::new(100), Px::new(100));
let intersection = rect1.intersection(&rect2);
assert_eq!(intersection, Some(PxRect::new(Px::new(50), Px::new(50), Px::new(50), Px::new(50))));
Source

pub fn contains(&self, point: PxPosition) -> bool

Check if a point is inside the rectangle.

§Arguments
  • point - The point to check
§Returns

An bool shows that whether the point is inside rectangle.

Trait Implementations§

Source§

impl Clone for PxRect

Source§

fn clone(&self) -> PxRect

Returns a duplicate of the value. Read more
1.0.0 · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Debug for PxRect

Source§

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

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

impl Default for PxRect

Source§

fn default() -> PxRect

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

impl Hash for PxRect

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 PxRect

Source§

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

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

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

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Copy for PxRect

Source§

impl Eq for PxRect

Source§

impl StructuralPartialEq for PxRect

Auto Trait Implementations§

§

impl Freeze for PxRect

§

impl RefUnwindSafe for PxRect

§

impl Send for PxRect

§

impl Sync for PxRect

§

impl Unpin for PxRect

§

impl UnwindSafe for PxRect

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> AsAny for T
where T: Any,

Source§

fn as_any(&self) -> &(dyn Any + 'static)

Returns a reference to the concrete type as &dyn Any.
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
§

impl<T> Downcast<T> for T

§

fn downcast(&self) -> &T

§

impl<T> Downcast for T
where T: Any,

§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &Any’s vtable from &Trait’s.
§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
§

impl<T> DowncastSync for T
where T: Any + Send + Sync,

§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
§

impl<T> Pointable for T

§

const ALIGN: usize

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<R, P> ReadPrimitive<R> for P
where R: Read + ReadEndian<P>, P: Default,

Source§

fn read_from_little_endian(read: &mut R) -> Result<Self, Error>

Read this value from the supplied reader. Same as ReadEndian::read_from_little_endian().
Source§

fn read_from_big_endian(read: &mut R) -> Result<Self, Error>

Read this value from the supplied reader. Same as ReadEndian::read_from_big_endian().
Source§

fn read_from_native_endian(read: &mut R) -> Result<Self, Error>

Read this value from the supplied reader. Same as ReadEndian::read_from_native_endian().
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 = Infallible

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

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

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.
§

impl<T> Upcast<T> for T

§

fn upcast(&self) -> Option<&T>

§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more
Source§

impl<T> ShardState for T
where T: 'static + Send + Sync + Default,

§

impl<T> WasmNotSend for T
where T: Send,

§

impl<T> WasmNotSendSync for T
where T: WasmNotSend + WasmNotSync,

§

impl<T> WasmNotSync for T
where T: Sync,