diff options
Diffstat (limited to 'source/blender/makesdna/DNA_modifier_types.h')
-rw-r--r-- | source/blender/makesdna/DNA_modifier_types.h | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/source/blender/makesdna/DNA_modifier_types.h b/source/blender/makesdna/DNA_modifier_types.h index 431fcb7a243..8bbc2493632 100644 --- a/source/blender/makesdna/DNA_modifier_types.h +++ b/source/blender/makesdna/DNA_modifier_types.h @@ -94,6 +94,10 @@ typedef enum ModifierType { eModifierType_WeightedNormal = 54, eModifierType_Weld = 55, eModifierType_Fluid = 56, + eModifierType_BParticles = 57, + eModifierType_BParticlesOutput = 58, + eModifierType_FunctionDeform = 59, + eModifierType_FunctionPoints = 60, NUM_MODIFIER_TYPES, } ModifierType; @@ -2116,6 +2120,68 @@ enum { #define MOD_MESHSEQ_READ_ALL \ (MOD_MESHSEQ_READ_VERT | MOD_MESHSEQ_READ_POLY | MOD_MESHSEQ_READ_UV | MOD_MESHSEQ_READ_COLOR) +typedef struct FunctionDeformModifierData { + ModifierData modifier; + float control1; + int control2; + struct bNodeTree *function_tree; +} FunctionDeformModifierData; + +typedef struct FunctionPointsModifierData { + ModifierData modifier; + float control1; + int control2; + struct bNodeTree *function_tree; +} FunctionPointsModifierData; + +typedef struct BParticlesAttributeCacheFloat { + char name[64]; + unsigned int floats_per_particle; + char _pad[4]; + float *values; +} BParticlesAttributeCacheFloat; + +typedef struct BParticlesTypeCache { + char name[64]; + unsigned int particle_amount; + + unsigned int num_attributes_float; + BParticlesAttributeCacheFloat *attributes_float; +} BParticlesTypeCache; + +typedef struct BParticlesFrameCache { + unsigned int num_particle_types; + float frame; + BParticlesTypeCache *particle_types; +} BParticlesFrameCache; + +typedef enum eBParticlesOutputType { + MOD_BPARTICLES_OUTPUT_POINTS, + MOD_BPARTICLES_OUTPUT_TETRAHEDONS, + MOD_BPARTICLES_OUTPUT_NONE, +} eBParticlesOutputType; + +typedef struct BParticlesModifierData { + ModifierData modifier; + + /* eBParticlesOutputType */ + unsigned int output_type; + + unsigned int num_cached_frames; + struct bNodeTree *node_tree; + BParticlesFrameCache *cached_frames; +} BParticlesModifierData; + +typedef struct BParticlesOutputModifierData { + ModifierData modifier; + struct Object *source_object; + char source_particle_system[64]; + + /* eBParticlesOutputType */ + unsigned int output_type; + char _pad[4]; +} BParticlesOutputModifierData; + #ifdef __cplusplus } #endif |