Parmi les avantages et possibilités de cette architecture, nous pouvons noter:
Cette représentation structurée et ses avantages techniques qui ont permis de nettes améliorations des performances, ont vite poussé les graphes de scène au rang de standard des architectures de boîtes à outils ou de logiciels pour la 3D. Mais depuis peu, comme nous l'avons déjà évoqué plus haut, cette architecture a commencé à être adoptée dans les boîtes à outils 2D, spécialement dans celles dédiées à l'interaction avancée. Nous avons nous aussi choisi cette structure pour ses propriétés de réutilisation et ses avantages du point de vue graphique, mais aussi avec l'idée de fond d'y associer une gestion avancée des interactions.
Un graphe de scène, dans le modèle des graphes combinés, est formé d'un objet racine, le bureau ou desk, et de nœuds, les objets graphiques de l'interface (voir figure 7.3). Notre implémentation fournit différentes classes d'objets graphiques, la majorité d'entre eux pouvant être instanciés avec des formes diverses et arbitraires. Cette indépendance des objets vis à vis de leur forme permet plus d'expressivité dans la conception d'interfaces du fait que les objets ne sont pas limités à des formes rectangulaires ou ellipsoïdales. Leurs propriétés graphiques, telles que la couleur, les transformations géométriques ou l'opacité sont encapsulées par les objets et propagées aux nœuds fils par un mécanisme de contextes graphiques.
Les nœuds, ou objets graphiques, que nous proposons se décomposent en deux grandes classes:
Nous passerons dans cette partie les méthodes proposées pour créer un graphe de scène MAGGLITE; notons juste que, hormis la création de graphes de scène par programmation, nous proposons une méthode interactive basée sur le dessin dans la section 8.4.2, chapitre 8. Concentrons nous par contre sur les méthodes de description des interactions dans un graphe de scène. Dans les approches actuelles, l'interaction est décrite conjointement à la partie graphique par des nœuds spécifiques du graphe de scène, quand elle n'est pas tout simplement emmurée dans les nœuds graphiques eux-mêmes.
Les boîtes à outils Jazz et son évolution Piccolo développées au HCIL, par exemple, sont basées sur une structure très complète et avancée de graphes de scène [Bederson et al.2000,Bederson et al.2004]. Par contre, les interactions sont encapsulées au niveau des nœuds (objets graphiques) et basées sur l'architecture à évènements peu évolutive de la librairie Swing (voir figure 7.5(a)). Le principe est de créer des écouteurs qui peuvent alors être ajoutés au canevas de l'application (le conteneur principal du graphe de scène) ou directement à un nœud (pour la version .NET). De fait, même si cette boîte à outil innove sur les interfaces zoomables en offrant une grande latitude pour l'introduction de nouveaux composants graphiques, elle reste relativement fermée pour ce qui est des interactions avancées.
A contrario, la librairie graphique Java3D [Nadeau et al.1997,Sun Microsystems, Inc2004b] propose une classe spéciale de nœuds permettant de connecter des comportements (animations ou interactions) à des objets du graphe de scène. Cela permet de construire des graphes très complets et complexes, dont les sous-graphes peuvent fournir des comportements différents 7.5(b). Toutefois, ou plutôt encore une fois, bien que proposant une abstraction pour la gestion de périphériques d'entrée avancés, il est encore nécessaire de réaliser la liaison bas-niveau avec les périphériques non-standard (autres que souris et clavier) ainsi que les nœuds qui vont permettre les interactions avec le graphe de scène.
Outre l'aspect statique de ces approches, qui impose de «brancher» et donc de figer les interactions à la création du programme7.1, se pose aussi le problème de l'extensibilité. Malgré une granularité assez fine des composants permettant de définir les interactions, l'introduction d'interactions avancées, de périphériques nouveaux et leur réutilisation dans d'autres contextes reste laborieuse. Pour offrir plus de flexibilité et d'extensibilité, notre modèle de graphes combinés externalise la description des interactions avec les graphes d'interaction. Ainsi, les graphes de scène ne sont composés que de nœuds représentant des objets graphiques. Et de la même manière que la structure de graphe de scène sépare la partie graphique en composants graphiques primitifs, nous proposons d'utiliser des graphes d'interaction pour séparer la structure souvent complexe et monolithique des architectures événementielles.
stuf