|
|
@ -175,7 +175,8 @@ namespace glm |
|
|
|
mat<3, 3, T, Q> Result; |
|
|
|
mat<3, 3, T, Q> Result; |
|
|
|
|
|
|
|
|
|
|
|
Result[2] = -direction; |
|
|
|
Result[2] = -direction; |
|
|
|
Result[0] = normalize(cross(up, Result[2])); |
|
|
|
vec<3, T, Q> const& Right = cross(up, Result[2]); |
|
|
|
|
|
|
|
Result[0] = Right * inversesqrt(max(static_cast<T>(0.00001), dot(Right, Right))); |
|
|
|
Result[1] = cross(Result[2], Result[0]); |
|
|
|
Result[1] = cross(Result[2], Result[0]); |
|
|
|
|
|
|
|
|
|
|
|
return quat_cast(Result); |
|
|
|
return quat_cast(Result); |
|
|
@ -187,7 +188,8 @@ namespace glm |
|
|
|
mat<3, 3, T, Q> Result; |
|
|
|
mat<3, 3, T, Q> Result; |
|
|
|
|
|
|
|
|
|
|
|
Result[2] = direction; |
|
|
|
Result[2] = direction; |
|
|
|
Result[0] = normalize(cross(up, Result[2])); |
|
|
|
vec<3, T, Q> const& Right = cross(up, Result[2]); |
|
|
|
|
|
|
|
Result[0] = Right * inversesqrt(max(static_cast<T>(0.00001), dot(Right, Right))); |
|
|
|
Result[1] = cross(Result[2], Result[0]); |
|
|
|
Result[1] = cross(Result[2], Result[0]); |
|
|
|
|
|
|
|
|
|
|
|
return quat_cast(Result); |
|
|
|
return quat_cast(Result); |
|
|
|