package fr.iutfbleau.sae.mpif;

/**
 * Cette classe représente une image composée de pixels RGB.
 * L'image est stockée sous forme d'un tableau 2D contenant des objets Pixel.
 * Chaque pixel possède trois valeurs : rouge, vert et bleu.
 */
public class RGBImage {

    private int width;
    private int height;
    private Pixel [][] pixels;

    /**
     * Crée une image vide avec une largeur et une hauteur données.
     * Tous les pixels doivent être ajoutés ensuite avec setPixel().
     *
     * @param lar largeur de l'image
     * @param haut hauteur de l'image
     */
    public RGBImage (int lar, int haut){
        this.width = lar;
        this.height = haut;
        this.pixels = new Pixel[this.width][this.height];
    }

    /**
     * Retourne la largeur de l'image.
     */
    public int getWidth() {
        return width;
    }

    /**
     * Retourne la hauteur de l'image.
     */
    public int getHeight() {
        return height;
    }

    /**
     * Place un pixel aux coordonnées indiquées.
     *
     * @param x position horizontale
     * @param y position verticale
     * @param p pixel à insérer
     */
    public void setPixel(int x, int y, Pixel p) {
        this.pixels[x][y] = p;
    }

    /**
     * Retourne le pixel situé aux coordonnées indiquées.
     *
     * @param x position horizontale
     * @param y position verticale
     * @return le pixel présent à cette position
     */
    public Pixel getPixel(int x, int y) {
        return this.pixels[x][y];
    }
}
