diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2019-09-20 13:48:28 +0300 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2019-09-25 15:40:05 +0300 |
commit | 4db2a08281f8495421938e0b2f6a802420afba36 (patch) | |
tree | bf5eed46c77864e47f50566a8ffa9162cc07670d /source/blender/editors/include | |
parent | c77a0d7dc62ee1b07ba50cdb3870ad5dbed3450a (diff) |
Motion paths: Refactor, make update range more explicit
Allows to have a higher versatility in the API.
Should be no functional changes.
Diffstat (limited to 'source/blender/editors/include')
-rw-r--r-- | source/blender/editors/include/ED_anim_api.h | 15 | ||||
-rw-r--r-- | source/blender/editors/include/ED_armature.h | 10 | ||||
-rw-r--r-- | source/blender/editors/include/ED_object.h | 10 |
3 files changed, 31 insertions, 4 deletions
diff --git a/source/blender/editors/include/ED_anim_api.h b/source/blender/editors/include/ED_anim_api.h index cb6c66ed795..c262f390dc6 100644 --- a/source/blender/editors/include/ED_anim_api.h +++ b/source/blender/editors/include/ED_anim_api.h @@ -834,12 +834,23 @@ void ED_drivers_editor_init(struct bContext *C, struct ScrArea *sa); /* ************************************************ */ +typedef enum eAnimvizCalcRange { + /* Update motion paths at the current frame only. */ + ANIMVIZ_CALC_RANGE_CURRENT_FRAME, + + /* Try to limit updates to a close neighborhood of the current frame. */ + ANIMVIZ_CALC_RANGE_CHANGED, + + /* Update an entire range of the motion paths. */ + ANIMVIZ_CALC_RANGE_FULL, +} eAnimvizCalcRange; + void animviz_calc_motionpaths(struct Depsgraph *depsgraph, struct Main *bmain, struct Scene *scene, ListBase *targets, - bool restore, - bool current_frame_only); + eAnimvizCalcRange range, + bool restore); void animviz_get_object_motionpaths(struct Object *ob, ListBase *targets); diff --git a/source/blender/editors/include/ED_armature.h b/source/blender/editors/include/ED_armature.h index 173ba65fc47..7ac42967dda 100644 --- a/source/blender/editors/include/ED_armature.h +++ b/source/blender/editors/include/ED_armature.h @@ -284,10 +284,18 @@ bool ED_pose_deselect_all_multi(struct bContext *C, int select_mode, const bool bool ED_pose_deselect_all(struct Object *ob, int select_mode, const bool ignore_visibility); void ED_pose_bone_select_tag_update(struct Object *ob); void ED_pose_bone_select(struct Object *ob, struct bPoseChannel *pchan, bool select); + +/* Corresponds to eAnimvizCalcRange. */ +typedef enum ePosePathCalcRange { + POSE_PATH_CALC_RANGE_CURRENT_FRAME, + POSE_PATH_CALC_RANGE_CHANGED, + POSE_PATH_CALC_RANGE_FULL, +} ePosePathCalcRange; void ED_pose_recalculate_paths(struct bContext *C, struct Scene *scene, struct Object *ob, - bool current_frame_only); + ePosePathCalcRange range); + struct Object *ED_pose_object_from_context(struct bContext *C); /* meshlaplacian.c */ diff --git a/source/blender/editors/include/ED_object.h b/source/blender/editors/include/ED_object.h index c481c19a552..38d75aa57e9 100644 --- a/source/blender/editors/include/ED_object.h +++ b/source/blender/editors/include/ED_object.h @@ -238,9 +238,17 @@ void ED_object_single_user(struct Main *bmain, struct Scene *scene, struct Objec /* object motion paths */ void ED_objects_clear_paths(struct bContext *C, bool only_selected); + +/* Corresponds to eAnimvizCalcRange. */ +typedef enum eObjectPathCalcRange { + OBJECT_PATH_CALC_RANGE_CURRENT_FRAME, + OBJECT_PATH_CALC_RANGE_CHANGED, + OBJECT_PATH_CALC_RANGE_FULL, +} eObjectPathCalcRange; + void ED_objects_recalculate_paths(struct bContext *C, struct Scene *scene, - bool current_frame_only); + eObjectPathCalcRange range); /* constraints */ struct ListBase *get_active_constraints(struct Object *ob); |