Set attributes of vertices
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.
vertexControl(value = 0, values = NULL, vertices = 1, attributes, objid, param = seq_len(NROW(values)) - 1, interp = TRUE)
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. |
param |
Parameter values corresponding to each row of |
interp |
Whether to interpolate between rows of |
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
.
A list of class "rglControl"
of cleaned up parameter
values, to be used in an RGL widget.
Duncan Murdoch
saveopts <- options(rgl.useNULL = TRUE) theta <- seq(0, 6*pi, len=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)
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.