sceneChange.RdThese functions allow Shiny apps to make relatively large changes to a scene, adding and removing objects from it.
sceneChange(elementId, x = scene3d(minimal),
delete = NULL, add = NULL, replace = NULL,
material = FALSE, rootSubscene = FALSE,
delfromSubscenes = NULL, skipRedraw = FALSE,
minimal = TRUE)
registerSceneChange()The id of the element holding the rglClass instance.
The new scene to use as a source for objects to add.
Object ids to modify in the scene. The delete and
replace ids must be present in the old scene in the browser;
the add and replace ids must be present in x.
Logical to indicate whether default material should be updated.
Logical to indicate whether root subscene should be updated.
A vector of subscene ids that may have been changed by
deletions. By default, all subscenes in x are used,
but the objects may be included in subscenes in the browser
that are different.
If TRUE, stop the scene from redrawing until skipRedraw=FALSE is sent. If NA, don't redraw this time, but don't
change the state of the skipRedraw flag.
See scene3d.
registerSceneChange must be called in the UI component
of a Shiny app to register the "sceneChange" custom
message.
registerSceneChange returns the HTML code to register the
message.
sceneChange returns a list to be used as the "sceneChange"
message to change the scene. Use
shiny::session$sendCustomMessage to send it.
playwidget for a different approach to modifying
scenes that can be much faster, but may be less flexible. The
Shiny demo in this package makes use of all of these approaches.
if (FALSE) { # \dontrun{
shinyUI(fluidPage(
registerSceneChange(),
actionButton("thebutton", "Change")
))
shinyServer(function(input, output, session) {
observeEvent(input$thebutton, {
session$sendCustomMessage("sceneChange",
sceneChange("thewidget", delete = deletes, add = adds))
})
})
} # }