pub type MatrixView<'a, T, R, C, RStride = U1, CStride = R> = Matrix<T, R, C, ViewStorage<'a, T, R, C, RStride, CStride>>;
Expand description
A matrix view.
Aliased Type§
struct MatrixView<'a, T, R, C, RStride = U1, CStride = R> {
pub data: ViewStorage<'a, T, R, C, RStride, CStride>,
/* private fields */
}
Fields§
§data: ViewStorage<'a, T, R, C, RStride, CStride>
The data storage that contains all the matrix components. Disappointed?
Well, if you came here to see how you can access the matrix components,
you may be in luck: you can access the individual components of all vectors with compile-time
dimensions <= 6 using field notation like this:
vec.x
, vec.y
, vec.z
, vec.w
, vec.a
, vec.b
. Reference and assignation work too:
let mut vec = Vector3::new(1.0, 2.0, 3.0);
vec.x = 10.0;
vec.y += 30.0;
assert_eq!(vec.x, 10.0);
assert_eq!(vec.y + 100.0, 132.0);
Similarly, for matrices with compile-time dimensions <= 6, you can use field notation
like this: mat.m11
, mat.m42
, etc. The first digit identifies the row to address
and the second digit identifies the column to address. So mat.m13
identifies the component
at the first row and third column (note that the count of rows and columns start at 1 instead
of 0 here. This is so we match the mathematical notation).
For all matrices and vectors, independently from their size, individual components can
be accessed and modified using indexing: vec[20]
, mat[(20, 19)]
. Here the indexing
starts at 0 as you would expect.
Implementations§
Source§impl<'a, T: Scalar, R: Dim, C: Dim, RStride: Dim, CStride: Dim> MatrixView<'a, T, R, C, RStride, CStride>
impl<'a, T: Scalar, R: Dim, C: Dim, RStride: Dim, CStride: Dim> MatrixView<'a, T, R, C, RStride, CStride>
§Creating matrix views from &[T]
Sourcepub unsafe fn from_slice_with_strides_generic_unchecked(
data: &'a [T],
start: usize,
nrows: R,
ncols: C,
rstride: RStride,
cstride: CStride,
) -> Self
pub unsafe fn from_slice_with_strides_generic_unchecked( data: &'a [T], start: usize, nrows: R, ncols: C, rstride: RStride, cstride: CStride, ) -> Self
Creates, without bounds checking, a matrix view from an array and with dimensions and strides specified by generic types instances.
§Safety
This method is unsafe because the input data array is not checked to contain enough elements.
The generic types R
, C
, RStride
, CStride
can either be type-level integers or integers wrapped with Dyn()
.
Sourcepub fn from_slice_with_strides_generic(
data: &'a [T],
nrows: R,
ncols: C,
rstride: RStride,
cstride: CStride,
) -> Self
pub fn from_slice_with_strides_generic( data: &'a [T], nrows: R, ncols: C, rstride: RStride, cstride: CStride, ) -> Self
Creates a matrix view from an array and with dimensions and strides specified by generic types instances.
Panics if the input data array dose not contain enough elements.
The generic types R
, C
, RStride
, CStride
can either be type-level integers or integers wrapped with Dyn()
.
Source§impl<'a, T: Scalar, R: Dim, C: Dim> MatrixView<'a, T, R, C>
impl<'a, T: Scalar, R: Dim, C: Dim> MatrixView<'a, T, R, C>
Sourcepub unsafe fn from_slice_generic_unchecked(
data: &'a [T],
start: usize,
nrows: R,
ncols: C,
) -> Self
pub unsafe fn from_slice_generic_unchecked( data: &'a [T], start: usize, nrows: R, ncols: C, ) -> Self
Creates, without bound-checking, a matrix view from an array and with dimensions specified by generic types instances.
§Safety
This method is unsafe because the input data array is not checked to contain enough elements.
The generic types R
and C
can either be type-level integers or integers wrapped with Dyn()
.
Sourcepub fn from_slice_generic(data: &'a [T], nrows: R, ncols: C) -> Self
pub fn from_slice_generic(data: &'a [T], nrows: R, ncols: C) -> Self
Creates a matrix view from an array and with dimensions and strides specified by generic types instances.
Panics if the input data array dose not contain enough elements.
The generic types R
and C
can either be type-level integers or integers wrapped with Dyn()
.
Source§impl<'a, T: Scalar, R: DimName, C: DimName> MatrixView<'a, T, R, C>
impl<'a, T: Scalar, R: DimName, C: DimName> MatrixView<'a, T, R, C>
Sourcepub fn from_slice(data: &'a [T]) -> Self
pub fn from_slice(data: &'a [T]) -> Self
Creates a new matrix view from the given data array.
Panics if data
does not contain enough elements.
Sourcepub unsafe fn from_slice_unchecked(data: &'a [T], start: usize) -> Self
pub unsafe fn from_slice_unchecked(data: &'a [T], start: usize) -> Self
Creates, without bound checking, a new matrix view from the given data array.
§Safety
data[start..start+rstride * cstride]
must be within bounds.
Source§impl<'a, T: Scalar, R: DimName, C: DimName> MatrixView<'a, T, R, C, Dyn, Dyn>
impl<'a, T: Scalar, R: DimName, C: DimName> MatrixView<'a, T, R, C, Dyn, Dyn>
Sourcepub fn from_slice_with_strides(
data: &'a [T],
rstride: usize,
cstride: usize,
) -> Self
pub fn from_slice_with_strides( data: &'a [T], rstride: usize, cstride: usize, ) -> Self
Creates a new matrix view with the specified strides from the given data array.
Panics if data
does not contain enough elements.
Sourcepub unsafe fn from_slice_with_strides_unchecked(
data: &'a [T],
start: usize,
rstride: usize,
cstride: usize,
) -> Self
pub unsafe fn from_slice_with_strides_unchecked( data: &'a [T], start: usize, rstride: usize, cstride: usize, ) -> Self
Creates, without bound checking, a new matrix view with the specified strides from the given data array.
§Safety
start
, rstride
, and cstride
, with the given matrix size will not index
outside of data
.
Source§impl<'a, T: Scalar, R: DimName> MatrixView<'a, T, R, Dyn>
impl<'a, T: Scalar, R: DimName> MatrixView<'a, T, R, Dyn>
Sourcepub fn from_slice(data: &'a [T], ncols: usize) -> Self
pub fn from_slice(data: &'a [T], ncols: usize) -> Self
Creates a new matrix view from the given data array.
Panics if data
does not contain enough elements.
Source§impl<'a, T: Scalar, R: DimName> MatrixView<'a, T, R, Dyn, Dyn, Dyn>
impl<'a, T: Scalar, R: DimName> MatrixView<'a, T, R, Dyn, Dyn, Dyn>
Sourcepub fn from_slice_with_strides(
data: &'a [T],
ncols: usize,
rstride: usize,
cstride: usize,
) -> Self
pub fn from_slice_with_strides( data: &'a [T], ncols: usize, rstride: usize, cstride: usize, ) -> Self
Creates a new matrix view with the specified strides from the given data array.
Panics if data
does not contain enough elements.
Sourcepub unsafe fn from_slice_with_strides_unchecked(
data: &'a [T],
start: usize,
ncols: usize,
rstride: usize,
cstride: usize,
) -> Self
pub unsafe fn from_slice_with_strides_unchecked( data: &'a [T], start: usize, ncols: usize, rstride: usize, cstride: usize, ) -> Self
Creates, without bound checking, a new matrix view with the specified strides from the given data array.
§Safety
start
, rstride
, and cstride
, with the given matrix size will not index
outside of data
.
Source§impl<'a, T: Scalar, C: DimName> MatrixView<'a, T, Dyn, C>
impl<'a, T: Scalar, C: DimName> MatrixView<'a, T, Dyn, C>
Sourcepub fn from_slice(data: &'a [T], nrows: usize) -> Self
pub fn from_slice(data: &'a [T], nrows: usize) -> Self
Creates a new matrix view from the given data array.
Panics if data
does not contain enough elements.
Source§impl<'a, T: Scalar, C: DimName> MatrixView<'a, T, Dyn, C, Dyn, Dyn>
impl<'a, T: Scalar, C: DimName> MatrixView<'a, T, Dyn, C, Dyn, Dyn>
Sourcepub fn from_slice_with_strides(
data: &'a [T],
nrows: usize,
rstride: usize,
cstride: usize,
) -> Self
pub fn from_slice_with_strides( data: &'a [T], nrows: usize, rstride: usize, cstride: usize, ) -> Self
Creates a new matrix view with the specified strides from the given data array.
Panics if data
does not contain enough elements.
Sourcepub unsafe fn from_slice_with_strides_unchecked(
data: &'a [T],
start: usize,
nrows: usize,
rstride: usize,
cstride: usize,
) -> Self
pub unsafe fn from_slice_with_strides_unchecked( data: &'a [T], start: usize, nrows: usize, rstride: usize, cstride: usize, ) -> Self
Creates, without bound checking, a new matrix view with the specified strides from the given data array.
§Safety
start
, rstride
, and cstride
, with the given matrix size will not index
outside of data
.
Source§impl<'a, T: Scalar> MatrixView<'a, T, Dyn, Dyn>
impl<'a, T: Scalar> MatrixView<'a, T, Dyn, Dyn>
Sourcepub fn from_slice(data: &'a [T], nrows: usize, ncols: usize) -> Self
pub fn from_slice(data: &'a [T], nrows: usize, ncols: usize) -> Self
Creates a new matrix view from the given data array.
Panics if data
does not contain enough elements.
Source§impl<'a, T: Scalar> MatrixView<'a, T, Dyn, Dyn, Dyn, Dyn>
impl<'a, T: Scalar> MatrixView<'a, T, Dyn, Dyn, Dyn, Dyn>
Sourcepub fn from_slice_with_strides(
data: &'a [T],
nrows: usize,
ncols: usize,
rstride: usize,
cstride: usize,
) -> Self
pub fn from_slice_with_strides( data: &'a [T], nrows: usize, ncols: usize, rstride: usize, cstride: usize, ) -> Self
Creates a new matrix view with the specified strides from the given data array.
Panics if data
does not contain enough elements.
Sourcepub unsafe fn from_slice_with_strides_unchecked(
data: &'a [T],
start: usize,
nrows: usize,
ncols: usize,
rstride: usize,
cstride: usize,
) -> Self
pub unsafe fn from_slice_with_strides_unchecked( data: &'a [T], start: usize, nrows: usize, ncols: usize, rstride: usize, cstride: usize, ) -> Self
Creates, without bound checking, a new matrix view with the specified strides from the given data array.
§Safety
start
, rstride
, and cstride
, with the given matrix size will not index
outside of data
.