Added signOrZero template method, and to Matrix_implementation.cpp usage of this

method in the get(Quat&) code.
This commit is contained in:
Robert Osfield
2007-05-09 09:26:33 +00:00
parent 681bf12333
commit 6c74589014
3 changed files with 19 additions and 3 deletions

View File

@@ -138,9 +138,9 @@ Quat Matrix_implementation::getRotate() const
QY = 0.5 * sqrt( osg::maximum( 0.0, 1.0 - _mat[0][0] + _mat[1][1] - _mat[2][2] ) );
QZ = 0.5 * sqrt( osg::maximum( 0.0, 1.0 - _mat[0][0] - _mat[1][1] + _mat[2][2] ) );
QX = QX * osg::sign( _mat[1][2] - _mat[2][1]) ;
QY = QY * osg::sign( _mat[2][0] - _mat[0][2]) ;
QZ = QZ * osg::sign( _mat[0][1] - _mat[1][0]) ;
QX = QX * osg::signOrZero( _mat[1][2] - _mat[2][1]) ;
QY = QY * osg::signOrZero( _mat[2][0] - _mat[0][2]) ;
QZ = QZ * osg::signOrZero( _mat[0][1] - _mat[1][0]) ;
return q;
}