/* * La procedure "fscanf_Position" lit en ascii un positionnement. * Entree : * pp Positionnement a lire. */ void fscanf_Position (AritPosition *pp) { pusherr ("rotate: "); fscanf_Vector (&pp->rotate); popuperr ("scale: "); fscanf_Vector (&pp->scale); popuperr ("translate: "); fscanf_Vector (&pp->translate); poperr (); }
/* * La procedure "fscanf_Bound" lit en ascii une surface. * Entree : * bp Surface a lire. */ void fscanf_Bound (Bound *bp) { /* Lecture du type polygonale de la surface. */ skip_keyword (T_TYPE, "bound: keyword \"type\" expected"); if (lex () != T_INT) lexerr ("start","bound_type: boolean expected (0=FALSE|~0=TRUE)", NULL); bp->is_polygonal = (myint ? 1 : 0); /* Lecture de la liste de points de la surface. */ skip_keyword (T_POINT_LIST, "bound: keyword \"point_list\" expected"); pusherr ("bound_point_list: "); fscanf_Point3f_list (&bp->point); poperr (); /* Lecture de la liste de faces de la surface. */ skip_keyword (T_FACE_LIST, "bound: keyword \"face_list\" expected"); pusherr ("bound_face_list: "); fscanf_Face_list (&bp->face); poperr (); }
/* * La procedure "fscanf_View_parameters" lit en ascii les parametres * de visualisation. * Entree : * vp Parametres de visualisation a lire. */ void fscanf_View_parameters (View_parameters *vp) { /* Lecture du type de projection lors de la prise de vue. */ skip_keyword (T_TYPE, "view: keyword \"type\" expected"); switch (lex ()) { case T_PARALLEL : vp->type = PARALLEL; break; case T_PERSPECTIVE : vp->type = PERSPECTIVE; break; default : lexerr ("start", "view_type: keyword \"parallel|perspective\" expected"); break; } /* Lecture du centre de projection (oeil) de la prise de vue. */ skip_keyword (T_COP, "view: keyword \"cop\" expected"); pusherr ("view_cop: "); fscanf_Point3f (&vp->cop); poperr (); /* Lecture du point de reference (cible) a la prise de vue. */ skip_keyword (T_VRP, "view: keyword \"vrp\" expected"); pusherr ("view_vrp: "); fscanf_Point3f (&vp->vrp); poperr (); /* Lecture de la direction normale au plan de projection. */ skip_keyword (T_VPN, "view: keyword \"vpn\" expected"); pusherr ("view_vpn: "); fscanf_Vector (&vp->vpn); poperr (); /* Lecture de la direction indiquant le haut de la projection. */ skip_keyword (T_VUP, "view: keyword \"vup\" expected"); pusherr ("view_vup: "); fscanf_Vector (&vp->vup); poperr (); /* Lecture de la fenetre de projection de la prise de vue. */ skip_keyword (T_WINDOW, "view: keyword \"window\" expected"); pusherr ("view_window_umin: "); fscanf_float (&vp->vwd.umin); popuperr ("view_window_umax: "); fscanf_float (&vp->vwd.umax); popuperr ("view_window_vmin: "); fscanf_float (&vp->vwd.vmin); popuperr ("view_window_vmax: "); fscanf_float (&vp->vwd.vmax); poperr (); /* Lecture des profondeurs de decoupage avant et arriere. */ skip_keyword (T_DEPTH, "view: keyword \"depth\" expected"); pusherr ("view_depth_front: "); fscanf_float (&vp->depth.front); popuperr ("view_depth_back: "); fscanf_float (&vp->depth.back); poperr (); }