Browse Source

Color: internal helper function renaming.

Will be used also elsewhere than for alpha only.
pull/34/head
Vladimír Vondruš 13 years ago
parent
commit
842c263d51
  1. 16
      src/Color.h

16
src/Color.h

@ -123,11 +123,11 @@ template<class T> inline typename BasicColor3<T>::HSV toHSV(typename std::enable
return toHSV<typename BasicColor3<T>::FloatingPointType>(Math::normalize<BasicColor3<typename BasicColor3<T>::FloatingPointType>>(color)); return toHSV<typename BasicColor3<T>::FloatingPointType>(Math::normalize<BasicColor3<typename BasicColor3<T>::FloatingPointType>>(color));
} }
/* Default alpha value */ /* Value for full channel (1.0f for floats, 255 for unsigned byte) */
template<class T> inline constexpr typename std::enable_if<std::is_floating_point<T>::value, T>::type defaultAlpha() { template<class T> inline constexpr typename std::enable_if<std::is_floating_point<T>::value, T>::type fullChannel() {
return T(1); return T(1);
} }
template<class T> inline constexpr typename std::enable_if<std::is_integral<T>::value, T>::type defaultAlpha() { template<class T> inline constexpr typename std::enable_if<std::is_integral<T>::value, T>::type fullChannel() {
return std::numeric_limits<T>::max(); return std::numeric_limits<T>::max();
} }
@ -281,7 +281,7 @@ class BasicColor4: public Math::Vector4<T> {
* @param a Alpha value, defaults to 1.0 for floating-point types * @param a Alpha value, defaults to 1.0 for floating-point types
* and maximum positive value for integral types. * and maximum positive value for integral types.
*/ */
constexpr static BasicColor4<T> fromHSV(HSV hsv, T a = Implementation::defaultAlpha<T>()) { constexpr static BasicColor4<T> fromHSV(HSV hsv, T a = Implementation::fullChannel<T>()) {
return BasicColor4<T>(Implementation::fromHSV<T>(hsv), a); return BasicColor4<T>(Implementation::fromHSV<T>(hsv), a);
} }
/** @overload */ /** @overload */
@ -295,14 +295,14 @@ class BasicColor4: public Math::Vector4<T> {
* RGB components are set to zero, A component is set to 1.0 for * RGB components are set to zero, A component is set to 1.0 for
* floating-point types and maximum positive value for integral types. * floating-point types and maximum positive value for integral types.
*/ */
constexpr /*implicit*/ BasicColor4(): Math::Vector4<T>(T(0), T(0), T(0), Implementation::defaultAlpha<T>()) {} constexpr /*implicit*/ BasicColor4(): Math::Vector4<T>(T(0), T(0), T(0), Implementation::fullChannel<T>()) {}
/** /**
* @copydoc BasicColor3::BasicColor3(T) * @copydoc BasicColor3::BasicColor3(T)
* @param alpha Alpha value, defaults to 1.0 for floating-point types * @param alpha Alpha value, defaults to 1.0 for floating-point types
* and maximum positive value for integral types. * and maximum positive value for integral types.
*/ */
constexpr explicit BasicColor4(T rgb, T alpha = Implementation::defaultAlpha<T>()): Math::Vector4<T>(rgb, rgb, rgb, alpha) {} constexpr explicit BasicColor4(T rgb, T alpha = Implementation::fullChannel<T>()): Math::Vector4<T>(rgb, rgb, rgb, alpha) {}
/** /**
* @brief Constructor * @brief Constructor
@ -312,7 +312,7 @@ class BasicColor4: public Math::Vector4<T> {
* @param a A value, defaults to 1.0 for floating-point types and * @param a A value, defaults to 1.0 for floating-point types and
* maximum positive value for integral types. * maximum positive value for integral types.
*/ */
constexpr /*implicit*/ BasicColor4(T r, T g, T b, T a = Implementation::defaultAlpha<T>()): Math::Vector4<T>(r, g, b, a) {} constexpr /*implicit*/ BasicColor4(T r, T g, T b, T a = Implementation::fullChannel<T>()): Math::Vector4<T>(r, g, b, a) {}
/** /**
* @brief Constructor * @brief Constructor
@ -321,7 +321,7 @@ class BasicColor4: public Math::Vector4<T> {
*/ */
/* Not marked as explicit, because conversion from BasicColor3 to BasicColor4 /* Not marked as explicit, because conversion from BasicColor3 to BasicColor4
is fairly common, nearly always with A set to 1 */ is fairly common, nearly always with A set to 1 */
constexpr /*implicit*/ BasicColor4(const Math::Vector3<T>& rgb, T a = Implementation::defaultAlpha<T>()): Math::Vector4<T>(rgb[0], rgb[1], rgb[2], a) {} constexpr /*implicit*/ BasicColor4(const Math::Vector3<T>& rgb, T a = Implementation::fullChannel<T>()): Math::Vector4<T>(rgb[0], rgb[1], rgb[2], a) {}
/** @copydoc Math::Vector::Vector(const Vector<size, U>&) */ /** @copydoc Math::Vector::Vector(const Vector<size, U>&) */
template<class U> constexpr explicit BasicColor4(const Math::Vector<4, U>& other): Math::Vector4<T>(other) {} template<class U> constexpr explicit BasicColor4(const Math::Vector<4, U>& other): Math::Vector4<T>(other) {}

Loading…
Cancel
Save