diff options
Diffstat (limited to 'source/blender/makesdna/DNA_modifier_types.h')
-rw-r--r-- | source/blender/makesdna/DNA_modifier_types.h | 47 |
1 files changed, 41 insertions, 6 deletions
diff --git a/source/blender/makesdna/DNA_modifier_types.h b/source/blender/makesdna/DNA_modifier_types.h index 99df51e9ec4..2c896e4893f 100644 --- a/source/blender/makesdna/DNA_modifier_types.h +++ b/source/blender/makesdna/DNA_modifier_types.h @@ -75,6 +75,7 @@ typedef enum ModifierType { eModifierType_DynamicPaint = 40, eModifierType_Remesh = 41, eModifierType_Skin = 42, + eModifierType_LaplacianSmooth = 43, NUM_MODIFIER_TYPES } ModifierType; @@ -348,7 +349,7 @@ typedef struct UVProjectModifierData { int flags; int num_projectors; float aspectx, aspecty; - float scalex, scaley; + float scalex, scaley; char uvlayer_name[64]; /* MAX_CUSTOMDATA_LAYER_NAME */ int uvlayer_tmp, pad; } UVProjectModifierData; @@ -361,10 +362,30 @@ typedef struct UVProjectModifierData { typedef struct DecimateModifierData { ModifierData modifier; - float percent; - int faceCount; + float percent; /* (mode == MOD_DECIM_MODE_COLLAPSE) */ + short iter; /* (mode == MOD_DECIM_MODE_UNSUBDIV) */ + short pad; + float angle; /* (mode == MOD_DECIM_MODE_DISSOLVE) */ + + char defgrp_name[64]; /* MAX_VGROUP_NAME */ + short flag, mode; + + /* runtime only */ + int face_count, pad2; } DecimateModifierData; +enum { + MOD_DECIM_FLAG_INVERT_VGROUP = (1 << 0), + MOD_DECIM_FLAG_TRIANGULATE = (1 << 1), /* for collapse only. dont convert tri pairs back to quads */ + MOD_DECIM_FLAG_ALL_BOUNDARY_VERTS = (1 << 2) /* for dissolve only. collapse all verts between 2 faces */ +}; + +enum { + MOD_DECIM_MODE_COLLAPSE, + MOD_DECIM_MODE_UNSUBDIV, + MOD_DECIM_MODE_DISSOLVE /* called planar in the UI */ +}; + /* Smooth modifier flags */ #define MOD_SMOOTH_X (1<<1) #define MOD_SMOOTH_Y (1<<2) @@ -644,7 +665,8 @@ typedef struct ShrinkwrapModifierData { float keepDist; /* distance offset to keep from mesh/projection point */ short shrinkType; /* shrink type projection */ short shrinkOpts; /* shrink options */ - char projAxis; /* axis to project over */ + float projLimit; /* limit the projection ray cast */ + char projAxis; /* axis to project over */ /* * if using projection over vertex normal this controls the @@ -653,7 +675,7 @@ typedef struct ShrinkwrapModifierData { */ char subsurfLevels; - char pad[6]; + char pad[2]; } ShrinkwrapModifierData; @@ -683,7 +705,7 @@ typedef struct SimpleDeformModifierData { struct Object *origin; /* object to control the origin of modifier space coordinates */ char vgroup_name[64]; /* optional vertexgroup name, MAX_VGROUP_NAME */ float factor; /* factors to control simple deforms */ - float limit[2]; /* lower and upper limit */ + float limit[2]; /* lower and upper limit */ char mode; /* deform function */ char axis; /* lock axis (for taper and strech) */ @@ -1092,4 +1114,17 @@ enum { MOD_SKIN_SMOOTH_SHADING = 1 }; +/* Smooth modifier flags */ +#define MOD_LAPLACIANSMOOTH_X (1<<1) +#define MOD_LAPLACIANSMOOTH_Y (1<<2) +#define MOD_LAPLACIANSMOOTH_Z (1<<3) +#define MOD_LAPLACIANSMOOTH_VOLUME_PRESERVATION (1<<4) + +typedef struct LaplacianSmoothModifierData { + ModifierData modifier; + float lambda, lambda_border, pad1; + char defgrp_name[64]; /* MAX_VGROUP_NAME */ + short flag, repeat; +} LaplacianSmoothModifierData; + #endif |