openvrml::color Struct Reference

A POD-struct comprising a color. More...

#include <openvrml/basetypes.h>

List of all members.


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] index 0 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] value the new component value.

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

Set the green component.

Parameters:
[in] value the new component value.

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

Set the blue component.

Parameters:
[in] value the new component value.

void openvrml::color::hsv ( float(&)  result[3]  )  const throw ()

Get the color as hue, saturation, and value.

Parameters:
[out] result the 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] h hue.
[in] s saturation.
[in] v value.


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] rgb an 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] r red component.
[in] g green component.
[in] b blue component.
Returns:
a color.

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

Compare for inequality.

Parameters:
[in] lhs left-hand operand.
[in] rhs right-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] in input stream.
[out] c a color.
Returns:
in.

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

Stream output.

Parameters:
[in,out] out output stream.
[in] c a color.
Returns:
out.
Examples:
pretty_print.cpp.


Member Data Documentation

RGB triplet.