diff options
author | Campbell Barton <ideasman42@gmail.com> | 2015-02-03 23:04:21 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2015-02-03 23:16:20 +0300 |
commit | c69458985cdb0cc1b388b81f61e5091c73461003 (patch) | |
tree | a6da9bba98ca516553b2c0af8c9755c72331e257 /source/blender/makesdna/DNA_modifier_types.h | |
parent | a66a54c06d414a7d70b8ad13f683b6f5e1874e68 (diff) |
Hook Modifier: add falloff & radius options
- Add falloff types & curves (matching warp-modifier)
- Add uniform scale option,
important when adding hooks to non-uniform scaled objects,
especially for use with lattice objects which can't avoid uneven scaling.
This uses relative transformation set when the hook is assigned,
when measuring the distances.
Diffstat (limited to 'source/blender/makesdna/DNA_modifier_types.h')
-rw-r--r-- | source/blender/makesdna/DNA_modifier_types.h | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/source/blender/makesdna/DNA_modifier_types.h b/source/blender/makesdna/DNA_modifier_types.h index 2d8c3b23da7..47273d3c713 100644 --- a/source/blender/makesdna/DNA_modifier_types.h +++ b/source/blender/makesdna/DNA_modifier_types.h @@ -535,16 +535,39 @@ typedef struct ArmatureModifierData { char defgrp_name[64]; /* MAX_VGROUP_NAME */ } ArmatureModifierData; +enum { + MOD_HOOK_UNIFORM_SPACE = (1 << 0), +}; + +/* same as WarpModifierFalloff */ +typedef enum { + eHook_Falloff_None = 0, + eHook_Falloff_Curve = 1, + eHook_Falloff_Sharp = 2, /* PROP_SHARP */ + eHook_Falloff_Smooth = 3, /* PROP_SMOOTH */ + eHook_Falloff_Root = 4, /* PROP_ROOT */ + eHook_Falloff_Linear = 5, /* PROP_LIN */ + eHook_Falloff_Const = 6, /* PROP_CONST */ + eHook_Falloff_Sphere = 7, /* PROP_SPHERE */ + eHook_Falloff_InvSquare = 8, /* PROP_INVSQUARE */ + /* PROP_RANDOM not used */ +} HookModifierFalloff; + typedef struct HookModifierData { ModifierData modifier; struct Object *object; char subtarget[64]; /* optional name of bone target, MAX_ID_NAME-2 */ + char flag; + char falloff_type; /* use enums from WarpModifier (exact same functionality) */ + char pad[6]; float parentinv[4][4]; /* matrix making current transform unmodified */ float cent[3]; /* visualization of hook */ float falloff; /* if not zero, falloff is distance where influence zero */ + struct CurveMapping *curfalloff; + int *indexar; /* if NULL, it's using vertexgroup */ int totindex; float force; |