Merge pull request #1171 from md2468/try_cast
Added `try_cast()` to `Matrix`.
This commit is contained in:
commit
5389212c3c
|
@ -739,6 +739,24 @@ impl<T, R: Dim, C: Dim, S: RawStorage<T, R, C>> Matrix<T, R, C, S> {
|
||||||
crate::convert(self)
|
crate::convert(self)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Attempts to cast the components of `self` to another type.
|
||||||
|
///
|
||||||
|
/// # Example
|
||||||
|
/// ```
|
||||||
|
/// # use nalgebra::Vector3;
|
||||||
|
/// let q = Vector3::new(1.0f64, 2.0, 3.0);
|
||||||
|
/// let q2 = q.try_cast::<i32>();
|
||||||
|
/// assert_eq!(q2, Some(Vector3::new(1, 2, 3)));
|
||||||
|
/// ```
|
||||||
|
pub fn try_cast<T2: Scalar>(self) -> Option<OMatrix<T2, R, C>>
|
||||||
|
where
|
||||||
|
T: Scalar,
|
||||||
|
Self: SupersetOf<OMatrix<T2, R, C>>,
|
||||||
|
DefaultAllocator: Allocator<T2, R, C>,
|
||||||
|
{
|
||||||
|
crate::try_convert(self)
|
||||||
|
}
|
||||||
|
|
||||||
/// Similar to `self.iter().fold(init, f)` except that `init` is replaced by a closure.
|
/// Similar to `self.iter().fold(init, f)` except that `init` is replaced by a closure.
|
||||||
///
|
///
|
||||||
/// The initialization closure is given the first component of this matrix:
|
/// The initialization closure is given the first component of this matrix:
|
||||||
|
|
Loading…
Reference in New Issue