improved intelligent keyframe cache invalidation

Some minor code cleanups and also implementing invalidation when removing or
moving a keyframe.
This commit is contained in:
itsmattkc
2019-12-27 03:26:27 +11:00
parent cc62c1edc9
commit e9663f953e
2 changed files with 82 additions and 35 deletions
+21
View File
@@ -21,6 +21,7 @@
#ifndef NODEINPUT_H
#define NODEINPUT_H
#include "common/timerange.h"
#include "keyframe.h"
#include "param.h"
@@ -194,6 +195,26 @@ private:
*/
bool is_using_standard_value() const;
/**
* @brief Intelligently determine how what time range is affected by a keyframe
*/
TimeRange get_range_affected_by_keyframe(NodeKeyframe *key) const;
/**
* @brief Gets a time range between the previous and next keyframes of index
*/
TimeRange get_range_around_index(int index) const;
/**
* @brief Convenience function - equivalent to calling `emit ValueChanged(range.in(), range.out())`
*/
void emit_time_range(const TimeRange& range);
/**
* @brief Convenience function - equivalent to calling `emit_time_range(get_range_affected_by_keyframe(key))`
*/
void emit_range_affected_by_keyframe(NodeKeyframe* key);
/**
* @brief Internal list of accepted data types
*