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/Headers/constantes.h

181 lines
6.0 KiB
C

#pragma once
/* Modèle */
/** @def TOLENTRESTRUCT
* @brief Temps en seconde toléré entre une route un agglomérat. Si dépassement, route et agglo non-lié. */
#define TOLENTRESTRUCT 35
/** @def ASSEMBLAGEAGGLOTOL
* @brief Distance en mètre tolérée entre 2 agglomérats pour créer un assemblage global d'aglomérat. */
#define ASSEMBLAGEAGGLOTOL 15
/** @def ZOOMAX
* @brief La valeur du zoom maximale pour l'API de Google MAPS. */
#define ZOOMAX 20
/** @def ZOOMIN
* @brief La valeur du zoom minimale pour l'API de Google MAPS. */
#define ZOOMIN 0
/** @def PPCM
* @brief Une petite constante pour convertir les pixels en centimètres (et réciproquement). */
#define PPCM 37.79527559055
/** @def CONSTANTE
* @brief Une petite constante (magique) pour calculer l'échelle en fonction du zoom (et vice-versa)... */
#define CONSTANTE 591657550.47936
/** @def EXTRADISTANCEPERCENTAGE
* @brief Une constante qui ne devrait pas exister, malheuseument elle participe au fix' du calcul de zoom ad hoc */
#define EXTRADISTANCEPERCENTAGE 10
/** @def MAXPATHLENGTH
* @brief Une constante qui détermine la taille des chemins vers les fichiers de logs. */
#define MAXPATHLENGTH 1024
/** @def MAXSELECTEDFILES
* @brief Une constante qui détermine le nombre maximal de fichiers que l'utilisateur peut sélectionner. */
#define MAXSELECTEDFILES 32
/* ______ */
/* Contrôleur */
#define FRAMERATELIMITSLEEP 32
#define FRAMERATELIMITPOWER 512
#define PROJECTNAME "GINPA"
#define PROJECTDESC "GINPA Is Not a Position Analyst"
#define REGULARFONTPATH "Vue/Ressources/AllerFont/Aller_Rg.ttf"
#define BOLDFONTPATH "Vue/Ressources/AllerFont/Aller_Bd.ttf"
#define ITALICFONTPATH "Vue/Ressources/AllerFont/Aller_It.ttf"
#define PROJECTIMAGEPATH "Vue/Ressources/GINPA.png"
#define WINDOWICONPATH "Vue/Ressources/GINPA_icone.png"
#define IMAGELOADINGPATH "Vue/Ressources/GINPA_loading.jpg"
#define IMAGEHOURGLASSPATH "Vue/Ressources/Icones/hourglass.png"
#define DATADIRECTORY "Donnees"
#define MAPFILE DATADIRECTORY"/map.png"
#define ADDRESSFILE DATADIRECTORY"/address.json"
/* __________ */
/* Vue */
#define WIDTH 640
#define HEIGHT 640
#define BITSPERPIXEL 32
#define WINDOWNAME PROJECTDESC
/** @def OFFSETFORLINES
* @brief Un petit offset pour que les lignes aient une épaisseur (en pixels) !*/
#define OFFSETFORLINES 1
/** @def CIRCLERADIUS
* @brief Taille (en pixels) des cercles représentant les points. */
#define CIRCLERADIUS 1.5
/** @def CIRCLERADIUSAGGLO
* @brief Taille (en pixels) des cercles représentant les agglomérats. */
#define CIRCLERADIUSAGGLO 5
/** @def MAPSIZE
* @brief Dimensions de l'image de la carte à récupérer. */
#define MAPSIZE 640
/** @def MAPSCALE
* @brief Pour des raisons de qualité d'image, le 'scale' est fixé à 2. */
#define MAPSCALE 2
/** @def REALMAPSIZE
* @brief Pour plus de lisibilité dans le code car le calcul est effectué à chaque fois. */
#define REALMAPSIZE (MAPSIZE * MAPSCALE)
/** @def OFFSETFORMOTION
* @brief Définit un offset à appliquer pour le déplacement de la carte (en pourcentage des dimensions repectives de la fenêtre). */
#define OFFSETFORMOTION 5
/** @def OFFSETFORDATE
* @brief Définit un offset à appliquer lors de l'inscription d'une date à côté d'un point (en nombre de pixels par rapport au point). */
#define OFFSETFORDATE 10
/** @def DELAYPOINTBYPOINT
* @brief Définit un temps constant entre l'affichage de chaque point sur le mode Point-par-Point (en µ-secondes). */
#define DELAYPOINTBYPOINT 20000
/** @def MAPSTACKSIZE
* @brief La taille des piles des Cartes suivantes / précédentes. */
#define MAPSTACKSIZE 64
/** @def COULEUR_GRIS
* @brief Couleur utilisée par défaut sur le logiciel. */
#define COULEUR_GRIS (sfColor){140, 140, 140, 255}
/** @def COULEUR_GRIS_TRANSPARENT
* @brief Couleur utilisée pour la transparence par défaut sur le logiciel. */
#define COULEUR_GRIS_TRANSPARENT (sfColor){140, 140, 140, 128}
/** @def COULEUR_INVISIBLE
* @brief On a toujours besoin d'une cape d'invisibilité ;) */
#define COULEUR_INVISIBLE (sfColor){255, 255, 255, 0}
/** @def COULEUR_POINT
* @brief Couleur utilisée par défaut pour afficher un point. */
#define COULEUR_POINT sfRed
/** @def COULEUR_POINT_SUPPRIME
* @brief Couleur utilisée pour afficher un point sélectionné pour être supprimé. */
#define COULEUR_POINT_SUPPRIME sfBlack
/** @def COULEUR_AGGLO
* @brief Couleur utilisée par défaut pour afficher un agglomérat. */
#define COULEUR_AGGLO (sfColor){0, 0, 255, 128}
/** @def COULEUR_AGGLO_ACTUEL
* @brief Couleur utilisée pour afficher le dernier agglo affiché en mode point par point. */
#define COULEUR_AGGLO_ACTUEL (sfColor){1, 215, 88, 128}
/** @def COULEUR_AGGLO_SUPPRIME
* @brief Couleur utilisée pour afficher un agglomérat sélectionné pour être supprimé. */
#define COULEUR_AGGLO_SUPPRIME (sfColor){0, 0, 0, 128}
/** @def COULEUR_POINT_ACTUEL
* @brief Couleur utilisée pour afficher le dernier point affiché en mode point par point. */
#define COULEUR_POINT_ACTUEL (sfColor){1, 215, 88, 255}
/** @def COULEUR_POINT_SUGGERE
* @brief Couleur utilisée pour afficher un point qu'on suggère de supprimer*/
#define COULEUR_POINT_SUGGERE (sfColor){255, 102, 255, 255}
/* ___ */
/* Menu */
/** @def MAXBUTTONSMENU
* @brief Le nombre maximal de boutons qu'il peut y avoir dans le menu à droite.
*
* /!\ Attention, cette valeur détermine directement la dimension de la barre du menu !*/
#define MAXBUTTONSMENU 13
/** @def BUTTONGAP
* @brief Un écart à placer entre chaque bouton. */
#define BUTTONGAP 10
/** @def MENUHEIGHT
* @brief Hauteur du menu (la même que la fenêtre). */
#define MENUHEIGHT HEIGHT
/** @def RATIOMENU
* @brief Un ratio important pour certains calculs de position. */
#define RATIOMENU ((MENUHEIGHT / MAXBUTTONSMENU) - BUTTONGAP)
/** @def MENUWIDTH
* @brief Largeur du menu (dépend du ratio calculé ci-dessus !)*/
#define MENUWIDTH RATIOMENU
/** @def BUTTONAMESIZE
* @brief La taille du nom maximum pour une entrée du menu. */
#define BUTTONAMESIZE 16
/* ____ */