## ----setup, include=FALSE----------------------------------------------------- # All chunks are static: cgvR requires a Vulkan SDK to build, which is not # available on CRAN's check machines. Run the snippets interactively after # installing the package locally. knitr::opts_chunk$set(eval = FALSE) ## ----------------------------------------------------------------------------- # library(cgvR) ## ----------------------------------------------------------------------------- # nodes <- 1:8 # edges <- cbind( # c(1,2,3,4, 5,6,7,8, 1,2,3,4), # c(2,3,4,1, 6,7,8,5, 5,6,7,8) # ) # # # corner coordinates of a unit cube, scaled # pos <- matrix(c( # -1,-1,-1, 1,-1,-1, 1, 1,-1, -1, 1,-1, # -1,-1, 1, 1,-1, 1, 1, 1, 1, -1, 1, 1 # ), ncol = 3, byrow = TRUE) * 5 ## ----eval = FALSE------------------------------------------------------------- # v <- cgv_viewer(800, 600, "cube") # cgv_background(v, "black") # cgv_set_graph(v, nodes, edges, # positions = pos, # node_values = as.double(seq_len(8)), # node_sizes = rep(20, 8)) # cgv_camera(v, position = c(15, 12, 18), target = c(0, 0, 0)) # cgv_run(v) ## ----------------------------------------------------------------------------- # set.seed(1) # n <- 60L # # random tree + a few extra edges # ef <- 1L; et <- integer(0) # for (i in 2:n) { ef <- c(ef, sample.int(i - 1, 1)); et <- c(et, i) } # ef <- c(ef, sample.int(n, 20)); et <- c(et, sample.int(n, 20)) # edges <- cbind(ef[seq_len(min(length(ef), length(et)))], # et[seq_len(min(length(ef), length(et)))]) # # pos <- cgv_layout_fr(n, edges, n_iter = 200L, seed = 42L) # str(pos) ## ----eval = FALSE------------------------------------------------------------- # v <- cgv_viewer(1000, 700, "FR layout") # cgv_set_graph(v, seq_len(n), edges, # positions = pos, # node_values = as.double(seq_len(n)), # node_sizes = rep(10, n)) # cgv_camera(v, position = c(20, 16, 24), target = c(0, 0, 0)) # cgv_run(v) ## ----eval = FALSE------------------------------------------------------------- # pos <- cgv_layout_fr_bh(5000L, edges_big, n_iter = 200L, seed = 1L) ## ----eval = FALSE------------------------------------------------------------- # v <- cgv_viewer(1000, 700, "path demo") # cgv_set_graph(v, seq_len(n), edges, positions = pos, # node_values = as.double(seq_len(n)), # node_sizes = rep(8, n)) # # cgv_highlight_path(v, c(1, 5, 17, 42), color = "#FF2200", # node_scale = 2.0, edge_width = 4.0) # # # remove the highlight again: # # cgv_clear_path(v) # # cgv_run(v) ## ----eval = FALSE------------------------------------------------------------- # v <- cgv_viewer(1000, 700, "camera demo") # cgv_set_graph(v, seq_len(n), edges, positions = pos, # node_sizes = rep(8, n)) # # cgv_camera_mode(v, "orbit") # cgv_fly_path(v, c(1, 17, 42, 5, 1), duration = 6.0) # cgv_run(v) ## ----eval = FALSE------------------------------------------------------------- # v <- cgv_viewer(1280, 720, "record demo", offscreen = TRUE) # cgv_set_graph(v, seq_len(n), edges, positions = pos, # node_sizes = rep(8, n)) # cgv_camera(v, position = c(20, 16, 24), target = c(0, 0, 0)) # # cgv_record_start(v, "demo.mp4", fps = 30) # cgv_run(v, n_frames = 90L) # 3 seconds at 30 fps # cgv_record_stop(v) ## ----eval = FALSE------------------------------------------------------------- # v <- cgv_viewer(640, 480, offscreen = TRUE) # cgv_set_graph(v, nodes, edges, positions = pos) # cgv_run(v, n_frames = 1L) # cgv_close(v)