Example #1
0
        /// <summary>
        /// handle the replay skeleton frame
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        void replay_SkeletonFrameReady(object sender, ReplaySkeletonFrameReadyEventArgs e)
        {
            Skeleton[] skeletons;
            var frame = e.SkeletonFrame;
            if (_finalframeno <= frame.FrameNumber)
            {
                if (_learning)
                {
                    this.tcStopLearningClick(null, null);
                }
                else if (_playingback)
                {
                    this.tcStopPlayBackClick(null, null);
                }
                else if (_playingbackmaster)
                {
                    this.tcStopPlaybackMasterClick(null, null);
                }
                else
                {
                    this.tcStopReplayClick(null, null);
                }
            }
            if (frame == null) return;

            skeletons = new Skeleton[frame.ArrayLength];
            skeletons = frame.Skeletons;
            Point[] temppt = new Point[dimension];
            double[] templength = new double[dimension];

            //DrawSkeleton(skeletons, MasterSkeletonCanvas);

            /// get the joint angle data of master
            /// then make comparison
            if (_learning)
            {
                foreach (var data in skeletons)
                {
                    if (SkeletonTrackingState.Tracked == data.TrackingState)
                    {

                        temppt = Skeleton3DDataExtract.ProcessData(data);

                        //if (temppt[4].X >= 0)
                        _MasterAngle = temppt;
                        //Console.WriteLine(_MasterAngle[4].X);
                        if (_LearnerAngle != null && _MasterAngle != null)
                        {
                            _masterskeleton = data;
                            _anglesdiff = MotionDetection.Detect(_LearnerAngle, _MasterAngle, dimension, threshold, detection);
                            _master_length = Skeleton3DDataExtract.LengthGeneration(data);

                            _masterseq.Add(temppt);
                        }
                    }
                }
                //_masterseqNum.Add(frame);
            }
            else if(_replaying || _playingback || _learning || _playingbackmaster)
            {
                ReplaySkeleton.DrawSkeleton(skeletons);
            }
        }
Example #2
0
        /// <summary>
        /// handle the replay skeleton frame
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        void playback_SkeletonFrameReady(object sender, ReplaySkeletonFrameReadyEventArgs e)
        {
            Skeleton[] skeletons;
            var frame = e.SkeletonFrame;
            if (frame == null ) return; // make sure it is replaying the dtw selected path
            skeletons = new Skeleton[frame.ArrayLength];
            skeletons = frame.Skeletons;
            Point[] temppt = new Point[dimension];

            //DrawSkeleton(skeletons, MasterSkeletonCanvas);
            RealTimeSkeleton.DrawSkeleton(skeletons);
        }