openvrml::color Struct Reference

A POD-struct comprising a color. 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.
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 hsv (float(&result)[3]) const throw ()
 Get the color as hue, saturation, and value.
void hsv (float h, float s, float v) throw ()
 Set the color from hue, saturation, and value.

Public Attributes

float rgb [3]
 RGB triplet.

Related Functions

(Note that these are not member functions.)

const openvrml::color make_color () throw()
 Create a zero-initialized color.
const openvrml::color make_color (const float(&rgb)[3]) throw()
 Create a color.
const openvrml::color make_color (const float r, const float g, const float b) throw()
 Create a color.
bool operator== (const color &lhs, const color &rhs) throw()
 Compare for equality.
bool operator!= (const color &lhs, const color &rhs) throw()
 Compare for inequality.
std::istream & operator>> (std::istream &in, color &c)
 Stream input.
std::ostream & operator<< (std::ostream &out, const color &c)
 Stream output.

Detailed Description

A POD-struct comprising a color.

VRML colors are represented as three single-precision floating point components—red, green, and blue—ranging from 0.0 to 1.0.

Member Function Documentation

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

Index-based component access.

Parameters
[in]index0 is the red component, 1 is the green component, and 2 is the blue component.
Returns
the component corresponding to index.
float openvrml::color::r ( ) const throw ()
inline

Get the red component.

Returns
the red component.
float openvrml::color::g ( ) const throw ()
inline

Get the green component.

Returns
the green component.
float openvrml::color::b ( ) const throw ()
inline

Get the blue component.

Returns
the blue component.
void openvrml::color::r ( float  value) throw ()
inline

Set the red component.

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

Set the green component.

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

Set the blue component.

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

Get the color as hue, saturation, and value.

Parameters
[out]resultthe hue, saturation, and value.
void openvrml::color::hsv ( float  h,
float  s,
float  v 
) throw ()

Set the color from hue, saturation, and value.

Parameters
[in]hhue.
[in]ssaturation.
[in]vvalue.

Friends And Related Function Documentation

const openvrml::color make_color ( ) throw()
related

Create a zero-initialized color.

Returns
a zero-initialized color.
const openvrml::color make_color ( const float(&)  rgb[3]) throw()
related

Create a color.

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

Parameters
[in]rgban array comprising red, green, and blue components.
Returns
a color.
const openvrml::color make_color ( const float  r,
const float  g,
const float  b 
) throw()
related

Create a color.

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.
Returns
a color.
bool operator== ( const color lhs,
const color 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 lhs,
const color rhs 
) throw()
related

Compare for inequality.

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

Stream output.

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

Member Data Documentation

float openvrml::color::rgb[3]

RGB triplet.