## ----eval = FALSE-------------------------------------------------------------
# outdir = NULL
# library(gifti)
# have_gifti_test_data(outdir = outdir)

## ----include = FALSE----------------------------------------------------------
outdir = NULL
library(gifti)
have_gifti_test_data(outdir = outdir)

## ----eval = FALSE-------------------------------------------------------------
# if (!have_gifti_test_data()) {
#   download_gifti_data()
# }

## ----include = FALSE----------------------------------------------------------
if (!have_gifti_test_data(outdir = outdir)) {
  download_gifti_data(outdir = outdir)
}

## ----eval = FALSE-------------------------------------------------------------
# if (have_gifti_test_data(outdir = outdir)) {
#   gii_files = download_gifti_data(outdir = outdir)
#   gii_list = lapply(gii_files, readgii)
#   surf_files = grep("white[.]surf[.]gii", gii_files, value = TRUE)
#   surfs = lapply(surf_files, surf_triangles)
# 
#   col_file = grep("white[.]shape[.]gii", gii_files, value = TRUE)
#   cdata = readgii(col_file)
#   cdata = cdata$data$shape
#   mypal = grDevices::colorRampPalette(colors = c("blue", "black", "red"))
#   n = 4
#   breaks = quantile(cdata)
#   ints = cut(cdata, include.lowest = TRUE, breaks = breaks)
#   ints = as.integer(ints)
#   stopifnot(!any(is.na(ints)))
#   cols = mypal(n)[ints]
#   cols = cols[surfs[[1]]$triangle]
# 
#   if (requireNamespace("rgl", quietly = TRUE)) {
#     rgl::open3d()
#     rgl::triangles3d(surfs[[1]]$pointset, color = cols)
#     rgl::play3d(rgl::spin3d(), duration = 5)
#   }
# }

## ----include = FALSE----------------------------------------------------------
if (have_gifti_test_data(outdir = outdir)) {
  gii_files = download_gifti_data(outdir = outdir)
  gii_list = readgii(gii_files)
  surf_files = grep("white[.]surf[.]gii", gii_files, value = TRUE)
  surfs = lapply(surf_files, function(r) {
    if (r == surf_files[[1]]) {
      r = readgii(r)
    }
    surf_triangles(r)
    })
  
  col_file = grep("white[.]shape[.]gii", gii_files, value = TRUE)
  cdata = readgii(col_file)
  cdata = cdata$data$shape
  mypal = grDevices::colorRampPalette(colors = c("blue", "black", "red"))
  n = 4
  breaks = quantile(cdata)
  ints = cut(cdata, include.lowest = TRUE, breaks = breaks)
  ints = as.integer(ints)
  stopifnot(!any(is.na(ints)))
  cols = mypal(n)[ints]
  cols = cols[surfs[[1]]$triangle]
  
  if (requireNamespace("rgl", quietly = TRUE)) {
    rgl::open3d()
    rgl::triangles3d(surfs[[1]]$pointset, color = cols)
    rgl::play3d(rgl::spin3d(), duration = 5)
  }
}

