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>
#include <cassert>
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 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 unsigned int dimensions() noexcept
Number of dimensions (channels), i.e. 4 for a Color4.
-
static inline constexpr T baseTypeLowest() noexcept
Largest possible negative value.
-
static inline constexpr T baseTypeMax() noexcept
Largest possible positive value.
-
static inline constexpr T baseTypeSmallest() noexcept
Smallest possible positive value.
-
static inline constexpr 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)”.
Copyright © OpenEXR a Series of LF Projects, LLC.
For web site terms of use, trademark policy and other project policies
please see https://lfprojects.org.