Box2D

Struct Box2D 

Source
pub struct Box2D { /* private fields */ }
Available on crate feature v1_12 only.
Expand description

A 2D box, described as the axis-aligned area between a minimum and a maximum vertices lying on the same plane.

GLib type: Inline allocated boxed type with stack copy semantics.

Implementations§

Source§

impl Box2D

Source

pub fn as_ptr(&self) -> *mut graphene_box2d_t

Source

pub unsafe fn from_glib_ptr_borrow<'a>(ptr: *const graphene_box2d_t) -> &'a Self

Borrows the underlying C value.

Source

pub unsafe fn from_glib_ptr_borrow_mut<'a>( ptr: *mut graphene_box2d_t, ) -> &'a mut Self

Borrows the underlying C value mutably.

Source§

impl Box2D

Source

pub fn contains_box(&self, b: &Box2D) -> bool

Checks whether the Box2D self contains the given Box2D b.

§b

a Box2D

§Returns

true if the box is contained in the given box

Source

pub fn contains_point(&self, point: &Point) -> bool

Checks whether self contains the given point.

§point

the coordinates to check

§Returns

true if the point is contained in the given box

Source

pub fn contains_rect(&self, rect: &Rect) -> bool

Checks whether self contains the given rect.

§rect

the rectangle to check

§Returns

true if the rectangle is contained in the given box

Source

pub fn expand(&self, point: &Point) -> Box2D

Expands the dimensions of self to include the coordinates at point.

§point

the coordinates of the point to include

§Returns
§res

return location for the expanded box

Source

pub fn expand_scalar(&self, scalar: f32) -> Box2D

Expands the dimensions of self by the given scalar value.

If scalar is positive, the Box2D will grow; if scalar is negative, the Box2D will shrink.

§scalar

a scalar value

§Returns
§res

return location for the expanded box

Source

pub fn expand_vec2(&self, vec: &Vec2) -> Box2D

Expands the dimensions of self to include the coordinates of the given vector.

§vec

the coordinates of the point to include, as a Vec2

§Returns
§res

return location for the expanded box

Source

pub fn center(&self) -> Point

Retrieves the coordinates of the center of a Box2D.

§Returns
§center

return location for the coordinates of the center

Source

pub fn height(&self) -> f32

Retrieves the size of the self on the Y axis.

§Returns

the height of the box

Source

pub fn max(&self) -> Point

Retrieves the coordinates of the maximum point of the given Box2D.

§Returns
§max

return location for the maximum point

Source

pub fn min(&self) -> Point

Retrieves the coordinates of the minimum point of the given Box2D.

§Returns
§min

return location for the minimum point

Source

pub fn minmax(&self) -> (Point, Point)

Retrieves the coordinates of the minimum and maximum points of the given Box2D.

§Returns
§min

return location for the minimum point

§max

return location for the maximum point

Source

pub fn size(&self) -> Vec2

Retrieves the size of the box on all three axes, and stores it into the given size vector.

§Returns
§size

return location for the size

Source

pub fn width(&self) -> f32

Retrieves the size of the self on the X axis.

§Returns

the width of the box

Source

pub fn intersection(&self, b: &Box2D) -> Option<Box2D>

Intersects the two given Box2D.

If the two boxes do not intersect, res will contain a degenerate box initialized with empty().

§b

a Box2D

§Returns

true if the two boxes intersect

§res

return location for the result

Source

pub fn intersects(&self, b: &Box2D) -> bool

Checks whether two boxes intersect.

See also: intersection()

§b

a Box2D

§Returns

true if the boxes intersect, and false otherwise

Source

pub fn scale_offset( &self, scale: Option<&Vec2>, offset: Option<&Point>, ) -> Box2D

Applies a scale and an offset to the vertices of the given box.

If scale is None, the box will be scaled by (1.0, 1.0).

If offset is None, the box will be offset by (0.0, 0.0).

§scale

a vector with two scaling factors to be applied to the box

§offset

the offset to apply to the box

§Returns
§res

the transformed box

Source

pub fn to_rect(&self) -> Rect

Stores the minimum and maximum vertices of the given Box2D into a rectangle of equivalent origin and size.

§Returns
§rect

the rectangle to initialize

Source

pub fn union(&self, b: &Box2D) -> Box2D

Unions the two given Box2D.

§b

the box to union to self

§Returns
§res

return location for the result

Source

pub fn empty() -> Box2D

A degenerate Box2D that can only be expanded.

The returned value is owned by Graphene and should not be modified or freed.

§Returns

a Box2D

Source

pub fn infinite() -> Box2D

A degenerate Box2D that cannot be expanded.

The returned value is owned by Graphene and should not be modified or freed.

§Returns

a Box2D

Source

pub fn minus_one() -> Box2D

A Box2D with the minimum vertex set at (-1, -1) and the maximum vertex set at (0, 0).

The returned value is owned by Graphene and should not be modified or freed.

§Returns

a Box2D

Source

pub fn one() -> Box2D

A Box2D with the minimum vertex set at (0, 0) and the maximum vertex set at (1, 1).

The returned value is owned by Graphene and should not be modified or freed.

§Returns

a Box2D

Source

pub fn one_minus_one() -> Box2D

A Box2D with the minimum vertex set at (-1, -1) and the maximum vertex set at (1, 1).

The returned value is owned by Graphene and should not be modified or freed.

§Returns

a Box2D

Source

pub fn zero() -> Box2D

A Box2D with both the minimum and maximum vertices set at (0, 0).

The returned value is owned by Graphene and should not be modified or freed.

§Returns

a Box2D

Source§

impl Box2D

Source

pub fn vertices(&self) -> &[Vec2; 4]

Computes the vertices of the given Box2D.

§Returns
§vertices

return location for an array of 4 Vec2

Source

pub fn to_float(&self) -> [f32; 4]

Stores the minimum and maximum vertices of the given Box2D into an array.

The array layout is:

  • min_x
  • min_y
  • max_x
  • max_y
§Returns
§v

return location for an array of floating point values with at least 4 elements

Source

pub fn new(min: Option<&Point>, max: Option<&Point>) -> Self

Initializes the given Box2D with two vertices.

§min

the coordinates of the minimum vertex

§max

the coordinates of the maximum vertex

§Returns

the initialized Box2D

Source

pub fn from_points(points: &[Point]) -> Self

Initializes the given Box2D with the given array of vertices.

If n_points is 0, the returned box is initialized with empty().

§points

an array of Point

§Returns

the initialized Box2D

Source

pub fn from_vec2(min: Option<&Vec2>, max: Option<&Vec2>) -> Self

Initializes the given Box2D with two vertices stored inside Vec2.

§min

the coordinates of the minimum vertex

§max

the coordinates of the maximum vertex

§Returns

the initialized Box2D

Source

pub fn from_vectors(vectors: &[Vec2]) -> Self

Initializes the given Box2D with the given array of vertices.

If n_vectors is 0, the returned box is initialized with empty().

§vectors

an array of Vec2

§Returns

the initialized Box2D

Source

pub fn from_rect(src: &Rect) -> Self

Initializes the given Box2D with the origin and size of a Rect.

§src

a Rect

§Returns

the initialized Box2D

Trait Implementations§

Source§

impl Clone for Box2D

Source§

fn clone(&self) -> Self

Copies the inline boxed type by value with the type-specific copy function.

1.0.0 · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Debug for Box2D

Source§

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

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

impl Default for Box2D

Source§

fn default() -> Self

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

impl HasParamSpec for Box2D

Source§

type ParamSpec = ParamSpecBoxed

Source§

type SetValue = Box2D

Preferred value to be used as setter for the associated ParamSpec.
Source§

type BuilderFn = fn(&str) -> ParamSpecBoxedBuilder<'_, Box2D>

Source§

fn param_spec_builder() -> Self::BuilderFn

Source§

impl PartialEq for Box2D

Source§

fn eq(&self, other: &Self) -> 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 StaticType for Box2D

Source§

fn static_type() -> Type

Returns the type identifier of Self.
Source§

impl Copy for Box2D

Source§

impl Eq for Box2D

Auto Trait Implementations§

§

impl Freeze for Box2D

§

impl RefUnwindSafe for Box2D

§

impl Send for Box2D

§

impl Sync for Box2D

§

impl Unpin for Box2D

§

impl UnwindSafe for Box2D

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

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> FromGlibContainerAsVec<<T as GlibPtrDefault>::GlibType, *const GList> for T

Source§

impl<T> FromGlibContainerAsVec<<T as GlibPtrDefault>::GlibType, *const GPtrArray> for T

Source§

impl<T> FromGlibContainerAsVec<<T as GlibPtrDefault>::GlibType, *const GSList> for T

Source§

impl<T> FromGlibContainerAsVec<<T as GlibPtrDefault>::GlibType, *mut GList> for T

Source§

impl<T> FromGlibContainerAsVec<<T as GlibPtrDefault>::GlibType, *mut GPtrArray> for T

Source§

impl<T> FromGlibContainerAsVec<<T as GlibPtrDefault>::GlibType, *mut GSList> for T

Source§

impl<T> FromGlibPtrArrayContainerAsVec<<T as GlibPtrDefault>::GlibType, *const GList> for T

Source§

impl<T> FromGlibPtrArrayContainerAsVec<<T as GlibPtrDefault>::GlibType, *const GPtrArray> for T

Source§

impl<T> FromGlibPtrArrayContainerAsVec<<T as GlibPtrDefault>::GlibType, *const GSList> for T

Source§

impl<T> FromGlibPtrArrayContainerAsVec<<T as GlibPtrDefault>::GlibType, *mut GList> for T

Source§

impl<T> FromGlibPtrArrayContainerAsVec<<T as GlibPtrDefault>::GlibType, *mut GPtrArray> for T

Source§

impl<T> FromGlibPtrArrayContainerAsVec<<T as GlibPtrDefault>::GlibType, *mut GSList> for T

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> IntoClosureReturnValue for T
where T: Into<Value>,

Source§

impl<T> Property for T
where T: HasParamSpec,

Source§

type Value = T

Source§

impl<T> PropertyGet for T
where T: HasParamSpec,

Source§

type Value = T

Source§

fn get<R, F>(&self, f: F) -> R
where F: Fn(&<T as PropertyGet>::Value) -> R,

Source§

impl<T> StaticTypeExt for T
where T: StaticType,

Source§

fn ensure_type()

Ensures that the type has been registered with the type system.
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> ToSendValue for T
where T: Send + ToValue + ?Sized,

Source§

fn to_send_value(&self) -> SendValue

Returns a SendValue clone of self.
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> TryFromClosureReturnValue for T
where T: for<'a> FromValue<'a> + StaticType + 'static,

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

impl<'a, T, C, E> FromValueOptional<'a> for T
where T: FromValue<'a, Checker = C>, C: ValueTypeChecker<Error = ValueTypeMismatchOrNoneError<E>>, E: Error + Send + 'static,