Crate glamx

Crate glamx 

Source
Expand description

§glamx - Extensions for glam

This crate provides additional types and utilities for the glam math library:

  • Rot2 / DRot2: 2D rotations represented as unit complex numbers
  • Rot3 / DRot3: 3D rotations (re-exports of glam’s quaternions)
  • Pose2 / DPose2: 2D rigid body transformations (rotation + translation)
  • Pose3 / DPose3: 3D rigid body transformations (rotation + translation)
  • MatExt: Extension traits for glam matrix types
  • SymmetricEigen2 / SymmetricEigen3: Eigendecomposition for symmetric matrices
  • Svd2 / Svd3: Singular Value Decomposition for 2x2 and 3x3 matrices

§Naming Convention

Types without a prefix use f32 precision, while types with a D prefix use f64 precision:

  • Rot2 (f32) / DRot2 (f64)
  • Pose2 (f32) / DPose2 (f64)
  • SymmetricEigen2 (f32) / DSymmetricEigen2 (f64)

§Feature Flags

  • std (default): Enables standard library support
  • serde: Enables serialization support via serde
  • bytemuck: Enables bytemuck derive for Rot2/DRot2
  • nalgebra: Enables conversions to/from nalgebra types
  • libm: Uses libm for no_std math operations

§glam Re-exports

This crate re-exports all of glam’s types so you can use it as a drop-in replacement without an explicit dependency to glam. Alternatively, depending on your coding style preferences, you can use the glam re-export.

Re-exports§

pub use glam;

Modules§

bool
bool vector mask types.
f32
f32 vector, quaternion and matrix types.
f64
f64 vector, quaternion and matrix types.
i8
i8 vector types.
i16
i16 vector types.
i32
i32 vector types.
i64
i64 vector types.
prelude
Prelude module for convenient imports.
swizzles
Traits adding swizzle methods to all vector types.
u8
u8 vector types.
u16
u16 vector types.
u32
u32 vector types.
u64
u64 vector types.
usize
usize vector types.

Structs§

Affine2
A 2D affine transform, which can represent translation, rotation, scaling and shear.
Affine3A
A 3D affine transform, which can represent translation, rotation, scaling and shear.
BVec2
A 2-dimensional bool vector mask.
BVec3
A 3-dimensional bool vector mask.
BVec4
A 4-dimensional bool vector mask.
BVec3A
A 3-dimensional SIMD vector mask.
BVec4A
A 4-dimensional SIMD vector mask.
DAffine2
A 2D affine transform, which can represent translation, rotation, scaling and shear.
DAffine3
A 3D affine transform, which can represent translation, rotation, scaling and shear.
DMat2
A 2x2 column major matrix.
DMat3
A 3x3 column major matrix.
DMat4
A 4x4 column major matrix.
DPose2
A 2D pose (rotation + translation), representing a rigid body transformation (f64 precision).
DPose3
A 3D pose (rotation + translation), representing a rigid body transformation (f64 precision).
DQuat
A quaternion representing an orientation.
DRot2
A 2D rotation represented as a unit complex number (f64 precision).
DSvd2
The SVD of a 2x2 matrix (f64 precision).
DSvd3
The SVD of a 3x3 matrix (f64 precision).
DSymmetricEigen2
The eigen decomposition of a symmetric 2x2 matrix (f64 precision).
DSymmetricEigen3
The eigen decomposition of a symmetric 3x3 matrix (f64 precision).
DVec2
A 2-dimensional vector.
DVec3
A 3-dimensional vector.
DVec4
A 4-dimensional vector.
I8Vec2
A 2-dimensional vector.
I8Vec3
A 3-dimensional vector.
I8Vec4
A 4-dimensional vector.
I16Vec2
A 2-dimensional vector.
I16Vec3
A 3-dimensional vector.
I16Vec4
A 4-dimensional vector.
I64Vec2
A 2-dimensional vector.
I64Vec3
A 3-dimensional vector.
I64Vec4
A 4-dimensional vector.
IVec2
A 2-dimensional vector.
IVec3
A 3-dimensional vector.
IVec4
A 4-dimensional vector.
Mat2
A 2x2 column major matrix.
Mat3
A 3x3 column major matrix.
Mat4
A 4x4 column major matrix.
Mat3A
A 3x3 column major matrix.
Pose2
A 2D pose (rotation + translation), representing a rigid body transformation (f32 precision).
Pose3
A 3D pose (rotation + translation), representing a rigid body transformation (f32 precision).
Pose3A
A 3D pose (rotation + translation), representing a rigid body transformation (f32 precision).
Quat
A quaternion representing an orientation.
Rot2
A 2D rotation represented as a unit complex number (f32 precision).
Svd2
The SVD of a 2x2 matrix (f32 precision).
Svd3
The SVD of a 3x3 matrix (f32 precision).
Svd3A
The SVD of a 3x3 matrix (f32 precision).
SymmetricEigen2
The eigen decomposition of a symmetric 2x2 matrix (f32 precision).
SymmetricEigen3
The eigen decomposition of a symmetric 3x3 matrix (f32 precision).
SymmetricEigen3A
The eigen decomposition of a symmetric 3x3 matrix (f32 precision).
U8Vec2
A 2-dimensional vector.
U8Vec3
A 3-dimensional vector.
U8Vec4
A 4-dimensional vector.
U16Vec2
A 2-dimensional vector.
U16Vec3
A 3-dimensional vector.
U16Vec4
A 4-dimensional vector.
U64Vec2
A 2-dimensional vector.
U64Vec3
A 3-dimensional vector.
U64Vec4
A 4-dimensional vector.
USizeVec2
A 2-dimensional vector.
USizeVec3
A 3-dimensional vector.
USizeVec4
A 4-dimensional vector.
UVec2
A 2-dimensional vector.
UVec3
A 3-dimensional vector.
UVec4
A 4-dimensional vector.
Vec2
A 2-dimensional vector.
Vec3
A 3-dimensional vector.
Vec4
A 4-dimensional vector.
Vec3A
A 3-dimensional vector.

Enums§

EulerRot
Euler rotation sequences.

Traits§

FloatExt
A trait for extending f32 and f64 with extra methods.
MatExt
Extension trait for square matrix types.
Vec2Swizzles
Vec3Swizzles
Vec4Swizzles

Functions§

bvec2
Creates a 2-dimensional bool vector mask.
bvec3
Creates a 3-dimensional bool vector mask.
bvec4
Creates a 4-dimensional bool vector mask.
bvec3a
Creates a 3-dimensional bool vector mask.
bvec4a
Creates a 4-dimensional bool vector mask.
dmat2
Creates a 2x2 matrix from two column vectors.
dmat3
Creates a 3x3 matrix from three column vectors.
dmat4
Creates a 4x4 matrix from four column vectors.
dquat
Creates a quaternion from x, y, z and w values.
dvec2
Creates a 2-dimensional vector.
dvec3
Creates a 3-dimensional vector.
dvec4
Creates a 4-dimensional vector.
i8vec2
Creates a 2-dimensional vector.
i8vec3
Creates a 3-dimensional vector.
i8vec4
Creates a 4-dimensional vector.
i16vec2
Creates a 2-dimensional vector.
i16vec3
Creates a 3-dimensional vector.
i16vec4
Creates a 4-dimensional vector.
i64vec2
Creates a 2-dimensional vector.
i64vec3
Creates a 3-dimensional vector.
i64vec4
Creates a 4-dimensional vector.
ivec2
Creates a 2-dimensional vector.
ivec3
Creates a 3-dimensional vector.
ivec4
Creates a 4-dimensional vector.
mat2
Creates a 2x2 matrix from two column vectors.
mat3
Creates a 3x3 matrix from three column vectors.
mat4
Creates a 4x4 matrix from four column vectors.
mat3a
Creates a 3x3 matrix from three column vectors.
quat
Creates a quaternion from x, y, z and w values.
u8vec2
Creates a 2-dimensional vector.
u8vec3
Creates a 3-dimensional vector.
u8vec4
Creates a 4-dimensional vector.
u16vec2
Creates a 2-dimensional vector.
u16vec3
Creates a 3-dimensional vector.
u16vec4
Creates a 4-dimensional vector.
u64vec2
Creates a 2-dimensional vector.
u64vec3
Creates a 3-dimensional vector.
u64vec4
Creates a 4-dimensional vector.
usizevec2
Creates a 2-dimensional vector.
usizevec3
Creates a 3-dimensional vector.
usizevec4
Creates a 4-dimensional vector.
uvec2
Creates a 2-dimensional vector.
uvec3
Creates a 3-dimensional vector.
uvec4
Creates a 4-dimensional vector.
vec2
Creates a 2-dimensional vector.
vec3
Creates a 3-dimensional vector.
vec4
Creates a 4-dimensional vector.
vec3a
Creates a 3-dimensional vector.

Type Aliases§

DRot3
A 3D rotation represented as a unit quaternion (f64 precision).
Rot3
A 3D rotation represented as a unit quaternion (f32 precision).