diff options
author | Campbell Barton <ideasman42@gmail.com> | 2010-01-26 20:07:47 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2010-01-26 20:07:47 +0300 |
commit | 246bcf48ade22aefd06cb9e5c0dbd4e0f5e68f3c (patch) | |
tree | d52d6a4846e80c7a37d95417c978dbe55a4b2789 /source/blender/blenkernel/BKE_deform.h | |
parent | e308fe9632b990ab2616d5ecc8402c945e15de3d (diff) |
weight panel editing now supports mirroring
- use mirror when the option is enabled in editmode.
- fliped group names are used when they exist.
- only the setting that is edited will be applied to the mirrored verts group.
- copy value is applied to all mirrored verts of the selection.
- normalize normalizes all vgroups and mirrors.
utility functions defvert_sync and defvert_sync_mapped, similar to defvert_copy but does not remove existing groups and optionally creates groups as needed.
defvert_sync_mapped uses a an int array for mapping the flipped values.
Diffstat (limited to 'source/blender/blenkernel/BKE_deform.h')
-rw-r--r-- | source/blender/blenkernel/BKE_deform.h | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/source/blender/blenkernel/BKE_deform.h b/source/blender/blenkernel/BKE_deform.h index 2e554246ff6..53844c1e6a5 100644 --- a/source/blender/blenkernel/BKE_deform.h +++ b/source/blender/blenkernel/BKE_deform.h @@ -42,16 +42,22 @@ struct MDeformVert; void defgroup_copy_list(struct ListBase *lb1, struct ListBase *lb2); struct bDeformGroup *defgroup_duplicate(struct bDeformGroup *ingroup); -struct bDeformGroup *defgroup_find_name(Object *ob, char *name); +struct bDeformGroup *defgroup_find_name(struct Object *ob, char *name); int defgroup_find_index(struct Object *ob, struct bDeformGroup *dg); -int *defgroup_flip_map(struct Object *ob); -int defgroup_name_index(Object *ob, const char *name); +int *defgroup_flip_map(struct Object *ob, int use_default); +int defgroup_flip_index(struct Object *ob, int index, int use_default); +int defgroup_name_index(struct Object *ob, const char *name); void defgroup_unique_name(struct bDeformGroup *dg, struct Object *ob); -float defvert_find_weight(const struct MDeformVert *dvert, int group_num); -float defvert_find_weight_safe(const struct MDeformVert *dvert, int index, int group_num); +struct MDeformWeight *defvert_find_index(const struct MDeformVert *dv, int defgroup); +struct MDeformWeight *defvert_verify_index(struct MDeformVert *dv, int defgroup); + +float defvert_find_weight(const struct MDeformVert *dvert, int group_num); +float defvert_array_find_weight_safe(const struct MDeformVert *dvert, int index, int group_num); void defvert_copy(struct MDeformVert *dvert_r, const struct MDeformVert *dvert); +void defvert_sync(struct MDeformVert *dvert_r, const struct MDeformVert *dvert, int use_verify); +void defvert_sync_mapped(struct MDeformVert *dvert_r, const struct MDeformVert *dvert, int *flip_map, int use_verify); void defvert_flip(struct MDeformVert *dvert, int *flip_map); void defvert_normalize(struct MDeformVert *dvert); |