updateZoomMove: Update zoomMove

View source: R/api.R

updateZoomMoveR Documentation

Update zoomMove

Description

Add a zoom animation on an existing NGLVieweR object.

Usage

updateZoomMove(
  NGLVieweR_proxy,
  center,
  zoom,
  duration = 0,
  z_offSet = 0,
  structureIndex = NULL
)

Arguments

NGLVieweR_proxy

A NGLVieweR object.

center

Target distance of selected atoms/residues. See the section "selection-language" in the official NGL.js manual.

zoom

Target zoom of selected atoms/residues. See the section "selection-language" in the official NGL.js manual.

duration

Optional animation time in milliseconds (default = 0).

z_offSet

Optional zoom offset value (default = 0).

structureIndex

Optional index of the structure to target for the zoom animation. If NULL (default), the first structure (index 0) is targeted.

Value

API call containing NGLVieweR id and list of message parameters.

See Also

  • zoomMove()

  • NGLVieweR_example() See example "updatezoomMove".

Other animations: setRock(), setSpin(), updateRock(), updateSpin()

Examples

## Not run: 
NGLVieweR_proxy("structure") %>% updateZoomMove(center = "200",
                                               zoom = "200",
                                               z_offSet = 80,
                                               duration = 2000)

## End(Not run)

if (interactive()) {
library(shiny)

ui = fluidPage(
  titlePanel("Viewer with API inputs"),
  sidebarLayout(
    sidebarPanel(
      textInput("center", "Center", "200"),
      textInput("zoom", "Zoom", "200"),
      numericInput("zoomOffset", "Zoom offset", 80,0,100),
      numericInput("duration", "Duration", 2000,0,2000),
      actionButton("zoom", "Zoom"),
      actionButton("reset", "Reset")
    ),
    mainPanel(
      NGLVieweROutput("structure")
    )
  )
)
server = function(input, output) {
  output$structure <- renderNGLVieweR({
    NGLVieweR("7CID") %>%
      addRepresentation("cartoon",
      param = list(name = "cartoon", color="red")) %>%
      addRepresentation("ball+stick",
      param = list(name = "ball+stick", sele="200"))
  })

observeEvent(input$zoom, {
  NGLVieweR_proxy("structure") %>%
    updateZoomMove(
      center = isolate(input$center),
      zoom = isolate(input$zoom),
      z_offSet = isolate(input$zoomOffset),
      duration = isolate(input$duration)
    )
})

observeEvent(input$reset, {
  NGLVieweR_proxy("structure") %>%
    updateZoomMove(
      center = "*",
      zoom = "*",
      z_offSet = 0,
      duration = 1000
    )
})
}
shinyApp(ui, server)
}

NGLVieweR documentation built on April 4, 2025, 4:33 a.m.