forked from M-Labs/nalgebra
Add Rotation * Unit<Vector>
This commit is contained in:
parent
51a4e73386
commit
f218186ec0
@ -10,6 +10,7 @@
|
|||||||
* Matrix × Rotation
|
* Matrix × Rotation
|
||||||
* Matrix ÷ Rotation
|
* Matrix ÷ Rotation
|
||||||
* Rotation × Point
|
* Rotation × Point
|
||||||
|
* Rotation × Unit<Vector>
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
* Rotation ×= Rotation
|
* Rotation ×= Rotation
|
||||||
@ -21,7 +22,7 @@ use num::{One, Zero};
|
|||||||
|
|
||||||
use alga::general::{ClosedAdd, ClosedMul};
|
use alga::general::{ClosedAdd, ClosedMul};
|
||||||
|
|
||||||
use base::{DefaultAllocator, Matrix, MatrixMN, Scalar};
|
use base::{DefaultAllocator, Matrix, MatrixMN, Scalar, Unit, Vector, VectorN};
|
||||||
use base::dimension::{Dim, DimName, U1};
|
use base::dimension::{Dim, DimName, U1};
|
||||||
use base::constraint::{AreMultipliable, ShapeConstraint};
|
use base::constraint::{AreMultipliable, ShapeConstraint};
|
||||||
use base::storage::Storage;
|
use base::storage::Storage;
|
||||||
@ -118,6 +119,19 @@ md_impl_all!(
|
|||||||
[ref ref] => self.matrix() * right;
|
[ref ref] => self.matrix() * right;
|
||||||
);
|
);
|
||||||
|
|
||||||
|
// Rotation × Unit<Vector>
|
||||||
|
md_impl_all!(
|
||||||
|
Mul, mul;
|
||||||
|
(D, D), (D, U1) for D: DimName, S: Storage<N, D>
|
||||||
|
where DefaultAllocator: Allocator<N, D>
|
||||||
|
where ShapeConstraint: AreMultipliable<D, D, D, U1>;
|
||||||
|
self: Rotation<N, D>, right: Unit<Vector<N, D, S>>, Output = Unit<VectorN<N, D>>;
|
||||||
|
[val val] => Unit::new_unchecked(self.unwrap() * right.unwrap());
|
||||||
|
[ref val] => Unit::new_unchecked(self.matrix() * right.unwrap());
|
||||||
|
[val ref] => Unit::new_unchecked(self.unwrap() * right.as_ref());
|
||||||
|
[ref ref] => Unit::new_unchecked(self.matrix() * right.as_ref());
|
||||||
|
);
|
||||||
|
|
||||||
// Rotation ×= Rotation
|
// Rotation ×= Rotation
|
||||||
// FIXME: try not to call `inverse()` explicitly.
|
// FIXME: try not to call `inverse()` explicitly.
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user