• Aucun résultat trouvé

5.2 Principes

5.2.2 Interface zoomable

La XVTM est basée sur la métaphore d’espaces virtuels 2D infinis (VirtualSpace) contenant des glyphes et des caméras (figure 5.6). Une caméra est attachée à un espace virtuel et permet d’observer une région de cet espace. Elle peut être déplacée dans le plan (dimensions x et y dans la figure 5.6), mais aussi suivant son axe d’observation (z), ce qui correspond à modifier son altitude, c’est-à-dire à effectuer une opération de zoom avant ou arrière. L’axe d’observation reste par contre toujours perpendiculaire au plan de l’espace virtuel ; l’interface zoomable offre donc un degré de liberté supplémentaire par rapport aux interfaces 2D.

4Nous ne nous sommes intéressés qu’aux solveurs de contraintes graphiques car ce sont les seuls à proposer des temps de réponse faibles permettant un taux de rafraîchissement acceptable.

Zoom sémantique

La fonction de zoom standard modifie seulement la taille des glyphes par une projection géométrique tenant compte de l’altitude du point d’observation. Elle ne modifie donc pas leur aspect. Le zoom séman-tique permet quant à lui de modifier automaséman-tiquement la représentation d’un objet graphique en fonction de sa taille apparente à l’écran, c’est-à-dire en fonction du niveau de zoom. Un exemple simple d’uti-lisation est l’horloge digitale implémentée avec Pad++ [16]. Cette horloge, au niveau de zoom le plus haut, n’affiche que les heures et les minutes. Si l’utilisateur effectue un zoom avant, l’horloge affiche aussi les secondes et éventuellement la date au lieu de se contenter de rendre le texte heures/minutes plus gros. Le zoom sémantique peut aussi servir à afficher un résumé ou les premières lignes d’un texte dans l’espace qui lui est alloué au lieu de présenter l’ensemble du texte avec une police illisible car de taille trop petite. Enfin, il peut être utilisé pour donner plus de détails ou au contraire diminuer la complexité des objets graphiques représentés à l’écran quand ces détails deviennent illisibles ou s’ils ne sont pas considérés importants compte tenu du contexte (niveau de zoom, lié à la notion de vue globale/vue dé-taillée). C’est le cas de l’outil de visualisation pour la base de données génétiques HuGeMap construit au moyen de Zomit [186], une boîte à outils pour interfaces zoomables orientée vers le zoom sémantique. Ce dernier a aussi un intérêt par rapport aux performances de l’interface graphique puisqu’une réduction de la complexité des objets à afficher peut entraîner une augmentation du taux de rafraîchissement et par conséquent une amélioration de la qualité de l’interaction utilisateur.

La XVTM supporte la notion de zoom sémantique mais ne fournit pas de glyphes offrant cette fonc-tionnalité, la définition des différentes apparences étant très dépendante de l’application cliente. La bi-bliothèque de glyphes est cependant extensible à volonté : pour ajouter un nouveau type de glyphe, il suffit de sous-classer la classe Glyph en définissant quelques méthodes abstraites. L’une de ces méthodes doit définir la projection du glyphe (calcul de sa taille apparente) en fonction de l’altitude d’observation de la caméra, c’est-à-dire du niveau de zoom. Cette méthode est appelée juste avant la méthode ayant pour fonction d’effectivement afficher le glyphe. Dans le cas standard, la première méthode se contente de calculer et de projeter la forme du glyphe en fonction de paramètres géométriques. Mais rien n’em-pêche, dans le cadre de la définition de nouveaux glyphes, de créer une méthode plus complexe qui, en fonction de la taille apparente calculée par la projection, sélectionnera une option parmi un choix d’apparences visuelles.

5En réalité, il est limité par le format de représentation sur 64 bits des entiers longs qui autorise des valeurs allant de -9 223 372 036 854 775 808 à +9 223 372 036 854 775 807.

Principes 151 Camera1 Espace virtuel 2 Espace virtuel 1 Camera2 Camera3

FIG. 5.7 : Espaces virtuels multiples Espaces virtuels, vues et couches multiples

Il est possible d’associer plusieurs caméras indépendantes à un espace virtuel, ces caméras observant différentes régions de l’espace virtuel. Il est aussi possible de définir plusieurs espaces virtuels existant simultanément (figure 5.7). Cette idée d’espaces virtuels multiples était absente de la VAM. On la re-trouve par contre dans Jazz, sous la forme de scene graphs indépendants. Elle est intéressante car elle offre une séparation logique de l’espace de travail, inexistante dans le cas d’un espace virtuel unique qui n’offre qu’une séparation géométrique des objets et groupes d’objets. Cette séparation logique est possible dans le cas où l’interface gère différents groupes d’objets graphiques qui n’auront jamais à in-teragir, c’est-à-dire qui n’ont pas besoin de se trouver dans le même espace géométrique. Elle offre une abstraction supplémentaire au programmeur, lui permettant une gestion plus fine des entités présentes dans chaque espace virtuel. D’un point de vue technique, elle permet aussi une gestion plus localisée des entités présentes dans les espaces virtuels et contribue à l’amélioration des performances de l’interface : par exemple, une caméra appartenant à un seul espace virtuel, la liste des glyphes à inspecter au cours de la phase de clipping6est plus petite si les glyphes sont répartis dans différents espaces virtuels.

La XVTM offre la possibilité d’afficher plusieurs vues simultanément. Le concept de vue XVTM (View) est différent du concept de caméra. Une vue affiche la région observée par une ou plusieurs camé-ras. Dans le cas où plusieurs caméras sont associées à une même vue, les différentes régions observées sont affichées sur des couches (layers) superposées à fond transparent. Ces différentes couches sont cha-cunes reliées à une caméra et sont donc indépendantes : il est possible de naviguer (translation et zoom) dans une couche sans modifier les autres. Il est possible de combiner dans la même vue des caméras appartenant à des espaces virtuels différents, ou bien au même espace virtuel. Cette dernière possibilité facilite la création des vues radars étudiées dans le chapitre 3 qui offrent dans une fenêtre de taille très

Appartient a la couche associee a la Camera3

FIG. 5.8 : Vue constituée de deux caméras

réduite une vue d’ensemble de l’espace d’information tout en identifiant la région couramment observée par la vue principale. La figure 5.8 montre une vue constituée de deux couches associées aux caméras Camera2 et Camera3 de la figure 5.7.

Le concept de couches indépendantes est utilisé dans des applications comme les programmes de des-sin et de retouche d’image (Adobe Photoshop [2]), mais aussi dans des travaux de recherche. Lieberman [147] propose un outil pour la visualisation d’information (par exemple des cartes géographiques) dans lequel la vue radar, au lieu d’être affichée dans une petite fenêtre, est représentée à l’arrière plan dans la fenêtre principale, la couche supérieure étant semi-transparente. VXT (chapitre 7) utilise des couches superposées pour représenter graphiquement la notion de filtrage structurel au moyen de masques visuels appartenant à la couche supérieure et adoptant la forme des structures qu’ils sélectionnent dans la couche inférieure.