private void AddVertex(VertexFormats.PosColorTexNormal vertex)
        {
            if (_vertices == null)
            {
                _vertices = new VertexFormats.PosColorTexNormal[1000];
            }
            else if (_vertexCount == _vertices.Length)
            {
                Array.Resize(ref _vertices, _vertices.Length + 1000);
            }

            _vertices[_vertexCount++] = vertex;
        }
        public void AddTriangle(
            VertexFormats.PosColorTexNormal v0,
            VertexFormats.PosColorTexNormal v1,
            VertexFormats.PosColorTexNormal v2)
        {
            var i0 = _vertexCount;

            AddVertex(v0);
            AddVertex(v1);
            AddVertex(v2);

            AddIndex(i0 + 0);
            AddIndex(i0 + 1);
            AddIndex(i0 + 2);
        }
        public void AddQuad(
            VertexFormats.PosColorTexNormal v0,
            VertexFormats.PosColorTexNormal v1,
            VertexFormats.PosColorTexNormal v2,
            VertexFormats.PosColorTexNormal v3)
        {
            var i0 = _vertexCount;

            AddVertex(v0);
            AddVertex(v1);
            AddVertex(v2);
            AddVertex(v3);

            AddIndex(i0 + 0);
            AddIndex(i0 + 1);
            AddIndex(i0 + 2);
            AddIndex(i0 + 0);
            AddIndex(i0 + 2);
            AddIndex(i0 + 3);
        }