graphene

Struct Triangle

Source
pub struct Triangle { /* private fields */ }
Expand description

A triangle.

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

Implementations§

Source§

impl Triangle

Source

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

Source

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

Borrows the underlying C value.

Source

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

Borrows the underlying C value mutably.

Source§

impl Triangle

Source

pub fn contains_point(&self, p: &Point3D) -> bool

Checks whether the given triangle self contains the point p.

§p

a Point3D

§Returns

true if the point is inside the triangle

Source

pub fn area(&self) -> f32

Computes the area of the given Triangle.

§Returns

the area of the triangle

Source

pub fn barycoords(&self, p: Option<&Point3D>) -> Option<Vec2>

Computes the barycentric coordinates of the given point p.

The point p must lie on the same plane as the triangle self; if the point is not coplanar, the result of this function is undefined.

If we place the origin in the coordinates of the triangle’s A point, the barycentric coordinates are u, which is on the AC vector; and v which is on the AB vector:

The returned Vec2 contains the following values, in order:

  • res.x = u
  • res.y = v
§p

a Point3D

§Returns

true if the barycentric coordinates are valid

§res

return location for the vector with the barycentric coordinates

Source

pub fn bounding_box(&self) -> Box

Computes the bounding box of the given Triangle.

§Returns
§res

return location for the box

Source

pub fn midpoint(&self) -> Point3D

Computes the coordinates of the midpoint of the given Triangle.

The midpoint G is the centroid of the triangle, i.e. the intersection of its medians.

§Returns
§res

return location for the coordinates of the midpoint

Source

pub fn normal(&self) -> Vec3

Computes the normal vector of the given Triangle.

§Returns
§res

return location for the normal vector

Source

pub fn plane(&self) -> Plane

Computes the plane based on the vertices of the given Triangle.

§Returns
§res

return location for the plane

Source

pub fn points(&self) -> (Point3D, Point3D, Point3D)

Retrieves the three vertices of the given Triangle and returns their coordinates as Point3D.

§Returns
§a

return location for the coordinates of the first vertex

§b

return location for the coordinates of the second vertex

§c

return location for the coordinates of the third vertex

Source

pub fn uv( &self, p: Option<&Point3D>, uv_a: &Vec2, uv_b: &Vec2, uv_c: &Vec2, ) -> Option<Vec2>

Computes the UV coordinates of the given point p.

The point p must lie on the same plane as the triangle self; if the point is not coplanar, the result of this function is undefined. If p is None, the point will be set in (0, 0, 0).

The UV coordinates will be placed in the res vector:

  • res.x = u
  • res.y = v

See also: barycoords()

§p

a Point3D

§uv_a

the UV coordinates of the first point

§uv_b

the UV coordinates of the second point

§uv_c

the UV coordinates of the third point

§Returns

true if the coordinates are valid

§res

a vector containing the UV coordinates of the given point p

Source

pub fn vertices(&self) -> (Vec3, Vec3, Vec3)

Retrieves the three vertices of the given Triangle.

§Returns
§a

return location for the first vertex

§b

return location for the second vertex

§c

return location for the third vertex

Source§

impl Triangle

Source

pub fn from_float(a: [f32; 3], b: [f32; 3], c: [f32; 3]) -> Self

Initializes a Triangle using the three given arrays of floating point values, each representing the coordinates of a point in 3D space.

§a

an array of 3 floating point values

§b

an array of 3 floating point values

§c

an array of 3 floating point values

§Returns

the initialized Triangle

Source

pub fn from_point3d( a: Option<&Point3D>, b: Option<&Point3D>, c: Option<&Point3D>, ) -> Self

Initializes a Triangle using the three given 3D points.

§a

a Point3D

§b

a Point3D

§c

a Point3D

§Returns

the initialized Triangle

Source

pub fn from_vec3(a: Option<&Vec3>, b: Option<&Vec3>, c: Option<&Vec3>) -> Self

Initializes a Triangle using the three given vectors.

§a

a Vec3

§b

a Vec3

§c

a Vec3

§Returns

the initialized Triangle

Trait Implementations§

Source§

impl Clone for Triangle

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 Triangle

Source§

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

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

impl HasParamSpec for Triangle

Source§

type ParamSpec = ParamSpecBoxed

Source§

type SetValue = Triangle

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

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

Source§

fn param_spec_builder() -> Self::BuilderFn

Source§

impl PartialEq for Triangle

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 Triangle

Source§

fn static_type() -> Type

Returns the type identifier of Self.
Source§

impl Copy for Triangle

Source§

impl Eq for Triangle

Auto Trait Implementations§

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

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,