Skip to main content

Affine3Ext

Trait Affine3Ext 

Source
pub trait Affine3Ext<T: Number> {
    // Required methods
    fn scale(self, factor: T) -> Self;
    fn scale_xyz(self, factors: Vector3<T>) -> Self;
    fn rotate_x(self, angle_deg: T) -> Self;
    fn rotate_y(self, angle_deg: T) -> Self;
    fn rotate_z(self, angle_deg: T) -> Self;
    fn rotate_axis(self, axis: Unit<Vector3<T>>, angle_deg: T) -> Self;
    fn translate(self, offset: Vector3<T>) -> Self;
}
Expand description

Extension trait for building Affine3 transforms via chaining.

Transforms compose left-to-right: .scale(2.0).rotate_y(45.0) scales first, then rotates.

All angles are in degrees.

Required Methods§

Source

fn scale(self, factor: T) -> Self

Uniform scale by factor on all axes.

Source

fn scale_xyz(self, factors: Vector3<T>) -> Self

Per-axis scale.

Source

fn rotate_x(self, angle_deg: T) -> Self

Rotate around the X axis by angle_deg degrees.

Source

fn rotate_y(self, angle_deg: T) -> Self

Rotate around the Y axis by angle_deg degrees.

Source

fn rotate_z(self, angle_deg: T) -> Self

Rotate around the Z axis by angle_deg degrees.

Source

fn rotate_axis(self, axis: Unit<Vector3<T>>, angle_deg: T) -> Self

Rotate around an arbitrary axis by angle_deg degrees.

Source

fn translate(self, offset: Vector3<T>) -> Self

Translate by offset.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementations on Foreign Types§

Source§

impl<T: Number> Affine3Ext<T> for Affine3<T>

Source§

fn scale(self, factor: T) -> Self

Source§

fn scale_xyz(self, factors: Vector3<T>) -> Self

Source§

fn rotate_x(self, angle_deg: T) -> Self

Source§

fn rotate_y(self, angle_deg: T) -> Self

Source§

fn rotate_z(self, angle_deg: T) -> Self

Source§

fn rotate_axis(self, axis: Unit<Vector3<T>>, angle_deg: T) -> Self

Source§

fn translate(self, offset: Vector3<T>) -> Self

Implementors§