Definition: |
include pGUI.e
include opengl.e glVertex(atom x, y, z=0, w=1) -- or -- glVertex3d(atom {x,y,z}) (actually declared as a single sequence parameter) |
Description: |
Specifies a vertex.
x: Specifies the x-coordinate of a vertex. y: Specifies the y-coordinate of a vertex. z: Specifies the z-coordinate of a vertex. w: Specifies the w-coordinate of a vertex. |
Remarks |
The glVertex procedures are used within glBegin/glEnd pairs to specify point, line, and polygon vertices.
The current color, normal, and texture coordinates are associated with the vertex when glVertex is called. When only x and y are specified, z defaults to 0.0 and w defaults to 1.0. When x, y, and z are specified, w defaults to 1.0. Invoking glVertex outside of a glBegin/glEnd pair results in undefined behavior. A vertex with w == 1.0 stays in place whereas w == 0.0 moves it to infinity. The following may (or may not) help: glLoadIdentity() glTranslatef(a, b, c) glVertex(x, y, z) -- |1 0 0 a| |x| |x+a| -- |0 1 0 b| |y| |y+b| -- |0 0 1 c| * |z| = |z+c| -- |0 0 0 1| |1| |1| glLoadIdentity() glTranslatef(a, b, c) glVertex(x, y, z, 3) -- |1 0 0 a| |x| |x+3a| -- |0 1 0 b| |y| |y+3b| -- |0 0 1 c| * |z| = |z+3c| -- |0 0 0 1| |3| |3| There are 24 C functions (see index, coloured illegal and linked here) named glVertexNx[v], where N is 2..4, x is d/f/i/s for double/float/integer/short, and the v if present indicates the parameter is a pointer to the first of such (only useful if there was some good reason why you already had your double/float/integer/short values poked into some allocated memory, let me know if you find such a need). The optional parameters and generic atom types of phix mean these can and should all be wrapped into a single pGUI function. The glVertex3d routine was made an exception because some code already had the required parameters in a sequence, and it would be pointless to de-sequence that only to re-sequence it shortly after. |
See Also: |
glBegin,
xor_bits,
xor_bits,
xor_bits,
glEnd,
xor_bits,
xor_bits,
glLoadIdentity,
xor_bits,
glNormal,
xor_bits,
int_to_bits
DEV See also //glBegin glCallList glColor glEdgeFlag //glEnd glEvalCoord glIndex //glLoadIdentity glMaterial //glNormal glRect glTexCoord |