Class
List
Hierarchy
Modules
Common
Events
Math
Messages
Physics
Rendering
Sensors
Transport
Links
Gazebo Website
Wiki
Tutorials
Download
Report Documentation Issues
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
gazebo
common
Color.hh
Go to the documentation of this file.
1
/*
2
* Copyright (C) 2012-2014 Open Source Robotics Foundation
3
*
4
* Licensed under the Apache License, Version 2.0 (the "License");
5
* you may not use this file except in compliance with the License.
6
* You may obtain a copy of the License at
7
*
8
* http://www.apache.org/licenses/LICENSE-2.0
9
*
10
* Unless required by applicable law or agreed to in writing, software
11
* distributed under the License is distributed on an "AS IS" BASIS,
12
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
* See the License for the specific language governing permissions and
14
* limitations under the License.
15
*
16
*/
17
/* Desc: Color class
18
* Author: Nate Koenig
19
* Date: 08 May 2009
20
*/
21
22
#ifndef _GAZEBO_COLOR_HH_
23
#define _GAZEBO_COLOR_HH_
24
25
#include <iostream>
26
#include "
gazebo/common/CommonTypes.hh
"
27
#include "
gazebo/math/Vector3.hh
"
28
29
namespace
gazebo
30
{
31
namespace
common
32
{
35
38
class
Color
39
{
41
public
:
static
const
Color
White
;
43
public
:
static
const
Color
Black
;
45
public
:
static
const
Color
Red
;
47
public
:
static
const
Color
Green
;
49
public
:
static
const
Color
Blue
;
51
public
:
static
const
Color
Yellow
;
53
public
:
static
const
Color
Purple
;
54
57
public
:
typedef
unsigned
int
RGBA
;
58
61
public
:
typedef
unsigned
int
BGRA
;
62
65
public
:
typedef
unsigned
int
ARGB
;
66
69
public
:
typedef
unsigned
int
ABGR
;
70
72
public
:
Color
();
73
79
public
:
Color
(
float
_r,
float
_g,
float
_b,
float
_a = 1.0);
80
83
public
:
Color
(
const
Color
&_clr);
84
86
public
:
virtual
~Color
();
87
89
public
:
void
Reset
();
90
96
public
:
void
Set
(
float
_r = 1,
float
_g = 1 ,
float
_b = 1,
float
_a = 1);
97
100
public
:
math::Vector3
GetAsHSV
()
const
;
101
106
public
:
void
SetFromHSV
(
float
_h,
float
_s,
float
_v);
107
110
public
:
math::Vector3
GetAsYUV
()
const
;
111
116
public
:
void
SetFromYUV
(
float
_y,
float
_u,
float
_v);
117
121
public
:
Color
&
operator =
(
const
Color
&_pt);
122
126
public
:
float
operator[]
(
unsigned
int
_index);
127
130
public
:
RGBA
GetAsRGBA
()
const
;
131
134
public
:
BGRA
GetAsBGRA
()
const
;
135
138
public
:
ARGB
GetAsARGB
()
const
;
139
142
public
:
ABGR
GetAsABGR
()
const
;
143
144
147
public
:
void
SetFromRGBA
(
const
RGBA
_v);
148
151
public
:
void
SetFromBGRA
(
const
BGRA
_v);
152
155
public
:
void
SetFromARGB
(
const
ARGB
_v);
156
159
public
:
void
SetFromABGR
(
const
ABGR
_v);
160
164
public
:
Color
operator+
(
const
Color
&_pt)
const
;
165
169
public
:
Color
operator+
(
const
float
&_v)
const
;
170
174
public
:
const
Color
&
operator+=
(
const
Color
&_pt);
175
179
public
:
Color
operator-
(
const
Color
&_pt)
const
;
180
184
public
:
Color
operator-
(
const
float
&_v)
const
;
185
189
public
:
const
Color
&
operator-=
(
const
Color
&_pt);
190
194
public
:
const
Color
operator/
(
const
Color
&_pt)
const
;
195
199
public
:
const
Color
operator/
(
const
float
&_v)
const
;
200
204
public
:
const
Color
&
operator/=
(
const
Color
&_pt);
205
209
public
:
const
Color
operator*
(
const
Color
&_pt)
const
;
210
214
public
:
const
Color
operator*
(
const
float
&_v)
const
;
215
219
public
:
const
Color
&
operator*=
(
const
Color
&_pt);
220
224
public
:
bool
operator ==
(
const
Color
&_pt)
const
;
225
229
public
:
bool
operator!=
(
const
Color
&_pt)
const
;
230
232
private
:
void
Clamp();
233
238
public
:
friend
std::ostream &
operator<<
(std::ostream &_out,
239
const
Color
&_pt)
240
{
241
_out << _pt.
r
<<
" "
<< _pt.
g
<<
" "
<< _pt.
b
<<
" "
<< _pt.
a
;
242
return
_out;
243
}
244
248
public
:
friend
std::istream &
operator>>
(std::istream &_in,
Color
&_pt)
249
{
250
// Skip white spaces
251
_in.setf(std::ios_base::skipws);
252
_in >> _pt.
r
>> _pt.
g
>> _pt.
b
>> _pt.
a
;
253
return
_in;
254
}
255
256
// The values
257
public
:
float
r
,
g
,
b
,
a
;
258
};
260
}
261
}
262
#endif