diff options
Diffstat (limited to 'source/blender/makesdna/DNA_modifier_types.h')
-rw-r--r-- | source/blender/makesdna/DNA_modifier_types.h | 46 |
1 files changed, 45 insertions, 1 deletions
diff --git a/source/blender/makesdna/DNA_modifier_types.h b/source/blender/makesdna/DNA_modifier_types.h index b32b228fda4..1fc66b9b016 100644 --- a/source/blender/makesdna/DNA_modifier_types.h +++ b/source/blender/makesdna/DNA_modifier_types.h @@ -84,6 +84,7 @@ typedef enum ModifierType { eModifierType_Wireframe = 48, eModifierType_DataTransfer = 49, eModifierType_NormalEdit = 50, + eModifierType_CorrectiveSmooth = 51, NUM_MODIFIER_TYPES } ModifierType; @@ -430,10 +431,11 @@ typedef struct DecimateModifierData { float angle; /* (mode == MOD_DECIM_MODE_DISSOLVE) */ char defgrp_name[64]; /* MAX_VGROUP_NAME */ + float defgrp_factor; short flag, mode; /* runtime only */ - int face_count, pad2; + int face_count; } DecimateModifierData; enum { @@ -1288,6 +1290,48 @@ enum { MOD_LAPLACIANSMOOTH_NORMALIZED = (1 << 5), }; + +typedef struct CorrectiveSmoothModifierData { + ModifierData modifier; + + /* positions set during 'bind' operator + * use for MOD_CORRECTIVESMOOTH_RESTSOURCE_BIND */ + float (*bind_coords)[3]; + + /* note: -1 is used to bind */ + unsigned int bind_coords_num; + + float lambda; + short repeat, flag; + char smooth_type, rest_source; + char pad[2]; + + char defgrp_name[64]; /* MAX_VGROUP_NAME */ + + /* runtime-only cache (delta's between), + * delta's between the original positions and the smoothed positions */ + float (*delta_cache)[3]; + unsigned int delta_cache_num; + char pad2[4]; +} CorrectiveSmoothModifierData; + +enum { + MOD_CORRECTIVESMOOTH_SMOOTH_SIMPLE = 0, + MOD_CORRECTIVESMOOTH_SMOOTH_LENGTH_WEIGHT = 1, +}; + +enum { + MOD_CORRECTIVESMOOTH_RESTSOURCE_ORCO = 0, + MOD_CORRECTIVESMOOTH_RESTSOURCE_BIND = 1, +}; + +/* Corrective Smooth modifier flags */ +enum { + MOD_CORRECTIVESMOOTH_INVERT_VGROUP = (1 << 0), + MOD_CORRECTIVESMOOTH_ONLY_SMOOTH = (1 << 1), + MOD_CORRECTIVESMOOTH_PIN_BOUNDARY = (1 << 2), +}; + typedef struct UVWarpModifierData { ModifierData modifier; |