Merge branch 'origin/menu' of github.com:HorlogeSkynet/GINPA into origin/menu
This commit is contained in:
@ -2,7 +2,7 @@
|
||||
|
||||
|
||||
|
||||
Point** affichageLogs(sfRenderWindow *const window, sfRenderTexture *renderTexture, sfSprite *renderSprite, Point *tabPoint, uint32_t nbElements, uint32_t *nbPointsAffiches, uint32_t nbPointAgglosMin, sfCircleShape *tabPointeursCercle[nbElements], Agglomerat *agglos, uint32_t nbAgglos, sfCircleShape *tabPointeursCercleAgglos[nbAgglos], const Mode mode, const Menu *const menu)
|
||||
Point** affichageLogs(sfRenderWindow *const window, sfRenderTexture *renderTexture, sfSprite *renderSprite, Point *tabPoint, uint32_t nbElements, uint32_t *nbPointsAffiches, uint32_t nbPointAgglosMin, sfCircleShape *tabPointeursCercle[nbElements], Agglomerat *agglos, uint32_t nbAgglos, sfCircleShape *tabPointeursCercleAgglos[nbAgglos], Carte *const carte, const Mode mode, const Menu *const menu)
|
||||
{
|
||||
sfEvent event;
|
||||
*nbPointsAffiches = 0;
|
||||
@ -87,7 +87,7 @@ Point** affichageLogs(sfRenderWindow *const window, sfRenderTexture *renderTextu
|
||||
|
||||
else if(tabPoint[i].type == AGGLOMERAT)
|
||||
{
|
||||
afficherAgglo(renderTexture, &agglos[numAgglo], &tabPointeursCercleAgglos[numAgglo], nbPointAgglosMin);
|
||||
afficherAgglo(renderTexture, &agglos[numAgglo], &tabPointeursCercleAgglos[numAgglo], nbPointAgglosMin, carte);
|
||||
i += agglos[numAgglo].nbPts - 1;
|
||||
numAgglo++;
|
||||
}
|
||||
@ -176,7 +176,7 @@ Point** affichageLogs(sfRenderWindow *const window, sfRenderTexture *renderTextu
|
||||
{
|
||||
for(uint32_t i = 0; i < nbAgglos; i++)
|
||||
{
|
||||
afficherAgglo(renderTexture, &agglos[i], &tabPointeursCercleAgglos[i], nbPointAgglosMin);
|
||||
afficherAgglo(renderTexture, &agglos[i], &tabPointeursCercleAgglos[i], nbPointAgglosMin,carte);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -24,11 +24,12 @@
|
||||
* @param agglos Tableau contenant les agglomérats.
|
||||
* @param nbAgglos Le nombre d'agglomérats présents sur les logs.
|
||||
* @param tabPointeursCercleAgglos Tableau de pointeurs sur objets de type 'sfCircleShape', pour stocker les cercles des agglomérats en mémoire.
|
||||
* @param carte Carte que l'on affiche pour recuperer l'echelle
|
||||
* @param mode Mode dans lequel on effectue l'affichage !
|
||||
* @param menu Notre menu chéri !
|
||||
* @return NULL s'il y a eu une erreur, un tableau contenant les adresses des points affichés sinon.
|
||||
*/
|
||||
Point** affichageLogs(sfRenderWindow *const window, sfRenderTexture *renderTexture, sfSprite *renderSprite, Point *tabPoint, uint32_t nbElements, uint32_t *nbPointsAffiches, uint32_t nbPointAgglosMin, sfCircleShape *tabPointeursCercle[nbElements], Agglomerat *agglos, uint32_t nbAgglos, sfCircleShape *tabPointeursCercleAgglos[nbAgglos], const Mode mode, const Menu *const menu);
|
||||
Point** affichageLogs(sfRenderWindow *const window, sfRenderTexture *renderTexture, sfSprite *renderSprite, Point *tabPoint, uint32_t nbElements, uint32_t *nbPointsAffiches, uint32_t nbPointAgglosMin, sfCircleShape *tabPointeursCercle[nbElements], Agglomerat *agglos, uint32_t nbAgglos, sfCircleShape *tabPointeursCercleAgglos[nbAgglos], Carte *const carte, const Mode mode, const Menu *const menu);
|
||||
|
||||
/**
|
||||
* @brief Si le curseur est positionné sur un point affiché, on écrit la date à côté.
|
||||
|
@ -142,7 +142,7 @@ ErrEnum controlePoints(sfRenderWindow *window, const char *cheminFichier, Mode m
|
||||
chargerMenuAffichageLog(&menu, mode, (mode != MODE_GLOBAL ? false : true));
|
||||
afficherMenu(renderTexture, &menu);
|
||||
|
||||
Point **ptsAffiches = affichageLogs(window, renderTexture, renderSprite, tabPoints, nbElements, &nbPointsAffiches, nbPointAgglosMin, tabPointeursCercles, agglos, nbAgglos, tabPointeursCerclesAgglos, mode, &menu);
|
||||
Point **ptsAffiches = affichageLogs(window, renderTexture, renderSprite, tabPoints, nbElements, &nbPointsAffiches, nbPointAgglosMin, tabPointeursCercles, agglos, nbAgglos, tabPointeursCerclesAgglos, carte, mode, &menu);
|
||||
if(ptsAffiches == NULL)
|
||||
{
|
||||
return ALLOCATION_FAILURE;
|
||||
|
@ -29,43 +29,56 @@ void afficherPoint(sfRenderTexture *const renderTexture, sfVector2f points, sfCi
|
||||
}
|
||||
|
||||
|
||||
void afficherAgglo(sfRenderTexture *const renderTexture, Agglomerat *agglos, sfCircleShape **ptrCercle, uint32_t nbPointAgglosMin)
|
||||
void afficherAgglo(sfRenderTexture *const renderTexture, Agglomerat *agglos, sfCircleShape **ptrCercle, uint32_t nbPointAgglosMin, Carte *const carte)
|
||||
{
|
||||
float facteur = 1;
|
||||
if (carte->echelle > 120000)
|
||||
{
|
||||
facteur = 0.7;
|
||||
}
|
||||
if (carte->echelle > 220000)
|
||||
{
|
||||
facteur = 0.5;
|
||||
}
|
||||
if (carte->echelle > 500000)
|
||||
{
|
||||
facteur = 0.3;
|
||||
}
|
||||
sfCircleShape *cercle = NULL;
|
||||
if(agglos->nbPts <= nbPointAgglosMin * 1.5)
|
||||
{
|
||||
cercle = creerCercle((sfVector2f){agglos->moyConv.x, agglos->moyConv.y}, CIRCLERADIUSAGGLO, sfBlue);
|
||||
agglos->tailleCercle = CIRCLERADIUSAGGLO;
|
||||
cercle = creerCercle((sfVector2f){agglos->moyConv.x, agglos->moyConv.y}, facteur * CIRCLERADIUSAGGLO, sfBlue);
|
||||
agglos->tailleCercle = facteur * CIRCLERADIUSAGGLO;
|
||||
}
|
||||
|
||||
else
|
||||
{
|
||||
if(agglos->nbPts <= nbPointAgglosMin * 2)
|
||||
{
|
||||
cercle = creerCercle((sfVector2f){agglos->moyConv.x, agglos->moyConv.y}, CIRCLERADIUSAGGLO * 1.5, sfBlue);
|
||||
agglos->tailleCercle = CIRCLERADIUSAGGLO * 1.5;
|
||||
cercle = creerCercle((sfVector2f){agglos->moyConv.x, agglos->moyConv.y}, facteur * CIRCLERADIUSAGGLO * 1.5, sfBlue);
|
||||
agglos->tailleCercle = facteur * CIRCLERADIUSAGGLO * 1.5;
|
||||
}
|
||||
|
||||
else
|
||||
{
|
||||
if(agglos->nbPts <= nbPointAgglosMin * 2.5)
|
||||
{
|
||||
cercle = creerCercle((sfVector2f){agglos->moyConv.x, agglos->moyConv.y}, CIRCLERADIUSAGGLO * 2, sfBlue);
|
||||
agglos->tailleCercle = CIRCLERADIUSAGGLO * 2;
|
||||
cercle = creerCercle((sfVector2f){agglos->moyConv.x, agglos->moyConv.y}, facteur * CIRCLERADIUSAGGLO * 2, sfBlue);
|
||||
agglos->tailleCercle = facteur * CIRCLERADIUSAGGLO * 2;
|
||||
}
|
||||
|
||||
else
|
||||
{
|
||||
if(agglos->nbPts <= nbPointAgglosMin * 3)
|
||||
{
|
||||
cercle = creerCercle((sfVector2f){agglos->moyConv.x, agglos->moyConv.y}, CIRCLERADIUSAGGLO * 2.5, sfBlue);
|
||||
agglos->tailleCercle = CIRCLERADIUSAGGLO * 2.5;
|
||||
cercle = creerCercle((sfVector2f){agglos->moyConv.x, agglos->moyConv.y}, facteur * CIRCLERADIUSAGGLO * 2.5, sfBlue);
|
||||
agglos->tailleCercle = facteur * CIRCLERADIUSAGGLO * 2.5;
|
||||
}
|
||||
|
||||
else
|
||||
{
|
||||
cercle = creerCercle((sfVector2f){agglos->moyConv.x, agglos->moyConv.y}, CIRCLERADIUSAGGLO * 3, sfBlue);
|
||||
agglos->tailleCercle = CIRCLERADIUSAGGLO * 3;
|
||||
cercle = creerCercle((sfVector2f){agglos->moyConv.x, agglos->moyConv.y}, facteur * CIRCLERADIUSAGGLO * 3, sfBlue);
|
||||
agglos->tailleCercle = facteur * CIRCLERADIUSAGGLO * 3;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -38,9 +38,10 @@ void afficherPoint(sfRenderTexture *const renderTexture, sfVector2f points, sfCi
|
||||
* @parem agglos Point d'interet a afficher.
|
||||
* @param ptrCercle Pointeur sur pointeur de type 'sfCircleShape', pour conserver son adresse une fois affiché.
|
||||
* @param nbPointAggloMin Nombre de point minimal dans une agglo
|
||||
* @param carte Carte que l'on affiche pour recuperer l'echelle
|
||||
* @return Procédure.
|
||||
*/
|
||||
void afficherAgglo(sfRenderTexture *const renderTexture, Agglomerat *agglos, sfCircleShape **ptrCercle, uint32_t nbPointAgglosMin);
|
||||
void afficherAgglo(sfRenderTexture *const renderTexture, Agglomerat *agglos, sfCircleShape **ptrCercle, uint32_t nbPointAgglosMin, Carte *const carte);
|
||||
|
||||
/**
|
||||
* @brief Affiche une carte à partir d'une image et charge les pointeurs ad hoc !
|
||||
|
Reference in New Issue
Block a user