mirror of
https://github.com/g-truc/glm.git
synced 2024-11-22 17:04:35 +00:00
Clean up GLM_FORCE_NO_CTOR_INIT and fixed tests
This commit is contained in:
parent
f2cb4a3fdf
commit
c933f6e591
@ -342,23 +342,14 @@ namespace detail
|
||||
# if !GLM_HAS_DEFAULTED_FUNCTIONS
|
||||
template<>
|
||||
GLM_FUNC_QUALIFIER GLM_CONSTEXPR_SIMD vec<4, float, aligned_lowp>::vec()
|
||||
# ifndef GLM_FORCE_NO_CTOR_INIT
|
||||
: data(_mm_setzero_ps())
|
||||
# endif
|
||||
{}
|
||||
|
||||
template<>
|
||||
GLM_FUNC_QUALIFIER GLM_CONSTEXPR_SIMD vec<4, float, aligned_mediump>::vec()
|
||||
# ifndef GLM_FORCE_NO_CTOR_INIT
|
||||
: data(_mm_setzero_ps())
|
||||
# endif
|
||||
{}
|
||||
|
||||
template<>
|
||||
GLM_FUNC_QUALIFIER GLM_CONSTEXPR_SIMD vec<4, float, aligned_highp>::vec()
|
||||
# ifndef GLM_FORCE_NO_CTOR_INIT
|
||||
: data(_mm_setzero_ps())
|
||||
# endif
|
||||
{}
|
||||
# endif//!GLM_HAS_DEFAULTED_FUNCTIONS
|
||||
|
||||
|
@ -133,6 +133,12 @@ namespace glm
|
||||
template<typename T, precision P>
|
||||
GLM_FUNC_DECL bool operator!=(tdualquat<T, P> const & q1, tdualquat<T, P> const & q2);
|
||||
|
||||
/// Creates an identity dual quaternion.
|
||||
///
|
||||
/// @see gtx_dual_quaternion
|
||||
template <typename T, precision P>
|
||||
GLM_FUNC_DECL tdualquat<T, P> dual_quat_identity();
|
||||
|
||||
/// Returns the normalized quaternion.
|
||||
///
|
||||
/// @see gtx_dual_quaternion
|
||||
|
@ -218,6 +218,14 @@ namespace glm
|
||||
|
||||
// -- Operations --
|
||||
|
||||
template<typename T, precision P>
|
||||
GLM_FUNC_QUALIFIER tdualquat<T, P> dual_quat_identity()
|
||||
{
|
||||
return tdualquat<T, P>(
|
||||
tquat<T, P>(static_cast<T>(1), static_cast<T>(0), static_cast<T>(0), static_cast<T>(0)),
|
||||
tquat<T, P>(static_cast<T>(0), static_cast<T>(0), static_cast<T>(0), static_cast<T>(0)));
|
||||
}
|
||||
|
||||
template<typename T, precision P>
|
||||
GLM_FUNC_QUALIFIER tdualquat<T, P> normalize(tdualquat<T, P> const & q)
|
||||
{
|
||||
|
@ -32,6 +32,12 @@ namespace glm
|
||||
/// @addtogroup gtx_quaternion
|
||||
/// @{
|
||||
|
||||
/// Create an identity quaternion.
|
||||
///
|
||||
/// @see gtx_quaternion
|
||||
template<typename T, precision P>
|
||||
GLM_FUNC_DECL tquat<T, P> quat_identity();
|
||||
|
||||
/// Compute a cross product between a quaternion and a vector.
|
||||
///
|
||||
/// @see gtx_quaternion
|
||||
|
@ -6,6 +6,12 @@
|
||||
|
||||
namespace glm
|
||||
{
|
||||
template<typename T, precision P>
|
||||
GLM_FUNC_QUALIFIER tquat<T, P> quat_identity()
|
||||
{
|
||||
return tquat<T, P>(static_cast<T>(1), static_cast<T>(0), static_cast<T>(0), static_cast<T>(0));
|
||||
}
|
||||
|
||||
template<typename T, precision P>
|
||||
GLM_FUNC_QUALIFIER vec<3, T, P> cross(vec<3, T, P> const& v, tquat<T, P> const& q)
|
||||
{
|
||||
|
@ -101,6 +101,7 @@ glm::mat4 camera(float Translate, glm::vec2 const & Rotate)
|
||||
- Removed GLM_MESSAGES, use GLM_FORCE_MESSAGES instead
|
||||
- Removed GLM_DEPTH_ZERO_TO_ONE, use GLM_FORCE_DEPTH_ZERO_TO_ONE instead
|
||||
- Removed GLM_LEFT_HANDED, use GLM_FORCE_LEFT_HANDED instead
|
||||
- Removed GLM_FORCE_NO_CTOR_INIT
|
||||
|
||||
---
|
||||
### [GLM 0.9.8.5](https://github.com/g-truc/glm/tree/0.9.8) - 2017-0X-XX
|
||||
|
@ -1,4 +1,3 @@
|
||||
#define GLM_FORCE_NO_CTOR_INIT
|
||||
#include <glm/glm.hpp>
|
||||
#include <glm/gtc/vec1.hpp>
|
||||
#include <glm/gtc/quaternion.hpp>
|
||||
@ -76,14 +75,6 @@ int test_vec4_ctor()
|
||||
{
|
||||
int Error = 0;
|
||||
|
||||
# ifndef GLM_FORCE_NO_CTOR_INIT
|
||||
{
|
||||
glm::vec4 A;
|
||||
glm::vec4 B(0);
|
||||
Error += glm::all(glm::equal(A, B)) ? 0 : 1;
|
||||
}
|
||||
# endif//GLM_FORCE_NO_CTOR_INIT
|
||||
|
||||
# if GLM_HAS_DEFAULTED_FUNCTIONS
|
||||
{
|
||||
union pack
|
||||
@ -316,7 +307,7 @@ int test_quat_ctor()
|
||||
{
|
||||
int Error = 0;
|
||||
|
||||
# if GLM_HAS_DEFAULTED_FUNCTIONS && defined(GLM_FORCE_NO_CTOR_INIT)
|
||||
# if GLM_HAS_DEFAULTED_FUNCTIONS
|
||||
{
|
||||
union pack
|
||||
{
|
||||
|
@ -135,7 +135,7 @@ int test_quat_slerp()
|
||||
float const Epsilon = 0.0001f;//glm::epsilon<float>();
|
||||
|
||||
float sqrt2 = sqrt(2.0f)/2.0f;
|
||||
glm::quat id;
|
||||
glm::quat id(static_cast<float>(1), static_cast<float>(0), static_cast<float>(0), static_cast<float>(0));
|
||||
glm::quat Y90rot(sqrt2, 0.0f, sqrt2, 0.0f);
|
||||
glm::quat Y180rot(0.0f, 0.0f, 1.0f, 0.0f);
|
||||
|
||||
@ -211,16 +211,12 @@ int test_quat_mul()
|
||||
glm::quat temp5 = glm::normalize(temp1 * temp2);
|
||||
glm::vec3 temp6 = temp5 * glm::vec3(0.0, 1.0, 0.0) * glm::inverse(temp5);
|
||||
|
||||
# ifndef GLM_FORCE_NO_CTOR_INIT
|
||||
{
|
||||
glm::quat temp7;
|
||||
glm::quat temp7(1.0f, glm::vec3(0.0, 1.0, 0.0));
|
||||
|
||||
temp7 *= temp5;
|
||||
temp7 *= glm::inverse(temp5);
|
||||
|
||||
Error += temp7 != glm::quat();
|
||||
}
|
||||
# endif
|
||||
Error += temp7 != glm::quat(1.0f, glm::vec3(0.0, 1.0, 0.0));
|
||||
|
||||
return Error;
|
||||
}
|
||||
|
@ -67,7 +67,7 @@ int test_inverse()
|
||||
|
||||
float const Epsilon = 0.0001f;
|
||||
|
||||
glm::dualquat dqid;
|
||||
glm::dualquat dqid = glm::dual_quat_identity<float, glm::defaultp>();
|
||||
glm::mat4x4 mid(1.0f);
|
||||
|
||||
for (int j = 0; j < 100; ++j)
|
||||
|
Loading…
Reference in New Issue
Block a user