|
Blender
V2.59
|
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