Pour ce travail, vous avez à prendre le code source de SimpleModeller (en fichier .zip, ou bien en fichiers individuels) et le modifier. Avant de le modifier, lisez les fichiers NOTES.html et CLASSES.html qui sont inclus avec le code source pour savoir comment fonctionner le logiciel et pour avoir des indications sur l'organisation du code. Compiler, exécuter, et jouer avec les différentes fonctions du logiciel.
Pour compiler et exécuter le code, vous avez besoin de la librarie JOGL, qui est peut-être déjà sur votre poste de laboratoire dans un répertoire comme C:\jogl-1.1.1-rc8-windows-i586. Vous pouvez aussi téléchargez JOGL à partir de http://download.java.net/media/jogl/builds/archive/jsr-231-1.1.1/ ou bien à partir d'ici. Pour utiliser cette librarie, il faut que votre CLASSPATH inclut les fichiers jogl.jar et gluegen-rt.jar de JOGL, et il faut aussi que votre environnement d'exécution inclut les fichiers .DLL ou .so (sur Windows, PATH doit inclure le répertoire des fichiers .DLL; sur Linux, LD_LIBRARY_PATH doit inclure le répertoire des fichiers .so). Pour plus d'informations, voir la section "Local installation for development" à cette page.
Pour ceux qui utilisent Eclipse sur Windows, pour faire inclure JOGL, au lieu de jouer avec le CLASSPATH et le PATH, il est peut-être plus facile de suivre les étapes suivantes:
Si vous êtes une équipe de 2 ou de 3 personnes, vous avez à choisir 2 changements de la liste de changements "faciles", et 2 changements de la liste de changements "difficiles" que vous allez effectuer sur le code source. Si vous êtes une équipe de 4 personnes, vous avez à choisir 2 changements de la liste de changements "faciles", et 3 changements de la liste de changements "difficiles" que vous allez effectuer sur le code source.
Vos changements doivent être finalisés dans une seule version du code que vous allez démontrer à un chargé de labo, et soumettre par courriel. Vos changements doivent être actifs et démontrables en compilant votre code une seule fois (c.-à-d. sans changer des constantes internes et en recompilant pour chaque changement différent).
Certains des changements proposés demandent de rajouter une fonctionnalité pour permettre de faire x, sans spécifier si x doit étre fait avec la souris, le clavier, un widget, etc. Dans ces cas, vous êtes libres de choisir la méthode d'entrée.
Vous aurez à faire une démonstration de vos changements lors d'un laboratoire indiqué sur l'horaire sur le site web du cours. Pendant ce laboratoire, vous aurez seulement environ 8 minutes pour convaincre le chargé de labo que vos changements sont bons (c.-à-d. le temps de les montrer et de laisser le chargé de labo les essayer), alors assurez vous que les changements fonctionnent bien avant ce labo!
Vous aurez à remettre, par courriel, deux choses: votre code source (c.-à-d. votre version des fichiers .java), et un document d'une à deux pages. Le document doit contenir les informations suivantes: vos noms, vos codes permanents, la liste des changements effectués, et deux sections. La première section doit expliquer comment faire fonctionner votre interface modifiée; cette explication doit être destinée à un utilisateur imaginaire qui connait déjà l'ancienne interface et veut seulement savoir ce qu'il y a de différent avec le fonctionnement de votre interface. Cette première section peut-être écrite dans le même style que le NOTES.html qu'on vous a fournit avec le code source original. La deuxième section du document doit expliquer brièvement comment vous avez effectué vos changements au code source. Cette deuxième section dira des choses comme: "Pour changement F1, j'ai rajouté un menu "View" dans lequel il y a une case à cocher "Wireframe". La sélection de cette case à cocher est traîtée dans SimpleModeller.actionPerformed(), qui lui appelle sceneViewer.setDisplayMode() pour changer la valeur de sceneViewer.displayMode. La variable sceneViewer.displayMode est ensuite utilisée dans Scene.drawScene pour déterminer comment dessiner les boîtes."
Votre chargé de laboratoire va regarder votre code et votre document, et va peut-être avoir à exécuter et essayer votre code interactivement après votre remise. Donc, écrivez votre document pour expliquer rapidement ce qu'il y a de différent dans l'interface (exemple: le bouton de milieu sert maintenant à faire telle fonction ...) et aussi expliquer rapidement où sont les changements intéressants dans le code, sans trop aller en détail. Votre document ne doit pas dépasser deux pages.
Aussi, ne changez pas des parties du code qui ne sont pas nécessaires à changer, car votre chargé de labo regardera une comparaison de la version originale du code avec votre version, et verra tous les changements surlignés. Si vous faites des changements inutiles, par exemple changer les noms de plein de variables ou changer les espaces, ces changements seront surlignés et vont grandement distraire et faire perdre le temps de votre chargé de labo.
Finalement, dû au fait que tous vos changements au code seront surlignés lorsque votre chargé de labo visualise la comparaison, il sera facile pour nous de détecter des cas de plagiat. Alors, ne partagez pas de copies de vos changements entre équipes! Il est permis que deux équipes discutent comment faire les changements, mais ne partagez pas de copies du code. Chaque équipe doit écrire sa propre version des changements choisis. Si, pour effectuer une partie de vos changements (par exemple pour calculer une rotation de points pour D3), vous utilisez une équation ou un algorithme que vous avez trouvé dans un livre ou sur un site web ou que quelqu'un d'autre vous a donné, indiquer clairement dans le code source et dans votre document la source et la nature de cette partie. De telles parties dont vous n'êtes pas l'auteur doivent former au plus une minorité des changements que vous effectuez au code. Évitez soigneusement toute forme de plagiat, ou même la possibilité de donner l'impression d'un plagiat, car il existe plusieurs moyens pour un professeur et ses chargés de cours de détecter des cas de plagiat, et lorsque ces cas arrivent, c'est une situation grave qui sera traîtée sévèrement.
Bonne chance et amusez vous bien!