R: Set WebGL scene properties based on the age of components of...

ageSetter {rgl} | R Documentation

## Set WebGL scene properties based on the age of components of objects.

### Description

Many rgl shapes contain lists of vertices with various attributes (available via `rgl.attrib`). This function modifies the data for those attributes in a WebGL scene.

### Usage

    ageSetter(births, ages,
             colors = NULL, alpha = NULL, radii = NULL,
             vertices = NULL, normals = NULL, origins = NULL,
             texcoords = NULL,
             objids, prefixes = "", digits = 7,
             param = seq(floor(min(births)), ceiling(max(births))))

### Arguments

`births` | Numeric vector with one value per vertex, used to determine the “age” of the vertex when displaying it.
`ages` | A non-decreasing sequence of “ages”.
`colors, alpha, radii, vertices, normals, origins, texcoords` | Attributes of the vertices. Non-`NULL` attributes will be interpolated from these values. See the Details section below.
`objids, prefixes` | The object ids and scene prefixes to modify. These are recycled to the same length.
`digits` | How many digits to output in the generated Javascript code.
`param` | Default values to be used by a slider control calling the generated function.

### Details

The vertex attributes are specified as follows:

colors

  A vector of colors in a format suitable for input to `col2rgb`

alpha

  A numeric vector of alpha values between 0 and 1.

radii

  A numeric vector of sphere radii.

vertices

  A 3-column matrix of vertex coordinates.

normals

  A 3-column matrix of vertex normals.

origins

  A 2-column matrix of origins for text or sprites.

texcoords

  A 2-column matrix of texture coordinates.

All attributes must have the same number of entries (rows for the matrices) as the `ages` vector. The `births` vector must have the same number of entries as the number of vertices in the object.

Not all objects contain all attributes listed here; if one is chosen that is not a property of the corresponding object, a Javascript `alert()` will be generated.

### Value

A character vector of class `c("ageSetter", "propertySetter")` containing Javascript code defining a function suitable for use in a `propertySlider`.

The function takes a single argument, `time`, and uses it to compute the “age” of vertex `i` as `time - births[i]`. Those are then used with the `ages` argument to linearly interpolate settings of the specified attributes. Extrapolation is constant. Repeated values in `ages` can be used to obtain discontinuities in the settings.

### Author(s)

Duncan Murdoch

### See Also

`propertySlider`; more detailed control is available in `vertexSetter`.

### Examples

    propertySlider(ageSetter(births = 1:10, ages = c(-1, 0, 1),
                  alpha = c(0, 1, 1), objids = 123))

[Package rgl version 0.99.9 Index]