Coin Logo Coin3D is Free Software,
published under the BSD 3-clause license.
https://coin3d.github.io
https://www.kongsberg.com/en/kogt/
SbColor Class Reference

The SbColor class contains the red, green and blue components which make up a color value. More...

#include <Inventor/SbColor.h>

Inheritance diagram for SbColor:
SbVec3f

Public Member Functions

 SbColor (void)
 
 SbColor (const SbVec3f &v)
 
 SbColor (const float *const rgb)
 
 SbColor (const float r, const float g, const float b)
 
SbColorsetHSVValue (float h, float s, float v)
 
SbColorsetHSVValue (const float hsv[3])
 
void getHSVValue (float &h, float &s, float &v) const
 
void getHSVValue (float hsv[3]) const
 
SbColorsetPackedValue (const uint32_t rgba, float &transparency)
 
uint32_t getPackedValue (const float transparency=0.0f) const
 
- Public Member Functions inherited from SbVec3f
 SbVec3f (void)
 
 SbVec3f (const float v[3])
 
 SbVec3f (float x, float y, float z)
 
 SbVec3f (const SbVec3d &v)
 
 SbVec3f (const SbVec3b &v)
 
 SbVec3f (const SbVec3s &v)
 
 SbVec3f (const SbVec3i32 &v)
 
 SbVec3f (const SbPlane &p0, const SbPlane &p1, const SbPlane &p2)
 
SbVec3fsetValue (const float v[3])
 
SbVec3fsetValue (float x, float y, float z)
 
SbVec3fsetValue (const SbVec3f &barycentric, const SbVec3f &v0, const SbVec3f &v1, const SbVec3f &v2)
 
SbVec3fsetValue (const SbVec3d &v)
 
SbVec3fsetValue (const SbVec3b &v)
 
SbVec3fsetValue (const SbVec3s &v)
 
SbVec3fsetValue (const SbVec3i32 &v)
 
const float * getValue (void) const
 
void getValue (float &x, float &y, float &z) const
 
float & operator[] (int i)
 
const float & operator[] (int i) const
 
SbBool equals (const SbVec3f &v, float tolerance) const
 
SbVec3f cross (const SbVec3f &v) const
 
float dot (const SbVec3f &v) const
 
SbVec3f getClosestAxis (void) const
 
float length (void) const
 
float sqrLength (void) const
 
float normalize (void)
 
void negate (void)
 
SbVec3foperator*= (float d)
 
SbVec3foperator/= (float d)
 
SbVec3foperator+= (const SbVec3f &v)
 
SbVec3foperator-= (const SbVec3f &v)
 
SbVec3f operator- (void) const
 
SbString toString () const
 
SbBool fromString (const SbString &str)
 
void print (FILE *fp) const
 

Additional Inherited Members

- Protected Attributes inherited from SbVec3f
float vec [3]
 

Detailed Description

The SbColor class contains the red, green and blue components which make up a color value.

This class is used within other classes in Coin. It inherits the SbVec3f class, interpreting the 3 component vector as a vector in the RGB cube where the red, green and blue components corresponds to x, y and z respectively.

SbColor also adds a few extra methods for convenient handling of setting and getting color values as 32 bit packed values or as HSV values.

See also
SbVec3f, SbColor4f

Constructor & Destructor Documentation

◆ SbColor() [1/4]

SbColor::SbColor ( void  )

Default constructor. The color value will be uninitialized.

◆ SbColor() [2/4]

SbColor::SbColor ( const SbVec3f v)

Construct and initialize an SbColor with the red, green and blue values given by the v vector.

◆ SbColor() [3/4]

SbColor::SbColor ( const float *const  rgb)

Construct and initialize an SbColor with the red, green and blue taken from given rgb array.

◆ SbColor() [4/4]

SbColor::SbColor ( const float  r,
const float  g,
const float  b 
)

Construct and initialize an SbColor with the given red, green and blue values.

Member Function Documentation

◆ setHSVValue() [1/2]

SbColor & SbColor::setHSVValue ( float  hue,
float  saturation,
float  value 
)

Set the color as a hue, saturation, value triplet. The hue component should be normalized to within [0, 1] before you call this method, where a value of 0 corresponds to 0 degrees and a value of 1 corresponds to 360 degrees.

See also
getHSVValue().

◆ setHSVValue() [2/2]

SbColor & SbColor::setHSVValue ( const float  hsv[3])

Set the color as a hue, saturation, value triplet. The hue component should be normalized to within [0, 1] before you call this method, where a value of 0 corresponds to 0 degrees and a value of 1 corresponds to 360 degrees.

See also
getHSVValue().

◆ getHSVValue() [1/2]

void SbColor::getHSVValue ( float &  h,
float &  s,
float &  v 
) const

Return the color as a hue, saturation, value triplet.

See also
setHSVValue().

◆ getHSVValue() [2/2]

void SbColor::getHSVValue ( float  hsv[3]) const

Return the color as a hue, saturation, value triplet.

See also
setHSVValue().

◆ setPackedValue()

SbColor & SbColor::setPackedValue ( const uint32_t  rgba,
float &  transparency 
)

Set the color value as a 32 bit combined red/green/blue/alpha value. Each component is 8 bit wide (i.e. from 0x00 to 0xff), and the red value should be stored leftmost, like this: 0xRRGGBBAA.

The transparency value is not stored internally in SbColor, just converted to a transparency value in [0, 1] and returned in the transparency field. A value of 1.0 means completely transparent and a value of 0.0 is completely opaque.

See also
getPackedValue().

◆ getPackedValue()

uint32_t SbColor::getPackedValue ( const float  transparency = 0.0f) const

Return color as a 32 bit packed integer in the form 0xRRGGBBAA. The transparency part of the return value is taken from the supplied transparency argument.

See also
setPackedValue().

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