Struct vek::geom::repr_c::Rect3
[−]
[src]
pub struct Rect3<P, E> { pub x: P, pub y: P, pub z: P, pub w: E, pub h: E, pub d: E, }
A Rect
extended to 3D.
This would have been named Box
, but it was "taken" by the standard library already.
You should probably use Aabb
because it is less confusing.
See also Rect
for a short discussion on the topic.
Fields
x: P
X position of the bottom-left-near corner.
y: P
Y position of the bottom-left-near corner.
z: P
Z position of the bottom-left-near corner.
w: E
Width.
h: E
Height, with Y axis going upwards.
d: E
Depth, with Z axis going forwards.
Methods
impl<P, E> Rect3<P, E>
[src]
fn new(x: P, y: P, z: P, w: E, h: E, d: E) -> Self
[src]
Creates a new rectangle from position elements and extent elements.
fn position(self) -> Vec3<P>
[src]
Gets this rectangle's position.
fn extent(self) -> Extent3<E>
[src]
Gets this rectangle's extent (size).
fn position_extent(self) -> (Vec3<P>, Extent3<E>)
[src]
Gets this rectangle's position and extent (size).
fn map<DP, DE, PF, EF>(self, pf: PF, ef: EF) -> Rect3<DP, DE> where
PF: FnMut(P) -> DP,
EF: FnMut(E) -> DE,
[src]
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).
impl<T> Rect3<T, T> where
T: Copy + Add<T, Output = T>,
[src]
T: Copy + Add<T, Output = T>,
fn into_aabb(self) -> Aabb<T>
[src]
Converts this into the matching axis-aligned bounding shape representation.
fn contains_point(self, p: Vec3<T>) -> bool where
T: PartialOrd,
[src]
T: PartialOrd,
Does this rectangle contain the given point ?
fn contains_rect3(self, other: Self) -> bool where
T: PartialOrd,
[src]
T: PartialOrd,
Does this rectangle fully contain the given one ?
fn collides_with_rect3(self, other: Self) -> bool where
T: PartialOrd,
[src]
T: PartialOrd,
Does this rectangle collide with another ?
fn center(self) -> Vec3<T> where
T: One + Div<T, Output = T>,
[src]
T: One + Div<T, Output = T>,
Gets this rectangle's center.
impl<T> Rect3<T, T> where
T: Copy + PartialOrd + Sub<T, Output = T> + Add<T, Output = T>,
[src]
T: Copy + PartialOrd + Sub<T, Output = T> + Add<T, Output = T>,
fn expanded_to_contain_point(self, p: Vec3<T>) -> Self where
T: PartialOrd,
[src]
T: PartialOrd,
Returns this shape so that it contains the given point.
fn expand_to_contain_point(&mut self, p: Vec3<T>) where
T: PartialOrd,
[src]
T: PartialOrd,
Expands this shape so that it contains the given point.
fn union(self, other: Self) -> Self
[src]
Gets the smallest rectangle that contains both this one and another.
fn intersection(self, other: Self) -> Self
[src]
Gets the largest rectangle contained by both this one and another.
fn expand_to_contain(&mut self, other: Self)
[src]
Sets this rectangle to the union of itself with another.
fn intersect(&mut self, other: Self)
[src]
Sets this rectangle to the intersection of itself with another.
fn collision_vector_with_rect3(self, other: Self) -> Vec3<T> where
T: One + Div<T, Output = T>,
[src]
T: One + Div<T, Output = T>,
Gets a vector that tells how much self
penetrates other
.
fn split_at_x(self, sp: T) -> (Self, Self)
[src]
Splits this shape in two, by a straight plane along the
axis.
The returned tuple is (low, high)
.
Panics
sp
is assumed to be a position along the
axis that is within this shape's bounds.
fn split_at_y(self, sp: T) -> (Self, Self)
[src]
Splits this shape in two, by a straight plane along the
axis.
The returned tuple is (low, high)
.
Panics
sp
is assumed to be a position along the
axis that is within this shape's bounds.
fn split_at_z(self, sp: T) -> (Self, Self)
[src]
Splits this shape in two, by a straight plane along the
axis.
The returned tuple is (low, high)
.
Panics
sp
is assumed to be a position along the
axis that is within this shape's bounds.
Trait Implementations
impl<P: Debug, E: Debug> Debug for Rect3<P, E>
[src]
impl<P: Default, E: Default> Default for Rect3<P, E>
[src]
impl<P: Clone, E: Clone> Clone for Rect3<P, E>
[src]
fn clone(&self) -> Rect3<P, E>
[src]
Returns a copy of the value. Read more
fn clone_from(&mut self, source: &Self)
1.0.0[src]
Performs copy-assignment from source
. Read more
impl<P: Copy, E: Copy> Copy for Rect3<P, E>
[src]
impl<P: Hash, E: Hash> Hash for Rect3<P, E>
[src]
fn hash<__HPE: Hasher>(&self, __arg_0: &mut __HPE)
[src]
Feeds this value into the given [Hasher
]. Read more
fn hash_slice<H>(data: &[Self], state: &mut H) where
H: Hasher,
1.3.0[src]
H: Hasher,
Feeds a slice of this type into the given [Hasher
]. Read more
impl<P: Eq, E: Eq> Eq for Rect3<P, E>
[src]
impl<P: PartialEq, E: PartialEq> PartialEq for Rect3<P, E>
[src]
fn eq(&self, __arg_0: &Rect3<P, E>) -> bool
[src]
This method tests for self
and other
values to be equal, and is used by ==
. Read more
fn ne(&self, __arg_0: &Rect3<P, E>) -> bool
[src]
This method tests for !=
.
impl<P, E> From<(Vec3<P>, Extent3<E>)> for Rect3<P, E>
[src]
impl<T> From<Aabb<T>> for Rect3<T, T> where
T: Copy + Sub<T, Output = T>,
[src]
T: Copy + Sub<T, Output = T>,