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