Trait cgmath::Matrix

source ·
pub trait Matrixwhere
    Self: Index<usize, Output = Self::Column> + IndexMut<usize, Output = Self::Column> + ApproxEq<Epsilon = Self::Element>,{
    type Element: BaseFloat;
    type Row: Array<Element = Self::Element>;
    type Column: Array<Element = Self::Element>;
    type Transpose: Matrix<Element = Self::Element, Row = Self::Column, Column = Self::Row>;

Show 15 methods // Required methods fn row(&self, r: usize) -> Self::Row; fn swap_rows(&mut self, a: usize, b: usize); fn swap_columns(&mut self, a: usize, b: usize); fn swap_elements(&mut self, a: (usize, usize), b: (usize, usize)); fn zero() -> Self; fn mul_m(&self, other: &Self::Transpose) -> Self; fn mul_v(&self, column: Self::Column) -> Self::Column; fn mul_s(&self, scalar: Self::Element) -> Self; fn div_s(&self, scalar: Self::Element) -> Self; fn mul_self_s(&mut self, scalar: Self::Element); fn div_self_s(&mut self, scalar: Self::Element); fn transpose(&self) -> Self::Transpose; // Provided methods fn as_ptr(&self) -> *const Self::Element { ... } fn as_mut_ptr(&mut self) -> *mut Self::Element { ... } fn replace_col(&mut self, c: usize, src: Self::Column) -> Self::Column { ... }
}
Expand description

A column-major matrix of arbitrary dimensions.

Required Associated Types§

source

type Element: BaseFloat

The type of the elements in the matrix.

source

type Row: Array<Element = Self::Element>

The row vector of the matrix.

source

type Column: Array<Element = Self::Element>

The column vector of the matrix.

source

type Transpose: Matrix<Element = Self::Element, Row = Self::Column, Column = Self::Row>

The type of the transposed matrix

Required Methods§

source

fn row(&self, r: usize) -> Self::Row

Get a row from this matrix by-value.

source

fn swap_rows(&mut self, a: usize, b: usize)

Swap two rows of this array.

source

fn swap_columns(&mut self, a: usize, b: usize)

Swap two columns of this array.

source

fn swap_elements(&mut self, a: (usize, usize), b: (usize, usize))

Swap the values at index a and b

source

fn zero() -> Self

Create a matrix with all of the elements set to zero.

source

fn mul_m(&self, other: &Self::Transpose) -> Self

Multiply the matrix by another matrix,

source

fn mul_v(&self, column: Self::Column) -> Self::Column

Multiply the matrix by a column vector.

source

fn mul_s(&self, scalar: Self::Element) -> Self

Multiply this matrix by a scalar, returning the new matrix.

source

fn div_s(&self, scalar: Self::Element) -> Self

Divide this matrix by a scalar, returning the new matrix.

source

fn mul_self_s(&mut self, scalar: Self::Element)

Multiply this matrix by a scalar, in-place.

source

fn div_self_s(&mut self, scalar: Self::Element)

Divide this matrix by a scalar, in-place.

source

fn transpose(&self) -> Self::Transpose

Transpose this matrix, returning a new matrix.

Provided Methods§

source

fn as_ptr(&self) -> *const Self::Element

Get the pointer to the first element of the array.

source

fn as_mut_ptr(&mut self) -> *mut Self::Element

Get a mutable pointer to the first element of the array.

source

fn replace_col(&mut self, c: usize, src: Self::Column) -> Self::Column

Replace a column in the array.

Implementors§

source§

impl<S: BaseFloat> Matrix for Matrix2<S>

§

type Element = S

§

type Column = Vector2<S>

§

type Row = Vector2<S>

§

type Transpose = Matrix2<S>

source§

impl<S: BaseFloat> Matrix for Matrix3<S>

§

type Element = S

§

type Column = Vector3<S>

§

type Row = Vector3<S>

§

type Transpose = Matrix3<S>

source§

impl<S: BaseFloat> Matrix for Matrix4<S>

§

type Element = S

§

type Column = Vector4<S>

§

type Row = Vector4<S>

§

type Transpose = Matrix4<S>