Fix clang -Wdouble-promotion issues
This commit is contained in:
+18
-11
@@ -111,21 +111,28 @@ inline vr::HmdQuaternion_t getQuaternion( vr::HmdMatrix34_t matrix )
|
|||||||
{
|
{
|
||||||
vr::HmdQuaternion_t q;
|
vr::HmdQuaternion_t q;
|
||||||
|
|
||||||
q.w = sqrt(
|
q.w = sqrt( fmax( 0,
|
||||||
fmax( 0, 1 + matrix.m[0][0] + matrix.m[1][1] + matrix.m[2][2] ) )
|
static_cast<float>( 1 + matrix.m[0][0] + matrix.m[1][1]
|
||||||
|
+ matrix.m[2][2] ) ) )
|
||||||
/ 2;
|
/ 2;
|
||||||
q.x = sqrt(
|
q.x = sqrt( fmax( 0,
|
||||||
fmax( 0, 1 + matrix.m[0][0] - matrix.m[1][1] - matrix.m[2][2] ) )
|
static_cast<float>( 1 + matrix.m[0][0] - matrix.m[1][1]
|
||||||
|
- matrix.m[2][2] ) ) )
|
||||||
/ 2;
|
/ 2;
|
||||||
q.y = sqrt(
|
q.y = sqrt( fmax( 0,
|
||||||
fmax( 0, 1 - matrix.m[0][0] + matrix.m[1][1] - matrix.m[2][2] ) )
|
static_cast<float>( 1 - matrix.m[0][0] + matrix.m[1][1]
|
||||||
|
- matrix.m[2][2] ) ) )
|
||||||
/ 2;
|
/ 2;
|
||||||
q.z = sqrt(
|
q.z = sqrt( fmax( 0,
|
||||||
fmax( 0, 1 - matrix.m[0][0] - matrix.m[1][1] + matrix.m[2][2] ) )
|
static_cast<float>( 1 - matrix.m[0][0] - matrix.m[1][1]
|
||||||
|
+ matrix.m[2][2] ) ) )
|
||||||
/ 2;
|
/ 2;
|
||||||
q.x = copysign( q.x, matrix.m[2][1] - matrix.m[1][2] );
|
q.x = copysign( q.x,
|
||||||
q.y = copysign( q.y, matrix.m[0][2] - matrix.m[2][0] );
|
static_cast<float>( matrix.m[2][1] - matrix.m[1][2] ) );
|
||||||
q.z = copysign( q.z, matrix.m[1][0] - matrix.m[0][1] );
|
q.y = copysign( q.y,
|
||||||
|
static_cast<float>( matrix.m[0][2] - matrix.m[2][0] ) );
|
||||||
|
q.z = copysign( q.z,
|
||||||
|
static_cast<float>( matrix.m[1][0] - matrix.m[0][1] ) );
|
||||||
return q;
|
return q;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user