Pour réaliser une photographie en studio, un photographe procède en général comme suit : Parmi l'ensemble des objets (ou des modèles) dont il dispose, il sélectionne ceux qu'il veut faire apparaître sur la photo, il les positionne sur le plateau et positionne également son appareil photo par rapport au plateau.
La scène reprend ces concepts : On peut faire le parallèle entre
les objets et les structures PHIGS
l'appareil photo et la vue PHIGS
le plateau et la scène PHIGURE
Une scène PHIGURE permet de regrouper plusieurs structures PHIGS afin de les visualiser selon la même vue. La scène est elle même une structure PHIGS.
Elle est définie par
l'identificateur de scène : c'est un identificateur de structure
la liste des identificateurs des structures à regrouper
la vue choisie pour visualiser la scène : elle est référencée par l'index de vue
Une scène est créée par l'appel à la fonction tscene (scene_id, &struct_id_list, view_ind)
où scene_id est l'identificateur de la scène créée
struct_id_list de type Pint_list (cf. phigs.h) est la liste des identificateurs de structures à regrouper
view_ind est l'index de la vue à prendre en compte par la scène
Une scène est liée à un domaine car elle transforme le rectangle (ou parallélépipède) du domaine en un carré (ou un cube) de coté 1. Cette transformation est appelée la transformation de scène. Elle ne dépend que du domaine courant au moment de l'appel à la fonction tscene.
En effet, une matrice de transformation locale passée en paramètre de la fonction pset_local_tran (ou pset_local_tran3) est calculée uniquement en fonction du domaine donné par le dernier appel à la fonction tdomain (ou tdomain3) précédent l'appel à la fonction tscene.
En conséquence, un domaine peut être lié à plusieurs scènes. Exemple :
tdomain (&first_domain);
tscene (scene1, ...);
tscene (scene2, ...);
tdomain3 (&second_domain);
tscene (scene3,...);
Pour cet exemple les 2 scènes d'identificateur respectif scene1 et scene2 correspondent au même domaine 2D, alors que la scène d'identificateur scene3 correspond à un domaine 3D