Struct graphene::Box

source ·
pub struct Box { /* private fields */ }
Expand description

A 3D box, described as the volume between a minimum and a maximum vertices.

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

Implementations§

source§

impl Box

source

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

source

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

Borrows the underlying C value.

source

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

Borrows the underlying C value mutably.

source§

impl Box

source

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

Checks whether the Box self contains the given Box b.

§b

a Box

§Returns

true if the box is contained in the given box

source

pub fn contains_point(&self, point: &Point3D) -> 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 expand(&self, point: &Point3D) -> Box

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) -> Box

Expands the dimensions of self by the given scalar value.

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

§scalar

a scalar value

§Returns
§res

return location for the expanded box

source

pub fn expand_vec3(&self, vec: &Vec3) -> Box

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

§vec

the coordinates of the point to include, as a Vec3

§Returns
§res

return location for the expanded box

source

pub fn bounding_sphere(&self) -> Sphere

Computes the bounding Sphere capable of containing the given Box.

§Returns
§sphere

return location for the bounding sphere

source

pub fn center(&self) -> Point3D

Retrieves the coordinates of the center of a Box.

§Returns
§center

return location for the coordinates of the center

source

pub fn depth(&self) -> f32

Retrieves the size of the self on the Z axis.

§Returns

the depth of the box

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) -> Point3D

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

§Returns
§max

return location for the maximum point

source

pub fn min(&self) -> Point3D

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

§Returns
§min

return location for the minimum point

source

pub fn size(&self) -> Vec3

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: &Box) -> Option<Box>

Intersects the two given Box.

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

§b

a Box

§Returns

true if the two boxes intersect

§res

return location for the result

source

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

Unions the two given Box.

§b

the box to union to self

§Returns
§res

return location for the result

source

pub fn empty() -> Box

A degenerate Box that can only be expanded.

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

§Returns

a Box

source

pub fn infinite() -> Box

A degenerate Box that cannot be expanded.

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

§Returns

a Box

source

pub fn minus_one() -> Box

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

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

§Returns

a Box

source

pub fn one() -> Box

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

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

§Returns

a Box

source

pub fn one_minus_one() -> Box

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

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

§Returns

a Box

source

pub fn zero() -> Box

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

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

§Returns

a Box

source§

impl Box

source

pub fn vertices(&self) -> &[Vec3; 8]

Computes the vertices of the given Box.

§Returns
§vertices

return location for an array of 8 Vec3

source

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

Initializes the given Box with two vertices.

§min

the coordinates of the minimum vertex

§max

the coordinates of the maximum vertex

§Returns

the initialized Box

source

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

Initializes the given Box with the given array of vertices.

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

§points

an array of Point3D

§Returns

the initialized Box

source

pub fn from_vec3(min: Option<&Vec3>, max: Option<&Vec3>) -> Self

Initializes the given Box with two vertices stored inside Vec3.

§min

the coordinates of the minimum vertex

§max

the coordinates of the maximum vertex

§Returns

the initialized Box

source

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

Initializes the given Box with the given array of vertices.

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

§vectors

an array of Vec3

§Returns

the initialized Box

Trait Implementations§

source§

impl Clone for Box

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 Box

source§

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

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

impl Default for Box

source§

fn default() -> Self

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

impl HasParamSpec for Box

§

type ParamSpec = ParamSpecBoxed

§

type SetValue = Box

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

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

source§

fn param_spec_builder() -> Self::BuilderFn

source§

impl PartialEq for Box

source§

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

source§

fn static_type() -> Type

Returns the type identifier of Self.
source§

impl Copy for Box

source§

impl Eq for Box

Auto Trait Implementations§

§

impl Freeze for Box

§

impl RefUnwindSafe for Box

§

impl Send for Box

§

impl Sync for Box

§

impl Unpin for Box

§

impl UnwindSafe for Box

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§

default unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
source§

impl<T> CloneToUninit for T
where T: Copy,

source§

unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. 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§

unsafe fn from_glib_none_num_as_vec(ptr: *const GList, num: usize) -> Vec<T>

source§

unsafe fn from_glib_container_num_as_vec(_: *const GList, _: usize) -> Vec<T>

source§

unsafe fn from_glib_full_num_as_vec(_: *const GList, _: usize) -> Vec<T>

source§

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

source§

unsafe fn from_glib_none_num_as_vec(ptr: *const GPtrArray, num: usize) -> Vec<T>

source§

unsafe fn from_glib_container_num_as_vec( _: *const GPtrArray, _: usize, ) -> Vec<T>

source§

unsafe fn from_glib_full_num_as_vec(_: *const GPtrArray, _: usize) -> Vec<T>

source§

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

source§

unsafe fn from_glib_none_num_as_vec(ptr: *const GSList, num: usize) -> Vec<T>

source§

unsafe fn from_glib_container_num_as_vec(_: *const GSList, _: usize) -> Vec<T>

source§

unsafe fn from_glib_full_num_as_vec(_: *const GSList, _: usize) -> Vec<T>

source§

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

source§

unsafe fn from_glib_none_num_as_vec(ptr: *mut GList, num: usize) -> Vec<T>

source§

unsafe fn from_glib_container_num_as_vec(ptr: *mut GList, num: usize) -> Vec<T>

source§

unsafe fn from_glib_full_num_as_vec(ptr: *mut GList, num: usize) -> Vec<T>

source§

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

source§

unsafe fn from_glib_none_num_as_vec(ptr: *mut GPtrArray, num: usize) -> Vec<T>

source§

unsafe fn from_glib_container_num_as_vec( ptr: *mut GPtrArray, num: usize, ) -> Vec<T>

source§

unsafe fn from_glib_full_num_as_vec(ptr: *mut GPtrArray, num: usize) -> Vec<T>

source§

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

source§

unsafe fn from_glib_none_num_as_vec(ptr: *mut GSList, num: usize) -> Vec<T>

source§

unsafe fn from_glib_container_num_as_vec(ptr: *mut GSList, num: usize) -> Vec<T>

source§

unsafe fn from_glib_full_num_as_vec(ptr: *mut GSList, num: usize) -> Vec<T>

source§

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

source§

unsafe fn from_glib_none_as_vec(ptr: *const GList) -> Vec<T>

source§

unsafe fn from_glib_container_as_vec(_: *const GList) -> Vec<T>

source§

unsafe fn from_glib_full_as_vec(_: *const GList) -> Vec<T>

source§

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

source§

unsafe fn from_glib_none_as_vec(ptr: *const GPtrArray) -> Vec<T>

source§

unsafe fn from_glib_container_as_vec(_: *const GPtrArray) -> Vec<T>

source§

unsafe fn from_glib_full_as_vec(_: *const GPtrArray) -> Vec<T>

source§

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

source§

unsafe fn from_glib_none_as_vec(ptr: *const GSList) -> Vec<T>

source§

unsafe fn from_glib_container_as_vec(_: *const GSList) -> Vec<T>

source§

unsafe fn from_glib_full_as_vec(_: *const GSList) -> Vec<T>

source§

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

source§

unsafe fn from_glib_none_as_vec(ptr: *mut GList) -> Vec<T>

source§

unsafe fn from_glib_container_as_vec(ptr: *mut GList) -> Vec<T>

source§

unsafe fn from_glib_full_as_vec(ptr: *mut GList) -> Vec<T>

source§

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

source§

unsafe fn from_glib_none_as_vec(ptr: *mut GPtrArray) -> Vec<T>

source§

unsafe fn from_glib_container_as_vec(ptr: *mut GPtrArray) -> Vec<T>

source§

unsafe fn from_glib_full_as_vec(ptr: *mut GPtrArray) -> Vec<T>

source§

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

source§

unsafe fn from_glib_none_as_vec(ptr: *mut GSList) -> Vec<T>

source§

unsafe fn from_glib_container_as_vec(ptr: *mut GSList) -> Vec<T>

source§

unsafe fn from_glib_full_as_vec(ptr: *mut GSList) -> Vec<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,

§

type Value = T

source§

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

§

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,

§

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>,

§

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>,

§

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,