Struct graphene::Plane

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

A 2D plane that extends infinitely in a 3D volume.

The contents of the Plane are private, and should not be modified directly.

Implementations§

source§

impl Plane

source

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

source

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

Borrows the underlying C value.

source

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

Borrows the underlying C value mutably.

source§

impl Plane

source

pub fn distance(&self, point: &Point3D) -> f32

Computes the distance of point from a Plane.

point

a Point3D

Returns

the distance of the given Point3D from the plane

source

pub fn constant(&self) -> f32

Retrieves the distance along the normal vector of the given Plane from the origin.

Returns

the constant value of the plane

source

pub fn normal(&self) -> Vec3

Retrieves the normal vector pointing towards the origin of the given Plane.

Returns
normal

return location for the normal vector

source

pub fn negate(&self) -> Plane

Negates the normal vector and constant of a Plane, effectively mirroring the plane across the origin.

Returns
res

return location for the negated plane

source

pub fn normalize(&self) -> Plane

Normalizes the vector of the given Plane, and adjusts the constant accordingly.

Returns
res

return location for the normalized plane

source

pub fn transform( &self, matrix: &Matrix, normal_matrix: Option<&Matrix> ) -> Plane

Transforms a Plane self using the given matrix and normal_matrix.

If normal_matrix is None, a transformation matrix for the plane normal will be computed from matrix. If you are transforming multiple planes using the same matrix it’s recommended to compute the normal matrix beforehand to avoid incurring in the cost of recomputing it every time.

matrix

a Matrix

normal_matrix

a Matrix

Returns
res

the transformed plane

source§

impl Plane

source

pub fn new(normal: Option<&Vec3>, constant: f32) -> Self

Initializes the given Plane using the given normal vector and constant values.

normal

a unit length normal vector defining the plane pointing towards the origin; if unset, we use the X axis by default

constant

the distance from the origin to the plane along the normal vector; the sign determines the half-space occupied by the plane

Returns

the initialized plane

source

pub fn from_point(normal: &Vec3, point: &Point3D) -> Self

Initializes the given Plane using the given normal vector and an arbitrary co-planar point.

normal

a normal vector defining the plane pointing towards the origin

point

a Point3D

Returns

the initialized plane

source

pub fn from_points(a: &Point3D, b: &Point3D, c: &Point3D) -> Self

Initializes the given Plane using the 3 provided co-planar points.

The winding order is counter-clockwise, and determines which direction the normal vector will point.

a

a Point3D

b

a Point3D

c

a Point3D

Returns

the initialized plane

source

pub fn from_vec4(src: &Vec4) -> Self

Initializes the given Plane using the components of the given Vec4 vector.

src

a Vec4 containing the normal vector in its first three components, and the distance in its fourth component

Returns

the initialized plane

Trait Implementations§

source§

impl Clone for Plane

source§

fn clone(&self) -> Self

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 Debug for Plane

source§

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

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

impl HasParamSpec for Plane

§

type ParamSpec = ParamSpecBoxed

§

type SetValue = Plane

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

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

source§

fn param_spec_builder() -> Self::BuilderFn

source§

impl PartialEq for Plane

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 Plane

source§

fn static_type() -> Type

Returns the type identifier of Self.
source§

impl Copy for Plane

source§

impl Eq for Plane

Auto Trait Implementations§

§

impl RefUnwindSafe for Plane

§

impl Send for Plane

§

impl Sync for Plane

§

impl Unpin for Plane

§

impl UnwindSafe for Plane

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

§

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,