diff options
Diffstat (limited to 'source/blender/makesdna/DNA_modifier_types.h')
-rw-r--r-- | source/blender/makesdna/DNA_modifier_types.h | 30 |
1 files changed, 19 insertions, 11 deletions
diff --git a/source/blender/makesdna/DNA_modifier_types.h b/source/blender/makesdna/DNA_modifier_types.h index a023237d847..712958deca1 100644 --- a/source/blender/makesdna/DNA_modifier_types.h +++ b/source/blender/makesdna/DNA_modifier_types.h @@ -32,6 +32,9 @@ * (ONLY ADD NEW ITEMS AT THE END) */ +struct Mesh; +struct Scene; + typedef enum ModifierType { eModifierType_None = 0, eModifierType_Subsurf = 1, @@ -105,16 +108,20 @@ typedef struct ModifierData { struct ModifierData *next, *prev; int type, mode; - int stackindex, pad; + int stackindex; + short flag; + short pad; char name[64]; /* MAX_NAME */ - /* XXX for timing info set by caller... solve later? (ton) */ - struct Scene *scene; - char *error; } ModifierData; typedef enum { + /* This modifier has been inserted in local override, and hence can be fully edited. */ + eModifierFlag_StaticOverride_Local = (1 << 0), +} ModifierFlag; + +typedef enum { eSubsurfModifierFlag_Incremental = (1 << 0), eSubsurfModifierFlag_DebugIncr = (1 << 1), eSubsurfModifierFlag_ControlEdges = (1 << 2), @@ -419,8 +426,7 @@ typedef struct UVProjectModifierData { /* the objects which do the projecting */ struct Object *projectors[10]; /* MOD_UVPROJECT_MAXPROJECTORS */ - struct Image *image; /* the image to project */ - int flags; + int pad2; int num_projectors; float aspectx, aspecty; float scalex, scaley; @@ -599,7 +605,6 @@ typedef struct SoftbodyModifierData { typedef struct ClothModifierData { ModifierData modifier; - struct Scene *scene; /* the context, time etc is here */ struct Cloth *clothObject; /* The internal data structure for cloth. */ struct ClothSimSettings *sim_parms; /* definition is in DNA_cloth_types.h */ struct ClothCollSettings *coll_parms; /* definition is in DNA_cloth_types.h */ @@ -643,7 +648,7 @@ typedef struct SurfaceModifierData { struct MVert *x; /* old position */ struct MVert *v; /* velocity */ - struct DerivedMesh *dm; + struct Mesh *mesh; struct BVHTreeFromMesh *bvhtree; /* bounding volume hierarchy of the mesh faces */ @@ -712,7 +717,7 @@ typedef struct MeshDeformModifierData { float *bindcos; /* deprecated storage of cage coords */ /* runtime */ - void (*bindfunc)(struct Scene *scene, struct MeshDeformModifierData *mmd, struct DerivedMesh *cagedm, + void (*bindfunc)(struct Scene *scene, struct MeshDeformModifierData *mmd, struct Mesh *cagemesh, float *vertexcos, int totvert, float cagemat[4][4]); } MeshDeformModifierData; @@ -730,8 +735,8 @@ typedef struct ParticleSystemModifierData { ModifierData modifier; struct ParticleSystem *psys; - struct DerivedMesh *dm_final; /* Final DM - its topology may differ from orig mesh. */ - struct DerivedMesh *dm_deformed; /* Deformed-onle DM - its topology is same as orig mesh one. */ + struct Mesh *mesh_final; /* Final Mesh - its topology may differ from orig mesh. */ + struct Mesh *mesh_original; /* Original mesh that particles are attached to. */ int totdmvert, totdmedge, totdmface; short flag, pad; } ParticleSystemModifierData; @@ -1607,6 +1612,7 @@ typedef struct SDefVert { typedef struct SurfaceDeformModifierData { ModifierData modifier; + struct Depsgraph *depsgraph; struct Object *target; /* bind target object */ SDefVert *verts; /* vertex bind data */ float falloff; @@ -1617,7 +1623,9 @@ typedef struct SurfaceDeformModifierData { /* Surface Deform modifier flags */ enum { + /* This indicates "do bind on next modifier evaluation" as well as "is bound". */ MOD_SDEF_BIND = (1 << 0), + MOD_SDEF_USES_LOOPTRI = (1 << 1), MOD_SDEF_HAS_CONCAVE = (1 << 2), }; |