void FRichCurve::SetKeyTangentWeightMode(FKeyHandle KeyHandle, ERichCurveTangentWeightMode NewTangentWeightMode) { if (!IsKeyHandleValid(KeyHandle)) {return;} GetKey(KeyHandle).TangentWeightMode = NewTangentWeightMode; AutoSetTangents(); }
void FRichCurve::SetKeyInterpMode(FKeyHandle KeyHandle, ERichCurveInterpMode NewInterpMode) { if (!IsKeyHandleValid(KeyHandle)) {return;} GetKey(KeyHandle).InterpMode = NewInterpMode; AutoSetTangents(); }
ERichCurveTangentMode FRichCurve::GetKeyTangentMode(FKeyHandle KeyHandle) const { if (!IsKeyHandleValid(KeyHandle)) { return RCTM_Auto; } return GetKey(KeyHandle).TangentMode; }
ERichCurveInterpMode FRichCurve::GetKeyInterpMode(FKeyHandle KeyHandle) const { if (!IsKeyHandleValid(KeyHandle)) { return RCIM_Linear; } return GetKey(KeyHandle).InterpMode; }
float FRichCurve::GetKeyValue(FKeyHandle KeyHandle) const { if (!IsKeyHandleValid(KeyHandle)) { return 0.f; } return GetKey(KeyHandle).Value; }
float FNameCurve::GetKeyTime(FKeyHandle KeyHandle) const { if (!IsKeyHandleValid(KeyHandle)) { return 0.f; } return GetKey(KeyHandle).Time; }
void FRichCurve::SetKeyValue(FKeyHandle KeyHandle, float NewValue, bool bAutoSetTangents) { if (!IsKeyHandleValid(KeyHandle)) {return;} GetKey(KeyHandle).Value = NewValue; if ( bAutoSetTangents ) { AutoSetTangents(); } }
FKeyHandle FRichCurve::SetKeyTime( FKeyHandle KeyHandle, float NewTime ) { if (!IsKeyHandleValid(KeyHandle)) {return KeyHandle;} FRichCurveKey OldKey = GetKey(KeyHandle); DeleteKey(KeyHandle); AddKey(NewTime, OldKey.Value, false, KeyHandle); // Copy all properties from old key, but then fix time to be the new time GetKey(KeyHandle) = OldKey; GetKey(KeyHandle).Time = NewTime; return KeyHandle; }
int32 FIndexedCurve::GetIndexSafe(FKeyHandle KeyHandle) const { return IsKeyHandleValid(KeyHandle) ? *KeyHandlesToIndices.Find(KeyHandle) : INDEX_NONE; }