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/miscellaneous.h

57 lines
2.0 KiB
C

#pragma once
#include "controleur.h"
#define DATESIZE 64
#define REQUESTSIZE 8192
#define BORDERSIZE 25
#define ZOOMAX 20
#define ZOOMIN 0
// Une petite constante (magique) pour calculer l'échelle en fonction du zoom (et vice-versa)...
#define CONSTANTE 591657550.47936
// Pour des raisons de qualité d'image, le 'scale' est fixé à 2
#define MAPSCALE 2
// Dimensions de l'image de la carte à récupérer
#define MAPSIZE 640
#define APIKEY "AIzaSyBcU1vPg1hRYaMd3eGDIkoUULISuw6wbw8"
/**
* @brief Calcule à partir d'un ensemble de points, les coordonnées coins hautGauche
* et basDroit d'un rectangle qui englobe tous les points
*
* @param pts Tableau de points.
* @param taille Taille du tableau pts.
* @param hautGauche Pointeur sur les coordonnées du coin hautGauche du rectangle.
* @param basDroit Pointeur sur les coordonnées du coin basDroit du rectangle.
* @return Procédure.
*/
void getExtrema(Point const* const pts, uint32_t const taille, Coordonnees *const hautGauche, Coordonnees *const basDroit);
/**
* @brief Télécharge une carte sous forme d'image à l'aide de l'API Google MAPS et de cURL.
*
* @param pointHautGauche Coordonnées du point le plus "en-haut à gauche".
* @param pointBasDroite Coordonnées du point le plus "en-bas à droite".
* @param zoom Zoom optimal de la carte !
* @return Un booléen si l'opération s'est bien déroulée... ou non.
*/
bool getBackgroundMap(const Coordonnees *const pointCentral, const uint8_t zoom);
/**
* @brief Calcul le zoom et l'échelle correspondante à notre situation.
*
* @param pointHautGauche Coordonnées du point le plus "en-haut à gauche".
* @param pointBasDroite Coordonnées du point le plus "en-bas à droite".
* @param zoom Pointeur sur la variable qui contiendra le zoom !
* @param echelle Pointeur sur la variable qui contiendra l'échelle !
* @return Procédure.
*/
void getZoomEchelle(const Coordonnees *const pointHautGauche, const Coordonnees *const pointBasDroite, uint8_t *const zoom, double *const echelle);