color.hpp
Go to the documentation of this file.
1 #ifndef _ASTRA_ROS_COLOR_HPP_
2 #define _ASTRA_ROS_COLOR_HPP_
3 
4 #include <cstdint>
5 
6 #include <std_msgs/ColorRGBA.h>
7 
8 namespace astra_ros
9 {
10  struct Rgba;
11  struct Rgb;
12  struct Hsv;
13 
18  struct Rgba
19  {
23  Rgba();
24 
32  Rgba(const float r, const float g, const float b, const float a);
33 
34  operator std_msgs::ColorRGBA () const noexcept;
35 
36  // Red [0.0 .. 1.0] (inclusive)
37  float r;
38  // Green [0.0 .. 1.0] (inclusive)
39  float g;
40  // Blue [0.0 .. 1.0] (inclusive)
41  float b;
42  // Alpha [0.0 .. 1.0] (inclusive)
43  float a;
44 
45  static const Rgba RED;
46  static const Rgba GREEN;
47  static const Rgba BLUE;
48  static const Rgba WHITE;
49  static const Rgba BLACK;
50  static const Rgba TRANSPARENT;
51 
52  static Rgba fromHsv(const Hsv &hsv);
53  static Rgba fromRgb(const Rgb &rgb);
54  static Rgba fromRgb(const Rgb &rgb, const float a);
55  };
56 
60  struct Rgb
61  {
62  Rgb();
63  Rgb(const float r, const float g, const float b);
64 
65  operator std_msgs::ColorRGBA () const noexcept;
66  operator Rgba () const noexcept;
67 
68  // Red [0.0 .. 1.0] (inclusive)
69  float r;
70  // Green [0.0 .. 1.0] (inclusive)
71  float g;
72  // Blue [0.0 .. 1.0] (inclusive)
73  float b;
74 
75  static const Rgb RED;
76  static const Rgb GREEN;
77  static const Rgb BLUE;
78  static const Rgb WHITE;
79  static const Rgb BLACK;
80 
81  Hsv toHsv() const;
82  Rgba toRgba() const;
83  Rgba toRgba(const float a) const;
84  static Rgb fromHsv(const Hsv &hsv);
85  };
86 
87 
88 
89  struct Hsv
90  {
91  Hsv();
92  Hsv(const float h, const float s, const float v);
93 
94  // Hue angle in degrees
95  float h;
96  // Saturation [0.0 .. 1.0] (inclusive)
97  float s;
98  // Value [0.0 .. 1.0] (inclusive)
99  float v;
100 
101  Rgb toRgb() const;
102  Rgba toRgba() const;
103  Rgba toRgba(const float a) const;
104  static Hsv fromRgb(const Rgb &rgb);
105  };
106 
110  Hsv indexColor(const std::size_t i);
111 }
112 
113 #endif
astra_ros::Rgb
Definition: color.hpp:60
astra_ros::indexColor
Hsv indexColor(const std::size_t i)
Definition: color.cpp:291
astra_ros::Rgba::a
float a
Definition: color.hpp:43
astra_ros::Rgb::fromHsv
static Rgb fromHsv(const Hsv &hsv)
Definition: color.cpp:252
astra_ros::Rgb::WHITE
static const Rgb WHITE
Definition: color.hpp:78
astra_ros::Hsv::fromRgb
static Hsv fromRgb(const Rgb &rgb)
Definition: color.cpp:286
astra_ros::Rgb::g
float g
Definition: color.hpp:71
astra_ros::Rgb::toRgba
Rgba toRgba() const
Definition: color.cpp:242
astra_ros::Rgb::r
float r
Definition: color.hpp:69
astra_ros::Hsv::toRgba
Rgba toRgba() const
Definition: color.cpp:276
astra_ros::Hsv
Definition: color.hpp:89
astra_ros::Rgba::TRANSPARENT
static const Rgba TRANSPARENT
Definition: color.hpp:50
astra_ros::Rgba::fromRgb
static Rgba fromRgb(const Rgb &rgb)
Definition: color.cpp:182
astra_ros::Rgba::RED
static const Rgba RED
Definition: color.hpp:45
astra_ros::Rgba::g
float g
Definition: color.hpp:39
astra_ros::Hsv::h
float h
Definition: color.hpp:95
astra_ros::Rgba::GREEN
static const Rgba GREEN
Definition: color.hpp:46
astra_ros::Rgb::BLUE
static const Rgb BLUE
Definition: color.hpp:77
astra_ros::Rgba::Rgba
Rgba()
Definition: color.cpp:150
astra_ros::Rgba
A RGB color with alpha component.
Definition: color.hpp:18
astra_ros::Rgba::fromHsv
static Rgba fromHsv(const Hsv &hsv)
Definition: color.cpp:197
astra_ros::Hsv::v
float v
Definition: color.hpp:99
astra_ros::Rgba::BLUE
static const Rgba BLUE
Definition: color.hpp:47
astra_ros::Hsv::toRgb
Rgb toRgb() const
Definition: color.cpp:271
astra_ros::Rgb::RED
static const Rgb RED
Definition: color.hpp:75
astra_ros::Rgb::Rgb
Rgb()
Definition: color.cpp:202
astra_ros::Hsv::Hsv
Hsv()
Definition: color.cpp:257
astra_ros::Rgba::r
float r
Definition: color.hpp:37
astra_ros::Rgba::WHITE
static const Rgba WHITE
Definition: color.hpp:48
astra_ros::Rgb::b
float b
Definition: color.hpp:73
astra_ros::Rgba::BLACK
static const Rgba BLACK
Definition: color.hpp:49
astra_ros::Hsv::s
float s
Definition: color.hpp:97
astra_ros::Rgb::toHsv
Hsv toHsv() const
Definition: color.cpp:237
astra_ros::Rgb::GREEN
static const Rgb GREEN
Definition: color.hpp:76
astra_ros::Rgb::BLACK
static const Rgb BLACK
Definition: color.hpp:79
astra_ros::Rgba::b
float b
Definition: color.hpp:41
astra_ros
Definition: Device.hpp:14


astra_ros
Author(s): Braden McDorman
autogenerated on Wed Mar 2 2022 00:53:06