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 numbersRot3/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 typesSymmetricEigen2/SymmetricEigen3: Eigendecomposition for symmetric matricesSvd2/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 supportserde: Enables serialization support via serdebytemuck: Enables bytemuck derive for Rot2/DRot2nalgebra: Enables conversions to/from nalgebra typeslibm: 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
boolvector mask types.- f32
f32vector, quaternion and matrix types.- f64
f64vector, quaternion and matrix types.- i8
i8vector types.- i16
i16vector types.- i32
i32vector types.- i64
i64vector types.- prelude
- Prelude module for convenient imports.
- swizzles
- Traits adding swizzle methods to all vector types.
- u8
u8vector types.- u16
u16vector types.- u32
u32vector types.- u64
u64vector types.- usize
usizevector 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
boolvector mask. - BVec3
- A 3-dimensional
boolvector mask. - BVec4
- A 4-dimensional
boolvector 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).
- DSymmetric
Eigen2 - The eigen decomposition of a symmetric 2x2 matrix (f64 precision).
- DSymmetric
Eigen3 - 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).
- Symmetric
Eigen2 - The eigen decomposition of a symmetric 2x2 matrix (f32 precision).
- Symmetric
Eigen3 - The eigen decomposition of a symmetric 3x3 matrix (f32 precision).
- Symmetric
Eigen3A - 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.
- USize
Vec2 - A 2-dimensional vector.
- USize
Vec3 - A 3-dimensional vector.
- USize
Vec4 - 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§
- Euler
Rot - Euler rotation sequences.
Traits§
- Float
Ext - A trait for extending
f32andf64with extra methods. - MatExt
- Extension trait for square matrix types.
- Vec2
Swizzles - Vec3
Swizzles - Vec4
Swizzles
Functions§
- bvec2
- Creates a 2-dimensional
boolvector mask. - bvec3
- Creates a 3-dimensional
boolvector mask. - bvec4
- Creates a 4-dimensional
boolvector mask. - bvec3a
- Creates a 3-dimensional
boolvector mask. - bvec4a
- Creates a 4-dimensional
boolvector 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,zandwvalues. - 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,zandwvalues. - 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.