Blender  V2.59
DNA_effect_types.h
Go to the documentation of this file.
00001 /*
00002  * $Id: DNA_effect_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_EFFECT_TYPES_H
00030 #define DNA_EFFECT_TYPES_H
00031 
00036 /* don't forget, new effects also in writefile.c for dna!!! */
00037 
00038 #define PAF_MAXMULT             4
00039 
00040 /* paf->flag (keep bit 0 free for compatibility) */
00041 #define PAF_BSPLINE             2
00042 #define PAF_STATIC              4
00043 #define PAF_FACE                8
00044 #define PAF_ANIMATED    16
00045                 /* show particles before they're emitted*/
00046 #define PAF_UNBORN              32
00047                 /* emit only from faces*/
00048 #define PAF_OFACE               64
00049                 /* show emitter (don't hide actual mesh)*/
00050 #define PAF_SHOWE               128     
00051                 /* true random emit from faces (not just ordered jitter)*/
00052 #define PAF_TRAND               256
00053                 /* even distribution in face emission based on face areas*/
00054 #define PAF_EDISTR              512
00055                 /*show particles after they've died*/
00056 #define PAF_DIED                2048
00057 
00058 
00059 /*paf->flag2 for pos/neg paf->flag2neg*/
00060 #define PAF_TEXTIME             1       /*texture timing*/
00061 
00062         /* eff->type */
00063 #define EFF_BUILD               0
00064 #define EFF_PARTICLE    1
00065 #define EFF_WAVE                2
00066 
00067         /* eff->flag */
00068 #define EFF_SELECT              1
00069 
00070         /* paf->stype */
00071 #define PAF_NORMAL              0
00072 #define PAF_VECT                1
00073 
00074         /* paf->texmap */
00075 #define PAF_TEXINT              0
00076 #define PAF_TEXRGB              1
00077 #define PAF_TEXGRAD             2
00078 
00079 typedef struct Effect {
00080         struct Effect *next, *prev;
00081         short type, flag, buttype, rt;
00082         
00083 } Effect;
00084 
00085 typedef struct BuildEff {
00086         struct BuildEff *next, *prev;
00087         short type, flag, buttype, rt;
00088         
00089         float len, sfra;
00090         
00091 } BuildEff;
00092 
00093 #
00094 #
00095 typedef struct Particle {
00096         float co[3], no[3];
00097         float time, lifetime;
00098         short mat_nr, rt;
00099 } Particle;
00100 
00101 struct Group;
00102 
00103 typedef struct PartEff {
00104         struct PartEff *next, *prev;
00105         short type, flag, buttype, stype, vertgroup, userjit;
00106         
00107         float sta, end, lifetime;
00108         int totpart, totkey, seed;
00109         
00110         float normfac, obfac, randfac, texfac, randlife;
00111         float force[3];
00112         float damp;
00113         
00114         float nabla, vectsize, maxlen, pad, defvec[3];
00115         
00116         float mult[4], life[4];
00117         short child[4], mat[4];
00118         short texmap, curmult;
00119         short staticstep, omat, timetex, speedtex, flag2, flag2neg;
00120         short disp, vertgroup_v;
00121         
00122         char vgroupname[32], vgroupname_v[32];
00123         float imat[4][4];       /* inverse matrix of parent Object */
00124         
00125         Particle *keys;
00126         struct Group *group;
00127         
00128 } PartEff;
00129 
00130 
00131 typedef struct WaveEff {
00132         struct WaveEff *next, *prev;
00133         short type, flag, buttype, stype;
00134         
00135         float startx, starty, height, width;
00136         float narrow, speed, minfac, damp;
00137         
00138         float timeoffs, lifetime;
00139         
00140 } WaveEff;
00141 
00142 #endif
00143