Example #1
0
Matrix Matrix4::getAffineMat() const {
	Matrix result;

	extract3x3Matrix(result.axis);
	result.origin = m[3].xyz();

	return result;
}
Example #2
0
void Matrix4::decomposition(Vector3& position, Vector3& scale, Quaternion& orientation) const
{
	Matrix3 matQ;
	Vector3 vecU;
	extract3x3Matrix().QDUDecomposition( matQ, scale, vecU ); 

	orientation = Quaternion(matQ);
	position = Vector3(m[0][3], m[1][3], m[2][3]);
}
Example #3
0
void Matrix4::decomposition(Vector3& position, Vector3& scale, Quaternion& orientation) const
{
    assert(isAffine());

    Matrix3 m3x3;
    extract3x3Matrix(m3x3);

    Matrix3 matQ;
    Vector3 vecU;
    m3x3.QDUDecomposition(matQ, scale, vecU);

    orientation = Quaternion(matQ);
    position = Vector3(m[0][3], m[1][3], m[2][3]);
}
Example #4
0
//-----------------------------------------------------------------------
void DiMat4::decomposition(DiVec3& position, DiVec3& scale, DiQuat& orientation) const
{
    DI_ASSERT(isAffine());

    DiMat3 m3x3;
    extract3x3Matrix(m3x3);

    DiMat3 matQ;
    DiVec3 vecU;
    m3x3.QDUDecomposition( matQ, scale, vecU ); 

    orientation = DiQuat( matQ );
    position = DiVec3( m[0][3], m[1][3], m[2][3] );
}