% Generated by roxygen2: do not edit by hand
% Please edit documentation in R/vis_rglwidget.R
\name{vis.rglwidget}
\alias{vis.rglwidget}
\title{Visualize coloredmeshes as an interactive rgl WebGL widget for use in R Shiny apps and RMarkdown documents.}
\usage{
vis.rglwidget(
  coloredmeshes,
  background = "white",
  skip_all_na = TRUE,
  style = "default",
  rgloptions = rglo(),
  ...
)
}
\arguments{
\item{coloredmeshes, }{a hemilist of coloredmeshes (as returned by \code{\link[fsbrain]{vis.subject.morph.native}} and similar functions when called with \code{rglactions=list('no_vis'=TRUE)}) or a flat list of \code{coloredmesh} instances.}

\item{background}{string, background color passed to \code{\link[rgl]{bg3d}}. Defaults to "white".}

\item{skip_all_na}{logical, whether to skip (i.e., not render) meshes in the list that have the property 'render' set to FALSE. Defaults to TRUE.}

\item{style, }{a named list of style parameters or a string specifying an available style by name (e.g., 'shiny'). Defaults to 'default', the default style.}

\item{rgloptions, }{named list. Parameters passed to \code{\link[rgl]{par3d}}. Defaults to the value returned by \code{\link[fsbrain]{rglo}}.}

\item{...}{extra arguments passed to \code{\link[rgl]{rglwidget}}.}
}
\value{
an htmlwidget object from the rgl package, suitable for use with \code{\link[rgl]{rglwidgetOutput}} / \code{\link[rgl]{renderRglwidget}} in Shiny, or for direct embedding in RMarkdown HTML output.
}
\description{
Create an interactive 3D brain view that can be embedded in R Shiny applications or RMarkdown/HTML documents. Unlike the standard \code{vis.*} functions which open an X11/OpenGL window and are designed for static screenshot export, this function renders to a headless rgl device and returns an \code{\link[rgl]{rglwidget}} object that provides interactive 3D rendering in a web browser. The user can rotate, zoom, and pan the brain in the widget.
}
\examples{
\dontrun{
   fsbrain::download_optional_data();
   fsbrain::download_fsaverage(accept_freesurfer_license=TRUE);
   subjects_dir = fsbrain::get_optional_data_filepath("subjects_dir");

   # Get coloredmeshes without opening a window:
   cm = vis.subject.annot(subjects_dir, 'subject1', 'aparc', 'both',
         rglactions=list('no_vis'=TRUE));

   # Create an interactive WebGL widget:
   widget = vis.rglwidget(cm);

   # In RMarkdown, just print it:
   # widget

   # In Shiny, use rglwidgetOutput / renderRglwidget (see the shiny demo app).
}

}
\seealso{
Other visualization functions: 
\code{\link{highlight.vertices.on.subject}()},
\code{\link{highlight.vertices.on.subject.spheres}()},
\code{\link{vis.color.on.subject}()},
\code{\link{vis.data.on.fsaverage}()},
\code{\link{vis.data.on.subject}()},
\code{\link{vis.labeldata.on.subject}()},
\code{\link{vis.mask.on.subject}()},
\code{\link{vis.region.values.on.subject}()},
\code{\link{vis.subject.annot}()},
\code{\link{vis.subject.label}()},
\code{\link{vis.subject.morph.native}()},
\code{\link{vis.subject.morph.standard}()},
\code{\link{vis.subject.pre}()},
\code{\link{vis.symmetric.data.on.subject}()},
\code{\link{vis.volume.on.surface}()},
\code{\link{vislayout.from.coloredmeshes}()}
}
\concept{visualization functions}
