most unused arg warnings corrected.
[blender.git] / source / blender / makesdna / DNA_lamp_types.h
1 /**
2  * blenlib/DNA_lamp_types.h (mar-2001 nzc)
3  *
4  * $Id$ 
5  *
6  * ***** BEGIN GPL LICENSE BLOCK *****
7  *
8  * This program is free software; you can redistribute it and/or
9  * modify it under the terms of the GNU General Public License
10  * as published by the Free Software Foundation; either version 2
11  * of the License, or (at your option) any later version.
12  *
13  * This program is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16  * GNU General Public License for more details.
17  *
18  * You should have received a copy of the GNU General Public License
19  * along with this program; if not, write to the Free Software Foundation,
20  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
21  *
22  * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
23  * All rights reserved.
24  *
25  * The Original Code is: all of this file.
26  *
27  * Contributor(s): none yet.
28  *
29  * ***** END GPL LICENSE BLOCK *****
30  */
31 #ifndef DNA_LAMP_TYPES_H
32 #define DNA_LAMP_TYPES_H
33
34 #include "DNA_ID.h"
35
36 #ifndef MAX_MTEX
37 #define MAX_MTEX        18
38 #endif
39
40 struct MTex;
41 struct CurveMapping;
42 struct AnimData;
43 struct Ipo;
44
45 typedef struct Lamp {
46         ID id;
47         struct AnimData *adt;   /* animation data (must be immediately after id for utilities to use it) */ 
48         
49         short type, flag;
50         int mode;
51         
52         short colormodel, totex;
53         float r, g, b, k;
54         float shdwr, shdwg, shdwb, shdwpad;
55         
56         float energy, dist, spotsize, spotblend;
57         float haint;
58         
59         
60         float att1, att2;       /* Quad1 and Quad2 attenuation */
61         struct CurveMapping *curfalloff;
62         short falloff_type;
63         short pad2;
64         
65         float clipsta, clipend, shadspotsize;
66         float bias, soft, compressthresh, pad5[3];
67         short bufsize, samp, buffers, filtertype;
68         char bufflag, buftype;
69         
70         short ray_samp, ray_sampy, ray_sampz;
71         short ray_samp_type;
72         short area_shape;
73         float area_size, area_sizey, area_sizez;
74         float adapt_thresh;
75         short ray_samp_method;
76         short pad1;
77         
78         /* texact is for buttons */
79         short texact, shadhalostep;
80         
81         /* sun/sky */
82         short sun_effect_type;
83         short skyblendtype;
84         float horizon_brightness;
85         float spread;
86         float sun_brightness;
87         float sun_size;
88         float backscattered_light;
89         float sun_intensity;
90         float atm_turbidity;
91         float atm_inscattering_factor;
92         float atm_extinction_factor;
93         float atm_distance_factor;
94         float skyblendfac;
95         float sky_exposure;
96         short sky_colorspace;
97         char pad4[6];
98
99         struct Ipo *ipo;                                // XXX depreceated... old animation system
100         struct MTex *mtex[18];                  /* MAX_MTEX */
101         short pr_texture;
102         char pad6[6];
103
104         /* preview */
105         struct PreviewImage *preview;
106 } Lamp;
107
108 /* **************** LAMP ********************* */
109
110 /* flag */
111 #define LA_DS_EXPAND    1
112         /* NOTE: this must have the same value as MA_DS_SHOW_TEXS, 
113          * otherwise anim-editors will not read correctly
114          */
115 #define LA_DS_SHOW_TEXS 4
116
117 /* type */
118 #define LA_LOCAL                0
119 #define LA_SUN                  1
120 #define LA_SPOT                 2
121 #define LA_HEMI                 3
122 #define LA_AREA                 4
123 /* yafray: extra lamp type used for caustic photonmap */
124 #define LA_YF_PHOTON    5
125
126 /* mode */
127 #define LA_SHAD_BUF             1
128 #define LA_HALO                 2
129 #define LA_LAYER                4
130 #define LA_QUAD                 8       /* no longer used */
131 #define LA_NEG                  16
132 #define LA_ONLYSHADOW   32
133 #define LA_SPHERE               64
134 #define LA_SQUARE               128
135 #define LA_TEXTURE              256
136 #define LA_OSATEX               512
137 /* #define LA_DEEP_SHADOW       1024 */ /* not used anywhere */
138 #define LA_NO_DIFF              2048
139 #define LA_NO_SPEC              4096
140 #define LA_SHAD_RAY             8192
141 /* yafray: lamp shadowbuffer flag, softlight */
142 /* Since it is used with LOCAL lamp, can't use LA_SHAD */
143 #define LA_YF_SOFT              16384
144 #define LA_LAYER_SHADOW 32768
145 #define LA_SHAD_TEX     (1<<16)
146 #define LA_SHOW_CONE    (1<<17)
147
148 /* layer_shadow */
149 #define LA_LAYER_SHADOW_BOTH    0
150 #define LA_LAYER_SHADOW_CAST    1
151 #define LA_LAYER_SHADOW_RECEIVE 2
152
153 /* sun effect type*/
154 #define LA_SUN_EFFECT_SKY                       1
155 #define LA_SUN_EFFECT_AP                        2
156
157 /* falloff_type */
158 #define LA_FALLOFF_CONSTANT             0
159 #define LA_FALLOFF_INVLINEAR            1
160 #define LA_FALLOFF_INVSQUARE    2
161 #define LA_FALLOFF_CURVE                3
162 #define LA_FALLOFF_SLIDERS              4
163
164
165 /* buftype, no flag */
166 #define LA_SHADBUF_REGULAR              0
167 #define LA_SHADBUF_IRREGULAR    1
168 #define LA_SHADBUF_HALFWAY              2
169 #define LA_SHADBUF_DEEP                 3
170
171 /* bufflag, auto clipping */
172 #define LA_SHADBUF_AUTO_START   1
173 #define LA_SHADBUF_AUTO_END             2
174
175 /* filtertype */
176 #define LA_SHADBUF_BOX          0
177 #define LA_SHADBUF_TENT         1
178 #define LA_SHADBUF_GAUSS        2
179
180 /* area shape */
181 #define LA_AREA_SQUARE  0
182 #define LA_AREA_RECT    1
183 #define LA_AREA_CUBE    2
184 #define LA_AREA_BOX             3
185
186 /* ray_samp_method */
187 #define LA_SAMP_CONSTANT                        0
188 #define LA_SAMP_HALTON                          1
189 #define LA_SAMP_HAMMERSLEY                      2
190
191
192 /* ray_samp_type */
193 #define LA_SAMP_ROUND   1
194 #define LA_SAMP_UMBRA   2
195 #define LA_SAMP_DITHER  4
196 #define LA_SAMP_JITTER  8
197
198 /* mapto */
199 #define LAMAP_COL               1
200 #define LAMAP_SHAD              2
201
202
203 #endif /* DNA_LAMP_TYPES_H */
204