Exemple #1
0
 /// <summary> Retrieves the key at index. (Read Only) </summary>
 /// <param name="index">Index of key</param>
 /// <returns>Key</returns>
 public Keyframe3D this[int index]
 {
     get
     {
         Keyframe3D key = new Keyframe3D();
         key.Time       = _CurveX[index].time;
         key.Value      = new Vector3(_CurveX[index].value, _CurveY[index].value, _CurveZ[index].value);
         key.InTangent  = new Vector3(_CurveX[index].inTangent, _CurveY[index].inTangent, _CurveZ[index].inTangent);
         key.OutTangent = new Vector3(_CurveX[index].outTangent, _CurveY[index].outTangent, _CurveZ[index].outTangent);
         return(key);
     }
 }
Exemple #2
0
 /// <summary>
 /// Removes the keyframe at index and inserts key.
 /// </summary>
 /// <param name="index">Index of key</param>
 /// <param name="key">Keyframe to insert</param>
 /// <returns>Returns the index of the keyframe after moving it.</returns>
 /// <remarks>
 /// If a keyframe already exists at /key.time/ the time of the old keyframe's position /key[index].time/ will be used instead. This is the desired behaviour for dragging keyframes in a curve editor.
 /// </remarks>
 public int MoveKey(int index, Keyframe3D key)
 {
     _CurveX.MoveKey(index, new Keyframe()
     {
         time = key.Time, value = key.Value.x, inTangent = key.InTangent.x, outTangent = key.OutTangent.x
     });
     _CurveY.MoveKey(index, new Keyframe()
     {
         time = key.Time, value = key.Value.y, inTangent = key.InTangent.y, outTangent = key.OutTangent.y
     });
     return(_CurveZ.MoveKey(index, new Keyframe()
     {
         time = key.Time, value = key.Value.z, inTangent = key.InTangent.z, outTangent = key.OutTangent.z
     }));
 }
Exemple #3
0
        public static AnimationCurve3D Create(AnimationCurve xCurve, AnimationCurve yCurve, AnimationCurve zCurve)
        {
            Keyframe[] xKeys = xCurve.keys;
            Keyframe[] yKeys = yCurve.keys;
            Keyframe[] zKeys = zCurve.keys;

            Keyframe3D[] keys = new Keyframe3D[xKeys.Length];
            for (int i = 0; i < xKeys.Length; i++)
            {
                keys[i].Time       = xKeys[i].time;
                keys[i].Value      = new Vector3(xKeys[i].value, yKeys[i].value, zKeys[i].value);
                keys[i].InTangent  = new Vector3(xKeys[i].inTangent, yKeys[i].inTangent, zKeys[i].inTangent);
                keys[i].OutTangent = new Vector3(xKeys[i].outTangent, yKeys[i].outTangent, zKeys[i].outTangent);
            }
            return(new AnimationCurve3D(keys));
        }
Exemple #4
0
        /// <summary> Retrieves a copy of all keys defined in the animation curve. (Read Only) </summary>
        public Keyframe3D[] GetKeys()
        {
            Keyframe[] xKeys = _CurveX.keys;
            Keyframe[] yKeys = _CurveY.keys;
            Keyframe[] zKeys = _CurveZ.keys;

            Keyframe3D[] keys = new Keyframe3D[Length];
            for (int i = 0; i < Length; i++)
            {
                keys[i]            = new Keyframe3D();
                keys[i].Time       = xKeys[i].time;
                keys[i].Value      = new Vector3(xKeys[i].value, yKeys[i].value, zKeys[i].value);
                keys[i].InTangent  = new Vector3(xKeys[i].inTangent, yKeys[i].inTangent, zKeys[i].inTangent);
                keys[i].OutTangent = new Vector3(xKeys[i].outTangent, yKeys[i].outTangent, zKeys[i].outTangent);
            }
            return(keys);
        }
Exemple #5
0
        public void AddKey(Keyframe3D key)
        {
            Keyframe keyframe = new Keyframe();

            keyframe.time = key.Time;

            keyframe.inTangent  = key.InTangent.x;
            keyframe.outTangent = key.OutTangent.x;
            keyframe.value      = key.Value.x;
            _CurveX.AddKey(keyframe);

            keyframe.inTangent  = key.InTangent.y;
            keyframe.outTangent = key.OutTangent.y;
            keyframe.value      = key.Value.y;
            _CurveY.AddKey(keyframe);

            keyframe.inTangent  = key.InTangent.z;
            keyframe.outTangent = key.OutTangent.z;
            keyframe.value      = key.Value.z;
            _CurveZ.AddKey(keyframe);
        }