Refactor: combine insert_keyframe() and insert_key_rna() into a single function #122053
@ -860,11 +860,10 @@ CombinedKeyingResult insert_keyframes(Main *bmain,
|
||||
combined_result.add(SingleKeyingResult::CANNOT_RESOLVE_PATH);
|
||||
continue;
|
||||
}
|
||||
const std::optional<std::string> rna_path_id_to_prop = RNA_path_from_ID_to_property(&ptr,
|
||||
prop);
|
||||
|
||||
Vector<float> rna_values = get_keyframe_values(&ptr, prop, visual_keyframing);
|
||||
bool force_all;
|
||||
BitVector<> elements_to_key(rna_values.size(), false);
|
||||
bool force_all;
|
||||
|
||||
/* NOTE: this function call is complex with interesting effects. Of
|
||||
* particular note is that in addition to doing time remapping, it also:
|
||||
@ -883,6 +882,9 @@ CombinedKeyingResult insert_keyframes(Main *bmain,
|
||||
&force_all,
|
||||
elements_to_key);
|
||||
|
||||
const std::optional<std::string> rna_path_id_to_prop = RNA_path_from_ID_to_property(&ptr,
|
||||
prop);
|
||||
|
||||
/* Handle the `force_all` condition mentioned above, ensuring the
|
||||
* "all-or-nothing" behavior if needed. */
|
||||
nathanvegdahl marked this conversation as resolved
Outdated
|
||||
if (force_all && rna_values.size() > 0 &&
|
||||
|
Loading…
Reference in New Issue
Block a user
In what case would the action from the AnimData and the action we get from
id_action_ensure
not be the same?That's a great question. I'm not sure myself, but
insert_keyframe()
checked for this, so I'm keeping it in for now just in case. (At first I thought it might be related to the NLA, but IIRC if there's an NLA action for keying then it's temporarily stored as the animdata action anyway.) It's something I think we can probably investigate and remove later, but for now it's a "don't remove code you don't understand" kind of situation.Maybe add your findings as a comment then so it's easier to investigate later when we actually want to remove it.