Irrlicht 3D Engine: irr::video::SColor Class Reference

| Irrlicht 3D Engine |

Public Member Functions | Public Attributes
irr::video::SColor Class Reference

Class representing a 32 bit ARGB color. More...

`#include <SColor.h>`

List of all members.

## Public Member Functions

- SColor ()
    Constructor of the Color. Does nothing.
- SColor (u32 a, u32 r, u32 g, u32 b)
    Constructs the color from 4 values representing the alpha, red, green and blue component.
- SColor (u32 clr)
    Constructs the color from a 32 bit value. Could be another color.
- u32 getAlpha () const
    Returns the alpha component of the color.
- u32 getAverage () const
    Get average intensity of the color in the range [0,255].
- u32 getBlue () const
    Returns the blue component of the color.
- void getData (void *data, ECOLOR_FORMAT format)
    Write the color to data in the defined format.
- u32 getGreen () const
    Returns the green component of the color.
- SColor getInterpolated (const SColor &other, f32 d) const
    Interpolates the color with a f32 value to another color.
- SColor getInterpolated_quadratic (const SColor &c1, const SColor &c2, f32 d) const
    Returns interpolated color. ( quadratic )
- f32 getLightness () const
    Get lightness of the color in the range [0,255].
- f32 getLuminance () const
    Get luminance of the color in the range [0,255].
- u32 getRed () const
    Returns the red component of the color.
- bool operator!= (const SColor &other) const
    Compares the color to another color.
- SColor operator+ (const SColor &other) const
    Adds two colors, result is clamped to 0..255 values.
- bool operator< (const SColor &other) const
    comparison operator
- bool operator== (const SColor &other) const
    Compares the color to another color.
- void set (u32 a, u32 r, u32 g, u32 b)
    Sets all four components of the color at once.
- void set (u32 col)
- void setAlpha (u32 a)
    Sets the alpha component of the Color.
- void setBlue (u32 b)
    Sets the blue component of the Color.
- void setData (const void *data, ECOLOR_FORMAT format)
    set the color by expecting data in the given format
- void setGreen (u32 g)
    Sets the green component of the Color.
- void setRed (u32 r)
    Sets the red component of the Color.
- u16 toA1R5G5B5 () const
    Calculates a 16 bit A1R5G5B5 value of this color.
- void toOpenGLColor (u8 *dest) const
    Converts color to OpenGL color format.

## Public Attributes

- u32 color
    color in A8R8G8B8 Format

## Detailed Description

Class representing a 32 bit ARGB color.

The color values for alpha, red, green, and blue are stored in a single u32. So all four values may be between 0 and 255. Alpha in Irrlicht is opacity, so 0 is fully transparent, 255 is fully opaque (solid). This class is used by most parts of the Irrlicht Engine to specify a color. Another way is using the class SColorf, which stores the color values in 4 floats. This class must consist of only one u32 and must not use virtual functions.

Definition at line 201 of file SColor.h.

## Constructor & Destructor Documentation

irr::video::SColor::SColor | ( |  | ) | `[inline]`

Constructor of the Color. Does nothing.

The color value is not initialized to save time.

Definition at line 207 of file SColor.h.

Referenced by getInterpolated(), getInterpolated_quadratic(), and operator+().

irr::video::SColor::SColor | ( | u32 | a,
|  | u32 | r,
|  | u32 | g,
|  | u32 | b
| ) |  | `[inline]`

Constructs the color from 4 values representing the alpha, red, green and blue component.

Must be values between 0 and 255.

Definition at line 211 of file SColor.h.

irr::video::SColor::SColor | ( | u32 | clr | ) | `[inline]`

Constructs the color from a 32 bit value. Could be another color.

Definition at line 215 of file SColor.h.

## Member Function Documentation

u32 irr::video::SColor::getAlpha | ( |  | ) | const`[inline]`

Returns the alpha component of the color.

The alpha component defines how opaque a color is.

Returns:
  The alpha value of the color. 0 is fully transparent, 255 is fully opaque.

Definition at line 221 of file SColor.h.

References color.

Referenced by getInterpolated(), getInterpolated_quadratic(), operator+(), irr::video::SColorf::SColorf(), and toOpenGLColor().

u32 irr::video::SColor::getAverage | ( |  | ) | const`[inline]`

Get average intensity of the color in the range [0,255].

Definition at line 251 of file SColor.h.

References getBlue(), getGreen(), and getRed().

u32 irr::video::SColor::getBlue | ( |  | ) | const`[inline]`

Returns the blue component of the color.

Returns:
  Value between 0 and 255, specifying how blue the color is. 0 means no blue, 255 means full blue.

Definition at line 236 of file SColor.h.

References color.

Referenced by getAverage(), getData(), getInterpolated(), getInterpolated_quadratic(), getLightness(), getLuminance(), operator+(), irr::video::SColorf::SColorf(), and toOpenGLColor().

void irr::video::SColor::getData | ( | void * | data,
|  | ECOLOR_FORMAT | format
| ) |  | `[inline]`

Write the color to data in the defined format.

Parameters:

  data,: | target to write the color. Must contain sufficiently large memory to receive the number of bytes neede for format
  format,: | tells the format used to write the color into data

Definition at line 407 of file SColor.h.

References irr::video::A8R8G8B8toA1R5G5B5(), irr::video::A8R8G8B8toR5G6B5(), color, irr::video::ECF_A1R5G5B5, irr::video::ECF_A8R8G8B8, irr::video::ECF_R5G6B5, irr::video::ECF_R8G8B8, getBlue(), getGreen(), and getRed().

u32 irr::video::SColor::getGreen | ( |  | ) | const`[inline]`

Returns the green component of the color.

Returns:
  Value between 0 and 255, specifying how green the color is. 0 means no green, 255 means full green.

Definition at line 231 of file SColor.h.

References color.

Referenced by getAverage(), getData(), getInterpolated(), getInterpolated_quadratic(), getLightness(), getLuminance(), operator+(), irr::video::SColorf::SColorf(), and toOpenGLColor().

SColor irr::video::SColor::getInterpolated | ( | const SColor & | other,
|  | f32 | d
| ) |  | const`[inline]`

Interpolates the color with a f32 value to another color.

Parameters:

  other,: | Other color
  d,: | value between 0.0f and 1.0f

Returns:
  Interpolated color.

Definition at line 340 of file SColor.h.

References irr::core::clamp(), getAlpha(), getBlue(), getGreen(), getRed(), irr::core::round32(), and SColor().

Referenced by irr::video::S3DVertex::getInterpolated(), irr::video::S3DVertex2TCoords::getInterpolated(), and irr::video::S3DVertexTangents::getInterpolated().

SColor irr::video::SColor::getInterpolated_quadratic | ( | const SColor & | c1,
|  | const SColor & | c2,
|  | f32 | d
| ) |  | const`[inline]`

Returns interpolated color. ( quadratic )

Parameters:

  c1,: | first color to interpolate with
  c2,: | second color to interpolate with
  d,: | value between 0.0f and 1.0f.

Definition at line 354 of file SColor.h.

References irr::core::clamp(), irr::core::floor32(), getAlpha(), getBlue(), getGreen(), getRed(), and SColor().

f32 irr::video::SColor::getLightness | ( |  | ) | const`[inline]`

Get lightness of the color in the range [0,255].

Definition at line 239 of file SColor.h.

References getBlue(), getGreen(), getRed(), irr::core::max_(), and irr::core::min_().

f32 irr::video::SColor::getLuminance | ( |  | ) | const`[inline]`

Get luminance of the color in the range [0,255].

Definition at line 245 of file SColor.h.

References getBlue(), getGreen(), and getRed().

u32 irr::video::SColor::getRed | ( |  | ) | const`[inline]`

Returns the red component of the color.

Returns:
  Value between 0 and 255, specifying how red the color is. 0 means no red, 255 means full red.

Definition at line 226 of file SColor.h.

References color.

Referenced by getAverage(), getData(), getInterpolated(), getInterpolated_quadratic(), getLightness(), getLuminance(), operator+(), irr::video::SColorf::SColorf(), and toOpenGLColor().

bool irr::video::SColor::operator!= | ( | const SColor & | other | ) | const`[inline]`

Compares the color to another color.

Returns:
  True if the colors are different, and false if they are the same.

Definition at line 319 of file SColor.h.

References color.

SColor irr::video::SColor::operator+ | ( | const SColor & | other | ) | const`[inline]`

Adds two colors, result is clamped to 0..255 values.

Parameters:

  other | Color to add to this color

Returns:
  Addition of the two colors, clamped to 0..255 values

Definition at line 328 of file SColor.h.

References getAlpha(), getBlue(), getGreen(), getRed(), irr::core::min_(), and SColor().

bool irr::video::SColor::operator< | ( | const SColor & | other | ) | const`[inline]`

comparison operator

Returns:
  True if this color is smaller than the other one

Definition at line 323 of file SColor.h.

References color.

bool irr::video::SColor::operator== | ( | const SColor & | other | ) | const`[inline]`

Compares the color to another color.

Returns:
  True if the colors are the same, and false if not.

Definition at line 315 of file SColor.h.

References color.

void irr::video::SColor::set | ( | u32 | a,
|  | u32 | r,
|  | u32 | g,
|  | u32 | b
| ) |  | `[inline]`

Sets all four components of the color at once.

Constructs the color from 4 values representing the alpha, red, green and blue components of the color. Must be values between 0 and 255.

Parameters:

  a,: | Alpha component of the color. The alpha component defines how transparent a color should be. Has to be a value between 0 and 255. 255 means not transparent (opaque), 0 means fully transparent.
  r,: | Sets the red component of the Color. Has to be a value between 0 and 255. 0 means no red, 255 means full red.
  g,: | Sets the green component of the Color. Has to be a value between 0 and 255. 0 means no green, 255 means full green.
  b,: | Sets the blue component of the Color. Has to be a value between 0 and 255. 0 means no blue, 255 means full blue.

Definition at line 307 of file SColor.h.

References color.

void irr::video::SColor::set | ( | u32 | col | ) | `[inline]`

Definition at line 311 of file SColor.h.

References color.

void irr::video::SColor::setAlpha | ( | u32 | a | ) | `[inline]`

Sets the alpha component of the Color.

The alpha component defines how transparent a color should be.

Parameters:

  a | The alpha value of the color. 0 is fully transparent, 255 is fully opaque.

Definition at line 259 of file SColor.h.

References color.

void irr::video::SColor::setBlue | ( | u32 | b | ) | `[inline]`

Sets the blue component of the Color.

Parameters:

  b,: | Has to be a value between 0 and 255. 0 means no blue, 255 means full blue.

Definition at line 274 of file SColor.h.

References color.

void irr::video::SColor::setData | ( | const void * | data,
|  | ECOLOR_FORMAT | format
| ) |  | `[inline]`

set the color by expecting data in the given format

Parameters:

  data,: | must point to valid memory containing color information in the given format
  format,: | tells the format in which data is available

Definition at line 378 of file SColor.h.

References irr::video::A1R5G5B5toA8R8G8B8(), color, irr::video::ECF_A1R5G5B5, irr::video::ECF_A8R8G8B8, irr::video::ECF_R5G6B5, irr::video::ECF_R8G8B8, and irr::video::R5G6B5toA8R8G8B8().

void irr::video::SColor::setGreen | ( | u32 | g | ) | `[inline]`

Sets the green component of the Color.

Parameters:

  g,: | Has to be a value between 0 and 255. 0 means no green, 255 means full green.

Definition at line 269 of file SColor.h.

References color.

void irr::video::SColor::setRed | ( | u32 | r | ) | `[inline]`

Sets the red component of the Color.

Parameters:

  r,: | Has to be a value between 0 and 255. 0 means no red, 255 means full red.

Definition at line 264 of file SColor.h.

References color.

u16 irr::video::SColor::toA1R5G5B5 | ( |  | ) | const`[inline]`

Calculates a 16 bit A1R5G5B5 value of this color.

Returns:
  16 bit A1R5G5B5 value of this color.

Definition at line 278 of file SColor.h.

References irr::video::A8R8G8B8toA1R5G5B5(), and color.

void irr::video::SColor::toOpenGLColor | ( | u8 * | dest | ) | const`[inline]`

Converts color to OpenGL color format.

From ARGB to RGBA in 4 byte components for endian aware passing to OpenGL

Parameters:

  dest,: | address where the 4x8 bit OpenGL color is stored.

Definition at line 284 of file SColor.h.

References getAlpha(), getBlue(), getGreen(), and getRed().

## Member Data Documentation

u32 irr::video::SColor::color

color in A8R8G8B8 Format

Definition at line 447 of file SColor.h.

Referenced by getAlpha(), getBlue(), getData(), getGreen(), getRed(), operator!=(), operator<(), operator==(), set(), setAlpha(), setBlue(), setData(), setGreen(), setRed(), and toA1R5G5B5().

The documentation for this class was generated from the following file:

- SColor.h