795ae4de46
Lors d'une sauvegarde d'une configuration de points, que les points non affichés pour cette prévisualisation ne sont pas conservés.
124 lines
5.8 KiB
C
124 lines
5.8 KiB
C
#pragma once
|
|
|
|
#include <stdio.h>
|
|
#include <stdint.h>
|
|
#include <string.h>
|
|
#include <errno.h>
|
|
#include "../Headers/structures.h"
|
|
#include "verification.h"
|
|
|
|
#define SIZE 100
|
|
|
|
/**
|
|
* @brief Crée un fichier sans les points ayant le champ aSupprimer.
|
|
*
|
|
* @param tabPoint Tableau contenant tous les points.
|
|
* @param nbPoints Taille du tableau tabPoint.
|
|
* @param tabAgglo Tableau contenant tous les agglomérats existants.
|
|
* @param tailleA Taille du tableau tabAgglo.
|
|
* @param dest Chaîne de caractères contenant le nom du nouveau fichier créé.
|
|
* @param mode Mode dans lequel l'utilisateur est. Permet de savoir si les points
|
|
* suggérés à la suppression doivent être supprimer.
|
|
*
|
|
* @return Retourne SUCCESS (défini dans Headers/structures.h) en cas de succès, un code d'erreur sinon(défini dans Headers/structures.h).
|
|
* */
|
|
|
|
ErrEnum supprimePoints(const Point tabPoint[],uint32_t nbPoints, const Agglomerat tabAgglo[],uint32_t nbAgglos, const char *const dest, const Mode mode);
|
|
|
|
/**
|
|
* @brief Ajoute/enlève le point dans les points à supprimer en mettant le champ aSupprimer de pt à
|
|
* la valeur du paramètre aSupprimer.
|
|
*
|
|
* @param pt Pointeur sur le point qu'on rajoute/enlève dans les points à supprimer.
|
|
* @param aSupprimer Si le paramètre est à true, le point est ajouté dans les points à supprimer.
|
|
* S'il est à false, le point est enlevé des points à supprimer.
|
|
*
|
|
* @return Procédure
|
|
*/
|
|
void setASupprimerPoint(Point * pt, bool aSupprimer);
|
|
|
|
/**
|
|
* @brief Ajoute/enlève l'agglomérat dans les agglomérats à supprimer en mettant le champ aSupprimer
|
|
* de ag à la valeur du paramètre aSupprimer.
|
|
*
|
|
* @param pt Pointeur sur l'agglomérat qu'on rajoute/enlève dans les agglomérats à supprimer.
|
|
* @param aSupprimer Si le paramètre est à true, l'agglomérat est ajouté dans les agglomérats
|
|
* à supprimer. S'il est à false, l'agglomérat est enlevé des points à supprimer.
|
|
*
|
|
* @return Procédure
|
|
*/
|
|
|
|
void setASupprimerAgglo(Agglomerat * ag, bool aSupprimer);
|
|
|
|
/**
|
|
* @brief Ajoute/enlève tous les points contenus dans un cercle comme point à supprimer en mettant
|
|
* leurs champs aSupprimer à la valeur du paramètre aSupprimer.
|
|
*
|
|
* @param cercle Cercle contenant les points à enlever/rajouter des points à supprimer.
|
|
* @param tabPointeursCercles Tableau de pointeurs sur les cercles des points affichés. Sert
|
|
* à calculer si un point est dans le cercle où non.
|
|
* @param nbPointsAffiches Nombre de points affichés sur la fenêtre.
|
|
* @param ptsAffiches Tableau de pointeurs sur les points affichés.
|
|
* @param aSupprimer Si le paramètre est à true, les points dans le cercle sont ajoutés dans les
|
|
* points à supprimer. Si le paramètre est à false, les points dans le cercle sont enlevés des points
|
|
* à supprimer.
|
|
*
|
|
* @return Procédure.
|
|
*/
|
|
|
|
void setASupprimerPointsInCercle(Cercle cercle, sfCircleShape ** tabPointeursCercles, uint32_t nbPointsAffiches, Point ** ptsAffiches, bool aSupprimer);
|
|
|
|
/**
|
|
* @brief Ajoute/enlève tous les agglomérats contenus dans un cercle comme agglomérat à supprimer en
|
|
* mettant leurs champs aSupprimer à la valeur du paramètre aSupprimer.
|
|
*
|
|
* @param cercle Cercle contenant les agglomérats à enlever/rajouter des agglomérats à supprimer.
|
|
* @param tabPointeursCerclesAgglos Tableau de pointeurs sur les cercles des agglomérats. Sert
|
|
* à calculer si un agglomérat est dans le cercle où non.
|
|
* @param agglos Tableau contenant tous les agglomérats.
|
|
* @param nbAgglos Nombre d'agglomérats au total (même ceux non affichés).
|
|
* @param aSupprimer Si le paramètre est à true, les agglomérats dans le cercle sont ajoutés dans les
|
|
* agglomérats à supprimer. Si le paramètre est à false, les agglomérats dans le cercle sont enlevés
|
|
* des points à supprimer.
|
|
*
|
|
* @return Procédure.
|
|
*/
|
|
|
|
void setASupprimerAgglosInCercle(Cercle cercle, sfCircleShape ** tabPointeursCercleAgglos, Agglomerat * agglos, uint32_t nbAgglos, bool aSupprimer);
|
|
|
|
/**
|
|
* @brief Ajoute/enlève tous les points contenus dans un rectangle comme point à supprimer
|
|
* en mettant leurs champs aSupprimer à la valeur du paramètre aSupprimer.
|
|
*
|
|
* @param rec Rectangle contenant les points à enlever/ajouter des points à supprimer.
|
|
* @param tabPointeursCercles Tableau de pointeurs sur les cercles des points affichés. Sert
|
|
* à calculer si un point est dans le rectangle ou non.
|
|
* @param nbPointsAffiches Nombre de points affichés sur la fenêtre.
|
|
* @param ptsAffiches Tableau de pointeurs sur les points affichés.
|
|
* @param aSupprimer Si le paramètre est à true, les points dans le rectangle sont ajoutés dans
|
|
* les points à supprimer. Si le paramètre est à false, les points dans le rectangle sont
|
|
* enlevés des points à supprimer.
|
|
*
|
|
* @return Procédure.
|
|
*/
|
|
|
|
void setASupprimerPointsInRec(Rectangle rec, sfCircleShape ** tabPointeursCercles, uint32_t nbPointsAffiches, Point ** ptsAffiches, bool aSupprimer);
|
|
|
|
/**
|
|
* @brief Ajoute/enlève tous les agglomérats contenus dans un rectangle comme agglomérat à supprimer
|
|
* en mettant leurs champs aSupprimer à la valeur du paramètre aSupprimer.
|
|
*
|
|
* @param rec Rectangle contenant les agglomérats à enlever/ajouter des agglomérats à supprimer.
|
|
* @param tabPointeursCerclesAgglos Tableau de pointeurs sur les cercles des agglomérats. Sert
|
|
* à calculer si un agglomérat est dans le rectangle ou non.
|
|
* @param agglos Tableau contenant tous les agglomérats.
|
|
* @param nbAgglos Nombre d'agglomérats au total (même ceux non affichés).
|
|
* @param aSupprimer Si le paramètre est à true, les agglomérats dans le rectangle sont ajoutés dans
|
|
* les agglomérats à supprimer. Si le paramètre est à false, les agglomérats dans le rectangle sont
|
|
* enlevés des agglomérats à supprimer.
|
|
*
|
|
* @return Procédure.
|
|
*/
|
|
|
|
void setASupprimerAgglosInRec(Rectangle rec, sfCircleShape ** tabPointeursCercleAgglos, Agglomerat * agglos, uint32_t nbAgglos, bool aSupprimer);
|