Example #1
0
        private void WriteKeyFrameSequence(KeyFrameSequence value)
        {
            output.Write(value.BoneName);
            output.Write(value.KeyCount);
            output.Write(value.Duration);
            output.Write(value.KeyInterval);

            output.Write(value.HasTranslation);
            output.Write(value.HasRotation);
            output.Write(value.HasScale);
            output.Write(value.HasTime);

            output.Write(value.FixedTranslation);
            output.Write(value.FixedRotation);
            output.Write(value.FixedScale);

            // write position values.
            output.Write(value.Translation.Count);

            for (int i = 0; i < value.Translation.Count; i++)
            {
                output.Write(value.Translation[i]);
            }

            // write rotation values.
            output.Write(value.Rotation.Count);

            for (int i = 0; i < value.Rotation.Count; i++)
            {
                output.Write(value.Rotation[i]);
            }

            // write scale values.
            output.Write(value.Scale.Count);

            for (int i = 0; i < value.Scale.Count; i++)
            {
                output.Write(value.Scale[i]);
            }

            // write time values.
            output.Write(value.Time.Count);

            for (int i = 0; i < value.Time.Count; i++)
            {
                output.Write(value.Time[i]);
            }
        }
Example #2
0
        /// <summary>
        /// inserts the new KeyFrameSequence, which is specified in the Binder. 
        /// If there are two Binder’s, the first Binder will be gone and 
        /// the second Binder will be moved as the first Binder,
        /// and the new KeyFrameSequence will be inserted into the second Binder.
        /// When the every Binder is empty, it will then insert to the first Binder
        /// </summary>
        /// <param name="keyFrame">Animation key frame sequence</param>
        /// <param name="startTime">Start time of the animaton</param>
        /// <param name="blendTime">Blend time of two the animaton</param>
        /// <param name="timeScaleFactor">Time scale of the animaton</param>
        /// <param name="mode">Play mode of the animaton</param>
        public void AddKeyFrameSequence(KeyFrameSequence keyFrame, 
                                        float startTime, 
                                        float blendTime, 
                                        float timeScaleFactor, 
                                        AnimPlayMode mode)
        {
            this.blendTime = blendTime;
            this.elapsedTime = startTime;

            if (this.BlendTime == 0.0f)
            {
                ClearAllBinder();

                firstBinder.BindKeyFrameSequence(keyFrame, startTime, 
                                                 timeScaleFactor, mode);
            }
            else
            {
                // If binding above two binders, push out one binder
                if (this.bindCount == 2)
                    ShiftBinder();

                if (this.bindCount == 0)
                {
                    firstBinder.BindKeyFrameSequence(keyFrame, startTime, 
                                                     timeScaleFactor, mode);
                }
                else if (this.bindCount == 1)
                {
                    secondBinder.BindKeyFrameSequence(keyFrame, startTime, 
                                                      timeScaleFactor, mode);
                }
            }

            this.bindCount++;
        }
Example #3
0
 /// <summary>
 /// binds the animation key frame.
 /// </summary>
 /// <param name="keyFrame">Animation key frame sequence</param>
 /// <param name="startTime">Start time of the animaton</param>
 /// <param name="timeScaleFactor">Time scale of the animaton</param>
 /// <param name="mode">Play mode of the animaton</param>
 public void BindKeyFrameSequence(KeyFrameSequence keyFrame, 
                                  float startTime, 
                                  float timeScaleFactor, 
                                  AnimPlayMode mode)
 {
     SetKeyFrameSequence(keyFrame);
     SetTime(startTime);
     SetTimeScaleFactor(timeScaleFactor);
     SetPlayMode(mode);
 }
Example #4
0
 /// <summary>
 /// sets the animation key frame structure.
 /// </summary>
 public void SetKeyFrameSequence(KeyFrameSequence keyFrame)
 {
     keyFrameSequence = keyFrame;
 }