public CHRAnimationFrame GetAnimFrame(int index, bool returnOutFrame = false)
        {
            CHRAnimationFrame frame = new CHRAnimationFrame()
            {
                Index = index
            };
            float *dPtr = (float *)&frame;

            for (int x = 0; x < 9; x++)
            {
                frame.SetBool(x, Keyframes.GetKeyframe(x, index) != null);
                *dPtr++ = GetFrameValue(x, index, returnOutFrame);
            }
            return(frame);
        }
示例#2
0
        public KeyframeEntry SetKeyframe(KeyFrameMode mode, int index, float value)
        {
            bool          exists = Keyframes.GetKeyframe(mode, index) != null;
            KeyframeEntry k      = Keyframes.SetFrameValue(mode, index, value);

            if (!exists && !_generateTangents)
            {
                k.GenerateTangent();
            }

            if (_generateTangents)
            {
                k.GenerateTangent();
                k._prev.GenerateTangent();
                k._next.GenerateTangent();
            }

            SignalPropertyChange();
            return(k);
        }
        public KeyframeEntry SetKeyframe(int arrayIndex, int index, float value, bool forceNoGenTans = false, bool parsing = false)
        {
            KeyframeEntry k = Keyframes.SetFrameValue(arrayIndex, index, value, parsing);

            if (!forceNoGenTans)
            {
                bool exists = Keyframes.GetKeyframe(arrayIndex, index) != null;
                if (_generateTangents || !exists)
                {
                    k.GenerateTangent();
                }
                if (_generateTangents && _alterAdjTangents && _alterAdjTangents_KeyFrame_Set)
                {
                    k._prev.GenerateTangent();
                    k._next.GenerateTangent();
                }
            }

            SignalPropertyChange();
            return(k);
        }
示例#4
0
        public KeyframeEntry SetKeyframe(int arrayIndex, int index, float value)
        {
            bool          exists = Keyframes.GetKeyframe(arrayIndex, index) != null;
            KeyframeEntry k      = Keyframes.SetFrameValue(arrayIndex, index, value);

            if (!exists && !_generateTangents)
            {
                k.GenerateTangent();
            }

            if (_generateTangents)
            {
                k.GenerateTangent();

                if (_alterAdjTangents && _alterAdjTangents_KeyFrame_Set)
                {
                    k._prev.GenerateTangent();
                    k._next.GenerateTangent();
                }
            }

            SignalPropertyChange();
            return(k);
        }
示例#5
0
 public KeyframeEntry GetKeyframe(KeyFrameMode mode, int index)
 {
     return(Keyframes.GetKeyframe(mode, index));
 }
 public KeyframeEntry GetKeyframe(int arrayIndex, int index)
 {
     return(Keyframes.GetKeyframe(arrayIndex, index));
 }