public void SetBoth(AnimationUtility.TangentMode mode, List<KeyIdentifier> keysToSet)
{
List<ChangedCurve> list = new List<ChangedCurve>();
foreach (KeyIdentifier identifier in keysToSet)
{
AnimationCurve curve = identifier.curve;
Keyframe key = identifier.keyframe;
AnimationUtility.SetKeyBroken(ref key, false);
AnimationUtility.SetKeyRightTangentMode(ref key, mode);
AnimationUtility.SetKeyLeftTangentMode(ref key, mode);
if (mode == AnimationUtility.TangentMode.Free)
{
float num = CurveUtility.CalculateSmoothTangent(key);
key.inTangent = num;
key.outTangent = num;
}
curve.MoveKey(identifier.key, key);
AnimationUtility.UpdateTangentsFromModeSurrounding(curve, identifier.key);
ChangedCurve item = new ChangedCurve(curve, identifier.curveId, identifier.binding);
if (!list.Contains(item))
{
list.Add(item);
}
}
this.updater.UpdateCurves(list, "Set Tangents");
}