NLA: fix keyframes getting messed up when making strips longer. For drawing
and other operations the nla mapping would be applied to the curves, but not restored correctly. The unmap function was not the inverse of the map function, and it's not clear to me it's even possible to make it so due to repeat, so now the old coordinates are backed up in a list and then restored afterwards.
This commit is contained in:
@@ -453,7 +453,7 @@ void getcolor_fcurve_rainbow(int cur, int tot, float *out);
|
||||
struct AnimData *ANIM_nla_mapping_get(bAnimContext *ac, bAnimListElem *ale);
|
||||
|
||||
/* Apply/Unapply NLA mapping to all keyframes in the nominated F-Curve */
|
||||
void ANIM_nla_mapping_apply_fcurve(struct AnimData *adt, struct FCurve *fcu, short restore, short only_keys);
|
||||
void ANIM_nla_mapping_apply_fcurve(struct AnimData *adt, struct FCurve *fcu, short restore, short only_keys, ListBase *backup);
|
||||
|
||||
/* ..... */
|
||||
|
||||
|
||||
@@ -94,6 +94,7 @@ typedef struct BeztEditData {
|
||||
ListBase list; /* temp list for storing custom list of data to check */
|
||||
struct Scene *scene; /* pointer to current scene - many tools need access to cfra/etc. */
|
||||
void *data; /* pointer to custom data - usually 'Object' but also 'rectf', but could be other types too */
|
||||
void *data2; /* pointer to more custom data */
|
||||
float f1, f2; /* storage of times/values as 'decimals' */
|
||||
int i1, i2; /* storage of times/values/flags as 'whole' numbers */
|
||||
} BeztEditData;
|
||||
|
||||
Reference in New Issue
Block a user