# Struct graphene::Point3D

``pub struct Point3D { /* private fields */ }``
Expand description

A point with three components: X, Y, and Z.

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

## Implementations§

source§

### impl Point3D

source

source

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

Borrows the underlying C value.

source

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

Borrows the underlying C value mutably.

source§

### impl Point3D

source

#### pub fn cross(&self, b: &Point3D) -> Point3D

Computes the cross product of the two given `Point3D`.

##### §Returns
###### §`res`

return location for the cross product

source

#### pub fn distance(&self, b: &Point3D) -> (f32, Vec3)

Computes the distance between the two given `Point3D`.

##### §Returns

the distance between two points

###### §`delta`

return location for the distance components on the X, Y, and Z axis

source

#### pub fn dot(&self, b: &Point3D) -> f32

Computes the dot product of the two given `Point3D`.

##### §Returns

the value of the dot product

source

#### pub fn interpolate(&self, b: &Point3D, factor: f64) -> Point3D

Linearly interpolates each component of `self` and `b` using the provided `factor`, and places the result in `res`.

###### §`factor`

the interpolation factor

##### §Returns
###### §`res`

the return location for the interpolated `Point3D`

source

#### pub fn length(&self) -> f32

Computes the length of the vector represented by the coordinates of the given `Point3D`.

##### §Returns

the length of the vector represented by the point

source

#### pub fn near(&self, b: &Point3D, epsilon: f32) -> bool

Checks whether the two points are near each other, within an `epsilon` factor.

fuzzyness factor

##### §Returns

`true` if the points are near each other

source

#### pub fn normalize(&self) -> Point3D

Computes the normalization of the vector represented by the coordinates of the given `Point3D`.

##### §Returns
###### §`res`

return location for the normalized `Point3D`

source

#### pub fn normalize_viewport( &self, viewport: &Rect, z_near: f32, z_far: f32, ) -> Point3D

Normalizes the coordinates of a `Point3D` using the given viewport and clipping planes.

The coordinates of the resulting `Point3D` will be in the [ -1, 1 ] range.

###### §`viewport`

a `Rect` representing a viewport

###### §`z_near`

the coordinate of the near clipping plane, or 0 for the default near clipping plane

###### §`z_far`

the coordinate of the far clipping plane, or 1 for the default far clipping plane

##### §Returns
###### §`res`

the return location for the normalized `Point3D`

source

#### pub fn scale(&self, factor: f32) -> Point3D

Scales the coordinates of the given `Point3D` by the given `factor`.

###### §`factor`

the scaling factor

##### §Returns
###### §`res`

return location for the scaled point

source

#### pub fn to_vec3(&self) -> Vec3

Stores the coordinates of a `Point3D` into a `Vec3`.

##### §Returns
###### §`v`

return location for a `Vec3`

source

#### pub fn zero() -> Point3D

Retrieves a constant point with all three coordinates set to 0.

a zero point

source§

### impl Point3D

source

#### pub fn new(x: f32, y: f32, z: f32) -> Self

Initializes a `Point3D` with the given coordinates.

###### §`x`

the X coordinate of the point

###### §`y`

the Y coordinate of the point

###### §`z`

the Z coordinate of the point

##### §Returns

the initialized `Point3D`

source

#### pub fn from_vec3(v: &Vec3) -> Self

Initializes a `Point3D` using the components of a `Vec3`.

##### §Returns

the initialized `Point3D`

source

source

source

source

source

source

## Trait Implementations§

source§

### impl Clone for Point3D

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 Point3D

source§

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

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

### impl Default for Point3D

source§

#### fn default() -> Self

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

### impl HasParamSpec for Point3D

source§

source§

#### type SetValue = Point3D

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

source§

source§

### impl PartialEq for Point3D

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 Point3D

source§

#### fn static_type() -> Type

Returns the type identifier of `Self`.
source§

source§

§

§

§

§

§

§

## Blanket Implementations§

source§

### impl<T> Any for Twhere T: 'static + ?Sized,

source§

#### fn type_id(&self) -> TypeId

Gets the `TypeId` of `self`. Read more
source§

### impl<T> Borrow<T> for Twhere T: ?Sized,

source§

#### fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

### impl<T> BorrowMut<T> for Twhere T: ?Sized,

source§

#### fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

### impl<T> CloneToUninit for Twhere 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§

source§

source§

source§

source§

source§

source§

source§

source§

source§

source§

source§

source§

source§

source§

source§

source§

source§

source§

source§

source§

source§

source§

source§

source§

source§

source§

source§

source§

source§

source§

source§

source§

source§

source§

source§

source§

source§

source§

source§

source§

source§

source§

source§

source§

source§

source§

source§

source§

### impl<T, U> Into<U> for Twhere 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§

source§

source§

source§

source§

source§

source§

source§

### impl<T> StaticTypeExt for Twhere T: StaticType,

source§

#### fn ensure_type()

Ensures that the type has been registered with the type system.
source§

### impl<T> ToOwned for Twhere 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 Twhere T: Send + ToValue + ?Sized,

source§

#### fn to_send_value(&self) -> SendValue

Returns a `SendValue` clone of `self`.
source§

### impl<T, U> TryFrom<U> for Twhere 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§

source§

source§

### impl<T, U> TryInto<U> for Twhere 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§