chickadee » hypergiant » circle-mesh

(circle-mesh RADIUS RESOLUTION [texture-radius: TEXTURE-RADIUS] [texture-offset: TEXTURE-OFFSET] [texture: TEXTURE] [color: COLOR] [winding: WINDING] [mode: MODE] [texture-type: TEXTURE-TYPE] [color-type: COLOR-TYPE] [index-type: INDEX-TYPE])procedure

Create a circular mesh with RADIUS and RESOLUTION triangular slices, with the centre of the circle at the origin. When TEXTURE-RADIUS is specified, two element texture coordinates are added to the mesh, with TEXTURE-OFFSET representing the centre of the circle, defaulting to (0.5 0.5). Alternately, TEXTURE may be supplied, which expects a function of one argument: the index of a vertex. This texture function should return a two element list of the texture coordinate at that index. The circle mesh vertices are ordered with the first vertex at (0 0), then moving in a circle starting at (RADIUS 0) and proceeding counter-clockwise for a total of RESOLUTION + 1 vertices. Likewise, COLOR expects a similar function that accepts one index as an argument, but should return a three element list of colour values. WINDING controls the direction of the vertex winding, either counter-clockwise (#:ccw, the default), or clockwise (#:cw). MODE should be a valid argument to mode->gl, defaulting to #:triangles. TEXTURE-TYPE, COLOUR-TYPE, and INDEX-TYPE control the in-memory type of the texture attribute, the color attribute, and the index, and should be a valid argument to type->gl. These all default to #:ushort.