Fawkes API  Fawkes Development Version
colormap.h
1 
2 /**************************************************************************
3  * colormap.h - colormap interface
4  *
5  * Created: Sat Mar 29 12:45:29 2008
6  * Copyright 2005-2008 Tim Niemueller [www.niemueller.de]
7  *
8  ***************************************************************************/
9 
10 /* This program is free software; you can redistribute it and/or modify
11  * it under the terms of the GNU General Public License as published by
12  * the Free Software Foundation; either version 2 of the License, or
13  * (at your option) any later version. A runtime exception applies to
14  * this software (see LICENSE.GPL_WRE file mentioned below for details).
15  *
16  * This program is distributed in the hope that it will be useful,
17  * but WITHOUT ANY WARRANTY; without even the implied warranty of
18  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19  * GNU Library General Public License for more details.
20  *
21  * Read the full text in the LICENSE.GPL_WRE file in the doc directory.
22  */
23 
24 #ifndef __FIREVISION_FVUTILS_COLORMAP_COLORMAP_H_
25 #define __FIREVISION_FVUTILS_COLORMAP_COLORMAP_H_
26 
27 #include <fvutils/base/types.h>
28 #include <sys/types.h>
29 #include <list>
30 
31 namespace firevision {
32 #if 0 /* just to make Emacs auto-indent happy */
33 }
34 #endif
35 
36 class ColormapFileBlock;
37 
38 class Colormap
39 {
40  public:
41  virtual ~Colormap();
42 
43  virtual color_t determine(unsigned int y, unsigned int u, unsigned int v) const = 0;
44  virtual void set(unsigned int y, unsigned int u, unsigned int v, color_t c) = 0;
45 
46  virtual void reset() = 0;
47  virtual void set(unsigned char *buffer) = 0;
48 
49  virtual size_t size() = 0;
50  virtual void to_image(unsigned char *yuv422_planar_buffer,
51  unsigned int level = 0);
52  virtual unsigned int image_height() const;
53  virtual unsigned int image_width() const;
54 
55  virtual unsigned char * get_buffer() const = 0;
56 
57  virtual Colormap & operator+=(const Colormap & cmlt) = 0;
58  virtual Colormap & operator+=(const char *filename) = 0;
59 
60  virtual unsigned int width() const = 0;
61  virtual unsigned int height() const = 0;
62  virtual unsigned int depth() const = 0;
63  virtual unsigned int deepness() const = 0;
64 
65  virtual std::list<ColormapFileBlock *> get_blocks() = 0;
66 };
67 
68 } // end namespace firevision
69 
70 #endif
virtual void to_image(unsigned char *yuv422_planar_buffer, unsigned int level=0)
Create image from LUT.
Definition: colormap.cpp:129
virtual unsigned int depth() const =0
Get depth of colormap.
Colormap interface.
Definition: colormap.h:38
virtual unsigned int height() const =0
Get height of colormap.
virtual std::list< ColormapFileBlock * > get_blocks()=0
Get file blocks for this colormap.
virtual ~Colormap()
Virtual empty destructor.
Definition: colormap.cpp:111
virtual color_t determine(unsigned int y, unsigned int u, unsigned int v) const =0
Determine color class for given YUV value.
virtual Colormap & operator+=(const Colormap &cmlt)=0
Adds the given colormap to this colormap.
virtual size_t size()=0
Size in bytes of buffer returned by get_buffer().
virtual unsigned int width() const =0
Get width of colormap.
virtual unsigned int deepness() const =0
Get deepness of colormap.
virtual unsigned char * get_buffer() const =0
Get the raw buffer of this colormap.
virtual unsigned int image_width() const
Width of conversion image.
Definition: colormap.cpp:176
virtual void reset()=0
Reset colormap.
virtual unsigned int image_height() const
Height of conversion image.
Definition: colormap.cpp:186