Skip to contents

Save a camera as the next keyframe of the camera path (before the return to start, when there is one).

Usage

cellucid_camera_path_keyframe_add(viewer, camera, embedding, label)

Arguments

viewer

A viewer cellucid_view() or cellucid_serve() returned.

camera

The camera to save; omitted, the selected view's camera now. A named list. Left out unless given (the viewer then chooses as its own control does).

navigationMode

"orbit", "planar" or "free" (free-fly). One of "orbit", "planar", "free". Required.

orbit

A named list. Required.

radius

A number (more than 0). Required.

target

A vector or list of a number (at least 3 items, at most 3 items). Required.

targetRadius

A number (more than 0). Required.

theta

A number. Required.

embedding

The embedding the keyframe was recorded on; omitted, the one the selected view shows. Either a named list (An embedding: the obsm array and the columns of it plotted); or NULL. Left out unless given (the viewer then chooses as its own control does).

key

The obsm key, "X_umap". Text (at least 1 character). Required.

label

The keyframe's label; omitted, "KF n". Unique among the keyframes. Text (at least 1 character). Left out unless given (the viewer then chooses as its own control does).

Value

A cellucid_action_request, at once and invisibly: the action is sent now, or when the viewer's channel opens. cellucid_action_result(request) returns its outcome (what it did, as names, counts and ids), or NULL when it had nothing to report; request$step is the history step it made.

Details

The viewer's action camera-path.keyframe.add (Camera path). It changes what the viewer shows: one step of the viewer's history, labelled as R's, undone like any other. The state it can change: camera-path.

See also

cellucid_act() sends any action by its type, and cellucid_action_result() collects its answer.

Examples

if (interactive() && requireNamespace("SeuratObject", quietly = TRUE)) {
  data("pbmc_small", package = "SeuratObject")
  viewer <- cellucid_view(SeuratObject::UpdateSeuratObject(pbmc_small))
  request <- cellucid_camera_path_keyframe_add(viewer)
  print(request)
  # cellucid_action_result(request) waits for its outcome.
  cellucid_stop(viewer)
}