Color4
#include <Imath/ImathColor.h>
The Color4
class template represents a 4-component color (red,
green, blue, and alpha), with pre-defined typedefs of unsigned
char
, half
, and float
.
The Color4
class is not derived from Vec4
. Its fields are
named r
, g
, b
, and a
. The class itself implies no
specific interpretation of the values.
There are also various utility functions that operate on colors
defined in ImathColorAlgo.h
and described in Color Functions.
Example:
#include <Imath/ImathColor.h>
void
color4_example()
{
Imath::C4f r (1.0f, 0.0f, 0.0f, 1.0f);
Imath::C4f g (0.0f, 1.0f, 0.0f, 1.0f);
Imath::C4f b (0.0f, 0.0f, 1.0f, 1.0f);
Imath::C4f w = r + g + b;
assert (w.r == 1.0f);
assert (w.g == 1.0f);
assert (w.b == 1.0f);
assert (w.a == 3.0f);
}
-
typedef Color4<unsigned char>
Imath::
Color4c
4 8-bit integer channels
-
typedef Color4<half>
Imath::
Color4h
4 half channels
-
typedef Color4<float>
Imath::
Color4f
4 float channels
-
typedef Color4<unsigned char>
Imath::
C4c
4 8-bit integer channels
-
typedef Color4<half>
Imath::
C4h
4 half channels
-
typedef Color4<float>
Imath::
C4f
4 float channels
-
template<class
T
>
class Imath::
Color4
A 4-channel color class: 3 channels plus alpha.
For convenience, the fields are named r
, g
, and b
, although this class does not impose interpretation on the channels, which can represent either rgb or hsv color values.
Direct access to elements
-
T
r
-
T
g
-
T
b
-
T
a
Constructors and Assignment
-
inline
Color4
() noexcept
No initialization by default.
-
inline explicit constexpr
Color4
(T a) noexcept
Initialize to (a a a a)
-
inline constexpr
Color4
(T a, T b, T c, T d) noexcept
Initialize to (a b c d)
-
inline constexpr
Color4
(const Color4 &v) noexcept
Construct from Color4.
-
template<class
S
>
inline constexpr Color4
(const Color4<S> &v) noexcept
Construct from Color4.
-
~Color4
() = default
Destructor.
-
inline constexpr const Color4 &
operator=
(const Color4 &v) noexcept
Assignment.
-
inline T &
operator[]
(int i) noexcept
Component-wise value.
-
inline const T &
operator[]
(int i) const noexcept
Component-wise value.
Arithmetic and Comparison
-
template<class
S
>
inline constexpr bool operator==
(const Color4<S> &v) const noexcept
Equality.
-
template<class
S
>
inline constexpr bool operator!=
(const Color4<S> &v) const noexcept
Inequality.
-
inline constexpr const Color4 &
operator+=
(const Color4 &v) noexcept
Component-wise addition.
-
inline constexpr Color4
operator+
(const Color4 &v) const noexcept
Component-wise addition.
-
inline constexpr const Color4 &
operator-=
(const Color4 &v) noexcept
Component-wise subtraction.
-
inline constexpr Color4
operator-
(const Color4 &v) const noexcept
Component-wise subtraction.
-
inline constexpr Color4
operator-
() const noexcept
Component-wise multiplication by -1.
-
inline constexpr const Color4 &
negate
() noexcept
Component-wise multiplication by -1.
-
inline constexpr const Color4 &
operator*=
(const Color4 &v) noexcept
Component-wise multiplication.
-
inline constexpr const Color4 &
operator*=
(T a) noexcept
Component-wise multiplication.
-
inline constexpr Color4
operator*
(const Color4 &v) const noexcept
Component-wise multiplication.
-
inline constexpr Color4
operator*
(T a) const noexcept
Component-wise multiplication.
-
inline constexpr const Color4 &
operator/=
(const Color4 &v) noexcept
Component-wise division.
-
inline constexpr const Color4 &
operator/=
(T a) noexcept
Component-wise division.
-
inline constexpr Color4
operator/
(const Color4 &v) const noexcept
Component-wise division.
-
inline constexpr Color4
operator/
(T a) const noexcept
Component-wise division.
Compatibilty with Sb
-
template<class
S
>
inline void setValue
(S a, S b, S c, S d) noexcept
Set the value.
-
template<class
S
>
inline void setValue
(const Color4<S> &v) noexcept
Set the value.
-
template<class
S
>
inline void getValue
(S &a, S &b, S &c, S &d) const noexcept
Return the value.
-
template<class
S
>
inline void getValue
(Color4<S> &v) const noexcept
Return the value.
-
inline T *
getValue
() noexcept
Return raw pointer to the value.
-
inline const T *
getValue
() const noexcept
Return raw pointer to the value.
Numeric Limits
-
static inline constexpr static unsigned int dimensions () noexcept
Number of dimensions (channels), i.e. 4 for a Color4.
-
static inline constexpr static T baseTypeLowest () noexcept
Largest possible negative value.
-
static inline constexpr static T baseTypeMax () noexcept
Largest possible positive value.
-
static inline constexpr static T baseTypeSmallest () noexcept
Smallest possible positive value.
-
static inline constexpr static T baseTypeEpsilon () noexcept
Smallest possible e for which 1+e != 1.
Public Types
-
typedef T
BaseType
The base type: In templates that accept a parameter V
(could be a Color4), you can refer to T
as V::BaseType
-
template<class
T
>
std::ostream &Imath::
operator<<
(std::ostream &s, const Color4<T> &v)
Stream output, as “(r g b a)”.