Example #1
0
        /// <summary>
        /// Evaluate an exercise step
        /// </summary>
        /// <param name="exerciseStep">The performed step</param>
        /// <param name="idealExerciseStep">Optional, required if no training set was provided</param>
        /// <returns></returns>
        public EvaluationResults EvaluateExerciseStep(ExerciseStep exerciseStep, ExerciseStep idealExerciseStep = null)
        {
            bool niceWork = true;

            ArticolationError[] stepEvaluationResults = _exerciseEvaluator.EvaluateExerciseStep(ExerciseTollerance, exerciseStep, idealExerciseStep);
            if (ExerciseTollerance != null)
            {
                for (int i = 0; i < stepEvaluationResults.Length; i++)
                {
                    ArticolationError error = stepEvaluationResults[i];
                    niceWork &= error.Position.IsMagnitudeCorrect && error.Position.IsSpeedCorrect &&
                                error.Angle.IsSpeedCorrect && error.Angle.IsMagnitudeCorrect;
                }
            }

            return(new EvaluationResults(niceWork, stepEvaluationResults));
        }