Blender  V3.3
DNA_effect_types.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: GPL-2.0-or-later
2  * Copyright 2001-2002 NaN Holding BV. All rights reserved. */
3 
8 #pragma once
9 
10 #ifdef __cplusplus
11 extern "C" {
12 #endif
13 
14 /* Don't forget, new effects also in `writefile.c` for DNA! */
15 
16 #define PAF_MAXMULT 4
17 
18 /* paf->flag (keep bit 0 free for compatibility). */
19 #define PAF_BSPLINE 2
20 #define PAF_STATIC 4
21 #define PAF_FACE 8
22 #define PAF_ANIMATED 16
23 /* show particles before they're emitted. */
24 #define PAF_UNBORN 32
25 /* Emit only from faces. */
26 #define PAF_OFACE 64
27 /* show emitter (don't hide actual mesh). */
28 #define PAF_SHOWE 128
29 /* true random emit from faces (not just ordered jitter). */
30 #define PAF_TRAND 256
31 /* even distribution in face emission based on face areas. */
32 #define PAF_EDISTR 512
33 /* Show particles after they've died. */
34 #define PAF_DIED 2048
35 
36 /* `paf->flag2` for pos/neg `paf->flag2neg`. */
37 #define PAF_TEXTIME 1 /* Texture timing. */
38 
39 /* eff->type */
40 #define EFF_BUILD 0
41 #define EFF_PARTICLE 1
42 #define EFF_WAVE 2
43 
44 /* eff->flag */
45 #define EFF_SELECT 1
46 
47 /* paf->stype */
48 #define PAF_NORMAL 0
49 #define PAF_VECT 1
50 
51 /* paf->texmap */
52 #define PAF_TEXINT 0
53 #define PAF_TEXRGB 1
54 #define PAF_TEXGRAD 2
55 
56 typedef struct Effect {
57  struct Effect *next, *prev;
58  short type, flag, buttype;
59  char _pad0[2];
60 
62 
63 typedef struct BuildEff {
64  struct BuildEff *next, *prev;
65  short type, flag, buttype;
66  char _pad0[2];
67 
68  float len, sfra;
69 
71 
72 #
73 #
74 typedef struct Particle {
75  float co[3], no[3];
76  float time, lifetime;
77  short mat_nr;
78  char _pad0[2];
80 
81 struct Collection;
82 
83 typedef struct PartEff {
84  struct PartEff *next, *prev;
86 
87  float sta, end, lifetime;
89 
91  float force[3];
92  float damp;
93 
94  float nabla, vectsize, maxlen, defvec[3];
95  char _pad[4];
96 
97  float mult[4], life[4];
98  short child[4], mat[4];
99  short texmap, curmult;
102 
104  char vgroupname[64], vgroupname_v[64];
106  float imat[4][4];
107 
109  struct Collection *group;
110 
112 
113 typedef struct WaveEff {
114  struct WaveEff *next, *prev;
115  short type, flag, buttype, stype;
116 
119 
121 
123 
124 #ifdef __cplusplus
125 }
126 #endif
struct WaveEff WaveEff
struct Effect Effect
struct PartEff PartEff
struct Particle Particle
struct BuildEff BuildEff
struct BuildEff * prev
struct BuildEff * next
char _pad0[2]
short type
char _pad0[2]
short flag
struct Effect * prev
struct Effect * next
short buttype
float vectsize
short vertgroup
short mat[4]
Particle * keys
short texmap
char vgroupname_v[64]
short staticstep
struct PartEff * prev
float maxlen
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]
short curmult
float normfac
float texfac
float randfac
char vgroupname[64]
struct Collection * group
float randlife
short flag2neg
char _pad0[2]
float co[3]
float lifetime
float no[3]
float timeoffs
struct WaveEff * prev
float lifetime
struct WaveEff * next