This repository has been archived on 2023-11-03. You can view files and clone it, but cannot push or open issues or pull requests.
GINPA/Controleur/controleSuppression.h

45 lines
2.6 KiB
C

#pragma once
#include "../Vue/selection.h"
#include "../Modele/suppression.h"
/**
* @brief Récupère la sélection de points de l'utilisateur et ajoute ou enlève (touche C enfoncée)les
* points/agglomérats sélectionnés des points/agglomérats à supprimer.
*
* @param window Fenêtre dans laquelle on attend un évènement.
* @param event Pointeur sur une variable 'sfEvent' de la fonction appelante.
* @param renderSprite Sprite à ré-écrire durant l'attente d'un évènement.
* @param ptsAffiches Tableau de pointeurs sur les points affichés.
* @param nbPointsAffiches Taille du tableau ptsAffiches. Sert de valeur impossible pour
* pointAffiche.
* @param pointAffiche Numéro du point sur lequel se trouve le curseur. Vaut nbPointsAffiches si
* le curseur n'est sur aucun point.
* @param agglos Tableau contenant tous les agglomérats.
* @param nbAgglos Taille du tableau agglos. Sert de valeur impossible pour aggloSelectionne.
* @param aggloSelectionne Numéro de l'agglomérat sur lequle se trouve le curseur. Vaut nbAgglos
* si le curseur n'est sur aucun point.
* @param tabPointeursCercles Tableau de pointeurs sur les cercles des points affichés. Sert
* à calculer si un point est dans le rectangle ou non dans la fonction setASupprimerPointsInCercle/Rec.
* @param tabPointeursCerclesAgglos Tableau de pointeurs sur les cercles des agglomérats. Sert
* à calculer si un agglomérat est dans le rectangle ou non dans la fonction setASupprimerAgglosInCercle/Rec.
* @param aSupprimer Indique si on sélectionne ou déselectionne des points à supprimer.
* @return Procédure.
*/
void controleSelectionSuppression(sfRenderWindow * const window, sfEvent * const event, sfSprite * renderSprite, Point ** ptsAffiches, uint32_t nbPointsAffiches, uint32_t pointAffiche, Agglomerat * agglos, uint32_t nbAgglos, uint32_t aggloSelectionne, sfCircleShape ** tabPointeursCercles, sfCircleShape ** tabPointeursCerclesAgglos, const bool aSupprimer);
/**
* @brief Lance la suppression de points @Modèle et gère une "message box"
*
* @param window La fenêtre à remplacer par une pop-up !
* @param renderSprite Le sprite actuel à ré-afficher !
* @param tabPoint Tableau contenant tous les points.
* @param nbPoints Taille du tableau tabPoint.
* @param tabAgglo Tableau contenant tous les agglomérats existants.
* @param nbAgglos Taille du tableau tabAgglo.
* @return Procédure.
*/
void suppressionAndVerbosity(sfRenderWindow *const window, const sfSprite *const renderSprite, const Point tabPoint[], uint32_t nbPoints, const Agglomerat tabAgglo[], uint32_t nbAgglos, const Mode mode);