package electrosphere.entity.types.terrain;

import java.util.List;

/**
 * The data required to generate a texture 
 */
public class TerrainChunkData {

    //the verts
    List<Float> vertices;
    //normals
    List<Float> normals;
    //faces
    List<Integer> faceElements;
    //UVs
    List<Float> uvs;
    //texture samplers
    List<Float> textureSamplers; //what textures in the atlas to sample
    //texture ratio vector
    List<Float> textureRatioVectors; //HOW MUCH of each texture in the atlas to sample

    /**
     * Creates an object to hold data required to generate a chunk
     * @param vertices
     * @param normals
     * @param faceElements
     * @param uvs
     * @param textureSamplers
     */
    public TerrainChunkData(List<Float> vertices, List<Float> normals, List<Integer> faceElements, List<Float> uvs, List<Float> textureSamplers, List<Float> textureRatioVectors){
        this.vertices = vertices;
        this.normals = normals;
        this.faceElements = faceElements;
        this.uvs = uvs;
        this.textureSamplers = textureSamplers;
        this.textureRatioVectors = textureRatioVectors;
    }

    /**
     * Gets the vertex data
     * @return the vertex data
     */
    public List<Float> getVertices(){
        return vertices;
    }

    /**
     * Gets the normal data
     * @return the normal data
     */
    public List<Float> getNormals(){
        return normals;
    }

    /**
     * Gets the face element data
     * @return the face element data
     */
    public List<Integer> getFaceElements(){
        return faceElements;
    }

    /**
     * Gets the uv data
     * @return the uv data
     */
    public List<Float> getUVs(){
        return uvs;
    }

    /**
     * Gets the texture sampler data
     * @return the texture sampler data
     */
    public List<Float> getTextureSamplers(){
        return textureSamplers;
    }

    /**
     * Gets the texture ratio vector data
     * @return the texture ratio vector data
     */
    public List<Float> getTextureRatioVectors(){
        return textureRatioVectors;
    }

}
