Projet C IG (1A)

IHM (2A)


VR/AR/Post-WIMP (3A)


Projet image (2A)


HCI (MoSIG 2)


Test Logiciel


Projects Docs

Projet Boîte à Outils Graphique et d'Interaction

L'objectif de ce projet est de mettre en oeuvre les concepts nécessaires à la création de boîtes à outils logicielles graphiques et d'interaction.

Ce qui est demandé

Une boîte à outils graphique

Vous devez réaliser une boîte à outils graphique qui utilise la bibliothèque Ada/SDL et qui offre au minimum les services spécifiés dans le fichier "gr_shapes.ads" de cette bibliothèque (i.e. vous devez fournir la réalisation gr_shapes.adb, et tout package dont dépendra cette réalisation). Ces services incluent :

  • le tracé de lignes brisées,
  • le tracé de polygones,
  • la gestion de la couleur et de la transparence,
  • le clipping rectangulaire.

Vous devez également fournir un service de picking qui sera défini en cours et qui n'est pas spécifié dans "gr_shapes.ads".

Vous pouvez bien sûr étendre les services offerts au delà de ce qui est proposé dans gr_shapes.ads, mais sans modifier gr_shapes.ads: toute extension doit se faire dans vos propres packages. Les seuls fichiers de la bibliothèque Ada/SDL que vous pouvez modifier sont les makefiles (et le projet XCode), et le fichier ada_sdl_main.adb.

Un interacteur : une Toolglass

Vous devez réaliser une Toolglass ("widget", en anglais). Les terminaux de l'école n'étant pas équipés de souris USB, il n'est pas possible de gérer plusieurs souris. Le contrôle de la position de Toolglass par la main non dominante doit donc être émulé de deux façons différentes :

  • avec les touches du curseur,
  • avec la souris (main dominante) pendant l'appui d'une touche "modifier" (telle que "Alt").

Vous pouvez utiliser les services offerts par "ada_manymouse.ads" pour gérer plusieurs souris sur les ordinateurs équipés de souris USB.

Une application de dessin utilisant la Toolglass

Vous devez réaliser une application permettant le dessin "vectoriel", cette application doit offrir les services suivants :

  • création de formes géométriques, au minimum : segments de droites, lignes brisées, polygones pleins, ovales.
  • destruction d'objets créés précédemment
  • changement de couleur et transparence d'objets créés précédemment,
  • déplacement (translation) d'objets créés précédemment,
  • gestion de l' ordre d'affichage : un objet est créé au-dessus de tous les autres. Les fonctions permettant de faire passer un objet créé précédemment devant ou derrière tous les autres objets doivent être proposées dans une Toolglass.

Organisation

Le projet se fait par groupe de 3 étudiants.

La gestion des groupes et des délivrables se fait avec l'application TEIDE.

Un planning indicatif vous est donné pour vous aider à gérer votre temps.

Chaque groupe doit fournir, avant la date limite (définie dans TEIDE) :

  • le code source du projet et un Makefile pour le construire sur telesun,
  • l' exécutable fonctionnant sous telesun,
  • un rapport de 2 à 5 pages décrivant les points intéressants de votre projet.

Le code doit être uniquement en langage Ada. En particulier, il n'est pas autorisé à faire appel à d'autres fonctions de SDL ou de toute autre bibliothèque, hormis les fonctions proposées par Ada/SDL.

Évaluation

Le projet est évalué selon les critères suivants (par ordre d'importance décroissante) :

  1. L' exactitude : les services de "gr_shapes.ads" doivent être réalisés avec une précision au pixel. Dans le cas où les spécifications vous semblent ambigües, cherchez à lever l'ambigüité dans le sujet, dans les commentaires du code, dans le cours, et en dernier recours en interrogeant votre encadrant. Par ailleurs, le projet doit répondre au cahier des charges défini par ce sujet.
  2. La performance : le temps d'exécution des procédures de "gr_shapes.abs" sera mesuré, le temps de réaction de l'application doit sembler immédiat.
  3. La qualité du code : le projet doit être correctement structuré (packages, types, etc.) et bien documenté (commentaires, choix des identificateurs).
  4. Les extensions : si le cahier des charges défini par ce sujet est satisfait, les extensions pertinentes seront prises en compte dans l'évaluation. Attention toutefois à bien gérer son temps : un projet comme celui-ci peut être très prenant, mais il ne représente qu'une petite partie de votre travail du semestre à l'ENSIMAG.
Edit - History - Upload - Print - Recent Changes - Search
Page last modified on February 04, 2011, at 12:33 PM