void tview_config. (wkid, view_ind, viewport_type, clip)
Pint wkid; Pint view_ind; Tviewport_type viewport_type; Pclip_ind clip;
TNON_ISOTROPIC_VIEWPORT
Le viewport est défini par rapport à l'espace [0-1] × [0-1] représentant toute la fenêtre graphique. Si la fenêtre graphique n'a pas le même rapport hauteur/largeur que le viewport, il y aura une déformation de l'image lors de la visualisation (un cercle apparait comme une ellipse).
TISOTROPIC_VIEWPORT
Le viewport est défini par rapport à l'espace [0-1] × [0-1] représentant toute la fenêtre graphique. Il n'y a jamais de déformation de l'image même si la fenêtre graphique n'a pas le même rapport hauteur/largeur que le viewport,(un cercle apparait toujours comme un cercle). (mode par défaut si le poste de travail est ouvert par topen_ws. et si tview_config. n'est pas appelée)
TPHIGS_VIEWPORT
Le viewport est défini par rapport à l'espace [0-1] × [0-1]
représentant l'espace NPC de PHIGS
(cf. manuels de
référence de PHIGS)
exemple : une scène définie dans un domaine utilisateur [10-20] × [10-20] comporte un cercle centré en (15,15) de rayon 5. Visualisation de cette scène par la fonction tview2_center.
#define CIRCLE 1
#define SCENID 2
#define WKID 1
#define VIEW_IND 1
static Plimit domain = {10.,20., 10.,20.};
static Ppoint center = {15.,15.};
Tcircle circle_s;
static Pint_list list_struct_list;
static Plimit viewport = { .... };
Tviewport_type type;
tdomain (&domain); /*domaine utilisateur [10-20] × [10-20] */
circle_s.type = TCENTER_RADIUS;
circle_s.geometry.cr.c = center;
circle_s.geometry.cr.r = 5.;
tcircle (CIRCLE, &circle_s); /*cercle centré en (15,15) de rayon 5 */
struct_list.num_ints = 1;
struct_list.ints [0] = CIRCLE;
tscene (SCENID,&struct_list,VIEW_IND); /*scène comportant le cercle */
ppost_struct (WKID,SCENID,0.); /*post de la scène */
tview_config (WKID,VIEW_IND,type,PIND_CLIP); /*configuration de la vue VIEW_IND */
tview2_center (WKID,VIEW_IND, 0.5,0.5, 1.,viewport); /*définition de la vue VIEW_IND */
predraw_all_structs (WKID,PFLAG_ALWAYS); /*tracé */

