---
name: "SbColor"
section: "3"
platform: "linux"
package: "coin"
version: "1:4.0.10-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/SbColor"
---

# SbColor(3)

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

## NAME

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

## SYNOPSIS

\#include \<Inventor/SbColor.h\>

Inherits **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)\
 **SbColor** & **setHSVValue** (float h, float s, float v)\
 **SbColor** & **setHSVValue** (const float hsv\[3\])\
 void **getHSVValue** (float &h, float &s, float &v) const\
 void **getHSVValue** (float hsv\[3\]) const\
 **SbColor** & **setPackedValue** (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)\
 **SbVec3f** & **setValue** (const float v\[3\])\
 **SbVec3f** & **setValue** (float x, float y, float z)\
 **SbVec3f** & **setValue** (const **SbVec3f** &barycentric, const **SbVec3f** &v0, const **SbVec3f** &v1, const **SbVec3f** &v2)\
 **SbVec3f** & **setValue** (const **SbVec3d** &v)\
 **SbVec3f** & **setValue** (const **SbVec3b** &v)\
 **SbVec3f** & **setValue** (const **SbVec3s** &v)\
 **SbVec3f** & **setValue** (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)\
 **SbVec3f** & **operator\*=** (float d)\
 **SbVec3f** & **operator/=** (float d)\
 **SbVec3f** & **operator+=** (const **SbVec3f** &v)\
 **SbVec3f** & **operator-=** (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\]\

Related Symbols inherited from **SbVec3f** **SbVec3f** **operator\*** (const **SbVec3f** &v, float d)\
 **SbVec3f** **operator\*** (float d, const **SbVec3f** &v)\
 **SbVec3f** **operator/** (const **SbVec3f** &v, float d)\
 **SbVec3f** **operator+** (const **SbVec3f** &v1, const **SbVec3f** &v2)\
 **SbVec3f** **operator-** (const **SbVec3f** &v1, const **SbVec3f** &v2)\
 int **operator==** (const **SbVec3f** &v1, const **SbVec3f** &v2)\
 int **operator!=** (const **SbVec3f** &v1, const **SbVec3f** &v2)\

## 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::SbColor (void )

Default constructor. The color value will be uninitialized.

### SbColor::SbColor (const SbVec3f & v)

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

### SbColor::SbColor (const float \*const rgb)

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

### 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

### 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()**.

### 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()**.

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

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

**See also**

**setHSVValue()**.

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

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

**See also**

**setHSVValue()**.

### 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()**.

### 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()**.

## Author

Generated automatically by Doxygen for Coin from the source code.
