Blender V2.61 - r43446

DNA_lamp_types.h

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