Hi there,
I can’t find a way to extract a Vector3
from a subset of a Vector6
. I always get some kind of type mismatch error.
Here is some code to reproduce the issue:
let vec6 = nalgebra::Vector6::<f64>::zeros();
let vec3: nalgebra::Vector3<f64> = vec6.fixed_slice::<nalgebra::U3, nalgebra::U1>(0, 0);
and the associated error:
error[E0308]: mismatched types
--> src/sva/utility.rs:15:44
|
15 | let vec3: nalgebra::Vector3<f64> = vec6.fixed_slice::<nalgebra::U3, nalgebra::U1>(0, 0);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected struct `nalgebra::MatrixArray`, found struct `nalgebra::SliceStorage`
|
= note: expected type `nalgebra::Matrix<_, _, _, nalgebra::MatrixArray<f64, nalgebra::U3, nalgebra::U1>>`
found type `nalgebra::Matrix<_, _, _, nalgebra::SliceStorage<'_, f64, nalgebra::U3, nalgebra::U1, nalgebra::U1, nalgebra::U6>>`
Coming from the C++ Eigen world, I would have imagined that since the dimensions are given at compile time, there should be no issues assigning a fixed size slice to a fixed size vector. But I’m very new to Rust and nalgebra so I might be missing something.
Can someone point me in the right direction?