Gazebo Math

API Reference

7.5.1
Color example

This tutorial explains how to use the Color class from Gazebo Math library.

Compile the code

Go to gz-math/examples and use cmake to compile the code:

git clone https://github.com/gazebosim/gz-math/ -b gz-math7
cd gz-math/examples
mkdir build
cd build
cmake ..
make

When the code is compiled, run:

./color_example

The ouput of the program:

The alpha value of a should be 1: 1
The RGBA value of a: 0.6 0.7 0.8 1
Check if a is Blue: 1
The RGB value of a should be (0, 0, 1): 0, 0, 1
The HSV value of a: 240 1 1
The RGBA value of a should be (0, 0, 1, 1): 0 0 1 1

Code

Create a color with the following RGBA value. The the alpha value is set default to 1.0:

gz::math::Color a = gz::math::Color(0.3f, 0.4f, 0.5f);

Change the value of a color via Set(). All values are set default to 1.0 if not specify.

a.gz::math::Color::Set(0.6f, 0.7f, 0.8f, 1.0f);

The ABGR, ARGB, BGRA, RGBA are 4 datatypes that allow you to set color from a 32-bit int. Take BGRA as an example:

// 0xFF0000FF is blue in BGRA. Convert it to RGBA.
gz::math::Color::BGRA blue = 0xFF0000FF;
a.gz::math::Color::SetFromBGRA(blue);

Color class overloads math operators including +, -, *, /, [], and ==.

std::cout << "Check if a is Blue: " << (a == gz::math::Color::Blue) << std::endl;
std::cout << "The RGB value of a should be (0, 0, 1): " << a[0] << ", "
<< a[1] << ", "
<< a[2] << std::endl;

You can also set or read a color in HSV.

// Initialize with HSV. (240, 1.0, 1.0) is blue in HSV.
a.gz::math::Color::SetFromHSV(240.0, 1.0, 1.0);
std::cout << "The HSV value of a: " << a.HSV() << std::endl;
std::cout << "The RGBA value of a should be (0, 0, 1, 1): " << a << std::endl;

There are more functions in Color. Take a look at the API