Example #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);
         }
     }
 }
Example #2
0
 public void SetBroken()
 {
     if (Selection.Count > 0)
     {
         foreach (CurveKey ki in Selection)
         {
             Keyframe key = ki.Keyframe;
             CurveUtility.SetKeyBroken(ref key, true);
             if (CurveUtility.GetKeyTangentMode(key, 1) == CurveUtility.TangentMode.Smooth)
             {
                 CurveUtility.SetKeyTangentMode(ref key, 1, CurveUtility.TangentMode.Editable);
             }
             if (CurveUtility.GetKeyTangentMode(key, 0) == CurveUtility.TangentMode.Smooth)
             {
                 CurveUtility.SetKeyTangentMode(ref key, 0, CurveUtility.TangentMode.Editable);
             }
             ki.Curve.MoveKey(ki.Index, key);
             CurveUtility.UpdateTangentsFromModeSurrounding(ki.Curve, ki.Index);
         }
     }
 }