Fichier | Classe(s) définie(s) | Description |
---|---|---|
Point2D.java | Point2D | Des classes de nature mathématique / géométrique |
Vector2D.java | Vector2D | |
AlignedRectangle2D.java | AlignedRectangle2D | |
Point2DUtil.java | Point2DUtil | Une classe contenant des méthodes pour tester si un point est à l'intérieur d'un polygone (utile pour réaliser des effets de surbrilliance, et pour réaliser la sélection en lasso), pour calculer l'enveloppe convexe d'un ensemble de points (utile pour dessiner des "bulles" autour d'un ou plusieurs objets). |
GraphicsWrapper.java | GraphicsWrapper |
Ces deux classes permettent de compiler soit
(1) une application qui utilise OpenGL pour dessiner,
ou bien (2) un applet qui utilise Java2D/Graphics2D pour dessiner.
GraphicsFramework est un cadriciel qui reçoit les événements
de souris et de clavier,
et ensuite appelle des méthodes dans le code client.
GraphicsFramework contient aussi le point d'entrée main().
GraphicsWrapper est une abstraction des routines de dessin,
qui facilite aussi la gestion de zoom et pan dans une vue 2D
(transformation entre les systèmes de coordonnées "pixels" et "espace monde"
au moment du dessin et au moment de la réception d'événements
de souris).
Le code client est supposé utiliser GraphicsWrapper
pour dessiner, au lieu d'appeler directement des routines
de Java2D/Graphics2D ou bien des routines de OpenGL.
En résumé, GraphicsFramework appelle le code client, qui appelle ensuite GraphicsWrapper pour dessiner: GraphicsFramework | v (code client) | v GraphicsWrapperPour compiler la version application du code, copiez doNotCompile/GraphicsFramework-APPLICATION-JOGL-OPENGL.java et doNotCompile/GraphicsWrapper-JOGL-OPENGL.java par dessus src/GraphicsFramework.java et src/GraphicsWrapper.java, et recompilez. Pour compiler la version applet du code, copiez doNotCompile/GraphicsFramework-APPLET-JAVA2D.java et doNotCompile/GraphicsWrapper-JAVA2D.java par dessus src/GraphicsFramework.java et src/GraphicsWrapper.java, et recompilez. Ensuite, ouvrez le fichier index_test.html qui contient une balise applet. Ne modifiez pas les fichiers GraphicsFramework*java ou GraphicsWrapper*java, car ces modifications pourront être perdues, brisant votre code, lorsque vous copiez une autre version par dessus. Pour compiler et exécuter la version application du code, vous avez besoin de la librarie JOGL. Une copie se trouve au http://profs.etsmtl.ca/mmcguffin/code/java/lib/JOGL/ |
GraphicsFramework.java | GraphicsFramework | |
Constant.java | Constant | Quelques constantes. |
PopupWidget.java | PopupWidget | Des classes servant à définir des widgets contextuels |
RadialMenuWidget.java | RadialMenuWidget | |
LassoRectNodeSelectorWidget.java | LassoRectNodeSelectorWidget | |
Node.java | Node | Stockent le réseau (graphe).
Network.selectedNodes stocke aussi le sous-ensemble de noeuds sélectionnés.
Dans la classe Network, il y a une méthode breadthFirstTraversal() qui effectue un parcours en largeur, et qui utilise le patron "visiteur". Le parcours en largeur est utilisé ensuite par les méthodes findNeighbourhoodOfNode*(), qui retrouvent le voisinage d'un noeud ou d'un groupe de noeuds. Une des méthodes findNeighbourhoodOfNode*() est ensuite utilisée par la méthode performConcentricCircleLayout(), qui calcule une disposition en cercles concentriques. |
Network.java | Network | |
SimpleNetworkVisualizer.java | SimpleNetworkVisualizer | La classe principale.
SimpleNetworkVisualizer est le client de GraphicsFramework.
Interface utilisateur:
Le réseau est crée dans le constructeur de SimpleNetworkVisualizer. |