package core.engine.model;

import utils.vectors.Vector3f;
public class HexagonModel {

    private float[] vertices;
    private float[] normals;
    private float[] textureCoords;
    private int[] indices;

    public HexagonModel() {
        // Vertices (including the center)
        vertices = new float[]{
                0.0f, 0.0f, 0.0f,     // Center
                0.0f, 0.0f, 1.0f,     // Top Vertex
                0.866f, 0.0f, 0.5f,   // Upper Right Vertex
                0.866f, 0.0f, -0.5f,  // Lower Right Vertex
                0.0f, 0.0f, -1.0f,    // Bottom Vertex
                -0.866f, 0.0f, -0.5f, // Lower Left Vertex
                -0.866f, 0.0f, 0.5f   // Upper Left Vertex
        };

// Normals
        normals = new float[]{
                0, 1, 0, // Center
                0, 1, 0, // Top Vertex
                0, 1, 0, // Upper Right Vertex
                0, 1, 0, // Lower Right Vertex
                0, 1, 0, // Bottom Vertex
                0, 1, 0, // Lower Left Vertex
                0, 1, 0  // Upper Left Vertex
        };

// Texture Coordinates
        textureCoords = new float[]{
                0.5f, 0.5f, // Center
                0.5f, 0.0f, // Top Vertex
                1.0f, 0.25f, // Upper Right Vertex
                1.0f, 0.75f, // Lower Right Vertex
                0.5f, 1.0f, // Bottom Vertex
                0.0f, 0.75f, // Lower Left Vertex
                0.0f, 0.25f // Upper Left Vertex
        };

// Indices
        indices = new int[]{
                0, 1, 2, // Center to Top Vertex to Upper Right Vertex
                0, 2, 3, // Center to Upper Right Vertex to Lower Right Vertex
                0, 3, 4, // Center to Lower Right Vertex to Bottom Vertex
                0, 4, 5, // Center to Bottom Vertex to Lower Left Vertex
                0, 5, 6, // Center to Lower Left Vertex to Upper Left Vertex
                0, 6, 1  // Center to Upper Left Vertex to Top Vertex
        };

    }

    public float[] getVertices() {
        return vertices;
    }

    public void setVertices(float[] vertices) {
        this.vertices = vertices;
    }

    public float[] getNormals() {
        return normals;
    }

    public void setNormals(float[] normals) {
        this.normals = normals;
    }

    public float[] getTextureCoords() {
        return textureCoords;
    }

    public void setTextureCoords(float[] textureCoords) {
        this.textureCoords = textureCoords;
    }

    public int[] getIndices() {
        return indices;
    }

    public void setIndices(int[] indices) {
        this.indices = indices;
    }
}
