openvrml::color_rgba Class Reference

#include <openvrml/basetypes.h>

List of all members.


Detailed Description

A color with alpha channel.

VRML color_rgbas are represented as four single-precision floating point components—red, green, blue, and alpha—ranging from 0.0 to 1.0. For the alpha channel, 1.0 is opaque.


Public Member Functions

 color_rgba () throw ()
 Construct.
 color_rgba (const float(&rgba)[4]) throw ()
 Construct from a 4-element float array.
 color_rgba (float r, float g, float b, float a=1.0f) throw ()
 Construct from red, green, and blue components.
const float & operator[] (size_t index) const throw ()
 Index-based component access.
float r () const throw ()
 Get the red component.
float g () const throw ()
 Get the green component.
float b () const throw ()
 Get the blue component.
float a () const throw ()
 Get the alpha component.
void r (float value) throw ()
 Set the red component.
void g (float value) throw ()
 Set the green component.
void b (float value) throw ()
 Set the blue component.
void a (float value) throw ()
 Set the alpha component.
void hsv (float(&result)[4]) const throw ()
 Get the color_rgba as hue, saturation, and value.
void hsv (float h, float s, float v, float a=1.0f) throw ()
 Set the color_rgba from hue, saturation, and value.

Private Attributes

float rgba [4]
 RGB triplet plus alpha.

Friends

std::istream & operator>> (std::istream &in, color_rgba &c)
 Stream input.

Related Functions

(Note that these are not member functions.)

bool operator== (const color_rgba &lhs, const color_rgba &rhs) throw()
 Compare for equality.
bool operator!= (const color_rgba &lhs, const color_rgba &rhs) throw()
 Compare for inequality.
std::ostream & operator<< (std::ostream &out, const color_rgba &c)
 Stream output.

Constructor & Destructor Documentation

openvrml::color_rgba::color_rgba (  )  throw ()

Construct.

openvrml::color_rgba::color_rgba ( const float &  rgba[4]  )  throw () [explicit]

Construct from a 4-element float array.

Parameters:
[in] rgba an array comprising red, green, and blue components.

openvrml::color_rgba::color_rgba ( float  r,
float  g,
float  b,
float  a = 1.0f 
) throw ()

Construct from red, green, and blue components.

Parameters:
[in] r red component.
[in] g green component.
[in] b blue component.
[in] a alpha component.


Member Function Documentation

const float & openvrml::color_rgba::operator[] ( size_t  index  )  const throw () [inline]

Index-based component access.

Parameters:
[in] index 0 is the red component, 1 is the green component, 2 is the blue component, and 3 is the alpha component.
Returns:
the component corresponding to index.

float openvrml::color_rgba::r (  )  const throw () [inline]

Get the red component.

Returns:
the red component.

float openvrml::color_rgba::g (  )  const throw () [inline]

Get the green component.

Returns:
the green component.

float openvrml::color_rgba::b (  )  const throw () [inline]

Get the blue component.

Returns:
the blue component.

float openvrml::color_rgba::a (  )  const throw () [inline]

Get the alpha component.

Returns:
the alpha component.

void openvrml::color_rgba::r ( float  value  )  throw () [inline]

Set the red component.

Parameters:
[in] value the new component value.

void openvrml::color_rgba::g ( float  value  )  throw () [inline]

Set the green component.

Parameters:
[in] value the new component value.

void openvrml::color_rgba::b ( float  value  )  throw () [inline]

Set the blue component.

Parameters:
[in] value the new component value.

void openvrml::color_rgba::a ( float  value  )  throw () [inline]

Set the alpha component.

Parameters:
[in] value the new component value.

void openvrml::color_rgba::hsv ( float &  result[4]  )  const throw ()

Get the color_rgba as hue, saturation, and value.

Parameters:
[out] result the hue, saturation, and value.

void openvrml::color_rgba::hsv ( float  h,
float  s,
float  v,
float  a = 1.0f 
) throw ()

Set the color_rgba from hue, saturation, and value.

Parameters:
[in] h hue.
[in] s saturation.
[in] v value.
[in] a alpha.


Friends And Related Function Documentation

std::istream& operator>> ( std::istream &  in,
color_rgba c 
) [friend]

Stream input.

Consistent with the VRML97 convention, commas (“,”) in the input are treated as whitespace.

If any of the color components are outside the the range [0.0, 1.0], the failbit will be set on in and c will be left in an arbitrary state.

Parameters:
[in,out] in input stream.
[out] c a color_rgba.
Returns:
in.

bool operator== ( const color_rgba lhs,
const color_rgba rhs 
) throw() [related]

Compare for equality.

Parameters:
[in] lhs left-hand operand.
[in] rhs right-hand operand.
Returns:
true if lhs and rhs have the same value; false otherwise.

bool operator!= ( const color_rgba lhs,
const color_rgba rhs 
) throw() [related]

Compare for inequality.

Parameters:
[in] lhs left-hand operand.
[in] rhs right-hand operand.
Returns:
true if lhs and rhs dot not have the same value; false otherwise.

std::ostream & operator<< ( std::ostream &  out,
const color_rgba c 
) [related]

Stream output.

Parameters:
[in,out] out output stream.
[in] c a color_rgba.
Returns:
out.


Member Data Documentation

float openvrml::color_rgba::rgba[4] [private]

RGB triplet plus alpha.

For internal use only.