Blender  V2.59
DNA_lamp_types.h
Go to the documentation of this file.
00001 /*
00002  * $Id: DNA_lamp_types.h 34941 2011-02-17 20:48:12Z jesterking $ 
00003  *
00004  * ***** BEGIN GPL LICENSE BLOCK *****
00005  *
00006  * This program is free software; you can redistribute it and/or
00007  * modify it under the terms of the GNU General Public License
00008  * as published by the Free Software Foundation; either version 2
00009  * of the License, or (at your option) any later version.
00010  *
00011  * This program is distributed in the hope that it will be useful,
00012  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00013  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00014  * GNU General Public License for more details.
00015  *
00016  * You should have received a copy of the GNU General Public License
00017  * along with this program; if not, write to the Free Software Foundation,
00018  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
00019  *
00020  * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
00021  * All rights reserved.
00022  *
00023  * The Original Code is: all of this file.
00024  *
00025  * Contributor(s): none yet.
00026  *
00027  * ***** END GPL LICENSE BLOCK *****
00028  */
00029 #ifndef DNA_LAMP_TYPES_H
00030 #define DNA_LAMP_TYPES_H
00031 
00036 #include "DNA_ID.h"
00037 
00038 #ifndef MAX_MTEX
00039 #define MAX_MTEX        18
00040 #endif
00041 
00042 struct MTex;
00043 struct CurveMapping;
00044 struct AnimData;
00045 struct Ipo;
00046 
00047 typedef struct Lamp {
00048         ID id;
00049         struct AnimData *adt;   /* animation data (must be immediately after id for utilities to use it) */ 
00050         
00051         short type, flag;
00052         int mode;
00053         
00054         short colormodel, totex;
00055         float r, g, b, k;
00056         float shdwr, shdwg, shdwb, shdwpad;
00057         
00058         float energy, dist, spotsize, spotblend;
00059         float haint;
00060         
00061         
00062         float att1, att2;       /* Quad1 and Quad2 attenuation */
00063         struct CurveMapping *curfalloff;
00064         short falloff_type;
00065         short pad2;
00066         
00067         float clipsta, clipend, shadspotsize;
00068         float bias, soft, compressthresh, pad5[3];
00069         short bufsize, samp, buffers, filtertype;
00070         char bufflag, buftype;
00071         
00072         short ray_samp, ray_sampy, ray_sampz;
00073         short ray_samp_type;
00074         short area_shape;
00075         float area_size, area_sizey, area_sizez;
00076         float adapt_thresh;
00077         short ray_samp_method;
00078         short pad1;
00079         
00080         /* texact is for buttons */
00081         short texact, shadhalostep;
00082         
00083         /* sun/sky */
00084         short sun_effect_type;
00085         short skyblendtype;
00086         float horizon_brightness;
00087         float spread;
00088         float sun_brightness;
00089         float sun_size;
00090         float backscattered_light;
00091         float sun_intensity;
00092         float atm_turbidity;
00093         float atm_inscattering_factor;
00094         float atm_extinction_factor;
00095         float atm_distance_factor;
00096         float skyblendfac;
00097         float sky_exposure;
00098         short sky_colorspace;
00099         char pad4[6];
00100 
00101         struct Ipo *ipo;                                // XXX depreceated... old animation system
00102         struct MTex *mtex[18];                  /* MAX_MTEX */
00103         short pr_texture;
00104         char pad6[6];
00105 
00106         /* preview */
00107         struct PreviewImage *preview;
00108 } Lamp;
00109 
00110 /* **************** LAMP ********************* */
00111 
00112 /* flag */
00113 #define LA_DS_EXPAND    1
00114         /* NOTE: this must have the same value as MA_DS_SHOW_TEXS, 
00115          * otherwise anim-editors will not read correctly
00116          */
00117 #define LA_DS_SHOW_TEXS 4
00118 
00119 /* type */
00120 #define LA_LOCAL                0
00121 #define LA_SUN                  1
00122 #define LA_SPOT                 2
00123 #define LA_HEMI                 3
00124 #define LA_AREA                 4
00125 /* yafray: extra lamp type used for caustic photonmap */
00126 #define LA_YF_PHOTON    5
00127 
00128 /* mode */
00129 #define LA_SHAD_BUF             1
00130 #define LA_HALO                 2
00131 #define LA_LAYER                4
00132 #define LA_QUAD                 8       /* no longer used */
00133 #define LA_NEG                  16
00134 #define LA_ONLYSHADOW   32
00135 #define LA_SPHERE               64
00136 #define LA_SQUARE               128
00137 #define LA_TEXTURE              256
00138 #define LA_OSATEX               512
00139 /* #define LA_DEEP_SHADOW       1024 */ /* not used anywhere */
00140 #define LA_NO_DIFF              2048
00141 #define LA_NO_SPEC              4096
00142 #define LA_SHAD_RAY             8192
00143 /* yafray: lamp shadowbuffer flag, softlight */
00144 /* Since it is used with LOCAL lamp, can't use LA_SHAD */
00145 /* #define LA_YF_SOFT           16384 */ /* no longer used */
00146 #define LA_LAYER_SHADOW 32768
00147 #define LA_SHAD_TEX     (1<<16)
00148 #define LA_SHOW_CONE    (1<<17)
00149 
00150 /* layer_shadow */
00151 #define LA_LAYER_SHADOW_BOTH    0
00152 #define LA_LAYER_SHADOW_CAST    1
00153 #define LA_LAYER_SHADOW_RECEIVE 2
00154 
00155 /* sun effect type*/
00156 #define LA_SUN_EFFECT_SKY                       1
00157 #define LA_SUN_EFFECT_AP                        2
00158 
00159 /* falloff_type */
00160 #define LA_FALLOFF_CONSTANT             0
00161 #define LA_FALLOFF_INVLINEAR            1
00162 #define LA_FALLOFF_INVSQUARE    2
00163 #define LA_FALLOFF_CURVE                3
00164 #define LA_FALLOFF_SLIDERS              4
00165 
00166 
00167 /* buftype, no flag */
00168 #define LA_SHADBUF_REGULAR              0
00169 #define LA_SHADBUF_IRREGULAR    1
00170 #define LA_SHADBUF_HALFWAY              2
00171 #define LA_SHADBUF_DEEP                 3
00172 
00173 /* bufflag, auto clipping */
00174 #define LA_SHADBUF_AUTO_START   1
00175 #define LA_SHADBUF_AUTO_END             2
00176 
00177 /* filtertype */
00178 #define LA_SHADBUF_BOX          0
00179 #define LA_SHADBUF_TENT         1
00180 #define LA_SHADBUF_GAUSS        2
00181 
00182 /* area shape */
00183 #define LA_AREA_SQUARE  0
00184 #define LA_AREA_RECT    1
00185 #define LA_AREA_CUBE    2
00186 #define LA_AREA_BOX             3
00187 
00188 /* ray_samp_method */
00189 #define LA_SAMP_CONSTANT                        0
00190 #define LA_SAMP_HALTON                          1
00191 #define LA_SAMP_HAMMERSLEY                      2
00192 
00193 
00194 /* ray_samp_type */
00195 #define LA_SAMP_ROUND   1
00196 #define LA_SAMP_UMBRA   2
00197 #define LA_SAMP_DITHER  4
00198 #define LA_SAMP_JITTER  8
00199 
00200 /* mapto */
00201 #define LAMAP_COL               1
00202 #define LAMAP_SHAD              2
00203 
00204 
00205 #endif /* DNA_LAMP_TYPES_H */
00206