Claw  1.7.3
pixel.hpp
Go to the documentation of this file.
1 /*
2  CLAW - a C++ Library Absolutely Wonderful
3 
4  CLAW is a free library without any particular aim but being useful to
5  anyone.
6 
7  Copyright (C) 2005-2011 Julien Jorge
8 
9  This library is free software; you can redistribute it and/or
10  modify it under the terms of the GNU Lesser General Public
11  License as published by the Free Software Foundation; either
12  version 2.1 of the License, or (at your option) any later version.
13 
14  This library is distributed in the hope that it will be useful,
15  but WITHOUT ANY WARRANTY; without even the implied warranty of
16  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17  Lesser General Public License for more details.
18 
19  You should have received a copy of the GNU Lesser General Public
20  License along with this library; if not, write to the Free Software
21  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
22 
23  contact: julien.jorge@gamned.org
24 */
30 #ifndef __CLAW_PIXEL_HPP_
31 #define __CLAW_PIXEL_HPP_
32 
33 #include <string>
34 
35 namespace claw
36 {
37  namespace graphic
38  {
39  struct rgba_pixel;
40 
44  struct rgb_pixel
45  {
47  typedef unsigned char component_type;
48 
50  struct
51  {
54 
57 
60 
61  } components;
62 
63  public:
64  rgb_pixel();
66  rgb_pixel( const rgba_pixel& p );
67  explicit rgb_pixel( const std::string& c );
68 
69  bool operator==(const rgb_pixel& that) const;
70  bool operator==(const rgba_pixel& that) const;
71  bool operator!=(const rgb_pixel& that) const;
72  bool operator!=(const rgba_pixel& that) const;
73 
74  }; // struct rgb_pixel
75 
79  struct rgba_pixel
80  {
82  typedef unsigned char component_type;
83 
84  union
85  {
87  unsigned int pixel;
88 
90  struct
91  {
94 
97 
100 
103 
104  } components;
105  };
106 
107  public:
108  rgba_pixel();
109  rgba_pixel( const rgb_pixel& that );
111  component_type a );
112  explicit rgba_pixel( const std::string& c );
113 
114  rgba_pixel& operator=( const rgb_pixel& that );
115  bool operator==( const rgba_pixel& that ) const;
116  bool operator!=( const rgba_pixel& that ) const;
117 
118  component_type luminosity() const;
119 
120  }; // struct rgba_pixel
121 
124 
127 
134 
137 
139  extern rgba_pixel white_pixel;
140 
143 
146 
148  extern rgba_pixel red_pixel;
149 
151  extern rgba_pixel yellow_pixel;
152 
154  extern rgba_pixel magenta_pixel;
155 
158 
161  } // namespace graphic
162 } // namespace claw
163 
164 #endif // __CLAW_PIXEL_HPP__