Example #1
0
        public Gesture(string name)
        {
            this.name = name;
            filepath = Gesture.ACTION_DIRECTORY + "\\" + name + ".action";
            Dictionary<string, string> headers = KinectFileUtils.GetRecordingFileHeaders(filepath);

            startPose = new Pose(headers["STARTPOSE"]);
            endPose = new Pose(headers["ENDPOSE"]);
            endPose.ScaleErrors(float.Parse(headers["ENDSCALAR"]));

            string[] td = headers["TRAININGDATA"].Split(',');
            foreach (string s in td)
            {
                trainingDataFrames.Add(KinectFileUtils.ReadSkeletonFromRecordingFile(ACTION_DIRECTORY + "\\" + s));
            }

            string[] errors = headers["ERRORS"].Split(',');
            torsoError = double.Parse(errors[0]);
            leftArmError = double.Parse(errors[1]);
            rightArmError = double.Parse(errors[2]);
            leftLegError = double.Parse(errors[3]);
            rightLegError = double.Parse(errors[4]);

            foreach (List<Skeleton> train in trainingDataFrames)
            {
                for (int i = 0; i < 3; i++)
                {
                    train.Add(train[train.Count - 1]);
                }
            }

            bestFrames = trainingDataFrames[0];
            dist = KinectFrameUtils.GetTotalDistTraveled(bestFrames);
        }