diff --git a/doc/changelog.dox b/doc/changelog.dox index 2e383952b..baa74fc48 100644 --- a/doc/changelog.dox +++ b/doc/changelog.dox @@ -114,6 +114,8 @@ See also: - @ref Math::Frustum::begin() / @ref Math::Frustum::end() accessors for easy range-for access to @ref Math::Frustum planes +- Added convenience @ref BoolVector2, @ref BoolVector3 and @ref BoolVector4 + typedefs to the root namespace @subsubsection changelog-latest-new-platform Platform libraries diff --git a/doc/snippets/MagnumMath.cpp b/doc/snippets/MagnumMath.cpp index a789b136a..eafcaf6b2 100644 --- a/doc/snippets/MagnumMath.cpp +++ b/doc/snippets/MagnumMath.cpp @@ -283,7 +283,7 @@ static_cast(min); static_cast(max); /* [matrix-vector-operations-compare] */ -Math::BoolVector<3> largerOrEqual = a >= b; // {false, true, true} +BoolVector3 largerOrEqual = a >= b; // {false, true, true} bool anySmaller = (a < b).any(); // true bool allLarger = (a > b).all(); // false /* [matrix-vector-operations-compare] */ diff --git a/doc/types.dox b/doc/types.dox index 677a2fd2a..21496fa85 100644 --- a/doc/types.dox +++ b/doc/types.dox @@ -69,7 +69,7 @@ underlying type. | Magnum vector type | Equivalent GLSL type | | ---------------------------------------------- | ------------------------- | -| @ref Math::BoolVector "Math::BoolVector<2>", @ref Math::BoolVector "Math::BoolVector<3>", @ref Math::BoolVector "Math::BoolVector<4>" | @glsl bvec2 @ce, @glsl bvec3 @ce, @glsl bvec4 @ce | +| @ref BoolVector2, @ref BoolVector3, @ref BoolVector4 | @glsl bvec2 @ce, @glsl bvec3 @ce, @glsl bvec4 @ce | | @ref Vector2, @ref Vector3, @ref Color3, @ref Vector4, @ref Color4 | @glsl vec2 @ce, @glsl vec3 @ce, @glsl vec4 @ce | | @ref Vector2ui, @ref Vector3ui, @ref Vector4ui | @glsl uvec2 @ce, @glsl uvec3 @ce, @glsl uvec4 @ce | | @ref Vector2i, @ref Vector3i, @ref Vector4i | @glsl ivec2 @ce, @glsl ivec3 @ce, @glsl ivec4 @ce | diff --git a/src/Magnum/Magnum.h b/src/Magnum/Magnum.h index ccd43bd73..e2d285d8c 100644 --- a/src/Magnum/Magnum.h +++ b/src/Magnum/Magnum.h @@ -233,6 +233,30 @@ typedef float Float; /** @brief Half (16bit) */ typedef Math::Half Half; +/** +@brief Two-component bool vector + +Equivalent to GLSL @glsl bvec2 @ce. +@m_keyword{bvec2,GLSL bvec2,} +*/ +typedef Math::BoolVector<2> BoolVector2; + +/** +@brief Three-component bool vector + +Equivalent to GLSL @glsl bvec3 @ce. +@m_keyword{bvec3,GLSL bvec3,} +*/ +typedef Math::BoolVector<3> BoolVector3; + +/** +@brief Four-component bool vector + +Equivalent to GLSL @glsl bvec4 @ce. +@m_keyword{bvec4,GLSL bvec4,} +*/ +typedef Math::BoolVector<4> BoolVector4; + /** @brief Two-component float vector diff --git a/src/Magnum/Math/BoolVector.h b/src/Magnum/Math/BoolVector.h index d415af1ad..2f4847bf8 100644 --- a/src/Magnum/Math/BoolVector.h +++ b/src/Magnum/Math/BoolVector.h @@ -82,9 +82,7 @@ way as if the variables were just scalars: @snippet MagnumMath.cpp BoolVector-boolean -@m_keyword{bvec2,GLSL bvec2,} -@m_keyword{bvec3,GLSL bvec3,} -@m_keyword{bvec4,GLSL bvec4,} +@see @ref Magnum::BoolVector2, @ref Magnum::BoolVector3, @ref Magnum::BoolVector4 */ template class BoolVector { static_assert(size != 0, "BoolVector cannot have zero elements");