Struct shape_core::Rectangle

source ·
pub struct Rectangle<T> {
    pub x: T,
    pub y: T,
    pub w: T,
    pub h: T,
}
Expand description

A non-rotated rectangle, used to represent AABB collision boxes.

Notice

The constructor will not check the legality of the parameters, it is possible that two points coincide, or the side length is negative

Examples

let rect = Rectangle::new(0.0, 0.0, 1.0, 1.0);

Fields§

§x: T

origin x point of the rectangle

§y: T

origin y point of the rectangle

§w: T

width of the rectangle_2d

§h: T

height of the rectangle_2d

Implementations§

source§

impl<T> Rectangle<T>

Constructors for rectangle_2d

source

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

Create a rectangle_2d from 4 properties

Notice

The constructor will not check the legality of the parameters, call [is_valid] to ensure that the rectangle_2d is legal.

Examples
let rect = Rectangle::new(0.0, 0.0, 1.0, 1.0);
source

pub fn from_origin<P>(origin: P, width: T, height: T) -> Selfwhere T: Clone + One + Add<Output = T> + Sub<Output = T> + Div<Output = T>, P: Into<Point<T>>,

Create a rectangle_2d from origin and 2 properties

Notice

The constructor will not check the legality of the parameters, call [is_valid] to ensure that the rectangle_2d is legal.

Examples
let rect = Rectangle::from_origin((0.0, 0.0), 1.0, 1.0);
source

pub fn from_center<P>(center: P, width: T, height: T) -> Selfwhere T: Clone + One + Add<Output = T> + Sub<Output = T> + Div<Output = T>, P: Into<Point<T>>,

Create a rectangle_2d from center and 2 properties

Notice

The constructor will not check the legality of the parameters, call [is_valid] to ensure that the rectangle_2d is legal.

Examples
let rect = Rectangle::from_center((0.0, 0.0), 1.0, 1.0);
source

pub fn from_diagonal<P1, P2>(p1: P1, p2: P2) -> Rectangle<T>where P1: Into<Point<T>>, P2: Into<Point<T>>, T: Clone + Sub<Output = T>,

Create a rectangle_2d from two diagonal points.

Notice

The constructor will not check the legality of the parameters, it is possible that two points coincide, or the side length is negative

Examples
let rect = Rectangle::from_diagonal((0.0, 0.0), (1.0, 1.0));
source§

impl<T> Rectangle<T>

source

pub fn origin(&self) -> Point<&T>

Get the origin point of the rectangle_2d

source

pub fn center(&self) -> Point<T>where T: Clone + One + Add<Output = T> + Sub<Output = T> + Div<Output = T>,

Get the center point of the rectangle_2d

source

pub fn ref_inner(&self) -> Rectangle<&T>

Move reference to the inner value

Trait Implementations§

source§

impl<T: Clone> Clone for Rectangle<T>

source§

fn clone(&self) -> Rectangle<T>

Returns a copy 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<T> Debug for Rectangle<T>where T: Debug,

source§

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

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

impl<'de, T> Deserialize<'de> for Rectangle<T>where T: Deserialize<'de>,

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl<T: Display> Display for Rectangle<T>

source§

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

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

impl<T: Hash> Hash for Rectangle<T>

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<T: PartialEq> PartialEq<Rectangle<T>> for Rectangle<T>

source§

fn eq(&self, other: &Rectangle<T>) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

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

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<T> Serialize for Rectangle<T>where T: Serialize,

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl<T> Shape2D for Rectangle<T>where T: Signed + Clone,

§

type Value = T

The value type of the shape.
source§

fn is_valid(&self) -> bool

Returns true if the shape is valid and in normal form.
source§

fn normalize(&mut self) -> bool

Returns true if the shape successfully normalized.
source§

fn boundary(&self) -> Rectangle<Self::Value>

Returns the boundary of the shape.
source§

fn vertices(&self, _: usize) -> impl Iterator<Item = Point<Self::Value>> + '_

Returns the owned vertices of the shape. Read more
source§

fn edges(&self, _: usize) -> impl Iterator<Item = Line<Self::Value>> + '_

Returns the owned edges of the shape.
source§

impl<T: Copy> Copy for Rectangle<T>

source§

impl<T: Eq> Eq for Rectangle<T>

source§

impl<T> StructuralEq for Rectangle<T>

source§

impl<T> StructuralPartialEq for Rectangle<T>

Auto Trait Implementations§

§

impl<T> RefUnwindSafe for Rectangle<T>where T: RefUnwindSafe,

§

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

§

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

§

impl<T> Unpin for Rectangle<T>where T: Unpin,

§

impl<T> UnwindSafe for Rectangle<T>where T: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

const: unstable · source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

const: unstable · source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

const: unstable · source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for Twhere U: From<T>,

const: unstable · 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 Twhere T: Clone,

§

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> ToString for Twhere T: Display + ?Sized,

source§

default fn to_string(&self) -> String

Converts the given value to a String. Read more
source§

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

§

type Error = Infallible

The type returned in the event of a conversion error.
const: unstable · source§

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

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
const: unstable · source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for Twhere V: MultiLane<T>,

§

fn vzip(self) -> V

source§

impl<T> DeserializeOwned for Twhere T: for<'de> Deserialize<'de>,