R: add sprite set shape

sprites {rgl} | R Documentation

## add sprite set shape

### Description

Adds a sprite set shape node to the scene.

### Usage

    sprites3d(x, y = NULL, z = NULL, radius = 1, shapes = NULL, userMatrix,
                ...)
    particles3d(x, y = NULL, z = NULL, radius = 1, ...)
    rgl.sprites(x, y = NULL, z = NULL, radius = 1, shapes = NULL, userMatrix,
                fixedSize = FALSE, ...)

### Arguments

`x, y, z` | point coordinates. Any reasonable way of defining the coordinates is acceptable. See the function `xyz.coords` for details.
`radius` | vector or single value defining the sphere radius
`shapes` | `NULL` for a simple square, or a vector of identifiers of shapes in the scene
`userMatrix` | if `shape` is not `NULL`, the transformation matrix for the shapes
`fixedSize` | should sprites remain at a fixed size, or resize with the scene?
`...` | material properties when `shape == 0`, texture mapping is supported

### Details

Simple sprites (used when `shapes` is `NULL`) are 1 by 1 squares that are directed towards the viewpoint. Their primary use is for fast (and faked) atmospherical effects, e.g. particles and clouds using alpha blended textures. Particles are Sprites using an alpha-blended particle texture giving the illusion of clouds and gasses. The centre of each square will be at the coordinates given by `x, y, z`.

When `shapes` is not `NULL`, it should be a vector of identifers of objects to plot in the scene (e.g. as returned by plotting functions or by `rgl.ids`). These objects will be removed from the scene and duplicated as a sprite image in a constant orientation, as specified by `userMatrix`. The origin `0, 0, 0` will be plotted at the coordinates given by `x, y, z`.

The `userMatrix` argument is ignored for `shapes = NULL`. For shapes, `sprites3d` defaults the matrix to `r3dDefaults$userMatrix` while `rgl.sprites` defaults it to an identity transformation.

If any coordinate is `NA`, the sprite is not plotted.

The id values of the shapes are retrieved using `rgl.attrib(id, "ids")`; the user matrix is retrieved using `rgl.attrib(id, "usermatrix")`.

### Value

These functions are called for the side effect of displaying the sprites. The shape ID of the displayed object is returned.

### See Also

`rgl.material`

### Examples

    open3d()
    particles3d( rnorm(100), rnorm(100), rnorm(100), color = rainbow(100) )
    # is the same as
    sprites3d( rnorm(100), rnorm(100), rnorm(100), color = rainbow(100),
      lit = FALSE, alpha = .2,
      textype = "alpha", texture = system.file("textures/particle.png", package = "rgl") )
    sprites3d( rnorm(10) + 6, rnorm(10), rnorm(10), shape = shade3d(tetrahedron3d(), col = "red") )

[Package rgl version 0.99.9 Index]