Commit a2a8b008 authored by Selandron's avatar Selandron
Browse files

Correction de nombreux bugs

parent c0252256
......@@ -14,9 +14,9 @@ Pour pouvoir partager les données avec d’autres groupes du projet, il est imp
Les algorithmes proposés sont les suivants:
- [x] suppression de points dans un cercle donné (typiquement le domicile de l’utilisateur ou son bar favori)
- [ ] suggestion de points d’intérêts à supprimer: il faut calculer des points pour lesquels on repère une fréquentation régulière et qui peut servir de centre pour un cercle
- [x] suggestion de points d’intérêts à supprimer: il faut calculer des points pour lesquels on repère une fréquentation régulière et qui peut servir de centre pour un cercle
- [ ] suppression des points se rendant à un point d’intérêt c’est-à-dire une “route”
- [ ] calcul automatique du rayon d’un cercle à partir de la densité de population (en rase campagne, on imagine que les cercles ont des rayons de plusieurs kilomètres, en ville des centaines de mètres suffisent) en exploitant la base ADRESSE.
- [x] calcul automatique du rayon d’un cercle à partir de la densité de population (en rase campagne, on imagine que les cercles ont des rayons de plusieurs kilomètres, en ville des centaines de mètres suffisent) en exploitant la base ADRESSE.
##Partie 2: Visualisation des traces
......@@ -33,8 +33,8 @@ Visualisation statique:
- [x] Vue des cercles de protection de la vie privée
Visualisation dynamique:
- [ ] animation des points avec le temps; contrôle de la vitesse de rejeu
- [ ] animation des routes, etc.
- [x] animation des points avec le temps; contrôle de la vitesse de rejeu
- [x] animation des routes, etc.
Visualisation d’information contextuelle:
- [x] la base ADRESSE peut permettre d’afficher l’adresse des points d’intérêt
......@@ -55,8 +55,8 @@ Toutes ces données sont temporisées, c’est-à-dire que les points d’intér
Dans cette partie, l’outil de visualisation doit être enrichi avec les données calculées en partie 3.
- [ ] Visualisation des informations agrégées (points d’intérêt communs, routes, etc.)
- [ ] Animation d’une ou plusieurs traces, en même temps que les données agrégées. L’intérêt est de pouvoir par exemple voir les points d’intérêt d’une communauté (RU, INSA, etc.) et de regarder 1 individu et voir s’il se rend à ces points d’intérêts ou pas.
- [x] Visualisation des informations agrégées (points d’intérêt communs, routes, etc.)
- [x] Animation d’une ou plusieurs traces, en même temps que les données agrégées. L’intérêt est de pouvoir par exemple voir les points d’intérêt d’une communauté (RU, INSA, etc.) et de regarder 1 individu et voir s’il se rend à ces points d’intérêts ou pas.
##TODO-NE (Trucs faits)
......@@ -69,12 +69,12 @@ Dans cette partie, l’outil de visualisation doit être enrichi avec les donné
##TODO-LIST (Trucs à faire)
- [x] Gérer l'enregistrement de nouveaux logs avec protection de la vie privée
- [ ] Détection de centres d'intérêt
- [ ] Suggestion de points d’intérêts à supprimer
- [x] Détection de centres d'intérêt
- [x] Suggestion de points d’intérêts à supprimer
- [x] Traçage des routes
- [x] Attribution des adresses aux points (proximité géographique)
- [ ] Animation des points avec le temps + contrôle de la vitesse de rejeu
- [x] Animation des points avec le temps + contrôle de la vitesse de rejeu
Objectifs à terminer pour fin décembre <<<
......
......@@ -376,7 +376,7 @@ int launchGraphical(Vect_pt * lst_pt_rw, Vect_adr * lst_adr_rw)
{
pthread_t thread; //On le construit
thread_param p;
p.lst_pt = lst_pt; p.lst_ag = agg; p.position = &position_thread; p.running = &running_thread;
p.lst_pt = &lst_pt; p.lst_ag = agg; p.position = &position_thread; p.running = &running_thread;
//p.mutex = PTHREAD_MUTEX_INITIALIZER;
pthread_create (&thread, NULL, &suggestInterest, &p); //Et on le lance
running_thread = 1;
......@@ -389,14 +389,14 @@ int launchGraphical(Vect_pt * lst_pt_rw, Vect_adr * lst_adr_rw)
/*bg_selection.x = agg.tab[position_thread].co_mp.latitude_mp + off.x;
bg_selection.y = agg.tab[position_thread].co_mp.longitude_mp + off.y;*/
//deplacement_cam(agg.tab[position_thread].co_mp.latitude_mp + off.x, agg.tab[position_thread].co_mp.longitude_mp + off.y, &off, &bg_selection);
int _x_temp = (bg_selection).x;
/*int _x_temp = (bg_selection).x;
int _y_temp = (bg_selection).y;
(bg_selection).x = agg.tab[position_thread].co_mp.latitude_mp + off.x - ((float)(bg_selection).w / 2.0);
(bg_selection).y = agg.tab[position_thread].co_mp.longitude_mp + off.y - ((float)(bg_selection).h / 2.0);
(off).x += _x_temp - (bg_selection).x;
(off).y += _y_temp - (bg_selection).y;
(off).y += _y_temp - (bg_selection).y;*/
//Blitter la carte
//SDL_BlitSurface(sprite, &bg_selection, screen, &bg_position);
......@@ -436,7 +436,7 @@ int launchGraphical(Vect_pt * lst_pt_rw, Vect_adr * lst_adr_rw)
if (menu_bar[10].status == 1)
{
lst_pt = reset_Pt;
lst_pt = copyVectPt(reset_Pt);
lst_cr = initVectCr(0);
scalePoint(&lst_pt, bg_selection.x + off.x, bg_selection.y + off.y);
updateAgregat(&agg, lst_pt); //Mis à jour des agrégats par rapport à la suppression de la liste
......
CC=gcc -lSDL -lSDL_image -Wall -std=c99 -lm -lSDL_ttf -lSDL_gfx -lpthread `sdl-config --cflags --libs`
CC=gcc
CFLAGS=-Wall
LDFLAGS=-lSDL -lSDL_image -Wall -std=c99 -lm -lSDL_ttf -lSDL_gfx -lpthread `sdl-config --cflags --libs`
EXEC=exec
all : circle.o tinyfiledialogs.o point.o traitement.o agregation.o route.o adress.o graphical.o main.o
$(CC) -o final
all : $(EXEC)
main.o : main.c point.h graphical.h traitement.h circle.h adress.h tinyfiledialogs.h circle.h
$(CC) -o $@ -c $<
exec : main.o circle.o tinyfiledialogs.o point.o traitement.o agregation.o route.o adress.o graphical.o
$(CC) -o $@ $^ $(LDFLAGS)
%.o: %.c
$(CC) -o $@ -c $<
%.o: %.c point.h graphical.h traitement.h circle.h adress.h tinyfiledialogs.h circle.h
$(CC) -o $@ -c $< $(CFLAGS)
clean :
rm -rf *.o
......
......@@ -178,9 +178,8 @@ void * suggestInterest(void * parametre)
thread_param * p = (thread_param *) parametre;
pthread_mutex_lock(&(p->mutex));
Vect_Agg lst_ag = p->lst_ag;
Vect_pt lst_pt = p->lst_pt;
Vect_pt * lst_pt = p->lst_pt;
*(p->running) = 1;
Vect_cr lst_cr = initVectCr(0);
int moyenne = averageSize(lst_ag);
......@@ -195,8 +194,8 @@ void * suggestInterest(void * parametre)
}
}
}
lst_pt = deleteInVectCircle(lst_pt, lst_cr);
if (lst_cr.size > 0)
*lst_pt = deleteInVectCircle(*lst_pt, lst_cr);
*(p->running) = -1;
pthread_mutex_unlock(&(p->mutex));
pthread_exit(NULL);
......
......@@ -17,7 +17,7 @@
typedef struct
{
Vect_Agg lst_ag;
Vect_pt lst_pt;
Vect_pt * lst_pt;
int * running;
int * position;
pthread_mutex_t mutex;
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment