tornavis/source/blender/makesdna/DNA_effect_types.h

141 lines
2.7 KiB
C

/* SPDX-FileCopyrightText: 2001-2002 NaN Holding BV. All rights reserved.
*
* SPDX-License-Identifier: GPL-2.0-or-later */
/** \file
* \ingroup DNA
*
* Types defined in this file are deprecated, converted into modifiers on load.
*/
#pragma once
/* Don't forget, new effects also in `writefile.cc` for DNA! */
/** #PartEff::flag. */
enum {
// PAF_UNUSED_0 = 1 << 0, /* DEPRECATED, dirty. */
PAF_BSPLINE = 1 << 1,
PAF_STATIC = 1 << 2,
PAF_FACE = 1 << 3,
PAF_ANIMATED = 1 << 4,
/** Show particles before they're emitted. */
PAF_UNBORN = 1 << 5,
/** Emit only from faces. */
PAF_OFACE = 1 << 6,
/** show emitter (don't hide actual mesh). */
PAF_SHOWE = 1 << 7,
/** True random emit from faces (not just ordered jitter). */
PAF_TRAND = 1 << 8,
/** even distribution in face emission based on face areas. */
PAF_EDISTR = 1 << 9,
/** Show particles after they've died. */
PAF_DIED = 1 << 11,
};
/** #PartEff::flag2, for pos/neg #PartEff::flag2neg. */
enum {
PAF_TEXTIME = 1, /* Texture timing. */
};
/** #PartEff::type. */
enum {
EFF_BUILD = 0,
EFF_PARTICLE = 1,
EFF_WAVE = 2,
};
/** #PartEff::flag. */
enum {
EFF_SELECT = 1,
};
/** #PartEff::stype. */
enum {
PAF_NORMAL = 0,
PAF_VECT = 1,
};
/** #PartEff::texmap. */
enum {
PAF_TEXINT = 0,
PAF_TEXRGB = 1,
PAF_TEXGRAD = 2,
};
typedef struct Effect {
struct Effect *next, *prev;
short type, flag, buttype;
char _pad0[2];
} Effect;
typedef struct BuildEff {
/* NOTE: match #Effect. */
struct BuildEff *next, *prev;
short type, flag, buttype;
/* End header. */
char _pad0[2];
float len, sfra;
} BuildEff;
#
#
typedef struct Particle {
float co[3], no[3];
float time, lifetime;
short mat_nr;
char _pad0[2];
} Particle;
struct Collection;
typedef struct PartEff {
/* NOTE: match #Effect. */
struct PartEff *next, *prev;
short type, flag, buttype;
/* End header. */
short stype, vertgroup, userjit;
float sta, end, lifetime;
int totpart, totkey, seed;
float normfac, obfac, randfac, texfac, randlife;
float force[3];
float damp;
float nabla, vectsize, maxlen, defvec[3];
char _pad[4];
float mult[4], life[4];
short child[4], mat[4];
short texmap, curmult;
short staticstep, omat, timetex, speedtex, flag2, flag2neg;
short disp, vertgroup_v;
/** MAX_VGROUP_NAME. */
char vgroupname[64], vgroupname_v[64];
/** Inverse matrix of parent Object. */
float imat[4][4];
Particle *keys;
struct Collection *group;
} PartEff;
typedef struct WaveEff {
/* NOTE: match #Effect. */
struct WaveEff *next, *prev;
short type, flag, buttype, stype;
/* End header. */
float startx, starty, height, width;
float narrow, speed, minfac, damp;
float timeoffs, lifetime;
} WaveEff;