private void AddDurationClip(int name, TimeSpan start, TimeSpan end)
            {
                DurationClip d = new DurationClip();

                d.start      = start;
                d.startFrame = 0;
                d.end        = end;
                d.endFrame   = fullclip.Keyframes.Count - 1;
                d.duration   = d.end - d.start;
                d.startPose  = new Matrix[bpCount];

                bool searching = true;

                for (int i = 0; i < fullclip.Keyframes.Count; i++)
                {
                    if (searching && fullclip.Keyframes[i].Time >= d.start)
                    {
                        searching    = false;
                        d.startFrame = i;
                    }
                    else if (fullclip.Keyframes[i].Time >= d.end)
                    {
                        d.endFrame = i;
                        break;
                    }
                    else
                    {
                        d.startPose[fullclip.Keyframes[i].Bone] = fullclip.Keyframes[i].Transform;
                    }
                }

                animations.Add(name, d);

                System.Diagnostics.Debug.WriteLine("clip: " + name + " " + d.startFrame + "->" + d.endFrame);
            }
 public void StartClip(int name)
 {
     currentDurationClip = durations[name];
     currentTimeValue = currentDurationClip.start;
     currentKeyFrame = currentDurationClip.startFrame;
     currentDurationClip.startPose.CopyTo(boneTransforms, 0);
     currentLoopCount = 0;
 }
 public void StartClip(int name)
 {
     currentDurationClip = durations[name];
     currentTimeValue    = currentDurationClip.start;
     currentKeyFrame     = currentDurationClip.startFrame;
     currentDurationClip.startPose.CopyTo(boneTransforms, 0);
     currentLoopCount = 0;
 }
            private void AddDurationClip(int name, TimeSpan start, TimeSpan end)
            {

                DurationClip d = new DurationClip();
                d.start = start;
                d.startFrame = 0;
                d.end = end;
                d.endFrame = fullclip.Keyframes.Count - 1;
                d.duration = d.end - d.start;
                d.startPose = new Matrix[bpCount];

                bool searching = true;
                for (int i = 0; i < fullclip.Keyframes.Count; i++)
                {

                    if (searching && fullclip.Keyframes[i].Time >= d.start)
                    {
                        searching = false;
                        d.startFrame = i;
                    }
                    else if (fullclip.Keyframes[i].Time >= d.end)
                    {
                        d.endFrame = i;
                        break;
                    }
                    else
                    {
                        d.startPose[fullclip.Keyframes[i].Bone] = fullclip.Keyframes[i].Transform;
                    }

                }

                animations.Add(name, d);

                System.Diagnostics.Debug.WriteLine("clip: " + name + " " + d.startFrame + "->" + d.endFrame);
            }