synfig-core
1.0.3
Main Page
Related Pages
Namespaces
Classes
Files
File List
File Members
src
synfig
palette.h
Go to the documentation of this file.
1
/* === S Y N F I G ========================================================= */
21
/* ========================================================================= */
22
23
/* === S T A R T =========================================================== */
24
25
#ifndef __SYNFIG_PALETTE_H
26
#define __SYNFIG_PALETTE_H
27
28
/* === H E A D E R S ======================================================= */
29
30
#include "
color.h
"
31
#include "
string.h
"
32
#include <vector>
33
34
/* === M A C R O S ========================================================= */
35
36
/* === T Y P E D E F S ===================================================== */
37
38
/* === C L A S S E S & S T R U C T S ======================================= */
39
40
namespace
synfig {
41
42
class
Surface;
43
44
struct
PaletteItem
45
{
46
Color
color
;
47
String
name
;
48
int
weight
;
49
50
PaletteItem
():
weight
(1) { }
51
52
PaletteItem
(
const
Color
&
color
,
const
String
&
name
,
int
weight
=1):
53
color(color),name(name),
weight
(
weight
) { }
54
55
PaletteItem
(
const
Color
&
color
,
int
weight
=1):
56
color(color),
weight
(
weight
) { }
57
58
void
add
(
const
Color
& x,
int
weight
=1);
59
60
bool
operator<
(
const
PaletteItem
& rhs)
const
{
return
weight
<rhs.
weight
; }
61
};
// END of struct PaletteItem
62
63
class
Palette
:
public
std::vector<PaletteItem>
64
{
65
String
name_;
66
67
public
:
68
Palette
();
69
Palette
(
const
String
& name_);
70
74
Palette
(
const
Surface
& surface,
int
size=256);
75
76
iterator
find_closest
(
const
Color
& color,
float
* dist=0);
77
const_iterator
find_closest
(
const
Color
& color,
float
* dist=0)
const
;
78
79
iterator
find_heavy
();
80
81
iterator
find_light
();
82
83
static
Palette
grayscale
(
int
steps=16);
84
85
void
save_to_file
(
const
synfig::String
& filename)
const
;
86
87
static
Palette
load_from_file
(
const
synfig::String
& filename);
88
};
// END of class Palette
89
90
};
// END of namespace synfig
91
92
/* === E N D =============================================================== */
93
94
#endif
Generated on Mon Nov 16 2015 15:33:47 for synfig-core by
1.8.1.2