vertexControl {rgl} | R Documentation |
Set attributes of vertices
Description
This is a function to produce actions in a web display. A
playwidget
or Shiny
input control (e.g. a sliderInput
control)
sets a value which controls attributes of a selection of vertices.
Usage
vertexControl(value = 0, values = NULL, vertices = 1, attributes,
objid = tagged3d(tag), tag,
param = seq_len(NROW(values)) - 1, interp = TRUE)
Arguments
value |
The value to use for input (typically |
values |
A matrix of values, each row corresponding to an input value. |
vertices |
Which vertices are being controlled? Specify |
attributes |
A vector of attributes of a vertex,
from |
objid |
A single RGL object id. |
tag |
An alternate way to specify |
param |
Parameter values corresponding to each row of |
interp |
Whether to interpolate between rows of |
Details
This function
modifies attributes of vertices in a single
object. The attributes
are properties of each vertex
in a scene; not all are applicable to all objects. In order,
they are: coordinates of the vertex "x", "y", "z"
, color
of the vertex "red", "green", "blue", "alpha"
, normal at the vertex
"nx", "ny", "nz"
, radius of a sphere at the vertex
"radius"
, origin within a texture "ox", "oy"
and
perhaps "oz"
, texture coordinates "ts", "tt"
.
Planes are handled specially. The coefficients a, b, c
in the planes3d
or clipplanes3d
specification are controlled
using "nx", "ny", "nz"
, and d
is handled as
"offset"
. The vertices
argument is interpreted
as the indices of the planes when these attributes are set.
If only one attribute of one vertex is specified, values
may
be given as a vector and will be treated as a one-column matrix. Otherwise
values
must be given as a matrix with ncol(values) == max(length(vertices),
length(attributes))
. The vertices
and attributes
vectors will be recycled to the same length, and entries from column j
of values
will be applied to
vertex vertices[j]
, attribute attributes[j]
.
The value
argument is translated into a row (or two rows if
interp = TRUE
) of values
by finding its location in param
.
Value
A list of class "rglControl"
of cleaned up parameter
values, to be used in an RGL widget.
Author(s)
Duncan Murdoch
See Also
The User Interaction in WebGL vignette gives more details.
Examples
saveopts <- options(rgl.useNULL = TRUE)
theta <- seq(0, 6*pi, length.out = 100)
xyz <- cbind(sin(theta), cos(theta), theta)
plot3d(xyz, type="l")
id <- spheres3d(xyz[1,,drop=FALSE], col="red")
widget <- rglwidget(width=500, height=300) %>%
playwidget(vertexControl(values=xyz,
attributes=c("x", "y", "z"),
objid = id, param=1:100),
start = 1, stop = 100, rate=10)
if (interactive() || in_pkgdown_example())
widget
options(saveopts)