void FMatineeImportTools::SetOrAddKey( FRichCurve& Curve, float Time, float Value, float ArriveTangent, float LeaveTangent, EInterpCurveMode MatineeInterpMode ) { FKeyHandle KeyHandle = Curve.AddKey( Time, Value, false, Curve.FindKey( Time ) ); FRichCurveKey& Key = Curve.GetKey( KeyHandle ); Key.ArriveTangent = ArriveTangent; Key.LeaveTangent = LeaveTangent; Key.InterpMode = MatineeInterpolationToRichCurveInterpolation( MatineeInterpMode ); Key.TangentMode = MatineeInterpolationToRichCurveTangent( MatineeInterpMode ); }
void UMovieSceneSection::AddKeyToCurve(FRichCurve& InCurve, float Time, float Value, EMovieSceneKeyInterpolation Interpolation, const bool bUnwindRotation) { if (IsTimeWithinSection(Time)) { if (TryModify()) { FKeyHandle ExistingKeyHandle = InCurve.FindKey(Time); FKeyHandle NewKeyHandle = InCurve.UpdateOrAddKey(Time, Value, bUnwindRotation); if (!InCurve.IsKeyHandleValid(ExistingKeyHandle) && InCurve.IsKeyHandleValid(NewKeyHandle)) { MovieSceneHelpers::SetKeyInterpolation(InCurve, NewKeyHandle, Interpolation); } } } }