Ces fonctions permettent d'insérer ou de modifier un attribut PHIGS spécifique à un sous objet d'une structure créée par PHIGURE. Par exemple pour modifier l'attribut line colr ind du sous objet n° i de la structure struct_id, il suffit d'appeler la fonction
tset_line_colr_ind (struct_id, -i, line_colr)
Cette fonction effectue les opérations suivantes :
elle ouvre la structure d'identificateur struct_id,
elle recherche un élément pset_line_colr_ind entre les deux élément plabel (-i)
si il en existe un,
elle le remplace par le nouvel élément pset_line_colr_ind (line_colr)
sinon
elle insère l'élément pset_line_colr_ind (line_colr) après le premier élément plabel (-i)
elle referme la structure
Il existe une fonction du même genre, pour tous les principaux attributs de primitives. Exceptée la première lettre, elles ont le même nom que la fonction PHIGS qui crée l'élément, mais elles comportent en plus les deux premiers paramètres struct_id et n° du label.
Ces fonctions permettent un raccourci intéressant de la programmation pour modifier une structure existante. Elles sont toutes présentées dans le chapitre "attributs graphiques des structures". Bien sûr ces fonctions doivent être appelées après la création de la structure.
Si la structure est reconstruite après avoir été modifiée par une de ces fonctions d'attribut, alors la modification est perdue. Exemple :
tcube (struct_id, &p1, &p2); /* création de la structure */
tset_int_colr_ind (struct_id, -1, 3); /* insertion dans la structure d'un attribut set_int_colr_ind */
tcube (struct_id, &p1, &p2); /* re-création de la structure : l'attribut set_int_colr_ind est perdu */
Pour connaître la décomposition logique d'une structure en sous objet, il faut se reporter dans ce manuel à la description de la fonction qui a créé la structure.
Si la structure ne comporte qu'un seul sous objet (c'est la majorité des cas), aucune description n'est donnée : cela signifie que la structure comporte une paire de label (0) puis une paire de label (-1), suivies des primitives composant la structure (il n'y a pas d'autre label de valeur < -1).
Dans les autres cas, la décomposition exacte de la structure en sous objets est donnée.