Point Size (n)
where n is the number of pixels. Note that this might not be the actual number of pixels rendered, depending on other settings such as anti-aliasing and your hardware configuration.
Line Width(n)
where n is the number of pixels. The argument n must be larger than zero and is, by default, one.
Line Stipple(factor, pattern)
Factor is a stretching factor. Pattern is a 16-bit integer that turns pixels on or off. Use Enable(LINE_STIPPLE) to turn the effect on.
The factor argument expands each binary digit to two digits. In the example above, Line Stipple(2, 255) would result in 00000000000000001111111111111111.
scene = Scene Box( 200, 200 );	 // make a scene box...holds an OpenGL scene.
 
New Window( "Stipples", scene ); 	// put the scene in a window.
scene << Ortho( -2, 2, -2, 2, -1, 1 );
scene << Color( 0, 0, 0 ); // set the RGB color of the text
 
scene << Enable( LINE_STIPPLE );
scene << Line Width( 2 );
scene << Line Stipple( 1, 255 );
 
scene << Begin( LINES );
scene << Vertex( -2, -1, 0 );
scene << Vertex( 2, -1, 0 );
scene << End();
 
scene << Line Width( 4 );
scene << Line Stipple( 1, 32767 );
 
scene << Begin( LINES );
scene << Vertex( -2, 0, 0 );
scene << Vertex( 2, 0, 0 );
scene << End();
 
scene << Line Width( 6 );
scene << Line Stipple( 3, 51 );
 
scene << Begin( LINES );
scene << Vertex( -2, 1, 0 );
scene << Vertex( 2, 1, 0 );
scene << End();
scene << Update;
Stipples
Polygon Mode (face, mode)
where face can be FRONT, BACK, or FRONT_AND_BACK, and mode can be POINT, LINE, or FILL.
Points, Line, and Fill Modes
For example, the following script creates a display list that defines a triangle. This display list is used three times in conjunction with Translate, Rotate, and Color commands to draw triangles in three positions. In addition, the Polygon Mode command changes the drawing mode of each triangle. Note there is no explicit call to the FILL mode, since it is the default.
The following table dissects the script, showing how the Translate and Rotate commands accumulate to manipulate a single display list.
shape = Scene Display List();
shape << Begin(TRIANGLES);
shape << Vertex(0, 0, 0);
shape << Vertex(-1, 2, 0);
shape << Vertex(1, 2, 0);
shape << End();
Creates a display list named shape that holds vertices for the triangles. All the z vertices are zero since this is a two dimensional scene
scene = Scene Box( 200, 200 );
New Window( "Fill Modes", scene );
scene << Ortho2d(-2,2,-2,2);
scene << Color(1,0,0);
scene << Call List(shape);
scene << Update;
// update the scene to see the triangle
scene << Rotate (90, 0, 0, 1);
scene << Translate (-0.5, 0, 0);
scene << Color(0, 0.5, 0.5);
scene << Polygon Mode(FRONT_AND_BACK, LINE);
scene << Call List(shape);
scene << Update;
// update the scene to see the triangle
 
scene << Rotate(90, 0, 0, 1);
scene << Translate(-0.5, -1, 0);
scene << Color(0, 0, 0);
scene << Point Size(5); // large points so they are visible
scene << Polygon Mode(FRONT_AND_BACK, POINT);
scene << Call List(shape);
scene << Update;
// update the scene to see the triangle
Polygon Offset (factor, units)
To enable offsetting, use Enable(POLYGON_OFFSET_FILL), Enable(POLYGON_OFFSET_LINE), or Enable(POLYGON_OFFSET_POINT), depending on the desired mode. The actual offset values are calculated as m*(factor)+r*(units), where m is the maximum depth slope of the polygon and r is the smallest value guaranteed to produce a resolvable difference in window coordinate depth values. Start with Polygon Offset(1,1) if you need this.
An example of Polygon Offset is in the Surface Plot platform, when a surface and a mesh are displayed on top of each other, or a surface and contours displayed on top of each other. In either case, the surface would interfere with the lines if the lines were not moved closer or the surface moved farther from the viewer.