/// <summary>
        /// Constructor
        /// </summary>
        private Data2DManager()
        {
            long w = Options.Instance.World_Width;
            long h = Options.Instance.World_Height;

            //Setup the page array
            long i, j;
            data2D = new Data2DPages();
            for ( i = 0; i < w; i++)
            {
                Data2DRow dr = new Data2DRow();
                data2D.Add( dr );
                for ( j = 0; j < w; j++ ) dr.Add( null );
            }

            //Populate the page array
            if ( Options.Instance.Data2DFormat == "HeightField" )
            {
                for ( j = 0; j < h; j++ )
                {
                    for ( i = 0; i < w; i++ )
                    {
                        data2D[ i ][ j ] = new Data2D_HeightField();
                    }
                }
            }

            else if (Options.Instance.Data2DFormat == "ClientGen") {

                for (j = 0; j < h; j++) {

                    for (i = 0; i < w; i++) {

                        data2D[i][j] = new Data2D_ClientGen((int)i, (int)j);

                    }

                }

            }

            /*
            else if ( Options.Instance.Data2DFormat == "HeightFieldTC" )
            {
                for ( j = 0; j < h; j++ )
                {
                    for ( i = 0; i < w; i++ )
                    {
                            Data2D data;

                            data	= new Data2D_HeightFieldTC();
                            data2D[ i ][ j ] = data;
                    }
                }
            }
            else if ( Options.Instance.Data2DFormat == "SplineField" )
            {
                for ( j = 0; j < h; j++ )
                {
                    for ( i = 0; i < w; i++ )
                    {
                        eData2D data;

                        data = new Data2D_Spline();
                        data2D[ i ][ j ] = data;
                    }
                }
            }
            */
            else
            {

                throw new Exception( "PageData2D not supplied!");

            }
            // when data is not yet loaded it gives the absolute maximum possible
            maxHeight = data2D[ 0 ][ 0 ].MaxHeight;
        }
        /// <summary>

        /// Constructor

        /// </summary>

        private Data2DManager()

        {
            long w = Options.Instance.World_Width;
            long h = Options.Instance.World_Height;

            //Setup the page array
            long i, j;

            data2D = new Data2DPages();
            for (i = 0; i < w; i++)
            {
                Data2DRow dr = new Data2DRow();
                data2D.Add(dr);
                for (j = 0; j < w; j++)
                {
                    dr.Add(null);
                }
            }

            //Populate the page array
            if (Options.Instance.Data2DFormat == "HeightField")
            {
                for (j = 0; j < h; j++)
                {
                    for (i = 0; i < w; i++)
                    {
                        data2D[i][j] = new Data2D_HeightField();
                    }
                }
            }

            else if (Options.Instance.Data2DFormat == "ClientGen")
            {
                for (j = 0; j < h; j++)
                {
                    for (i = 0; i < w; i++)
                    {
                        data2D[i][j] = new Data2D_ClientGen((int)i, (int)j);
                    }
                }
            }

/*
 *                      else if ( Options.Instance.Data2DFormat == "HeightFieldTC" )
 *                      {
 *                              for ( j = 0; j < h; j++ )
 *                              {
 *                                      for ( i = 0; i < w; i++ )
 *                                      {
 *                                                      Data2D data;
 *
 *                                                      data	= new Data2D_HeightFieldTC();
 *                                                      data2D[ i ][ j ] = data;
 *                                      }
 *                              }
 *                      }
 *                      else if ( Options.Instance.Data2DFormat == "SplineField" )
 *                      {
 *                              for ( j = 0; j < h; j++ )
 *                              {
 *                                      for ( i = 0; i < w; i++ )
 *                                      {
 *                                              eData2D data;
 *
 *                                              data = new Data2D_Spline();
 *                                              data2D[ i ][ j ] = data;
 *                                      }
 *                              }
 *                      }
 */
            else
            {
                throw new Exception("PageData2D not supplied!");
            }
            // when data is not yet loaded it gives the absolute maximum possible
            maxHeight = data2D[0][0].MaxHeight;
        }