Final merge of HEAD (bf-blender) into the orange branch.
[blender.git] / source / blender / makesdna / DNA_color_types.h
1 /**
2  *
3  * $Id$ 
4  *
5  * ***** BEGIN GPL LICENSE BLOCK *****
6  *
7  * This program is free software; you can redistribute it and/or
8  * modify it under the terms of the GNU General Public License
9  * as published by the Free Software Foundation; either version 2
10  * of the License, or (at your option) any later version.
11  *
12  * This program is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15  * GNU General Public License for more details.
16  *
17  * You should have received a copy of the GNU General Public License
18  * along with this program; if not, write to the Free Software Foundation,
19  * Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
20  *
21  * The Original Code is Copyright (C) 2006 Blender Foundation.
22  * All rights reserved.
23  *
24  * The Original Code is: all of this file.
25  *
26  * Contributor(s): none yet.
27  *
28  * ***** END GPL/BL DUAL LICENSE BLOCK *****
29  */
30 #ifndef DNA_COLOR_TYPES_H
31 #define DNA_COLOR_TYPES_H
32
33 #include "DNA_vec_types.h"
34
35 /* general defines for kernel functions */
36 #define CM_RESOL 32
37 #define CM_TABLE 256
38 #define CM_TABLEDIV             (1.0f/256.0f)
39
40 #define CM_TOT  4
41
42 typedef struct CurveMapPoint {
43         float x, y;
44         short flag, shorty;             /* shorty for result lookup */
45 } CurveMapPoint;
46
47 /* curvepoint->flag */
48 #define CUMA_SELECT             1
49 #define CUMA_VECTOR             2
50
51 typedef struct CurveMap {
52         short totpoint, flag;
53         
54         float range;                                    /* quick multiply value for reading table */
55         float mintable, maxtable;               /* the x-axis range for the table */
56         CurveMapPoint *curve;                   /* actual curve */
57         CurveMapPoint *table;                   /* display and evaluate table */
58         
59 } CurveMap;
60
61 typedef struct CurveMapping {
62         int flag, cur;                                  /* cur; for buttons, to show active curve */
63         
64         rctf curr, clipr;                               /* current rect, clip rect (is default rect too) */
65         
66         CurveMap cm[4];                                 /* max 4 builtin curves per mapping struct now */
67         float black[3], white[3];               /* black/white point */
68         float bwmul[3], padf;                   /* black/white point multiply value, for speed */
69 } CurveMapping;
70
71 /* cumap->flag */
72 #define CUMA_DO_CLIP                    1
73
74 #endif
75