Blender  V2.93
DNA_effect_types.h
Go to the documentation of this file.
1 /*
2  * This program is free software; you can redistribute it and/or
3  * modify it under the terms of the GNU General Public License
4  * as published by the Free Software Foundation; either version 2
5  * of the License, or (at your option) any later version.
6  *
7  * This program is distributed in the hope that it will be useful,
8  * but WITHOUT ANY WARRANTY; without even the implied warranty of
9  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10  * GNU General Public License for more details.
11  *
12  * You should have received a copy of the GNU General Public License
13  * along with this program; if not, write to the Free Software Foundation,
14  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
15  *
16  * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
17  * All rights reserved.
18  */
19 
24 #pragma once
25 
26 #ifdef __cplusplus
27 extern "C" {
28 #endif
29 
30 /* don't forget, new effects also in writefile.c for dna!!! */
31 
32 #define PAF_MAXMULT 4
33 
34 /* paf->flag (keep bit 0 free for compatibility) */
35 #define PAF_BSPLINE 2
36 #define PAF_STATIC 4
37 #define PAF_FACE 8
38 #define PAF_ANIMATED 16
39 /* show particles before they're emitted*/
40 #define PAF_UNBORN 32
41 /* emit only from faces*/
42 #define PAF_OFACE 64
43 /* show emitter (don't hide actual mesh)*/
44 #define PAF_SHOWE 128
45 /* true random emit from faces (not just ordered jitter)*/
46 #define PAF_TRAND 256
47 /* even distribution in face emission based on face areas*/
48 #define PAF_EDISTR 512
49 /*show particles after they've died*/
50 #define PAF_DIED 2048
51 
52 /*paf->flag2 for pos/neg paf->flag2neg*/
53 #define PAF_TEXTIME 1 /*texture timing*/
54 
55 /* eff->type */
56 #define EFF_BUILD 0
57 #define EFF_PARTICLE 1
58 #define EFF_WAVE 2
59 
60 /* eff->flag */
61 #define EFF_SELECT 1
62 
63 /* paf->stype */
64 #define PAF_NORMAL 0
65 #define PAF_VECT 1
66 
67 /* paf->texmap */
68 #define PAF_TEXINT 0
69 #define PAF_TEXRGB 1
70 #define PAF_TEXGRAD 2
71 
72 typedef struct Effect {
73  struct Effect *next, *prev;
74  short type, flag, buttype, rt;
75 
77 
78 typedef struct BuildEff {
79  struct BuildEff *next, *prev;
80  short type, flag, buttype, rt;
81 
82  float len, sfra;
83 
85 
86 #
87 #
88 typedef struct Particle {
89  float co[3], no[3];
90  float time, lifetime;
91  short mat_nr, rt;
93 
94 struct Collection;
95 
96 typedef struct PartEff {
97  struct PartEff *next, *prev;
99 
100  float sta, end, lifetime;
102 
104  float force[3];
105  float damp;
106 
108  char _pad[4];
109 
110  float mult[4], life[4];
111  short child[4], mat[4];
112  short texmap, curmult;
115 
117  char vgroupname[64], vgroupname_v[64];
119  float imat[4][4];
120 
122  struct Collection *group;
123 
125 
126 typedef struct WaveEff {
127  struct WaveEff *next, *prev;
128  short type, flag, buttype, stype;
129 
132 
134 
136 
137 #ifdef __cplusplus
138 }
139 #endif
struct WaveEff WaveEff
struct Effect Effect
struct PartEff PartEff
struct Particle Particle
struct BuildEff BuildEff
struct BuildEff * prev
struct BuildEff * next
short type
short flag
struct Effect * prev
struct Effect * next
short buttype
float vectsize
short vertgroup
short mat[4]
Particle * keys
char vgroupname_v[64]
short staticstep
struct PartEff * prev
struct PartEff * next
short buttype
float imat[4][4]
char _pad[4]
float defvec[3]
short speedtex
short vertgroup_v
short child[4]
short userjit
float force[3]
float mult[4]
float lifetime
float life[4]
char vgroupname[64]
struct Collection * group
float randlife
short flag2neg
float co[3]
float lifetime
float no[3]
float timeoffs
struct WaveEff * prev
float lifetime
struct WaveEff * next