mirror of
https://github.com/g-truc/glm.git
synced 2024-11-22 08:54:35 +00:00
Fix and ignore warnings
This commit is contained in:
parent
7f2a5b89b3
commit
9e72e5ae67
@ -99,7 +99,7 @@ namespace glm {
|
|||||||
GLM_FUNC_QUALIFIER GLM_CONSTEXPR static vec<L, T, Q> call(vec<L, T, Q> const& a, vec<L, T, Q> const& b)
|
GLM_FUNC_QUALIFIER GLM_CONSTEXPR static vec<L, T, Q> call(vec<L, T, Q> const& a, vec<L, T, Q> const& b)
|
||||||
{
|
{
|
||||||
vec<L, T, Q> v(a);
|
vec<L, T, Q> v(a);
|
||||||
for (int i = 0; i < L; ++i)
|
for (length_t i = 0; i < L; ++i)
|
||||||
v[i] &= static_cast<T>(b[i]);
|
v[i] &= static_cast<T>(b[i]);
|
||||||
return v;
|
return v;
|
||||||
}
|
}
|
||||||
@ -111,7 +111,7 @@ namespace glm {
|
|||||||
GLM_FUNC_QUALIFIER GLM_CONSTEXPR static vec<L, T, Q> call(vec<L, T, Q> const& a, vec<L, T, Q> const& b)
|
GLM_FUNC_QUALIFIER GLM_CONSTEXPR static vec<L, T, Q> call(vec<L, T, Q> const& a, vec<L, T, Q> const& b)
|
||||||
{
|
{
|
||||||
vec<L, T, Q> v(a);
|
vec<L, T, Q> v(a);
|
||||||
for (int i = 0; i < L; ++i)
|
for (length_t i = 0; i < L; ++i)
|
||||||
v[i] |= static_cast<T>(b[i]);
|
v[i] |= static_cast<T>(b[i]);
|
||||||
return v;
|
return v;
|
||||||
}
|
}
|
||||||
@ -123,7 +123,7 @@ namespace glm {
|
|||||||
GLM_FUNC_QUALIFIER GLM_CONSTEXPR static vec<L, T, Q> call(vec<L, T, Q> const& a, vec<L, T, Q> const& b)
|
GLM_FUNC_QUALIFIER GLM_CONSTEXPR static vec<L, T, Q> call(vec<L, T, Q> const& a, vec<L, T, Q> const& b)
|
||||||
{
|
{
|
||||||
vec<L, T, Q> v(a);
|
vec<L, T, Q> v(a);
|
||||||
for (int i = 0; i < L; ++i)
|
for (length_t i = 0; i < L; ++i)
|
||||||
v[i] ^= static_cast<T>(b[i]);
|
v[i] ^= static_cast<T>(b[i]);
|
||||||
return v;
|
return v;
|
||||||
}
|
}
|
||||||
@ -135,7 +135,7 @@ namespace glm {
|
|||||||
GLM_FUNC_QUALIFIER GLM_CONSTEXPR static vec<L, T, Q> call(vec<L, T, Q> const& a, vec<L, T, Q> const& b)
|
GLM_FUNC_QUALIFIER GLM_CONSTEXPR static vec<L, T, Q> call(vec<L, T, Q> const& a, vec<L, T, Q> const& b)
|
||||||
{
|
{
|
||||||
vec<L, T, Q> v(a);
|
vec<L, T, Q> v(a);
|
||||||
for (int i = 0; i < L; ++i)
|
for (length_t i = 0; i < L; ++i)
|
||||||
v[i] <<= static_cast<T>(b[i]);
|
v[i] <<= static_cast<T>(b[i]);
|
||||||
return v;
|
return v;
|
||||||
}
|
}
|
||||||
@ -147,7 +147,7 @@ namespace glm {
|
|||||||
GLM_FUNC_QUALIFIER GLM_CONSTEXPR static vec<L, T, Q> call(vec<L, T, Q> const& a, vec<L, T, Q> const& b)
|
GLM_FUNC_QUALIFIER GLM_CONSTEXPR static vec<L, T, Q> call(vec<L, T, Q> const& a, vec<L, T, Q> const& b)
|
||||||
{
|
{
|
||||||
vec<L, T, Q> v(a);
|
vec<L, T, Q> v(a);
|
||||||
for (int i = 0; i < L; ++i)
|
for (length_t i = 0; i < L; ++i)
|
||||||
v[i] >>= static_cast<T>(b[i]);
|
v[i] >>= static_cast<T>(b[i]);
|
||||||
return v;
|
return v;
|
||||||
}
|
}
|
||||||
@ -159,7 +159,7 @@ namespace glm {
|
|||||||
GLM_FUNC_QUALIFIER GLM_CONSTEXPR static bool call(vec<L, T, Q> const& v1, vec<L, T, Q> const& v2)
|
GLM_FUNC_QUALIFIER GLM_CONSTEXPR static bool call(vec<L, T, Q> const& v1, vec<L, T, Q> const& v2)
|
||||||
{
|
{
|
||||||
bool b = true;
|
bool b = true;
|
||||||
for (int i = 0; i < L; ++i)
|
for (length_t i = 0; i < L; ++i)
|
||||||
b = b && detail::compute_equal<T, std::numeric_limits<T>::is_iec559>::call(v1.x, v2.x);
|
b = b && detail::compute_equal<T, std::numeric_limits<T>::is_iec559>::call(v1.x, v2.x);
|
||||||
return b;
|
return b;
|
||||||
}
|
}
|
||||||
@ -180,7 +180,7 @@ namespace glm {
|
|||||||
GLM_FUNC_QUALIFIER GLM_CONSTEXPR static vec<L, T, Q> call(vec<L, T, Q> const& a)
|
GLM_FUNC_QUALIFIER GLM_CONSTEXPR static vec<L, T, Q> call(vec<L, T, Q> const& a)
|
||||||
{
|
{
|
||||||
vec<L, T, Q> v(a);
|
vec<L, T, Q> v(a);
|
||||||
for (int i = 0; i < L; ++i)
|
for (length_t i = 0; i < L; ++i)
|
||||||
v[i] = ~v[i];
|
v[i] = ~v[i];
|
||||||
return v;
|
return v;
|
||||||
}
|
}
|
||||||
|
@ -37,6 +37,7 @@ namespace glm
|
|||||||
# pragma clang diagnostic push
|
# pragma clang diagnostic push
|
||||||
# pragma clang diagnostic ignored "-Wgnu-anonymous-struct"
|
# pragma clang diagnostic ignored "-Wgnu-anonymous-struct"
|
||||||
# pragma clang diagnostic ignored "-Wnested-anon-types"
|
# pragma clang diagnostic ignored "-Wnested-anon-types"
|
||||||
|
# pragma clang diagnostic ignored "-Wpadded"
|
||||||
# elif GLM_COMPILER & GLM_COMPILER_VC
|
# elif GLM_COMPILER & GLM_COMPILER_VC
|
||||||
# pragma warning(push)
|
# pragma warning(push)
|
||||||
# pragma warning(disable: 4201) // nonstandard extension used : nameless struct/union
|
# pragma warning(disable: 4201) // nonstandard extension used : nameless struct/union
|
||||||
|
@ -361,13 +361,8 @@ namespace detail
|
|||||||
template<typename T, qualifier Q>
|
template<typename T, qualifier Q>
|
||||||
GLM_FUNC_QUALIFIER GLM_CONSTEXPR T& vec<4, T, Q>::operator[](typename vec<4, T, Q>::length_type i)
|
GLM_FUNC_QUALIFIER GLM_CONSTEXPR T& vec<4, T, Q>::operator[](typename vec<4, T, Q>::length_type i)
|
||||||
{
|
{
|
||||||
<<<<<<< HEAD
|
|
||||||
GLM_ASSERT_LENGTH(i, this->length());
|
GLM_ASSERT_LENGTH(i, this->length());
|
||||||
switch(i)
|
switch(i)
|
||||||
=======
|
|
||||||
assert(i >= 0 && i < this->length());
|
|
||||||
switch (i)
|
|
||||||
>>>>>>> 5c1da05b (Simd improvement)
|
|
||||||
{
|
{
|
||||||
default:
|
default:
|
||||||
case 0:
|
case 0:
|
||||||
@ -384,13 +379,8 @@ namespace detail
|
|||||||
template<typename T, qualifier Q>
|
template<typename T, qualifier Q>
|
||||||
GLM_FUNC_QUALIFIER GLM_CONSTEXPR T const& vec<4, T, Q>::operator[](typename vec<4, T, Q>::length_type i) const
|
GLM_FUNC_QUALIFIER GLM_CONSTEXPR T const& vec<4, T, Q>::operator[](typename vec<4, T, Q>::length_type i) const
|
||||||
{
|
{
|
||||||
<<<<<<< HEAD
|
|
||||||
GLM_ASSERT_LENGTH(i, this->length());
|
GLM_ASSERT_LENGTH(i, this->length());
|
||||||
switch(i)
|
switch(i)
|
||||||
=======
|
|
||||||
assert(i >= 0 && i < this->length());
|
|
||||||
switch (i)
|
|
||||||
>>>>>>> 5c1da05b (Simd improvement)
|
|
||||||
{
|
{
|
||||||
default:
|
default:
|
||||||
case 0:
|
case 0:
|
||||||
|
@ -2,122 +2,6 @@ option(GLM_QUIET "No CMake Message" OFF)
|
|||||||
|
|
||||||
option(GLM_TEST_ENABLE "Build unit tests" ON)
|
option(GLM_TEST_ENABLE "Build unit tests" ON)
|
||||||
option(GLM_PERF_TEST_ENABLE "Build perf tests" OFF)
|
option(GLM_PERF_TEST_ENABLE "Build perf tests" OFF)
|
||||||
<<<<<<< HEAD
|
|
||||||
=======
|
|
||||||
option(GLM_TEST_ENABLE_SIMD_SSE2 "Enable SSE2 optimizations" OFF)
|
|
||||||
option(GLM_TEST_ENABLE_SIMD_SSE3 "Enable SSE3 optimizations" OFF)
|
|
||||||
option(GLM_TEST_ENABLE_SIMD_SSSE3 "Enable SSSE3 optimizations" OFF)
|
|
||||||
option(GLM_TEST_ENABLE_SIMD_SSE4_1 "Enable SSE 4.1 optimizations" OFF)
|
|
||||||
option(GLM_TEST_ENABLE_SIMD_SSE4_2 "Enable SSE 4.2 optimizations" OFF)
|
|
||||||
option(GLM_TEST_ENABLE_SIMD_AVX "Enable AVX optimizations" OFF)
|
|
||||||
option(GLM_TEST_ENABLE_SIMD_AVX2 "Enable AVX2 optimizations" OFF)
|
|
||||||
option(GLM_TEST_ENABLE_SIMD_NEON "Enable ARM NEON optimizations" OFF)
|
|
||||||
option(GLM_TEST_ENABLE_SIMD_FMA "Enable FMA optimizations" OFF)
|
|
||||||
option(GLM_TEST_FORCE_PURE "Force 'pure' instructions" OFF)
|
|
||||||
|
|
||||||
if(GLM_TEST_FORCE_PURE)
|
|
||||||
add_definitions(-DGLM_FORCE_PURE)
|
|
||||||
|
|
||||||
if(CMAKE_CXX_COMPILER_ID MATCHES "GNU")
|
|
||||||
add_compile_options(-mfpmath=387)
|
|
||||||
endif()
|
|
||||||
message(STATUS "GLM: No SIMD instruction set")
|
|
||||||
|
|
||||||
elseif(GLM_TEST_ENABLE_SIMD_AVX2)
|
|
||||||
add_definitions(-DGLM_FORCE_INTRINSICS)
|
|
||||||
|
|
||||||
if((CMAKE_CXX_COMPILER_ID MATCHES "GNU") OR (CMAKE_CXX_COMPILER_ID MATCHES "Clang"))
|
|
||||||
add_compile_options(-mavx2)
|
|
||||||
elseif(CMAKE_CXX_COMPILER_ID MATCHES "Intel")
|
|
||||||
add_compile_options(/QxAVX2)
|
|
||||||
elseif(CMAKE_CXX_COMPILER_ID MATCHES "MSVC")
|
|
||||||
add_compile_options(/arch:AVX2)
|
|
||||||
endif()
|
|
||||||
message(STATUS "GLM: AVX2 instruction set")
|
|
||||||
|
|
||||||
elseif(GLM_TEST_ENABLE_SIMD_AVX)
|
|
||||||
add_definitions(-DGLM_FORCE_INTRINSICS)
|
|
||||||
|
|
||||||
if((CMAKE_CXX_COMPILER_ID MATCHES "GNU") OR (CMAKE_CXX_COMPILER_ID MATCHES "Clang"))
|
|
||||||
add_compile_options(-mavx)
|
|
||||||
elseif(CMAKE_CXX_COMPILER_ID MATCHES "Intel")
|
|
||||||
add_compile_options(/QxAVX)
|
|
||||||
elseif(CMAKE_CXX_COMPILER_ID MATCHES "MSVC")
|
|
||||||
add_compile_options(/arch:AVX)
|
|
||||||
endif()
|
|
||||||
message(STATUS "GLM: AVX instruction set")
|
|
||||||
|
|
||||||
elseif(GLM_TEST_ENABLE_SIMD_SSE4_2)
|
|
||||||
add_definitions(-DGLM_FORCE_INTRINSICS)
|
|
||||||
|
|
||||||
if((CMAKE_CXX_COMPILER_ID MATCHES "GNU") OR (CMAKE_CXX_COMPILER_ID MATCHES "Clang"))
|
|
||||||
add_compile_options(-msse4.2)
|
|
||||||
elseif(CMAKE_CXX_COMPILER_ID MATCHES "Intel")
|
|
||||||
add_compile_options(/QxSSE4.2)
|
|
||||||
elseif((CMAKE_CXX_COMPILER_ID MATCHES "MSVC") AND NOT CMAKE_CL_64)
|
|
||||||
add_compile_options(/arch:SSE2) # VC doesn't support SSE4.2
|
|
||||||
endif()
|
|
||||||
message(STATUS "GLM: SSE4.2 instruction set")
|
|
||||||
|
|
||||||
elseif(GLM_TEST_ENABLE_SIMD_SSE4_1)
|
|
||||||
add_definitions(-DGLM_FORCE_INTRINSICS)
|
|
||||||
|
|
||||||
if((CMAKE_CXX_COMPILER_ID MATCHES "GNU") OR (CMAKE_CXX_COMPILER_ID MATCHES "Clang"))
|
|
||||||
add_compile_options(-msse4.1)
|
|
||||||
elseif(CMAKE_CXX_COMPILER_ID MATCHES "Intel")
|
|
||||||
add_compile_options(/QxSSE4.1)
|
|
||||||
elseif((CMAKE_CXX_COMPILER_ID MATCHES "MSVC") AND NOT CMAKE_CL_64)
|
|
||||||
add_compile_options(/arch:SSE2) # VC doesn't support SSE4.1
|
|
||||||
endif()
|
|
||||||
message(STATUS "GLM: SSE4.1 instruction set")
|
|
||||||
|
|
||||||
elseif(GLM_TEST_ENABLE_SIMD_SSSE3)
|
|
||||||
add_definitions(-DGLM_FORCE_INTRINSICS)
|
|
||||||
|
|
||||||
if((CMAKE_CXX_COMPILER_ID MATCHES "GNU") OR (CMAKE_CXX_COMPILER_ID MATCHES "Clang"))
|
|
||||||
add_compile_options(-mssse3)
|
|
||||||
elseif(CMAKE_CXX_COMPILER_ID MATCHES "Intel")
|
|
||||||
add_compile_options(/QxSSSE3)
|
|
||||||
elseif((CMAKE_CXX_COMPILER_ID MATCHES "MSVC") AND NOT CMAKE_CL_64)
|
|
||||||
add_compile_options(/arch:SSE2) # VC doesn't support SSSE3
|
|
||||||
endif()
|
|
||||||
message(STATUS "GLM: SSSE3 instruction set")
|
|
||||||
|
|
||||||
elseif(GLM_TEST_ENABLE_SIMD_SSE3)
|
|
||||||
add_definitions(-DGLM_FORCE_INTRINSICS)
|
|
||||||
|
|
||||||
if((CMAKE_CXX_COMPILER_ID MATCHES "GNU") OR (CMAKE_CXX_COMPILER_ID MATCHES "Clang"))
|
|
||||||
add_compile_options(-msse3)
|
|
||||||
elseif(CMAKE_CXX_COMPILER_ID MATCHES "Intel")
|
|
||||||
add_compile_options(/QxSSE3)
|
|
||||||
elseif((CMAKE_CXX_COMPILER_ID MATCHES "MSVC") AND NOT CMAKE_CL_64)
|
|
||||||
add_compile_options(/arch:SSE2) # VC doesn't support SSE3
|
|
||||||
endif()
|
|
||||||
message(STATUS "GLM: SSE3 instruction set")
|
|
||||||
|
|
||||||
elseif(GLM_TEST_ENABLE_SIMD_SSE2)
|
|
||||||
add_definitions(-DGLM_FORCE_INTRINSICS)
|
|
||||||
|
|
||||||
if((CMAKE_CXX_COMPILER_ID MATCHES "GNU") OR (CMAKE_CXX_COMPILER_ID MATCHES "Clang"))
|
|
||||||
add_compile_options(-msse2)
|
|
||||||
elseif(CMAKE_CXX_COMPILER_ID MATCHES "Intel")
|
|
||||||
add_compile_options(/QxSSE2)
|
|
||||||
elseif((CMAKE_CXX_COMPILER_ID MATCHES "MSVC") AND NOT CMAKE_CL_64)
|
|
||||||
add_compile_options(/arch:SSE2)
|
|
||||||
endif()
|
|
||||||
message(STATUS "GLM: SSE2 instruction set")
|
|
||||||
elseif(GLM_TEST_ENABLE_SIMD_NEON)
|
|
||||||
add_definitions(-DGLM_FORCE_NEON)
|
|
||||||
message(STATUS "GLM: ARM NEON instruction set")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if (GLM_TEST_ENABLE_SIMD_FMA)
|
|
||||||
add_definitions(-DGLM_FORCE_FMA)
|
|
||||||
if((CMAKE_CXX_COMPILER_ID MATCHES "GNU") OR (CMAKE_CXX_COMPILER_ID MATCHES "Clang"))
|
|
||||||
add_compile_options(-mfma)
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
>>>>>>> 5c1da05b (Simd improvement)
|
|
||||||
|
|
||||||
# Compiler and default options
|
# Compiler and default options
|
||||||
|
|
||||||
@ -130,15 +14,6 @@ if(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
|
|||||||
if(NOT GLM_DISABLE_AUTO_DETECTION)
|
if(NOT GLM_DISABLE_AUTO_DETECTION)
|
||||||
add_compile_options(-Werror -Weverything)
|
add_compile_options(-Werror -Weverything)
|
||||||
endif()
|
endif()
|
||||||
<<<<<<< HEAD
|
|
||||||
=======
|
|
||||||
if (NOT APPLE)
|
|
||||||
add_compile_options(-Wno-unsafe-buffer-usage) #this option makes MacOS compilation fail but prevent error on windows
|
|
||||||
endif()
|
|
||||||
|
|
||||||
add_compile_options(-Wno-c++98-compat -Wno-c++98-compat-pedantic -Wno-c++11-long-long -Wno-padded -Wno-gnu-anonymous-struct -Wno-nested-anon-types)
|
|
||||||
add_compile_options(-Wno-undefined-reinterpret-cast -Wno-sign-conversion -Wno-unused-variable -Wno-missing-prototypes -Wno-unreachable-code -Wno-missing-variable-declarations -Wno-sign-compare -Wno-global-constructors -Wno-unused-macros -Wno-format-nonliteral -Wno-float-equal)
|
|
||||||
>>>>>>> 5c1da05b (Simd improvement)
|
|
||||||
|
|
||||||
elseif(CMAKE_CXX_COMPILER_ID MATCHES "GNU")
|
elseif(CMAKE_CXX_COMPILER_ID MATCHES "GNU")
|
||||||
if(NOT GLM_QUIET)
|
if(NOT GLM_QUIET)
|
||||||
|
@ -15,6 +15,7 @@
|
|||||||
#elif defined(_MSC_VER)
|
#elif defined(_MSC_VER)
|
||||||
# pragma warning(push)
|
# pragma warning(push)
|
||||||
# pragma warning(disable: 4201) // nonstandard extension used : nameless struct/union
|
# pragma warning(disable: 4201) // nonstandard extension used : nameless struct/union
|
||||||
|
# pragma warning(disable: 4324) // structure was padded due to alignment specifier
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include <glm/glm.hpp>
|
#include <glm/glm.hpp>
|
||||||
|
@ -3,6 +3,7 @@
|
|||||||
#if GLM_CONFIG_ALIGNED_GENTYPES == GLM_ENABLE
|
#if GLM_CONFIG_ALIGNED_GENTYPES == GLM_ENABLE
|
||||||
#include <glm/gtc/type_aligned.hpp>
|
#include <glm/gtc/type_aligned.hpp>
|
||||||
#include <glm/gtc/type_precision.hpp>
|
#include <glm/gtc/type_precision.hpp>
|
||||||
|
#include <glm/ext/scalar_relational.hpp>
|
||||||
#include <glm/ext/vector_relational.hpp>
|
#include <glm/ext/vector_relational.hpp>
|
||||||
#include <glm/ext/matrix_relational.hpp>
|
#include <glm/ext/matrix_relational.hpp>
|
||||||
|
|
||||||
@ -97,35 +98,35 @@ static int test_copy_vec4()
|
|||||||
{
|
{
|
||||||
glm::aligned_vec4 const u(1.f, 2.f, 3.f, 4.f);
|
glm::aligned_vec4 const u(1.f, 2.f, 3.f, 4.f);
|
||||||
glm::packed_vec4 const v(u);
|
glm::packed_vec4 const v(u);
|
||||||
Error += v.x == u.x ? 0 : 1;
|
Error += glm::equal(v.x, u.x, glm::epsilon<float>()) ? 0 : 1;
|
||||||
Error += v.y == u.y ? 0 : 1;
|
Error += glm::equal(v.y, u.y, glm::epsilon<float>()) ? 0 : 1;
|
||||||
Error += v.z == u.z ? 0 : 1;
|
Error += glm::equal(v.z, u.z, glm::epsilon<float>()) ? 0 : 1;
|
||||||
Error += v.w == u.w ? 0 : 1;
|
Error += glm::equal(v.w, u.w, glm::epsilon<float>()) ? 0 : 1;
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
glm::packed_vec4 const u(1.f, 2.f, 3.f, 4.f);
|
glm::packed_vec4 const u(1.f, 2.f, 3.f, 4.f);
|
||||||
glm::aligned_vec4 const v(u);
|
glm::aligned_vec4 const v(u);
|
||||||
Error += v.x == u.x ? 0 : 1;
|
Error += glm::equal(v.x, u.x, glm::epsilon<float>()) ? 0 : 1;
|
||||||
Error += v.y == u.y ? 0 : 1;
|
Error += glm::equal(v.y, u.y, glm::epsilon<float>()) ? 0 : 1;
|
||||||
Error += v.z == u.z ? 0 : 1;
|
Error += glm::equal(v.z, u.z, glm::epsilon<float>()) ? 0 : 1;
|
||||||
Error += v.w == u.w ? 0 : 1;
|
Error += glm::equal(v.w, u.w, glm::epsilon<float>()) ? 0 : 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
glm::aligned_dvec4 const u(1., 2., 3., 4.);
|
glm::aligned_dvec4 const u(1., 2., 3., 4.);
|
||||||
glm::packed_dvec4 const v(u);
|
glm::packed_dvec4 const v(u);
|
||||||
Error += v.x == u.x ? 0 : 1;
|
Error += glm::equal(v.x, u.x, glm::epsilon<double>()) ? 0 : 1;
|
||||||
Error += v.y == u.y ? 0 : 1;
|
Error += glm::equal(v.y, u.y, glm::epsilon<double>()) ? 0 : 1;
|
||||||
Error += v.z == u.z ? 0 : 1;
|
Error += glm::equal(v.z, u.z, glm::epsilon<double>()) ? 0 : 1;
|
||||||
Error += v.w == u.w ? 0 : 1;
|
Error += glm::equal(v.w, u.w, glm::epsilon<double>()) ? 0 : 1;
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
glm::packed_dvec4 const u(1.f, 2.f, 3.f, 4.f);
|
glm::packed_dvec4 const u(1.f, 2.f, 3.f, 4.f);
|
||||||
glm::aligned_dvec4 const v(u);
|
glm::aligned_dvec4 const v(u);
|
||||||
Error += v.x == u.x ? 0 : 1;
|
Error += glm::equal(v.x, u.x, glm::epsilon<double>()) ? 0 : 1;
|
||||||
Error += v.y == u.y ? 0 : 1;
|
Error += glm::equal(v.y, u.y, glm::epsilon<double>()) ? 0 : 1;
|
||||||
Error += v.z == u.z ? 0 : 1;
|
Error += glm::equal(v.z, u.z, glm::epsilon<double>()) ? 0 : 1;
|
||||||
Error += v.w == u.w ? 0 : 1;
|
Error += glm::equal(v.w, u.w, glm::epsilon<double>()) ? 0 : 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
@ -154,31 +155,31 @@ static int test_copy_vec3()
|
|||||||
{
|
{
|
||||||
glm::aligned_vec3 const u(1.f, 2.f, 3.f);
|
glm::aligned_vec3 const u(1.f, 2.f, 3.f);
|
||||||
glm::packed_vec3 const v(u);
|
glm::packed_vec3 const v(u);
|
||||||
Error += v.x == u.x ? 0 : 1;
|
Error += glm::equal(v.x, u.x, glm::epsilon<float>()) ? 0 : 1;
|
||||||
Error += v.y == u.y ? 0 : 1;
|
Error += glm::equal(v.y, u.y, glm::epsilon<float>()) ? 0 : 1;
|
||||||
Error += v.z == u.z ? 0 : 1;
|
Error += glm::equal(v.z, u.z, glm::epsilon<float>()) ? 0 : 1;
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
glm::packed_vec3 const u(1.f, 2.f, 3.f);
|
glm::packed_vec3 const u(1.f, 2.f, 3.f);
|
||||||
glm::aligned_vec3 const v(u);
|
glm::aligned_vec3 const v(u);
|
||||||
Error += v.x == u.x ? 0 : 1;
|
Error += glm::equal(v.x, u.x, glm::epsilon<float>()) ? 0 : 1;
|
||||||
Error += v.y == u.y ? 0 : 1;
|
Error += glm::equal(v.y, u.y, glm::epsilon<float>()) ? 0 : 1;
|
||||||
Error += v.z == u.z ? 0 : 1;
|
Error += glm::equal(v.z, u.z, glm::epsilon<float>()) ? 0 : 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
glm::aligned_dvec3 const u(1., 2., 3.);
|
glm::aligned_dvec3 const u(1., 2., 3.);
|
||||||
glm::packed_dvec3 const v(u);
|
glm::packed_dvec3 const v(u);
|
||||||
Error += v.x == u.x ? 0 : 1;
|
Error += glm::equal(v.x, u.x, glm::epsilon<double>()) ? 0 : 1;
|
||||||
Error += v.y == u.y ? 0 : 1;
|
Error += glm::equal(v.y, u.y, glm::epsilon<double>()) ? 0 : 1;
|
||||||
Error += v.z == u.z ? 0 : 1;
|
Error += glm::equal(v.z, u.z, glm::epsilon<double>()) ? 0 : 1;
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
glm::packed_dvec3 const u(1.f, 2.f, 3.f);
|
glm::packed_dvec3 const u(1.f, 2.f, 3.f);
|
||||||
glm::aligned_dvec3 const v(u);
|
glm::aligned_dvec3 const v(u);
|
||||||
Error += v.x == u.x ? 0 : 1;
|
Error += glm::equal(v.x, u.x, glm::epsilon<double>()) ? 0 : 1;
|
||||||
Error += v.y == u.y ? 0 : 1;
|
Error += glm::equal(v.y, u.y, glm::epsilon<double>()) ? 0 : 1;
|
||||||
Error += v.z == u.z ? 0 : 1;
|
Error += glm::equal(v.z, u.z, glm::epsilon<double>()) ? 0 : 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
@ -205,49 +206,49 @@ static int test_splat_vec3()
|
|||||||
{
|
{
|
||||||
glm::aligned_vec3 const u(1.f, 2.f, 3.f);
|
glm::aligned_vec3 const u(1.f, 2.f, 3.f);
|
||||||
glm::aligned_vec3 const v(glm::splatX(u));
|
glm::aligned_vec3 const v(glm::splatX(u));
|
||||||
Error += v.x == u.x ? 0 : 1;
|
Error += glm::equal(v.x, u.x, glm::epsilon<float>()) ? 0 : 1;
|
||||||
Error += v.y == u.x ? 0 : 1;
|
Error += glm::equal(v.y, u.x, glm::epsilon<float>()) ? 0 : 1;
|
||||||
Error += v.z == u.x ? 0 : 1;
|
Error += glm::equal(v.z, u.x, glm::epsilon<float>()) ? 0 : 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
glm::aligned_vec3 const u(1.f, 2.f, 3.f);
|
glm::aligned_vec3 const u(1.f, 2.f, 3.f);
|
||||||
glm::aligned_vec3 const v(glm::splatY(u));
|
glm::aligned_vec3 const v(glm::splatY(u));
|
||||||
Error += v.x == u.y ? 0 : 1;
|
Error += glm::equal(v.x, u.y, glm::epsilon<float>()) ? 0 : 1;
|
||||||
Error += v.y == u.y ? 0 : 1;
|
Error += glm::equal(v.y, u.y, glm::epsilon<float>()) ? 0 : 1;
|
||||||
Error += v.z == u.y ? 0 : 1;
|
Error += glm::equal(v.z, u.y, glm::epsilon<float>()) ? 0 : 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
glm::aligned_vec3 const u(1.f, 2.f, 3.f);
|
glm::aligned_vec3 const u(1.f, 2.f, 3.f);
|
||||||
glm::aligned_vec3 const v(glm::splatZ(u));
|
glm::aligned_vec3 const v(glm::splatZ(u));
|
||||||
Error += v.x == u.z ? 0 : 1;
|
Error += glm::equal(v.x, u.z, glm::epsilon<float>()) ? 0 : 1;
|
||||||
Error += v.y == u.z ? 0 : 1;
|
Error += glm::equal(v.y, u.z, glm::epsilon<float>()) ? 0 : 1;
|
||||||
Error += v.z == u.z ? 0 : 1;
|
Error += glm::equal(v.z, u.z, glm::epsilon<float>()) ? 0 : 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
glm::aligned_dvec3 const u(1., 2., 3.);
|
glm::aligned_dvec3 const u(1., 2., 3.);
|
||||||
glm::aligned_dvec3 const v(glm::splatX(u));
|
glm::aligned_dvec3 const v(glm::splatX(u));
|
||||||
Error += v.x == u.x ? 0 : 1;
|
Error += glm::equal(v.x, u.x, glm::epsilon<double>()) ? 0 : 1;
|
||||||
Error += v.y == u.x ? 0 : 1;
|
Error += glm::equal(v.y, u.x, glm::epsilon<double>()) ? 0 : 1;
|
||||||
Error += v.z == u.x ? 0 : 1;
|
Error += glm::equal(v.z, u.x, glm::epsilon<double>()) ? 0 : 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
glm::aligned_dvec3 const u(1., 2., 3.);
|
glm::aligned_dvec3 const u(1., 2., 3.);
|
||||||
glm::aligned_dvec3 const v(glm::splatY(u));
|
glm::aligned_dvec3 const v(glm::splatY(u));
|
||||||
Error += v.x == u.y ? 0 : 1;
|
Error += glm::equal(v.x, u.y, glm::epsilon<double>()) ? 0 : 1;
|
||||||
Error += v.y == u.y ? 0 : 1;
|
Error += glm::equal(v.y, u.y, glm::epsilon<double>()) ? 0 : 1;
|
||||||
Error += v.z == u.y ? 0 : 1;
|
Error += glm::equal(v.z, u.y, glm::epsilon<double>()) ? 0 : 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
glm::aligned_dvec3 const u(1., 2., 3.);
|
glm::aligned_dvec3 const u(1., 2., 3.);
|
||||||
glm::aligned_dvec3 const v(glm::splatZ(u));
|
glm::aligned_dvec3 const v(glm::splatZ(u));
|
||||||
Error += v.x == u.z ? 0 : 1;
|
Error += glm::equal(v.x, u.z, glm::epsilon<double>()) ? 0 : 1;
|
||||||
Error += v.y == u.z ? 0 : 1;
|
Error += glm::equal(v.y, u.z, glm::epsilon<double>()) ? 0 : 1;
|
||||||
Error += v.z == u.z ? 0 : 1;
|
Error += glm::equal(v.z, u.z, glm::epsilon<double>()) ? 0 : 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
return Error;
|
return Error;
|
||||||
@ -260,52 +261,52 @@ static int test_splat_vec4()
|
|||||||
glm::aligned_vec4 const u(1.f, 2.f, 3.f, 4.f);
|
glm::aligned_vec4 const u(1.f, 2.f, 3.f, 4.f);
|
||||||
{
|
{
|
||||||
glm::aligned_vec4 const v(glm::splatX(u));
|
glm::aligned_vec4 const v(glm::splatX(u));
|
||||||
Error += v.x == u.x ? 0 : 1;
|
Error += glm::equal(v.x, u.x, glm::epsilon<float>()) ? 0 : 1;
|
||||||
Error += v.y == u.x ? 0 : 1;
|
Error += glm::equal(v.y, u.x, glm::epsilon<float>()) ? 0 : 1;
|
||||||
Error += v.z == u.x ? 0 : 1;
|
Error += glm::equal(v.z, u.x, glm::epsilon<float>()) ? 0 : 1;
|
||||||
Error += v.w == u.x ? 0 : 1;
|
Error += glm::equal(v.w, u.x, glm::epsilon<float>()) ? 0 : 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
glm::aligned_vec4 const v(glm::splatY(u));
|
glm::aligned_vec4 const v(glm::splatY(u));
|
||||||
Error += v.x == u.y ? 0 : 1;
|
Error += glm::equal(v.x, u.y, glm::epsilon<float>()) ? 0 : 1;
|
||||||
Error += v.y == u.y ? 0 : 1;
|
Error += glm::equal(v.y, u.y, glm::epsilon<float>()) ? 0 : 1;
|
||||||
Error += v.z == u.y ? 0 : 1;
|
Error += glm::equal(v.z, u.y, glm::epsilon<float>()) ? 0 : 1;
|
||||||
Error += v.w == u.y ? 0 : 1;
|
Error += glm::equal(v.w, u.y, glm::epsilon<float>()) ? 0 : 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
glm::aligned_vec4 const v(glm::splatZ(u));
|
glm::aligned_vec4 const v(glm::splatZ(u));
|
||||||
Error += v.x == u.z ? 0 : 1;
|
Error += glm::equal(v.x, u.z, glm::epsilon<float>()) ? 0 : 1;
|
||||||
Error += v.y == u.z ? 0 : 1;
|
Error += glm::equal(v.y, u.z, glm::epsilon<float>()) ? 0 : 1;
|
||||||
Error += v.z == u.z ? 0 : 1;
|
Error += glm::equal(v.z, u.z, glm::epsilon<float>()) ? 0 : 1;
|
||||||
Error += v.w == u.z ? 0 : 1;
|
Error += glm::equal(v.w, u.z, glm::epsilon<float>()) ? 0 : 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
glm::aligned_dvec4 const u(1.f, 2.f, 3.f, 4.f);
|
glm::aligned_dvec4 const u(1.f, 2.f, 3.f, 4.f);
|
||||||
{
|
{
|
||||||
glm::aligned_dvec4 const v(glm::splatX(u));
|
glm::aligned_dvec4 const v(glm::splatX(u));
|
||||||
Error += v.x == u.x ? 0 : 1;
|
Error += glm::equal(v.x, u.x, glm::epsilon<double>()) ? 0 : 1;
|
||||||
Error += v.y == u.x ? 0 : 1;
|
Error += glm::equal(v.y, u.x, glm::epsilon<double>()) ? 0 : 1;
|
||||||
Error += v.z == u.x ? 0 : 1;
|
Error += glm::equal(v.z, u.x, glm::epsilon<double>()) ? 0 : 1;
|
||||||
Error += v.w == u.x ? 0 : 1;
|
Error += glm::equal(v.w, u.x, glm::epsilon<double>()) ? 0 : 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
glm::aligned_dvec4 const v(glm::splatY(u));
|
glm::aligned_dvec4 const v(glm::splatY(u));
|
||||||
Error += v.x == u.y ? 0 : 1;
|
Error += glm::equal(v.x, u.y, glm::epsilon<double>()) ? 0 : 1;
|
||||||
Error += v.y == u.y ? 0 : 1;
|
Error += glm::equal(v.y, u.y, glm::epsilon<double>()) ? 0 : 1;
|
||||||
Error += v.z == u.y ? 0 : 1;
|
Error += glm::equal(v.z, u.y, glm::epsilon<double>()) ? 0 : 1;
|
||||||
Error += v.w == u.y ? 0 : 1;
|
Error += glm::equal(v.w, u.y, glm::epsilon<double>()) ? 0 : 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
glm::aligned_dvec4 const v(glm::splatZ(u));
|
glm::aligned_dvec4 const v(glm::splatZ(u));
|
||||||
Error += v.x == u.z ? 0 : 1;
|
Error += glm::equal(v.x, u.z, glm::epsilon<double>()) ? 0 : 1;
|
||||||
Error += v.y == u.z ? 0 : 1;
|
Error += glm::equal(v.y, u.z, glm::epsilon<double>()) ? 0 : 1;
|
||||||
Error += v.z == u.z ? 0 : 1;
|
Error += glm::equal(v.z, u.z, glm::epsilon<double>()) ? 0 : 1;
|
||||||
Error += v.w == u.z ? 0 : 1;
|
Error += glm::equal(v.w, u.z, glm::epsilon<double>()) ? 0 : 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return Error;
|
return Error;
|
||||||
@ -318,72 +319,62 @@ static int test_copy_vec4_vec3()
|
|||||||
{
|
{
|
||||||
glm::aligned_vec3 const u(1.f, 2.f, 3.f);
|
glm::aligned_vec3 const u(1.f, 2.f, 3.f);
|
||||||
glm::aligned_vec4 const v(glm::xyz0(u));
|
glm::aligned_vec4 const v(glm::xyz0(u));
|
||||||
Error += v.x == u.x ? 0 : 1;
|
Error += glm::equal(v.x, u.x, glm::epsilon<float>()) ? 0 : 1;
|
||||||
Error += v.y == u.y ? 0 : 1;
|
Error += glm::equal(v.y, u.y, glm::epsilon<float>()) ? 0 : 1;
|
||||||
Error += v.z == u.z ? 0 : 1;
|
Error += glm::equal(v.z, u.z, glm::epsilon<float>()) ? 0 : 1;
|
||||||
Error += v.w == 0.0f ? 0 : 1;
|
Error += glm::equal(v.w, 0.0f, glm::epsilon<float>()) ? 0 : 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
glm::aligned_vec3 const u(1.f, 2.f, 3.f);
|
glm::aligned_vec3 const u(1.f, 2.f, 3.f);
|
||||||
glm::aligned_vec4 const v(glm::xyz1(u));
|
glm::aligned_vec4 const v(glm::xyz1(u));
|
||||||
Error += v.x == u.x ? 0 : 1;
|
Error += glm::equal(v.x, u.x, glm::epsilon<float>()) ? 0 : 1;
|
||||||
Error += v.y == u.y ? 0 : 1;
|
Error += glm::equal(v.y, u.y, glm::epsilon<float>()) ? 0 : 1;
|
||||||
Error += v.z == u.z ? 0 : 1;
|
Error += glm::equal(v.z, u.z, glm::epsilon<float>()) ? 0 : 1;
|
||||||
Error += v.w == 1.0f ? 0 : 1;
|
Error += glm::equal(v.w, 1.0f, glm::epsilon<float>()) ? 0 : 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
glm::aligned_dvec3 const u(1., 2., 3.);
|
glm::aligned_dvec3 const u(1., 2., 3.);
|
||||||
glm::aligned_dvec4 const v(glm::xyz0(u));
|
glm::aligned_dvec4 const v(glm::xyz0(u));
|
||||||
Error += v.x == u.x ? 0 : 1;
|
Error += glm::equal(v.x, u.x, glm::epsilon<double>()) ? 0 : 1;
|
||||||
Error += v.y == u.y ? 0 : 1;
|
Error += glm::equal(v.y, u.y, glm::epsilon<double>()) ? 0 : 1;
|
||||||
Error += v.z == u.z ? 0 : 1;
|
Error += glm::equal(v.z, u.z, glm::epsilon<double>()) ? 0 : 1;
|
||||||
Error += v.w == 0. ? 0 : 1;
|
Error += glm::equal(v.w, 0.0, glm::epsilon<double>()) ? 0 : 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
glm::aligned_dvec3 const u(1., 2., 3.);
|
glm::aligned_dvec3 const u(1., 2., 3.);
|
||||||
glm::aligned_dvec4 const v(glm::xyz1(u));
|
glm::aligned_dvec4 const v(glm::xyz1(u));
|
||||||
Error += v.x == u.x ? 0 : 1;
|
Error += glm::equal(v.x, u.x, glm::epsilon<double>()) ? 0 : 1;
|
||||||
Error += v.y == u.y ? 0 : 1;
|
Error += glm::equal(v.y, u.y, glm::epsilon<double>()) ? 0 : 1;
|
||||||
Error += v.z == u.z ? 0 : 1;
|
Error += glm::equal(v.z, u.z, glm::epsilon<double>()) ? 0 : 1;
|
||||||
Error += v.w == 1.0 ? 0 : 1;
|
Error += glm::equal(v.w, 1.0, glm::epsilon<double>()) ? 0 : 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
glm::aligned_dvec3 const u(1., 2., 3.);
|
glm::aligned_dvec3 const u(1., 2., 3.);
|
||||||
glm::aligned_dvec4 const v(glm::xyzz(u));
|
glm::aligned_dvec4 const v(glm::xyzz(u));
|
||||||
Error += v.x == u.x ? 0 : 1;
|
Error += glm::equal(v.x, u.x, glm::epsilon<double>()) ? 0 : 1;
|
||||||
Error += v.y == u.y ? 0 : 1;
|
Error += glm::equal(v.y, u.y, glm::epsilon<double>()) ? 0 : 1;
|
||||||
Error += v.z == u.z ? 0 : 1;
|
Error += glm::equal(v.z, u.z, glm::epsilon<double>()) ? 0 : 1;
|
||||||
Error += v.w == u.z ? 0 : 1;
|
Error += glm::equal(v.w, u.z, glm::epsilon<double>()) ? 0 : 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
|
||||||
glm::aligned_dvec3 const u(1., 2., 3.);
|
|
||||||
glm::aligned_dvec4 const v(glm::xyzz(u));
|
|
||||||
Error += v.x == u.x ? 0 : 1;
|
|
||||||
Error += v.y == u.y ? 0 : 1;
|
|
||||||
Error += v.z == u.z ? 0 : 1;
|
|
||||||
Error += v.w == u.z ? 0 : 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
{
|
{
|
||||||
glm::aligned_vec4 const u(1.f, 2.f, 3.f, 4.f);
|
glm::aligned_vec4 const u(1.f, 2.f, 3.f, 4.f);
|
||||||
glm::aligned_vec3 const v(glm::xyz(u));
|
glm::aligned_vec3 const v(glm::xyz(u));
|
||||||
Error += v.x == u.x ? 0 : 1;
|
Error += glm::equal(v.x, u.x, glm::epsilon<float>()) ? 0 : 1;
|
||||||
Error += v.y == u.y ? 0 : 1;
|
Error += glm::equal(v.y, u.y, glm::epsilon<float>()) ? 0 : 1;
|
||||||
Error += v.z == u.z ? 0 : 1;
|
Error += glm::equal(v.z, u.z, glm::epsilon<float>()) ? 0 : 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
glm::aligned_dvec4 const u(1., 2., 3., 4.);
|
glm::aligned_dvec4 const u(1., 2., 3., 4.);
|
||||||
glm::aligned_dvec3 const v(glm::xyz(u));
|
glm::aligned_dvec3 const v(glm::xyz(u));
|
||||||
Error += v.x == u.x ? 0 : 1;
|
Error += glm::equal(v.x, u.x, glm::epsilon<double>()) ? 0 : 1;
|
||||||
Error += v.y == u.y ? 0 : 1;
|
Error += glm::equal(v.y, u.y, glm::epsilon<double>()) ? 0 : 1;
|
||||||
Error += v.z == u.z ? 0 : 1;
|
Error += glm::equal(v.z, u.z, glm::epsilon<double>()) ? 0 : 1;
|
||||||
}
|
}
|
||||||
return Error;
|
return Error;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user