#[repr(C, packed(1))]pub struct Matrix2 {
pub m: [f32; 4],
}
Fields§
§m: [f32; 4]
Implementations§
Source§impl Matrix2
impl Matrix2
Sourcepub fn new() -> Matrix2
pub fn new() -> Matrix2
Creates a matrix set to its identity
§Examples
use vex::Matrix2;
let actual = Matrix2::new();
assert_eq!(actual.m, [
1.0, 0.0,
0.0, 1.0,
]);
Sourcepub fn make(m11: f32, m21: f32, m12: f32, m22: f32) -> Matrix2
pub fn make(m11: f32, m21: f32, m12: f32, m22: f32) -> Matrix2
Creates a matrix from the provided values
§Examples
use vex::Matrix2;
let actual = Matrix2::make(1.0, 2.0, 3.0, 4.0);
let expected = [1.0, 2.0, 3.0, 4.0];
assert_eq!(actual.m, expected);
Sourcepub fn m11(&self) -> f32
pub fn m11(&self) -> f32
Gets the value for the m11 element
§Examples
use vex::Matrix2;
let actual = Matrix2::make(1.0, 2.0, 3.0, 4.0);
assert_eq!(actual.m11(), 1.0);
Sourcepub fn m21(&self) -> f32
pub fn m21(&self) -> f32
Gets the value for the m21 element
§Examples
use vex::Matrix2;
let actual = Matrix2::make(1.0, 2.0, 3.0, 4.0);
assert_eq!(actual.m21(), 2.0);
Sourcepub fn m12(&self) -> f32
pub fn m12(&self) -> f32
Gets the value for the m12 element
§Examples
use vex::Matrix2;
let actual = Matrix2::make(1.0, 2.0, 3.0, 4.0);
assert_eq!(actual.m12(), 3.0);
Sourcepub fn m22(&self) -> f32
pub fn m22(&self) -> f32
Gets the value for the m22 element
§Examples
use vex::Matrix2;
let actual = Matrix2::make(1.0, 2.0, 3.0, 4.0);
assert_eq!(actual.m22(), 4.0);
Sourcepub fn set_m11(&mut self, v: f32)
pub fn set_m11(&mut self, v: f32)
Sets the value for the m11 element
§Examples
use vex::Matrix2;
let mut actual = Matrix2::make(0.0, 0.0, 0.0, 0.0);
actual.set_m11(1.0);
let expected = [1.0, 0.0, 0.0, 0.0];
assert_eq!(actual.m, expected);
Sourcepub fn set_m21(&mut self, v: f32)
pub fn set_m21(&mut self, v: f32)
Sets the value for the m21 element
§Examples
use vex::Matrix2;
let mut actual = Matrix2::make(0.0, 0.0, 0.0, 0.0);
actual.set_m21(1.0);
let expected = [0.0, 1.0, 0.0, 0.0];
assert_eq!(actual.m, expected);
Sourcepub fn set_m12(&mut self, v: f32)
pub fn set_m12(&mut self, v: f32)
Sets the value for the m12 element
§Examples
use vex::Matrix2;
let mut actual = Matrix2::make(0.0, 0.0, 0.0, 0.0);
actual.set_m12(1.0);
let expected = [0.0, 0.0, 1.0, 0.0];
assert_eq!(actual.m, expected);
Sourcepub fn set_m22(&mut self, v: f32)
pub fn set_m22(&mut self, v: f32)
Sets the value for the m22 element
§Examples
use vex::Matrix2;
let mut actual = Matrix2::make(0.0, 0.0, 0.0, 0.0);
actual.set_m22(1.0);
let expected = [0.0, 0.0, 0.0, 1.0];
assert_eq!(actual.m, expected);
Sourcepub fn set(&mut self, m11: f32, m21: f32, m12: f32, m22: f32)
pub fn set(&mut self, m11: f32, m21: f32, m12: f32, m22: f32)
Sets the internal contents of the matrix
§Examples
use vex::Matrix2;
let mut actual = Matrix2::new();
actual.set(1.0, 2.0, 3.0, 4.0);
let expected = Matrix2::make(1.0, 2.0, 3.0, 4.0);
assert_eq!(actual, expected);
Sourcepub fn transpose(&mut self)
pub fn transpose(&mut self)
Transposes the matrix’s elements
§Examples
use vex::Matrix2;
let mut actual = Matrix2::make(1.0, 2.0, 3.0, 4.0);
actual.transpose();
let expected = Matrix2::make(1.0, 3.0, 2.0, 4.0);
assert_eq!(actual, expected);
Sourcepub fn determinant(&self) -> f32
pub fn determinant(&self) -> f32
Find the matrix’s determinant
§Examples
use vex::Matrix2;
let actual = Matrix2::make(1.0, 2.0, 3.0, 4.0).determinant();
assert_eq!(actual, -2.0);
Trait Implementations§
Source§impl Add<f32> for Matrix2
impl Add<f32> for Matrix2
Source§impl Add for Matrix2
impl Add for Matrix2
Source§impl AddAssign<f32> for Matrix2
impl AddAssign<f32> for Matrix2
Source§fn add_assign(&mut self, _rhs: f32)
fn add_assign(&mut self, _rhs: f32)
Increment a matrix by a scalar
§Examples
use vex::Matrix2;
let mut actual = Matrix2::make(1.0, 2.0, 3.0, 4.0);
actual += 10.0;
let expected = Matrix2::make(11.0, 12.0, 13.0, 14.0);
assert_eq!(actual, expected);
Source§impl AddAssign for Matrix2
impl AddAssign for Matrix2
Source§fn add_assign(&mut self, _rhs: Matrix2)
fn add_assign(&mut self, _rhs: Matrix2)
Increment a matrix by another matrix
§Examples
use vex::Matrix2;
let mut actual = Matrix2::make(1.0, 2.0, 3.0, 4.0);
actual += Matrix2::make(1.0, 2.0, 3.0, 4.0);
let expected = Matrix2::make(2.0, 4.0, 6.0, 8.0);
assert_eq!(actual, expected);
Source§impl Div<f32> for Matrix2
impl Div<f32> for Matrix2
Source§impl DivAssign<f32> for Matrix2
impl DivAssign<f32> for Matrix2
Source§fn div_assign(&mut self, _rhs: f32)
fn div_assign(&mut self, _rhs: f32)
Divide a matrix by a scalar
§Examples
use vex::Matrix2;
let mut actual = Matrix2::make(1.0, 2.0, 3.0, 4.0);
actual /= 2.0;
let expected = Matrix2::make(0.5, 1.0, 1.5, 2.0);
assert_eq!(actual, expected);
Source§impl Matrix<Vector2> for Matrix2
impl Matrix<Vector2> for Matrix2
Source§fn transform_point(&self, point: &Vector2) -> Vector2
fn transform_point(&self, point: &Vector2) -> Vector2
Find the resulting vector given a vector and matrix
§Examples
use vex::Matrix;
use vex::Matrix2;
use vex::Vector2;
let m = Matrix2::make(1.0, 2.0, 3.0, 4.0);
let v = Vector2::make(1.0, 2.0);
let actual = m.transform_point(&v);
let expected = Vector2::make(7.0, 10.0);
assert_eq!(actual, expected);
Source§impl Mul<f32> for Matrix2
impl Mul<f32> for Matrix2
Source§impl Mul for Matrix2
impl Mul for Matrix2
Source§impl MulAssign<f32> for Matrix2
impl MulAssign<f32> for Matrix2
Source§fn mul_assign(&mut self, _rhs: f32)
fn mul_assign(&mut self, _rhs: f32)
Multiply a matrix by a scalar
§Examples
use vex::Matrix2;
let mut actual = Matrix2::make(1.0, 2.0, 3.0, 4.0);
actual *= 2.0;
let expected = Matrix2::make(2.0, 4.0, 6.0, 8.0);
assert_eq!(actual, expected);
Source§impl MulAssign for Matrix2
impl MulAssign for Matrix2
Source§fn mul_assign(&mut self, _rhs: Matrix2)
fn mul_assign(&mut self, _rhs: Matrix2)
Multiply a matrix by another matrix
§Examples
use vex::Matrix2;
let mut actual = Matrix2::make(1.0, 2.0, 3.0, 4.0);
actual *= Matrix2::make(5.0, 6.0, 7.0, 8.0);
let expected = Matrix2::make(23.0, 34.0, 31.0, 46.0);
assert_eq!(actual, expected);
Source§impl PartialEq for Matrix2
impl PartialEq for Matrix2
Source§impl Sub<f32> for Matrix2
impl Sub<f32> for Matrix2
Source§impl Sub for Matrix2
impl Sub for Matrix2
Source§impl SubAssign<f32> for Matrix2
impl SubAssign<f32> for Matrix2
Source§fn sub_assign(&mut self, _rhs: f32)
fn sub_assign(&mut self, _rhs: f32)
Decrement a matrix by a scalar
§Examples
use vex::Matrix2;
let mut actual = Matrix2::make(1.0, 2.0, 3.0, 4.0);
actual -= 1.0;
let expected = Matrix2::make(0.0, 1.0, 2.0, 3.0);
assert_eq!(actual, expected);
Source§impl SubAssign for Matrix2
impl SubAssign for Matrix2
Source§fn sub_assign(&mut self, _rhs: Matrix2)
fn sub_assign(&mut self, _rhs: Matrix2)
Decrement a matrix by another matrix
§Examples
use vex::Matrix2;
let mut actual = Matrix2::make(2.0, 2.0, 3.0, 5.0);
actual -= Matrix2::make(1.0, 2.0, 3.0, 4.0);
assert_eq!(actual, Matrix2::new());
impl Copy for Matrix2
Auto Trait Implementations§
impl Freeze for Matrix2
impl RefUnwindSafe for Matrix2
impl Send for Matrix2
impl Sync for Matrix2
impl Unpin for Matrix2
impl UnwindSafe for Matrix2
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more