pub type Rect3 = Rect3<Scalar, Scalar>;

Aliased Type§

struct Rect3 {
    pub x: f32,
    pub y: f32,
    pub z: f32,
    pub w: f32,
    pub h: f32,
    pub d: f32,
}

Fields§

§x: f32

X position of the bottom-left-near corner.

§y: f32

Y position of the bottom-left-near corner.

§z: f32

Z position of the bottom-left-near corner.

§w: f32

Width.

§h: f32

Height, with Y axis going upwards.

§d: f32

Depth, with Z axis going forwards.

Implementations§

source§

impl<P, E> Rect3<P, E>

source

pub fn new(x: P, y: P, z: P, w: E, h: E, d: E) -> Rect3<P, E>

Creates a new rectangle from position elements and extent elements.

source

pub fn position(self) -> Vec3<P>

Gets this rectangle’s position.

source

pub fn set_position(&mut self, p: Vec3<P>)

Sets this rectangle’s position.

source

pub fn extent(self) -> Extent3<E>

Gets this rectangle’s extent (size).

source

pub fn set_extent(&mut self, e: Extent3<E>)

Sets this rectangle’s extent (size).

source

pub fn position_extent(self) -> (Vec3<P>, Extent3<E>)

Gets this rectangle’s position and extent (size).

source

pub fn map<DP, DE, PF, EF>(self, pf: PF, ef: EF) -> Rect3<DP, DE>where PF: FnMut(P) -> DP, EF: FnMut(E) -> DE,

Returns this rectangle, converted with the given closures (one for position elements, the other for extent elements).

source

pub fn as_<DP, DE>(self) -> Rect3<DP, DE>where P: AsPrimitive<DP>, DP: 'static + Copy, E: AsPrimitive<DE>, DE: 'static + Copy,

Converts this rectangle to a rectangle of another type, using the as conversion.

source§

impl<T> Rect3<T, T>where T: Copy + Add<T, Output = T>,

source

pub fn into_aabb(self) -> Aabb<T>

Converts this into the matching axis-aligned bounding shape representation.

source

pub fn contains_point(self, p: Vec3<T>) -> boolwhere T: PartialOrd<T>,

Does this rectangle contain the given point ?

source

pub fn contains_rect3(self, other: Rect3<T, T>) -> boolwhere T: PartialOrd<T>,

Does this rectangle fully contain the given one ?

source

pub fn collides_with_rect3(self, other: Rect3<T, T>) -> boolwhere T: PartialOrd<T>,

Does this rectangle collide with another ?

source

pub fn center(self) -> Vec3<T>where T: One + Div<T, Output = T>,

Gets this rectangle’s center.

source§

impl<T> Rect3<T, T>where T: PartialOrd<T> + Sub<T, Output = T> + Add<T, Output = T> + Copy,

source

pub fn expanded_to_contain_point(self, p: Vec3<T>) -> Rect3<T, T>where T: PartialOrd<T>,

Returns this shape so that it contains the given point.

source

pub fn expand_to_contain_point(&mut self, p: Vec3<T>)where T: PartialOrd<T>,

Expands this shape so that it contains the given point.

source

pub fn union(self, other: Rect3<T, T>) -> Rect3<T, T>

Gets the smallest rectangle that contains both this one and another.

source

pub fn intersection(self, other: Rect3<T, T>) -> Rect3<T, T>

Gets the largest rectangle contained by both this one and another.

source

pub fn expand_to_contain(&mut self, other: Rect3<T, T>)

Sets this rectangle to the union of itself with another.

source

pub fn intersect(&mut self, other: Rect3<T, T>)

Sets this rectangle to the intersection of itself with another.

source

pub fn collision_vector_with_rect3(self, other: Rect3<T, T>) -> Vec3<T>where T: One + Div<T, Output = T>,

Gets a vector that tells how much self penetrates other.

source

pub fn split_at_x(self, sp: T) -> [Rect3<T, T>; 2]

Splits this shape in two, by a straight plane along the x axis. The returned tuple is (low, high).

Panics

sp is assumed to be a position along the x axis that is within this shape’s bounds.

source

pub fn split_at_y(self, sp: T) -> [Rect3<T, T>; 2]

Splits this shape in two, by a straight plane along the y axis. The returned tuple is (low, high).

Panics

sp is assumed to be a position along the y axis that is within this shape’s bounds.

source

pub fn split_at_z(self, sp: T) -> [Rect3<T, T>; 2]

Splits this shape in two, by a straight plane along the z axis. The returned tuple is (low, high).

Panics

sp is assumed to be a position along the z axis that is within this shape’s bounds.

Trait Implementations§

source§

impl<P, E> Clone for Rect3<P, E>where P: Clone, E: Clone,

source§

fn clone(&self) -> Rect3<P, E>

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<P, E> Debug for Rect3<P, E>where P: Debug, E: Debug,

source§

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

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

impl<P, E> Default for Rect3<P, E>where P: Default, E: Default,

source§

fn default() -> Rect3<P, E>

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

impl<'de, P, E> Deserialize<'de> for Rect3<P, E>where P: Deserialize<'de>, E: Deserialize<'de>,

source§

fn deserialize<__D>( __deserializer: __D ) -> Result<Rect3<P, E>, <__D as Deserializer<'de>>::Error>where __D: Deserializer<'de>,

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

impl<P, E> From<(Vec3<P>, Extent3<E>)> for Rect3<P, E>

source§

fn from(t: (Vec3<P>, Extent3<E>)) -> Rect3<P, E>

Converts to this type from the input type.
source§

impl<T> From<Aabb<T>> for Rect3<T, T>where T: Copy + Sub<T, Output = T>,

source§

fn from(aab: Aabb<T>) -> Rect3<T, T>

Converts to this type from the input type.
source§

impl<P, E> Hash for Rect3<P, E>where P: Hash, E: Hash,

source§

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

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<P, E> PartialEq<Rect3<P, E>> for Rect3<P, E>where P: PartialEq<P>, E: PartialEq<E>,

source§

fn eq(&self, other: &Rect3<P, E>) -> 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<P, E> Serialize for Rect3<P, E>where P: Serialize, E: Serialize,

source§

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

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

impl<P, E> Copy for Rect3<P, E>where P: Copy, E: Copy,

source§

impl<P, E> Eq for Rect3<P, E>where P: Eq, E: Eq,

source§

impl<P, E> StructuralEq for Rect3<P, E>

source§

impl<P, E> StructuralPartialEq for Rect3<P, E>