Fawkes API  Fawkes Development Version
mono_drawer.h
1 
2 /***************************************************************************
3  * mono_drawer.h - Drawer allows to draw arbitrarily in a buffer
4  *
5  * Generated: Wed Feb 08 20:30:00 2006
6  * Copyright 2005-2007 Tim Niemueller [www.niemueller.de]
7  * 2010 Bahram Maleki-Fard
8  *
9  ****************************************************************************/
10 
11 /* This program is free software; you can redistribute it and/or modify
12  * it under the terms of the GNU General Public License as published by
13  * the Free Software Foundation; either version 2 of the License, or
14  * (at your option) any later version. A runtime exception applies to
15  * this software (see LICENSE.GPL_WRE file mentioned below for details).
16  *
17  * This program is distributed in the hope that it will be useful,
18  * but WITHOUT ANY WARRANTY; without even the implied warranty of
19  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20  * GNU Library General Public License for more details.
21  *
22  * Read the full text in the LICENSE.GPL_WRE file in the doc directory.
23  */
24 
25 #ifndef __FIREVISION_FVUTILS_MONO_DRAWER_H_
26 #define __FIREVISION_FVUTILS_MONO_DRAWER_H_
27 
28 #include <fvutils/color/yuv.h>
29 
30 namespace firevision {
31 #if 0 /* just to make Emacs auto-indent happy */
32 }
33 #endif
34 
35 class MonoDrawer {
36 
37  public:
38  MonoDrawer();
39  ~MonoDrawer();
40 
41  void draw_circle(int center_x, int center_y, unsigned int radius);
42 
43  void draw_rectangle(unsigned int x, unsigned int y,
44  unsigned int w, unsigned int h);
45 
46  void draw_rectangle_inverted(unsigned int x, unsigned int y,
47  unsigned int w, unsigned int h);
48 
49  void draw_point(unsigned int x, unsigned int y);
50  void draw_line(unsigned int x_start, unsigned int y_start,
51  unsigned int x_end, unsigned int y_end);
52  void draw_cross(unsigned int x_center, unsigned int y_center, unsigned int width);
53 
54  void set_buffer(unsigned char *buffer,
55  unsigned int width, unsigned int height);
56 
57  void set_brightness(unsigned char b);
58  void set_overlap(bool o);
59 
60  private:
61  unsigned char *__buffer;
62  unsigned int __width;
63  unsigned int __height;
64  unsigned char __brightness;
65  bool __overlap;
66 
67 };
68 
69 } // end namespace firevision
70 
71 #endif
void set_buffer(unsigned char *buffer, unsigned int width, unsigned int height)
Set the buffer to draw to.
Definition: mono_drawer.cpp:71
void draw_circle(int center_x, int center_y, unsigned int radius)
Draw circle.
void set_overlap(bool o)
Enable/Disable transparency (overlapping pixels increase brightness).
Definition: mono_drawer.cpp:94
void draw_rectangle_inverted(unsigned int x, unsigned int y, unsigned int w, unsigned int h)
Draw inverted rectangle.
void draw_point(unsigned int x, unsigned int y)
Draw point.
void draw_cross(unsigned int x_center, unsigned int y_center, unsigned int width)
Draws a cross.
Draw to a monochrome image.
Definition: mono_drawer.h:35
void set_brightness(unsigned char b)
Set drawing brightness.
Definition: mono_drawer.cpp:84
MonoDrawer()
Constructor.
Definition: mono_drawer.cpp:52
void draw_line(unsigned int x_start, unsigned int y_start, unsigned int x_end, unsigned int y_end)
Draw line.
~MonoDrawer()
Destructor.
Definition: mono_drawer.cpp:60
void draw_rectangle(unsigned int x, unsigned int y, unsigned int w, unsigned int h)
Draw rectangle.