AcTools.Render.Base.Utils.GeometryGenerator.CreateGrid C# (CSharp) Метод

CreateGrid() публичный статический Метод

public static CreateGrid ( float width, float depth, int m, int n ) : MeshData
width float
depth float
m int
n int
Результат MeshData
        public static MeshData CreateGrid(float width, float depth, int m, int n) {
            var ret = new MeshData();

            var halfWidth = width * 0.5f;
            var halfDepth = depth * 0.5f;

            var dx = width / (n - 1);
            var dz = depth / (m - 1);

            var du = 1.0f / (n - 1);
            var dv = 1.0f / (m - 1);

            for (var i = 0; i < m; i++) {
                var z = halfDepth - i * dz;
                for (var j = 0; j < n; j++) {
                    var x = -halfWidth + j * dx;
                    ret.Vertices.Add(new Vertex(new Vector3(x, 0, z), new Vector3(0, 1, 0), new Vector3(1, 0, 0), new Vector2(j * du, i * dv)));
                }
            }

            for (var i = 0; i < m - 1; i++) {
                for (var j = 0; j < n - 1; j++) {
                    ret.Indices.Add(i * n + j);
                    ret.Indices.Add(i * n + j + 1);
                    ret.Indices.Add((i + 1) * n + j);

                    ret.Indices.Add((i + 1) * n + j);
                    ret.Indices.Add(i * n + j + 1);
                    ret.Indices.Add((i + 1) * n + j + 1);
                }
            }

            return ret;
        }