void tscene (scene_id, struct_list, view_ind )
Pint scene_id; Pint_list *struct_list; Pint view_ind;
typedef struct {
Pint num_ints;
Pint *ints;
} Pint_list;
Lors d'un tracé de la scène (par predraw_all_structs ou ppost_struct) sur un poste de travail ouvert , les structures de la scène sont tracées dans l'ordre de la liste struct_list : ints[0] est la 1ère structure tracée, ints[1] la 2ème etc...
La scène est en fait elle même une structure PHIGS, d'identificateur scene_id, qui fait référence à l'ensemble des structures de la liste struct_list.
Cette structure est organisée de la façon suivante :
LABEL 0
ensemble des attributs par défaut valables pour toutes les primitives de la scène.
LABEL ints[0]
référence à la structure d'identificateur ints[0]
LABEL ints[1]
référence à la structure d'identificateur ints[1]
.
.
.
LABEL ints[num_ints-1]
référence à la structure d'identificateur ints[num_ints-1]
LABEL -999
Cette organisation permet de donner des attributs graphiques généraux pour toutes les primitives de la scène, et aussi de donner un attribut graphique valable seulement pour certaines structures. (cf. [section]attributs graphiques des structures)
Exemples:
si l'ensemble des primitives "text" doivent utiliser la police de caractère n° -12 on pourra écrire la séquence
tscene (scene_id, &struct_list, view_ind);
tset_text_font (scene_id,0,-12);
si l'ensemble des primitives "polyline" à partir de la structure ints[3] jusqu'à la structure ints[num_ints-1] doivent utiliser l'index de couleur n° 14 on pourra écrire la séquence
tscene (scene_id, &struct_list, view_ind);
tset_line_colr_ind (scene_id, struct_lists.ints[3],14);
de même on pourra indiquer quelles sont les structures de la scène qui doivent subir le découpage de leur primitive aux limites du domaine défini par tdomain ou tdomain3 : si toutes les structures doivent être découpées on écrira :
tscene (scene_id, &struct_list, view_ind);
tset_model_clip_ind (scene_id, 0, PIND_CLIP);
si seulement la structure ints[15] doit être découpée on écrira :
tscene (scene_id, &struct_list, view_ind);
tset_model_clip_ind (scene_id, struct_lists.ints[15], PIND_CLIP);
tset_model_clip_ind (scene_id, struct_lists.ints[16], PIND_NO_CLIP);