示例#1
0
        private zobject[,] zobjectmap = new zobject[160, 160]; //Objects on the zoomed in map, viewable by the player.

        #endregion Fields

        #region Constructors

        public Geosphere(Single scale, Single sd, int rough, int displace, int icecap)
        {
            // Set up our inital geosphere.
            rnd = new Random((int)sd);
            iceCapRange = icecap;
            planetScaler = scale;
            displaceMag = displace;
            roughness = rough;
            seed = sd;

            int i;
            for (i = 0; i < 12; i++)
                verticies[i] = new vertex_structure();

            for (i = 0; i < 11000; i++)
            {
                oldMidpoints[i] = new vertex_structure();
                newMidpoints[i] = new vertex_structure();
            }

            for (i = 0; i < 32400; i++)
            {
                triangles[i] = new triangles_structure();
            }

            // The initial coorodinates of our geosphere. Prob could have done one real time.
            // Drew it in milkshap rather and copied the corodinates.
            #region INITAL COORDINATES
            verticies[0].X = -26.2865543F / planetScaler;
            verticies[0].Y = 0.0F / planetScaler;
            verticies[0].Z = -42.53254F / planetScaler;
            verticies[1].X = 26.2865543F / planetScaler;
            verticies[1].Y = 0.0F / planetScaler;
            verticies[1].Z = -42.53254F / planetScaler;
            verticies[2].X = 0.0F / planetScaler;
            verticies[2].Y = -42.53254F / planetScaler;
            verticies[2].Z = -26.2865543F / planetScaler;
            verticies[3].X = -42.53254F / planetScaler;
            verticies[3].Y = -26.2865543F / planetScaler;
            verticies[3].Z = 0.0F / planetScaler;
            verticies[4].X = 0.0F / planetScaler;
            verticies[4].Y = -42.53254F / planetScaler;
            verticies[4].Z = 26.2865543F / planetScaler;
            verticies[5].X = 42.53254F / planetScaler;
            verticies[5].Y = -26.2865543F / planetScaler;
            verticies[5].Z = 0.0F / planetScaler;
            verticies[6].X = 42.53254F / planetScaler;
            verticies[6].Y = 26.2865543F / planetScaler;
            verticies[6].Z = 0.0F / planetScaler;
            verticies[7].X = 26.2865543F / planetScaler;
            verticies[7].Y = 0.0F / planetScaler;
            verticies[7].Z = 42.53254F / planetScaler;
            verticies[8].X = -26.2865543F / planetScaler;
            verticies[8].Y = 0.0F / planetScaler;
            verticies[8].Z = 42.53254F / planetScaler;
            verticies[9].X = 0.0F / planetScaler;
            verticies[9].Y = 42.53254F / planetScaler;
            verticies[9].Z = 26.2865543F / planetScaler;
            verticies[10].X = 0.0F / planetScaler;
            verticies[10].Y = 42.53254F / planetScaler;
            verticies[10].Z = -26.2865543F / planetScaler;
            verticies[11].X = -42.53254F / planetScaler;
            verticies[11].Y = 26.2865543F / planetScaler;
            verticies[11].Z = 0.0F / planetScaler;

            // Assign each triangle 3 verticies.
            triangles[0].A = verticies[0];
            triangles[0].B = verticies[2];
            triangles[0].C = verticies[1];
            triangles[1].A = verticies[9];
            triangles[1].B = verticies[8];
            triangles[1].C = verticies[11];
            triangles[2].A = verticies[5];
            triangles[2].B = verticies[2];
            triangles[2].C = verticies[4];
            triangles[3].A = verticies[10];
            triangles[3].B = verticies[6];
            triangles[3].C = verticies[9];
            triangles[4].A = verticies[11];
            triangles[4].B = verticies[0];
            triangles[4].C = verticies[10];
            triangles[5].A = verticies[6];
            triangles[5].B = verticies[5];
            triangles[5].C = verticies[7];
            triangles[6].A = verticies[0];
            triangles[6].B = verticies[3];
            triangles[6].C = verticies[2];
            triangles[7].A = verticies[7];
            triangles[7].B = verticies[4];
            triangles[7].C = verticies[8];
            triangles[8].A = verticies[6];
            triangles[8].B = verticies[1];
            triangles[8].C = verticies[5];
            triangles[9].A = verticies[8];
            triangles[9].B = verticies[4];
            triangles[9].C = verticies[3];
            triangles[10].A = verticies[10];
            triangles[10].B = verticies[1];
            triangles[10].C = verticies[6];
            triangles[11].A = verticies[8];
            triangles[11].B = verticies[3];
            triangles[11].C = verticies[11];
            triangles[12].A = verticies[10];
            triangles[12].B = verticies[0];
            triangles[12].C = verticies[1];
            triangles[13].A = verticies[6];
            triangles[13].B = verticies[7];
            triangles[13].C = verticies[9];
            triangles[14].A = verticies[11];
            triangles[14].B = verticies[3];
            triangles[14].C = verticies[0];
            triangles[15].A = verticies[7];
            triangles[15].B = verticies[5];
            triangles[15].C = verticies[4];
            triangles[16].A = verticies[3];
            triangles[16].B = verticies[4];
            triangles[16].C = verticies[2];
            triangles[17].A = verticies[9];
            triangles[17].B = verticies[11];
            triangles[17].C = verticies[10];
            triangles[18].A = verticies[1];
            triangles[18].B = verticies[2];
            triangles[18].C = verticies[5];
            triangles[19].A = verticies[9];
            triangles[19].B = verticies[7];
            triangles[19].C = verticies[8];
            #endregion
            maxtriangles = 20;
            // We start with 20 triangles / 11 verticies
            maxElev = 50.0F / planetScaler;
            minElev = 50.0F / planetScaler;
            radius = 50.0F / planetScaler;

            for (i = 0; i < 11000; i++)
            {
                oldMidpoints[i].X = 99;
                newMidpoints[i].X = 98;
            }
        }
示例#2
0
        public Geosphere(Single scale, Single sd, int rough, int displace, int icecap)
        {
            // Set up our inital geosphere.
            int i;

            iceCapRange  = icecap;
            planetScaler = scale;
            displaceMag  = displace;
            roughness    = rough;
            seed         = sd;

            for (i = 0; i < 11; i++)
            {
                verticies[i] = new vertex_structure();
            }

            for (i = 0; i < 10999; i++)
            {
                oldMidpoints[i] = new vertex_structure();
                newMidpoints[i] = new vertex_structure();
            }

            for (i = 0; i < 32399; i++)
            {
                triangles[i] = new triangles_structure();
            }

            // The initial coorodinates of our geosphere. Prob could have done one real time.
            // Drew it in milkshap rather and copied the corodinates.
            verticies[0].X  = -26.2865543F / planetScaler;
            verticies[0].Y  = 0.0F / planetScaler;
            verticies[0].Z  = -42.53254F / planetScaler;
            verticies[1].X  = 26.2865543F / planetScaler;
            verticies[1].Y  = 0.0F / planetScaler;
            verticies[1].Z  = -42.53254F / planetScaler;
            verticies[2].X  = 0.0F / planetScaler;
            verticies[2].Y  = -42.53254F / planetScaler;
            verticies[2].Z  = -26.2865543F / planetScaler;
            verticies[3].X  = -42.53254F / planetScaler;
            verticies[3].Y  = -26.2865543F / planetScaler;
            verticies[3].Z  = 0.0F / planetScaler;
            verticies[4].X  = 0.0F / planetScaler;
            verticies[4].Y  = -42.53254F / planetScaler;
            verticies[4].Z  = 26.2865543F / planetScaler;
            verticies[5].X  = 42.53254F / planetScaler;
            verticies[5].Y  = -26.2865543F / planetScaler;
            verticies[5].Z  = 0.0F / planetScaler;
            verticies[6].X  = 42.53254F / planetScaler;
            verticies[6].Y  = 26.2865543F / planetScaler;
            verticies[6].Z  = 0.0F / planetScaler;
            verticies[7].X  = 26.2865543F / planetScaler;
            verticies[7].Y  = 0.0F / planetScaler;
            verticies[7].Z  = 42.53254F / planetScaler;
            verticies[8].X  = -26.2865543F / planetScaler;
            verticies[8].Y  = 0.0F / planetScaler;
            verticies[8].Z  = 42.53254F / planetScaler;
            verticies[9].X  = 0.0F / planetScaler;
            verticies[9].Y  = 42.53254F / planetScaler;
            verticies[9].Z  = 26.2865543F / planetScaler;
            verticies[10].X = 0.0F / planetScaler;
            verticies[10].Y = 42.53254F / planetScaler;
            verticies[10].Z = -26.2865543F / planetScaler;
            verticies[11].X = -42.53254F / planetScaler;
            verticies[11].Y = 26.2865543F / planetScaler;
            verticies[11].Z = 0.0F / planetScaler;

            // Assign each triangle 3 verticies.
            triangles[0].A  = verticies[0];
            triangles[0].B  = verticies[2];
            triangles[0].C  = verticies[1];
            triangles[1].A  = verticies[9];
            triangles[1].B  = verticies[8];
            triangles[1].C  = verticies[11];
            triangles[2].A  = verticies[5];
            triangles[2].B  = verticies[2];
            triangles[2].C  = verticies[4];
            triangles[3].A  = verticies[10];
            triangles[3].B  = verticies[6];
            triangles[3].C  = verticies[9];
            triangles[4].A  = verticies[11];
            triangles[4].B  = verticies[0];
            triangles[4].C  = verticies[10];
            triangles[5].A  = verticies[6];
            triangles[5].B  = verticies[5];
            triangles[5].C  = verticies[7];
            triangles[6].A  = verticies[0];
            triangles[6].B  = verticies[3];
            triangles[6].C  = verticies[2];
            triangles[7].A  = verticies[7];
            triangles[7].B  = verticies[4];
            triangles[7].C  = verticies[8];
            triangles[8].A  = verticies[6];
            triangles[8].B  = verticies[1];
            triangles[8].C  = verticies[5];
            triangles[9].A  = verticies[8];
            triangles[9].B  = verticies[4];
            triangles[9].C  = verticies[3];
            triangles[10].A = verticies[10];
            triangles[10].B = verticies[1];
            triangles[10].C = verticies[6];
            triangles[11].A = verticies[8];
            triangles[11].B = verticies[3];
            triangles[11].C = verticies[11];
            triangles[12].A = verticies[10];
            triangles[12].B = verticies[0];
            triangles[12].C = verticies[1];
            triangles[13].A = verticies[6];
            triangles[13].B = verticies[7];
            triangles[13].C = verticies[9];
            triangles[14].A = verticies[11];
            triangles[14].B = verticies[3];
            triangles[14].C = verticies[0];
            triangles[15].A = verticies[7];
            triangles[15].B = verticies[5];
            triangles[15].C = verticies[4];
            triangles[16].A = verticies[3];
            triangles[16].B = verticies[4];
            triangles[16].C = verticies[2];
            triangles[17].A = verticies[9];
            triangles[17].B = verticies[11];
            triangles[17].C = verticies[10];
            triangles[18].A = verticies[1];
            triangles[18].B = verticies[2];
            triangles[18].C = verticies[5];
            triangles[19].A = verticies[9];
            triangles[19].B = verticies[7];
            triangles[19].C = verticies[8];

            maxtriangles = 20;
            // We start with 20 triangles / 11 verticies
            maxElev = 50.0F / planetScaler;
            minElev = 50.0F / planetScaler;
            radius  = 50.0F / planetScaler;

            for (i = 0; i < 10999; i++)
            {
                oldMidpoints[i].X = 99;
                newMidpoints[i].X = 98;
            }
        }