openvrml::color_rgba Struct Reference

A POD-struct comprising a color with an alpha channel. More...

#include <openvrml/basetypes.h>

Public Member Functions

const float & operator[] (std::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.

Public Attributes

float rgba [4]
 RGB triplet plus alpha.

Related Functions

(Note that these are not member functions.)

const openvrml::color_rgba make_color_rgba () throw()
 Create a zero-initialized color_rgba.
const openvrml::color_rgba make_color_rgba (const float(&rgba)[4]) throw()
 Create a color_rgba.
const openvrml::color_rgba make_color_rgba (const float r, const float g, const float b, const float a) throw()
 Create a color_rgba.
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::istream & operator>> (std::istream &in, color_rgba &c)
 Stream input.
std::ostream & operator<< (std::ostream &out, const color_rgba &c)
 Stream output.

Detailed Description

A POD-struct comprising a color with an 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.

Member Function Documentation

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

Index-based component access.

Parameters
[in]index0 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]valuethe new component value.
void openvrml::color_rgba::g ( float  value) throw ()
inline

Set the green component.

Parameters
[in]valuethe new component value.
void openvrml::color_rgba::b ( float  value) throw ()
inline

Set the blue component.

Parameters
[in]valuethe new component value.
void openvrml::color_rgba::a ( float  value) throw ()
inline

Set the alpha component.

Parameters
[in]valuethe new component value.
void openvrml::color_rgba::hsv ( float(&)  result[4]) const throw ()

Get the color_rgba as hue, saturation, and value.

Parameters
[out]resultthe 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]hhue.
[in]ssaturation.
[in]vvalue.
[in]aalpha.

Friends And Related Function Documentation

const openvrml::color_rgba make_color_rgba ( ) throw()
related

Create a zero-initialized color_rgba.

Returns
a zero-initialized color_rgba.
const openvrml::color_rgba make_color_rgba ( const float(&)  rgba[4]) throw()
related

Create a color_rgba.

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Parameters
[in]rgbaan array comprising red, green, blue, and alpha components.
Returns
a color_rgba.
const openvrml::color_rgba make_color_rgba ( const float  r,
const float  g,
const float  b,
const float  a 
) throw()
related

Create a color_rgba.

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Parameters
[in]rred component.
[in]ggreen component.
[in]bblue component.
[in]aalpha component.
Returns
a color_rgba.
bool operator== ( const color_rgba lhs,
const color_rgba rhs 
) throw()
related

Compare for equality.

Parameters
[in]lhsleft-hand operand.
[in]rhsright-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]lhsleft-hand operand.
[in]rhsright-hand operand.
Returns
true if lhs and rhs dot not have the same value; false otherwise.
std::istream & operator>> ( std::istream &  in,
color_rgba c 
)
related

Stream input.

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

If any of the color components is 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]ininput stream.
[out]ca color_rgba.
Returns
in.
std::ostream & operator<< ( std::ostream &  out,
const color_rgba c 
)
related

Stream output.

Parameters
[in,out]outoutput stream.
[in]ca color_rgba.
Returns
out.

Member Data Documentation

float openvrml::color_rgba::rgba[4]

RGB triplet plus alpha.