mirror of
https://github.com/g-truc/glm.git
synced 2024-11-10 04:31:47 +00:00
Added missing bvec* && and || operators
This commit is contained in:
parent
560dcdbec0
commit
a257beb5de
@ -314,6 +314,12 @@ namespace glm
|
|||||||
template <typename T, precision P>
|
template <typename T, precision P>
|
||||||
GLM_FUNC_DECL bool operator!=(tvec1<T, P> const & v1, tvec1<T, P> const & v2);
|
GLM_FUNC_DECL bool operator!=(tvec1<T, P> const & v1, tvec1<T, P> const & v2);
|
||||||
|
|
||||||
|
template <precision P>
|
||||||
|
GLM_FUNC_DECL bool operator&&(tvec1<bool, P> const & v1, tvec1<bool, P> const & v2);
|
||||||
|
|
||||||
|
template <precision P>
|
||||||
|
GLM_FUNC_DECL bool operator||(tvec1<bool, P> const & v1, tvec1<bool, P> const & v2);
|
||||||
|
|
||||||
// -- Is type --
|
// -- Is type --
|
||||||
|
|
||||||
template <typename T, precision P>
|
template <typename T, precision P>
|
||||||
|
@ -601,4 +601,16 @@ namespace glm
|
|||||||
{
|
{
|
||||||
return (v1.x != v2.x);
|
return (v1.x != v2.x);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
template <precision P>
|
||||||
|
GLM_FUNC_QUALIFIER tvec1<bool, P> operator&&(tvec1<bool, P> const & v1, tvec1<bool, P> const & v2)
|
||||||
|
{
|
||||||
|
return tvec1<bool, P>(v1.x && v2.x);
|
||||||
|
}
|
||||||
|
|
||||||
|
template <precision P>
|
||||||
|
GLM_FUNC_QUALIFIER tvec1<bool, P> operator||(tvec1<bool, P> const & v1, tvec1<bool, P> const & v2)
|
||||||
|
{
|
||||||
|
return tvec1<bool, P>(v1.x || v2.x);
|
||||||
|
}
|
||||||
}//namespace glm
|
}//namespace glm
|
||||||
|
@ -406,6 +406,12 @@ namespace glm
|
|||||||
template <typename T, precision P>
|
template <typename T, precision P>
|
||||||
GLM_FUNC_DECL bool operator!=(tvec2<T, P> const & v1, tvec2<T, P> const & v2);
|
GLM_FUNC_DECL bool operator!=(tvec2<T, P> const & v1, tvec2<T, P> const & v2);
|
||||||
|
|
||||||
|
template <precision P>
|
||||||
|
GLM_FUNC_DECL bool operator&&(tvec2<bool, P> const & v1, tvec2<bool, P> const & v2);
|
||||||
|
|
||||||
|
template <precision P>
|
||||||
|
GLM_FUNC_DECL bool operator||(tvec2<bool, P> const & v1, tvec2<bool, P> const & v2);
|
||||||
|
|
||||||
// -- Is type --
|
// -- Is type --
|
||||||
|
|
||||||
template <typename T, precision P>
|
template <typename T, precision P>
|
||||||
|
@ -926,4 +926,16 @@ namespace glm
|
|||||||
{
|
{
|
||||||
return (v1.x != v2.x) || (v1.y != v2.y);
|
return (v1.x != v2.x) || (v1.y != v2.y);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
template <precision P>
|
||||||
|
GLM_FUNC_QUALIFIER tvec2<bool, P> operator&&(tvec2<bool, P> const & v1, tvec2<bool, P> const & v2)
|
||||||
|
{
|
||||||
|
return tvec2<bool, P>(v1.x && v2.x, v1.y && v2.y);
|
||||||
|
}
|
||||||
|
|
||||||
|
template <precision P>
|
||||||
|
GLM_FUNC_QUALIFIER tvec2<bool, P> operator||(tvec2<bool, P> const & v1, tvec2<bool, P> const & v2)
|
||||||
|
{
|
||||||
|
return tvec2<bool, P>(v1.x || v2.x, v1.y || v2.y);
|
||||||
|
}
|
||||||
}//namespace glm
|
}//namespace glm
|
||||||
|
@ -429,6 +429,12 @@ namespace glm
|
|||||||
template <typename T, precision P>
|
template <typename T, precision P>
|
||||||
GLM_FUNC_DECL bool operator!=(tvec3<T, P> const & v1, tvec3<T, P> const & v2);
|
GLM_FUNC_DECL bool operator!=(tvec3<T, P> const & v1, tvec3<T, P> const & v2);
|
||||||
|
|
||||||
|
template <precision P>
|
||||||
|
GLM_FUNC_DECL bool operator&&(tvec3<bool, P> const & v1, tvec3<bool, P> const & v2);
|
||||||
|
|
||||||
|
template <precision P>
|
||||||
|
GLM_FUNC_DECL bool operator||(tvec3<bool, P> const & v1, tvec3<bool, P> const & v2);
|
||||||
|
|
||||||
// -- Is type --
|
// -- Is type --
|
||||||
|
|
||||||
template <typename T, precision P>
|
template <typename T, precision P>
|
||||||
|
@ -1058,4 +1058,16 @@ namespace glm
|
|||||||
{
|
{
|
||||||
return (v1.x != v2.x) || (v1.y != v2.y) || (v1.z != v2.z);
|
return (v1.x != v2.x) || (v1.y != v2.y) || (v1.z != v2.z);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
template <precision P>
|
||||||
|
GLM_FUNC_QUALIFIER tvec3<bool, P> operator&&(tvec3<bool, P> const & v1, tvec3<bool, P> const & v2)
|
||||||
|
{
|
||||||
|
return tvec3<bool, P>(v1.x && v2.x, v1.y && v2.y, v1.z && v2.z);
|
||||||
|
}
|
||||||
|
|
||||||
|
template <precision P>
|
||||||
|
GLM_FUNC_QUALIFIER tvec3<bool, P> operator||(tvec3<bool, P> const & v1, tvec3<bool, P> const & v2)
|
||||||
|
{
|
||||||
|
return tvec3<bool, P>(v1.x || v2.x, v1.y || v2.y, v1.z || v2.z);
|
||||||
|
}
|
||||||
}//namespace glm
|
}//namespace glm
|
||||||
|
@ -542,6 +542,12 @@ namespace detail
|
|||||||
template <typename T, precision P>
|
template <typename T, precision P>
|
||||||
GLM_FUNC_DECL bool operator!=(tvec4<T, P> const & v1, tvec4<T, P> const & v2);
|
GLM_FUNC_DECL bool operator!=(tvec4<T, P> const & v1, tvec4<T, P> const & v2);
|
||||||
|
|
||||||
|
template <precision P>
|
||||||
|
GLM_FUNC_DECL bool operator&&(tvec4<bool, P> const & v1, tvec4<bool, P> const & v2);
|
||||||
|
|
||||||
|
template <precision P>
|
||||||
|
GLM_FUNC_DECL bool operator||(tvec4<bool, P> const & v1, tvec4<bool, P> const & v2);
|
||||||
|
|
||||||
// -- Is type --
|
// -- Is type --
|
||||||
|
|
||||||
template <typename T, precision P>
|
template <typename T, precision P>
|
||||||
|
@ -1168,6 +1168,18 @@ namespace glm
|
|||||||
{
|
{
|
||||||
return (v1.x != v2.x) || (v1.y != v2.y) || (v1.z != v2.z) || (v1.w != v2.w);
|
return (v1.x != v2.x) || (v1.y != v2.y) || (v1.z != v2.z) || (v1.w != v2.w);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
template <precision P>
|
||||||
|
GLM_FUNC_QUALIFIER tvec4<bool, P> operator&&(tvec4<bool, P> const & v1, tvec4<bool, P> const & v2)
|
||||||
|
{
|
||||||
|
return tvec4<bool, P>(v1.x && v2.x, v1.y && v2.y, v1.z && v2.z, v1.w && v2.w);
|
||||||
|
}
|
||||||
|
|
||||||
|
template <precision P>
|
||||||
|
GLM_FUNC_QUALIFIER tvec4<bool, P> operator||(tvec4<bool, P> const & v1, tvec4<bool, P> const & v2)
|
||||||
|
{
|
||||||
|
return tvec4<bool, P>(v1.x || v2.x, v1.y || v2.y, v1.z || v2.z, v1.w || v2.w);
|
||||||
|
}
|
||||||
}//namespace glm
|
}//namespace glm
|
||||||
|
|
||||||
#if GLM_HAS_ANONYMOUS_UNION && GLM_NOT_BUGGY_VC32BITS
|
#if GLM_HAS_ANONYMOUS_UNION && GLM_NOT_BUGGY_VC32BITS
|
||||||
|
@ -59,6 +59,7 @@ glm::mat4 camera(float Translate, glm::vec2 const & Rotate)
|
|||||||
- Added (un)packUnorm and (un)packSnorm to GTC_packing
|
- Added (un)packUnorm and (un)packSnorm to GTC_packing
|
||||||
- Added 16bit pack and unpack to GTC_packing
|
- Added 16bit pack and unpack to GTC_packing
|
||||||
- Added 8bit pack and unpack to GTC_packing
|
- Added 8bit pack and unpack to GTC_packing
|
||||||
|
- Added missing bvec* && and || operators
|
||||||
|
|
||||||
##### Improvements:
|
##### Improvements:
|
||||||
- Improved GTC_random linearRand documentation
|
- Improved GTC_random linearRand documentation
|
||||||
|
@ -159,6 +159,26 @@ int test_vec4_ctor()
|
|||||||
return Error;
|
return Error;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int test_bvec4_ctor()
|
||||||
|
{
|
||||||
|
int Error = 0;
|
||||||
|
|
||||||
|
glm::bvec4 const A(true);
|
||||||
|
glm::bvec4 const B(true);
|
||||||
|
glm::bvec4 const C(false);
|
||||||
|
glm::bvec4 const D = A && B;
|
||||||
|
glm::bvec4 const E = A && C;
|
||||||
|
glm::bvec4 const F = A || C;
|
||||||
|
bool const G = A == C;
|
||||||
|
bool const H = A != C;
|
||||||
|
|
||||||
|
Error += D == glm::bvec4(true) ? 0 : 1;
|
||||||
|
Error += E == glm::bvec4(false) ? 0 : 1;
|
||||||
|
Error += F == glm::bvec4(true) ? 0 : 1;
|
||||||
|
|
||||||
|
return Error;
|
||||||
|
}
|
||||||
|
|
||||||
int test_vec4_operators()
|
int test_vec4_operators()
|
||||||
{
|
{
|
||||||
int Error = 0;
|
int Error = 0;
|
||||||
@ -511,6 +531,7 @@ int main()
|
|||||||
|
|
||||||
Error += test_vec4_static_const();
|
Error += test_vec4_static_const();
|
||||||
Error += test_vec4_ctor();
|
Error += test_vec4_ctor();
|
||||||
|
Error += test_bvec4_ctor();
|
||||||
Error += test_vec4_size();
|
Error += test_vec4_size();
|
||||||
Error += test_vec4_operators();
|
Error += test_vec4_operators();
|
||||||
Error += test_vec4_swizzle_partial();
|
Error += test_vec4_swizzle_partial();
|
||||||
|
@ -438,6 +438,7 @@ int test_packSnorm1x8()
|
|||||||
std::vector<glm::vec1> A;
|
std::vector<glm::vec1> A;
|
||||||
A.push_back(glm::vec1( 1.0f));
|
A.push_back(glm::vec1( 1.0f));
|
||||||
A.push_back(glm::vec1(-0.7f));
|
A.push_back(glm::vec1(-0.7f));
|
||||||
|
A.push_back(glm::vec1(-1.0f));
|
||||||
|
|
||||||
for(std::size_t i = 0; i < A.size(); ++i)
|
for(std::size_t i = 0; i < A.size(); ++i)
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user