[−][src]Trait nannou::prelude::Matrix
A column-major matrix of arbitrary dimensions.
Because this is constrained to the VectorSpace
trait, this means that
following operators are required to be implemented:
Matrix addition:
Add<Output = Self>
Sub<Output = Self>
Neg<Output = Self>
Scalar multiplication:
Mul<Self::Scalar, Output = Self>
Div<Self::Scalar, Output = Self>
Rem<Self::Scalar, Output = Self>
Note that matrix multiplication is not required for implementors of this
trait. This is due to the complexities of implementing these operators with
Rust's current type system. For the multiplication of square matrices,
see SquareMatrix
.
Associated Types
type Row: Array + VectorSpace
The row vector of the matrix.
type Column: Array + VectorSpace
The column vector of the matrix.
type Transpose: Matrix
The result of transposing the matrix
Required methods
fn row(&self, r: usize) -> Self::Row
Get a row from this matrix by-value.
fn swap_rows(&mut self, a: usize, b: usize)
Swap two rows of this array.
fn swap_columns(&mut self, a: usize, b: usize)
Swap two columns of this array.
fn swap_elements(&mut self, a: (usize, usize), b: (usize, usize))
Swap the values at index a
and b
fn transpose(&self) -> Self::Transpose
Transpose this matrix, returning a new matrix.
Provided methods
fn as_ptr(&self) -> *const Self::Scalar
Get the pointer to the first element of the array.
fn as_mut_ptr(&mut self) -> *mut Self::Scalar
Get a mutable pointer to the first element of the array.
fn replace_col(&mut self, c: usize, src: Self::Column) -> Self::Column
Replace a column in the array.
Implementors
impl<S> Matrix for Matrix2<S> where
S: BaseFloat,
[src]
S: BaseFloat,
type Column = Vector2<S>
type Row = Vector2<S>
type Transpose = Matrix2<S>
fn row(&self, r: usize) -> Vector2<S>
[src]
fn swap_rows(&mut self, a: usize, b: usize)
[src]
fn swap_columns(&mut self, a: usize, b: usize)
[src]
fn swap_elements(&mut self, a: (usize, usize), b: (usize, usize))
[src]
fn transpose(&self) -> Matrix2<S>
[src]
impl<S> Matrix for Matrix3<S> where
S: BaseFloat,
[src]
S: BaseFloat,
type Column = Vector3<S>
type Row = Vector3<S>
type Transpose = Matrix3<S>
fn row(&self, r: usize) -> Vector3<S>
[src]
fn swap_rows(&mut self, a: usize, b: usize)
[src]
fn swap_columns(&mut self, a: usize, b: usize)
[src]
fn swap_elements(&mut self, a: (usize, usize), b: (usize, usize))
[src]
fn transpose(&self) -> Matrix3<S>
[src]
impl<S> Matrix for Matrix4<S> where
S: BaseFloat,
[src]
S: BaseFloat,