Merge branch 'origin/menu' of github.com:HorlogeSkynet/GINPA into origin/menu

This commit is contained in:
HorlogeSkynet
2017-01-26 00:15:10 +01:00
5 changed files with 32 additions and 17 deletions

@ -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 !