
using System;
using System.Drawing;
using System.Numerics;
using SlatedGameToolkit.Framework.Graphics.Textures;

namespace SlatedGameToolkit.Framework.Graphics.Render
{
    public interface IMesh
    {

        /// <summary>
        /// Each value in the array represents a 3D coordinate for the vertex, as well as a 2D texture coordinate.
        /// </summary>
        /// <value></value>
        ValueTuple<Vector3, Vector2>[] Vertices { get; }

        /// <summary>
        /// Returns indicies representing the vertices to use to create the mesh.
        /// </summary>
        /// <value>unsigned integers that are the indices of the vertices to use.</value>
        uint[] Elements { get; }

        /// <summary>
        /// The texture for this mesh.
        /// </summary>
        /// <value>Texture for this mesh.</value>
        ITexture Texture { get; }

        /// <summary>
        /// The blended color of this mesh.
        /// </summary>
        /// <value>A color for this mesh.</value>
        Color Color { get; }

    }
}