Struct kas_core::geom::Quad

source ·
#[repr(C)]
pub struct Quad { pub a: Vec2, pub b: Vec2, }
Expand description

Axis-aligned 2D cuboid, specified via two corners a and b

Typically it is expected that a.le(b), although this is not required.

Fields§

§a: Vec2§b: Vec2

Implementations§

Zero

Negative infinity to positive infinity (everything)

Not a Number (NaN)

Construct with two coords

Examples found in repository?
src/geom/vector.rs (line 28)
28
29
30
31
32
33
34
    pub const ZERO: Quad = Quad::from_coords(Vec2::ZERO, Vec2::ZERO);

    /// Negative infinity to positive infinity (everything)
    pub const INFINITY: Quad = Quad::from_coords(Vec2::NEG_INFINITY, Vec2::INFINITY);

    /// Not a Number (NaN)
    pub const NAN: Quad = Quad::from_coords(Vec2::NAN, Vec2::NAN);

Construct with position and size

Examples found in repository?
src/geom/vector.rs (line 103)
98
99
100
101
102
103
104
105
106
107
    pub fn intersection(&self, rhs: &Quad) -> Option<Quad> {
        let a = Vec2(self.a.0.max(rhs.a.0), self.a.1.max(rhs.a.1));
        let x = (self.b.0.min(rhs.b.0) - a.0).max(0.0);
        let y = (self.b.1.min(rhs.b.1) - a.1).max(0.0);
        if x * y > 0.0 {
            Some(Quad::from_pos_and_size(a, Vec2(x, y)))
        } else {
            None
        }
    }

Get the size

Swizzle coordinates: x from first, y from second point

Swizzle coordinates: x from second, y from first point

Shrink self in all directions by the given value

Grow self in all directions by the given value

Shrink self in all directions by the given value

Calculate the intersection of two quads

Trait Implementations§

The resulting type after applying the + operator.
Performs the + operation. Read more
Performs the += operation. Read more
Returns a copy of the value. Read more
Performs copy-assignment from source. Read more
Try converting from T to Self Read more
Convert from T to Self Read more
Formats the value using the given formatter. Read more
Returns the “default value” for a type. Read more
Deserialize this value from the given Serde deserializer. Read more
This method tests for self and other values to be equal, and is used by ==.
This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Serialize this value into the given Serde serializer. Read more
The resulting type after applying the - operator.
Performs the - operation. Read more
Performs the -= operation. Read more

Auto Trait Implementations§

Blanket Implementations§

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more
Cast from Self to T Read more
Try converting from Self to T Read more
Try approximate conversion from Self to T Read more
Cast approximately from Self to T Read more
Cast to integer, truncating Read more
Cast to the nearest integer Read more
Cast the floor to an integer Read more
Cast the ceiling to an integer Read more
Try converting to integer with truncation Read more
Try converting to the nearest integer Read more
Try converting the floor to an integer Read more
Try convert the ceiling to an integer Read more
Try converting from T to Self, allowing approximation of value Read more
Converting from T to Self, allowing approximation of value Read more

Returns the argument unchanged.

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

The resulting type after obtaining ownership.
Creates owned data from borrowed data, usually by cloning. Read more
Uses borrowed data to replace owned data, usually by cloning. Read more
The type returned in the event of a conversion error.
Performs the conversion.
The type returned in the event of a conversion error.
Performs the conversion.