# Define a convenience function that is easy to call from C code grid.top.level.vp <- function() { pushedvp(viewport(clip=TRUE, name="ROOT")) } # An accessor for getting at the grid global state structure # to make debugging easier for me; all I have to type is grid:::STATE() STATE <- function() { get(".GRID.STATE", envir=.GridEvalEnv) } is.even <- function(x) x %% 2 == 0 is.odd <- function(x) !is.even(x) grid.pretty <- function(range) { if (!is.numeric(range)) stop("'range' must be numeric") .Call(L_pretty, range) }