public bool addFunction(NewFunction windowToShow)
        {
            String[] parameters = new String[4];
            Polynomial newFunction = new Polynomial();

            if ((bool)windowToShow.ShowDialog())
            {
                newFunction.name = windowToShow.nameFunction;
                newFunction.function = windowToShow.newFunction;
                newFunction.drawingColor = windowToShow.color;
                newFunction.xMin = windowToShow.xMin;
                newFunction.xMax = windowToShow.xMax;
                newFunction.yMin = windowToShow.yMin;
                newFunction.yMax = windowToShow.yMax;

                if (windowToShow.parameterA.IsEnabled)
                    parameters[0] = windowToShow.parameterA.Text;
                else
                    parameters[0] = "-";

                if (windowToShow.parameterB.IsEnabled)
                    parameters[1] = windowToShow.parameterB.Text;
                else
                    parameters[1] = "-";

                if (windowToShow.parameterC.IsEnabled)
                    parameters[2] = windowToShow.parameterC.Text;
                else
                    parameters[2] = "-";

                if (windowToShow.parameterN.IsEnabled)
                    parameters[3] = windowToShow.parameterN.Text;
                else
                    parameters[3] = "-";

                newFunction.plot.Points = calculatePointCollection(newFunction, parameters);
                if (newFunction.plot.Points.Count != 0)
                {
                    functions.Add(newFunction);
                    return true;
                }
                else
                {
                    MessageBox.Show("Could not calculate the function", "New Function", MessageBoxButton.OK, MessageBoxImage.Exclamation);
                    return false;
                }
            }

            return false;
        }
        public PointCollection calculatePointCollection(Polynomial function,String[] parameters)
        {
            Parser parser = new Parser();

            if (parameters[0] != "-")
                parser.AddVariable("a",Double.Parse(parameters[0]));

            if (parameters[1] != "-")
                parser.AddVariable("b", Double.Parse(parameters[1]));

            if (parameters[2] != "-")
                parser.AddVariable("c", Double.Parse(parameters[2]));

            if (parameters[3] != "-")
                parser.AddVariable("n", Double.Parse(parameters[3]));

            PointCollection pathPoints = new PointCollection();
            Point point=new Point();

            double functionWidth = (Math.Abs(function.xMin) + function.xMax);
            double distance=functionWidth/500;

            point.X = function.xMin;

            while (point.X <= function.xMin + functionWidth)
            {
                parser.AddVariable("x",point.X);
                try
                {
                    point.Y = parser.SimplifyDouble(function.function);
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message, "New Function", MessageBoxButton.OK, MessageBoxImage.Exclamation);
                    break;
                }

                if(point.Y>=function.yMin && point.Y<=function.yMax)
                    pathPoints.Add(point);
                point.X += distance;
                parser.RemoveVariable("x");
            }

            return pathPoints;
        }