/// <summary>
        /// Creates BitmapProjection instances.
        /// </summary>
        /// <param name="mode">
        /// The <see cref="ProjectionMode"/> used for the projection.
        /// </param>
        /// <param name="mtb">
        /// The <see cref="MathTextBitmap"/> to be projected.
        /// </param>
        /// <returns>
        /// The <see cref="BitmapProjection"/> created.
        /// </returns>
		public static BitmapProjection CreateProjection(ProjectionMode mode, 
                                                        MathTextBitmap mtb)
		{
			BitmapProjection res=null;
			
			switch(mode)
			{
				case(ProjectionMode.Horizontal):
					res=new HorizontalBitmapProjection(mtb);
					break;
				case(ProjectionMode.Vertical):
					res=new VerticalBitmapProjection(mtb);
					break;
				default:
					throw new ArgumentException(
						"No puede usar None para crear una nueva projección");				
			}
			return res;
		}
        /// <summary>
        /// Creates BitmapProjection instances.
        /// </summary>
        /// <param name="mode">
        /// The <see cref="ProjectionMode"/> used for the projection.
        /// </param>
        /// <param name="mtb">
        /// The <see cref="MathTextBitmap"/> to be projected.
        /// </param>
        /// <returns>
        /// The <see cref="BitmapProjection"/> created.
        /// </returns>
        public static BitmapProjection CreateProjection(ProjectionMode mode,
                                                        MathTextBitmap mtb)
        {
            BitmapProjection res = null;

            switch (mode)
            {
            case (ProjectionMode.Horizontal):
                res = new HorizontalBitmapProjection(mtb);
                break;

            case (ProjectionMode.Vertical):
                res = new VerticalBitmapProjection(mtb);
                break;

            default:
                throw new ArgumentException(
                          "No puede usar None para crear una nueva projección");
            }
            return(res);
        }