Adds a shape node to the current scene. These low-level functions should not normally be called by users.
rgl.points(x, y = NULL, z = NULL, ... ) rgl.lines(x, y = NULL, z = NULL, ... ) rgl.linestrips(x, y = NULL, z = NULL, ...) rgl.triangles(x, y = NULL, z = NULL, normals = NULL, texcoords = NULL, ... ) rgl.quads(x, y = NULL, z = NULL, normals = NULL, texcoords = NULL, ... )
Adds a shape node to the scene. The appearance is defined by the material properties.
rgl.material for details.
The names of these functions correspond to OpenGL primitives. They
all take a sequence of vertices in
x, y, z. The only non-obvious
rgl.lines which draws line segments based on
pairs of vertices, and
rgl.linestrips which joins the
For triangles and quads, the normals at each vertex may be specified
normals. These may be given in any way that would be
acceptable as a single argument to
These need not match the actual normals to the polygon:
curved surfaces can be simulated by using other choices of normals.
Texture coordinates may also be specified. These may be given in
any way that would be acceptable as a single argument to
xy.coords, and are interpreted in terms
of the bitmap specified as the material texture, with
at the lower left,
(1, 1) at the upper right. The texture
is used to modulate the color of the polygon.
These are the lower level functions called by
lines3d, etc. The two principal differences between
rgl.* functions and the
*3d functions are that the
former set all unspecified material properties to defaults, whereas
the latter use current values as defaults; the former make
persistent changes to material properties with each call, whereas
the latter make temporary changes only for the duration of the call.
All of these functions support an argument called
indices, which allows vertices (and other attributes)
to be re-used, as they are in objects created by
mesh3d and related functions. This is
intended to be used on smooth surfaces, where each shared
vertex has just one value for normals, colors and texture
For shapes with flat-looking faces (e.g. polyhedra like
the vertices must be duplicated
to be rendered properly.
Each primitive function returns the integer object ID of the shape that
was added to the scene. These can be passed to
to remove the object from the scene.