Exemple #1
0
 private void SetTangent(int leftRight, Skill.Editor.CurveUtility.TangentMode mode)
 {
     if (Selection.Count > 0)
     {
         foreach (CurveKey ki in Selection)
         {
             Keyframe key = ki.Keyframe;
             CurveUtility.SetKeyBroken(ref key, true);
             if (leftRight == 2)
             {
                 CurveUtility.SetKeyTangentMode(ref key, 0, mode);
                 CurveUtility.SetKeyTangentMode(ref key, 1, mode);
             }
             else
             {
                 CurveUtility.SetKeyTangentMode(ref key, leftRight, mode);
                 if (CurveUtility.GetKeyTangentMode(key, 1 - leftRight) == CurveUtility.TangentMode.Smooth)
                 {
                     CurveUtility.SetKeyTangentMode(ref key, 1 - leftRight, CurveUtility.TangentMode.Editable);
                 }
             }
             if ((mode == CurveUtility.TangentMode.Stepped) && ((leftRight == 0) || (leftRight == 2)))
             {
                 key.inTangent = float.PositiveInfinity;
             }
             if ((mode == CurveUtility.TangentMode.Stepped) && ((leftRight == 1) || (leftRight == 2)))
             {
                 key.outTangent = float.PositiveInfinity;
             }
             ki.Curve.MoveKey(ki.Index, key);
             CurveUtility.UpdateTangentsFromModeSurrounding(ki.Curve, ki.Index);
         }
     }
 }
Exemple #2
0
 private void SetBoth(Skill.Editor.CurveUtility.TangentMode mode)
 {
     if (Selection.Count > 0)
     {
         foreach (CurveKey ki in Selection)
         {
             Keyframe key = ki.Keyframe;
             Skill.Editor.CurveUtility.SetKeyBroken(ref key, false);
             Skill.Editor.CurveUtility.SetKeyTangentMode(ref key, 1, mode);
             Skill.Editor.CurveUtility.SetKeyTangentMode(ref key, 0, mode);
             if (mode == Skill.Editor.CurveUtility.TangentMode.Editable)
             {
                 float tangent = Skill.Editor.CurveUtility.CalculateSmoothTangent(key);
                 key.inTangent  = tangent;
                 key.outTangent = tangent;
             }
             ki.Curve.MoveKey(ki.Index, key);
             Skill.Editor.CurveUtility.UpdateTangentsFromModeSurrounding(ki.Curve, ki.Index);
         }
     }
 }