Struct glam::f32::Affine3A [−][src]
Expand description
A 3D affine transform, which can represent translation, rotation, scaling and shear.
The type is composed of a 3x3 matrix containing a linear transformation (e.g. scale, rotation, shear, reflection) and a 3D vector translation.
Fields
matrix3: Mat3A
translation: Vec3A
Implementations
The degenerate zero transform.
This transforms any finite vector and point to zero. The zero transform is non-invertible.
The identity transform.
Multiplying a vector with this returns the same vector.
Creates an affine transform from four column vectors.
Creates an affine transform from a [S; 12]
array stored in column major order.
If your data is stored in row major you will need to transpose
the returned
matrix.
Creates a [S; 12]
array storing data in column major order.
If you require data in row major order transpose
the matrix first.
Creates an affine transform from a [[S; 3]; 4]
2D array stored in column major order.
If your data is in row major order you will need to transpose
the returned
matrix.
Creates a [[S; 3]; 4]
2D array storing data in column major order.
If you require data in row major order transpose
the matrix first.
Creates an affine transform from the first 12 values in slice
.
Panics
Panics if slice
is less than 12 elements long.
Writes the columns of self
to the first 12 elements in slice
.
Panics
Panics if slice
is less than 12 elements long.
Creates an affine transform that changes scale. Note that if any scale is zero the transform will be non-invertible.
Creates an affine transform from the given rotation
quaternion.
Creates an affine transform containing a 3D rotation around a normalized
rotation axis
of angle
(in radians).
Creates an affine transform containing a 3D rotation around the x axis of
angle
(in radians).
Creates an affine transform containing a 3D rotation around the y axis of
angle
(in radians).
Creates an affine transform containing a 3D rotation around the z axis of
angle
(in radians).
Creates an affine transformation from the given 3D translation
.
Creates an affine transform from a 3x3 matrix (expressing scale, shear and rotation)
Creates an affine transform from a 3x3 matrix (expressing scale, shear and rotation) and a translation vector.
Equivalent to Affine3::from_translation(translation) * Affine3::from_mat3(mat3)
pub fn from_scale_rotation_translation(
scale: Vec3,
rotation: Quat,
translation: Vec3
) -> Self
[src]
pub fn from_scale_rotation_translation(
scale: Vec3,
rotation: Quat,
translation: Vec3
) -> Self
[src]Creates an affine transform from the given 3D scale
, rotation
and
translation
.
Equivalent to Affine3::from_translation(translation) * Affine3::from_quat(rotation) * Affine3::from_scale(scale)
Creates an affine transform from the given 3D rotation
and translation
.
Equivalent to Affine3::from_translation(translation) * Affine3::from_quat(rotation)
The given Mat4
must be an affine transform,
i.e. contain no perspective transform.
Extracts scale
, rotation
and translation
from self
.
The transform is expected to be non-degenerate and without shearing, or the output will be invalid.
Creates a left-handed view transform using a camera position, an up direction, and a focal point.
For a view coordinate system with +X=right
, +Y=up
and +Z=forward
.
Creates a right-handed view transform using a camera position, an up direction, and a focal point.
For a view coordinate system with +X=right
, +Y=up
and +Z=back
.
Transforms the given 3D points, applying shear, scale, rotation and translation.
Transforms the given 3D vector, applying shear, scale and rotation (but NOT translation).
To also apply translation, use Self::transform_point3
instead.
Returns true
if, and only if, all elements are finite.
If any element is either NaN
, positive or negative infinity, this will return
false
.
Returns true if the absolute difference of all elements between self
and other
is less than or equal to max_abs_diff
.
This can be used to compare if two 3x4 matrices contain similar elements. It works
best when comparing with a known value. The max_abs_diff
that should be used used
depends on the values being compared against.
For more see comparing floating point numbers.
Transforms the given Vec3A
, applying shear, scale, rotation and translation.
Transforms the given Vec3A
, applying shear, scale and rotation (but NOT
translation).
To also apply translation, use Self::transform_point3
instead.
Trait Implementations
Auto Trait Implementations
impl RefUnwindSafe for Affine3A
impl UnwindSafe for Affine3A
Blanket Implementations
Mutably borrows from an owned value. Read more