rgl.primitive {rgl} | R Documentation

## add primitive set shape

### Description

Adds a shape node to the current scene

### Usage

    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, ... )

### Arguments

`x, y, z` | coordinates. Any reasonable way of defining the coordinates is acceptable. See the function `xyz.coords` for details.
`normals` | Normals at each point.
`texcoords` | Texture coordinates at each point.
`...` | Material properties. See `rgl.material` for details.

### Details

Adds a shape node to the scene. The appearance is defined by the material properties. See `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 ones are `rgl.lines` which draws line segments based on pairs of vertices, and `rgl.linestrips` which joins the vertices.

For triangles and quads, the normals at each vertex may be specified using `normals`. These may be given in any way that would be acceptable as a single argument to `xyz.coords`. 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 `(0, 0)` 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 `points3d`, `segments3d`, `lines3d`, etc. The two principal differences between the `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.

### Value

Each primitive function returns the integer object ID of the shape that was added to the scene. These can be passed to `rgl.pop` to remove the object from the scene.

### See Also

`rgl.material`, `rgl.spheres`, `rgl.texts`, `rgl.surface`, `rgl.sprites`

### Examples

    rgl.open()
    rgl.points(rnorm(1000), rnorm(1000), rnorm(1000), color = heat.colors(1000))

[Package rgl version 0.99.16 Index]