• Aucun résultat trouvé

PUSH_ VDC_MATRIX(3G)

NAME

push_ vdc_matrix - push vdc-to-device units transformation matrix onto top of matrix stack.

SYNOPSIS C Syntax:

void push_ vdcmatrix(fildes);

int fildes;

FORTRAN77 Syntax:

subroutine push_ vdcmatrix(fildes) integer*4 fildes

Pascal Syntax:

procedure push_ vdc_matrix(fildes:integer);

DESCRIPTION Input Parameters

fildes Integer file descriptor returned by gopen when an I/O path to a graphics device is opened.

Discussion

A copy of the current vdc-to-device units transformation matrix is pushed onto the top of the matrix stack and becomes the current transformation matrix. If vdcextent, set_pl_p2, mapping_mode, or vdc_justification changes, the internal Starbase vdc-to-device units transfor-mation matrix changes, but not any vdc matrices that were pushed using push_ vdc_matrix.

This routine should be used carefully (especially when a device has been opened in MODEL_XFORM mode), because only modelling matrices are normally pushed on the matrix stack. If the vdc-to-device matrix is pushed on the stack in MODELXFORM mode, lighting cal-culations for subsequent output primitives may be invalid. For lighting calcal-culations in vdc coor-dinates, use flush_matrices.

SEE ALSO

push_matrix(3G), vdcextent(3G), set_pLp2(3G), mapping_mode(3G), vdcjustification(3G).

HP-UX Release 7.0: September 1989 - 1 - (Section 3) 183

QUADRILATERAL_MESH(3G) QUADRILATERAL_MESH(3G)

NAME

quadrilateraLmesh - defines a series of quadrilateral regions to be filled and/or edged.

SYNOPSIS C Syntax:

void quadrilateraCmesh(fildes,clist, numverts_m, numverts_n, gnormals);

int fildes,numverts_m,numverts_n;

procedure quadrilateraCmesh(fildes:integer;var clist:array[lo .. hi:integer] of real;

numverts_m,numverts_n:integer;var gnormals:array[lo .. hi:integer] of real);

DESCRIPTION

array of three dimensional real endpoint data stored in row major format number of rows in the clist array.

number of columns in the clist array.

array of real geometric normals.

The list of points is a two dimensional array where each set of four neighboring points defines a quadrilateral. The first quadrilateral consists of the first two points from the first row and the first two points from the second row. The second quadrilateral consists of the second and third points from the first row and the second and third points from the second row and so on.

If vertex_format is specified to include a normal per polygon, then this normal is extracted from the gnormals array. The first three entries of this array are x,y,z coordinates of the normal for the first quadrilateral. The second three entries are the normal for the second quadrilateral if normals per vertex are present, and so on. If there are no normals per polygon then the gnor-mals value may be null.

The sense of the CLOCKWISE/COUNTER_CLOCKWISE direction of polygon vertices is deter-mined by the 1st, 2nd and 3rd vertex in each quadrilateral.

For example: The 1st vertex in the 1st row is the 1st vertex of the first quadrilateral. The 2nd vertex in the 1st row is the 2nd vertex of the first quadrilateral. The 2nd vertex in the 2nd row is the 3rd vertex of the first quadrilateral.

184 (Section 3) - 1 - HP-UX Release 7.0: September 1989

QUADRILATERAL_MESH(3G) QUADRILATERAL_MESH(3G)

Each quadrilateral is filled and/or outlined according to the current interior style.

Quadrilateral_mesh uses the current fill color and perimeter attributes. As with all outputprimi-tives it is affected by the current drawing mode and write enable.

SEE ALSO

drawing_mode(3G), fiILcolor(3G), interiocstyle(3G), perimeteccolor(3G), perimetecrepeat_Iength(3G), perimetectype(3G), polygon(3G), vertex_format(3G), write_enable(3G).

HP-UX Release 7.0: September 1989 - 2 - (Section 3) 185

READ_CHOICE_EVENT(3G)

NAME

read_choice_event - read choice event from top of event queue SYNOPSIS

C Syntax:

READ_CHOICE_EVENT(3G)

int read_ choice_ event<queue_des,choice_fildes,ordinal, value, status,message_link);

int queue_des;

int * choice_fildes, *ordinal, *value, *status, *message_link;

FORTRAN77 Syntax:

File descriptor of the device returning the event.

Device number returning the event. To determine maximum device number,

READ_CHOICE_EVENT(3G) READ -,CHOICE_EVENT (3G)

Discussion

If there is a choice event on top of the event queue, read_choice_event returns the top event. If the queue is empty or the top event is not a choice event, the call returns a non-zero function value and the output parameters are undefined.

If there are more simultaneous events in the queue, message_link is set to SIMULTANEOUS_EVENT_FOLLOWS. Otherwise, message_link is set to SINGLE_EVENT.

Status is set to the state of the queue after the current event report has been removed from the queue (either of the two EMPTY states indicates that there are no more events currently in the queue). The event queue can hold up to 100 events. If the queue is full, any new events are lost. If events are lost, the next status returned indicates OVERFLOW and the overflow flag is cleared.

A single event queue services all devices and events are entered into the queue in the cronologi-cal order in which they occur. The order in which simultaneous events are queued is implementation-dependent, but each simultaneous event entry in the queue, except for the last entry, indicates SIMULTANEOUS_EVENLFOLLOWS.

SEE ALSO

read_locator_event(3G).

HP-UX Release 7.0: September 1989 - 2 - (Section 3) 187

READ _LOCATOR_EVENT (3G)

NAME

read_locatocevent - read locator event from top of event queue SYNOPSIS

C Syntax:

int read_locator _ event(queue_ des,locator _fildes,ordinal, x, y,z,status,message_link);

READ _LOCA TOR_EVENT (3G)

int queue_des, *locator_fildes, *ordinal, *status, *message_link;

float *x, *y, *z;

function read_locator _ event(queue_ des:integer;

var locatocfildes,ordinal:integer;var x, y,z:real;

File descriptor of the device returning the event.

Device number returning the event. To determine maximum device number, use inquire_sizes.

Point returned from a locator.

Set to one of the following defined values: