public ParametricSurfacePlotter(ParametricSurface function) 
		{	
			_function = function.ValueAt;
		}
		protected override void InitFunction()
		{
			if (this.SourceType == SourceType.Equation)
			{
				_function = new ParametricSurface(_formula, _formulaY, _formulaZ);
			}
			else
			{
//				Parametric3DEvalutor evalutor = new Parametric3DEvalutor();
//				evalutor.Text = this.CodeBody;
//				switch(this.CodeLanguage)
//				{
//					case CodeLanguage.CSharp:
//						evalutor.language= CodeLanguage.CSharp;
//						break;
//					case CodeLanguage.VBNET:
//						evalutor.language = CodeLanguage.VBNET;						
//						break;
//				}
//				_function = new Parameter3DFunction(new Parameter3DFunctionDelegate(evalutor.Invoke));			
				FunctionEvalutor evalutor = new FunctionEvalutor(this.CodeBody, new string[]{"u", "v"},this.CodeLanguage);
				_function = new ParametricSurface((ParametricSurfaceDelegate)evalutor.CreateDelegate(typeof(ParametricSurfaceDelegate)));

			}

		}