Added RotationMatrix for Float3x3
This commit is contained in:
parent
0c4f70e400
commit
abdb820b09
|
@ -451,6 +451,17 @@ namespace LinearAlgebra3D
|
|||
}
|
||||
}
|
||||
|
||||
template<typename ScalarType>
|
||||
inline ::LinearAlgebra::Matrix3x3<ScalarType> & RotationMatrix( const ::LinearAlgebra::Quaternion<ScalarType> &rotationQuaternion, ::LinearAlgebra::Matrix3x3<ScalarType> &targetMem = ::LinearAlgebra::Matrix3x3<ScalarType>() )
|
||||
{
|
||||
::LinearAlgebra::Quaternion<ScalarType> conjugate = rotationQuaternion.GetConjugate();
|
||||
|
||||
targetMem.v[0] = (rotationQuaternion * ::LinearAlgebra::Vector3<ScalarType>(1,0,0) * conjugate).imaginary;
|
||||
targetMem.v[1] = (rotationQuaternion * ::LinearAlgebra::Vector3<ScalarType>(0,1,0) * conjugate).imaginary;
|
||||
targetMem.v[2] = (rotationQuaternion * ::LinearAlgebra::Vector3<ScalarType>(0,0,1) * conjugate).imaginary;
|
||||
return targetMem;
|
||||
}
|
||||
|
||||
template<typename ScalarType>
|
||||
inline ::LinearAlgebra::Matrix4x4<ScalarType> & RotationMatrix( const ::LinearAlgebra::Quaternion<ScalarType> &rotationQuaternion, ::LinearAlgebra::Matrix4x4<ScalarType> &targetMem = ::LinearAlgebra::Matrix4x4<ScalarType>() )
|
||||
{
|
||||
|
|
|
@ -121,6 +121,11 @@ namespace Oyster { namespace Math3D
|
|||
return ::LinearAlgebra3D::Rotation( angularAxis );
|
||||
}
|
||||
|
||||
Float3x3 & RotationMatrix( const Quaternion &rotationQuaternion, Float3x3 &targetMem )
|
||||
{
|
||||
return ::LinearAlgebra3D::RotationMatrix( rotationQuaternion, targetMem );
|
||||
}
|
||||
|
||||
Float4x4 & RotationMatrix( const Quaternion &rotationQuaternion, Float4x4 &targetMem )
|
||||
{
|
||||
return ::LinearAlgebra3D::RotationMatrix( rotationQuaternion, targetMem );
|
||||
|
|
|
@ -164,6 +164,9 @@ namespace Oyster { namespace Math3D //! Oyster's native math library specialized
|
|||
/** @todo TODO: add doc */
|
||||
Quaternion Rotation( const Float4 &angularAxis );
|
||||
|
||||
/** @todo TODO: add doc */
|
||||
Float3x3 & RotationMatrix( const Quaternion &rotationQuaternion, Float3x3 &targetMem = Float3x3() );
|
||||
|
||||
/** @todo TODO: add doc */
|
||||
Float4x4 & RotationMatrix( const Quaternion &rotationQuaternion, Float4x4 &targetMem = Float4x4() );
|
||||
|
||||
|
|
Loading…
Reference in New Issue