Rev 42333 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed
% File src/library/grid/man/grid.grab.Rd% Part of the R package, http://www.R-project.org% Copyright 1995-2007 R Core Development Team% Distributed under GPL 2 or later\name{grid.grab}\alias{grid.grab}\alias{grid.grabExpr}\title{ Grab the current grid output }\description{Creates a gTree object from the current grid display listor from a scene generated by user-specified code.}\usage{grid.grab(warn = 2, wrap = FALSE, ...)grid.grabExpr(expr, warn = 2, wrap = FALSE, ...)}%- maybe also 'usage' for other objects documented here.\arguments{\item{expr}{ An expression to be evaluated. Typically,some calls to grid drawing functions. }\item{warn}{ An integer specifying the amount of warningsto emit. 0 means no warnings, 1 means warn when it iscertain that the grab will not faithfully represent theoriginal scene. 2 means warn if there's any possibilitythat the grab will not faithfully represent theoriginal scene.}\item{wrap}{ A logical indicating how the output shouldbe captured. If \code{TRUE}, each non-grob element on thedisplay list is captured by wrapping it in a grob.}\item{\dots}{ arguments passed to gTree, for example, aname and/or class for the gTree that is created.}}\details{There are four ways to capture grid output as a gTree.There are two functions for capturing output:use \code{grid.grab} to capture an existing drawingand \code{grid.grabExpr} to capture the output froman expression (without drawing anything).For each of these functions, the output can be captured intwo ways. One way tries to be clever and make agTree with a childrenvp slot containing all viewports onthe display list (including thosethat are popped) and everygrob on the display list as a child of the newgTree; each child has a vpPath in the vp slot so that it isdrawn in the appropriate viewport.In other words, the gTree contains all elements on the displaylist, but in a slightly altered form.The other way, \code{wrap=TRUE},is to create a grob for every element on thedisplay list (and make all of those grobs children of thegTree).The first approach creates a more compact and elegant gTree,which is more flexible to work with,but is not guaranteed to faithfully replicate all possiblegrid output. The second approach is more brute force, andharder to work with, butshould always faithfully replicate the original output.}\value{A gTree object.}\seealso{ \code{\link{gTree}}}\examples{pushViewport(viewport(w=.5, h=.5))grid.rect()grid.points(stats::runif(10), stats::runif(10))popViewport()grab <- grid.grab()grid.newpage()grid.draw(grab)}\keyword{ dplot }% at least one, from doc/KEYWORDS