Toutes ces fonctions ont comme premier paramètre l'identificateur struct_id de la structure à générer
Les paramètres suivants décrivent la géométrie de l'objet à générer.
exemple : fonction tcube (struct_id, &p1, &p2) où p1 et p2 sont deux points 3D (type Ppoint3) formant une diagonale du parallélépipède.
Toutes les structures générées par ces fonctions PHIGURE ont l'architecture commune suivante :
label (0)
add name to set (struct_id) /* éventuellement */
label (0)
/* premier sous objet */
label (-1)
fonctions d'attribut de primitive /* éventuellement */
label (-1)
liste de primitives PHIGS
/* deuxième sous objet */
label (-2)
fonctions d'attribut de primitive /* éventuellement */
label (-2)
liste de primitives PHIGS
/* n-ième sous objet */
label (-n)
fonctions d'attribut de primitive /* éventuellement */
label (-n)
liste de primitives PHIGS
label (-999)
Chaque structure est découpée en n sous objets (n >= 1). Le sous objet n° i est repéré par une paire d'éléments label (-i). Un sous objet correspond à un regroupement logique de primitives. Tous les attributs de primitives spécifiques au sous objet i sont situés entre les deux label (-i).
En se référant à la portée des attributs, tout attribut spécifique à un sous objet i, est pris en compte par les sous objets j avec j>i, si il n'y a pas un autre attribut du même type spécifié.
Par défaut, l'appel à une fonction PHIGURE construisant une structure, commence par un effacement préalable de celle ci. Ceci évite d'avoir une accumulation des primitives. Néanmoins ceci est configurable en faisant appel à la fonction tstruct_create_flag qui permet d'enlever l'effacement systématique de la structure, et/ou l'insertion systématique d'élément add name set .