Skip to contents

registered_patterns() returns a data frame of all available patterns. has_pattern() returns whether pattern names currently resolve to a pattern i.e. whether grid.pattern() / patternGrob() could use them. See register_pattern() for how bare pattern names are resolved.

Usage

registered_patterns()

has_pattern(pattern)

Arguments

pattern

A character vector of bare pattern names "name" and/or qualified pattern names "owner::name".

Value

registered_patterns() returns a data frame with columns

name

The pattern name.

owner

The package that registered the pattern or "R_GlobalEnv" for the user.

kind

Either "geometry" or "array".

source

One of "builtin", "register_pattern", or "options".

active

Whether the bare name currently resolves to this pattern.

has_pattern() returns a logical vector the same length as pattern. A bare name with an unresolved conflict (see conflicting_patterns()) returns FALSE.

See also

register_pattern() to register patterns.

Examples

head(registered_patterns())
#>         name       owner     kind  source active
#> 1    ambient gridpattern    array builtin   TRUE
#> 2      aRtsy gridpattern geometry builtin   TRUE
#> 3     circle gridpattern geometry builtin   TRUE
#> 4 crosshatch gridpattern geometry builtin   TRUE
#> 5       fill gridpattern geometry builtin   TRUE
#> 6   gradient gridpattern geometry builtin   TRUE
has_pattern(c("stripe", "gridpattern::stripe", "polygon"))
#> [1]  TRUE  TRUE FALSE

create_pattern_polygon <- function(params, boundary_df, aspect_ratio, legend = FALSE) {
  grid::polygonGrob(boundary_df$x, boundary_df$y, boundary_df$id,
                    gp = grid::gpar(fill = params$pattern_fill))
}
# don't clobber any pre-existing "polygon" pattern
run_example <- !has_pattern("polygon")
if (run_example) {
  register_pattern("polygon", create_pattern_polygon)
  print(subset(registered_patterns(), name == "polygon"))
}
#>       name       owner     kind           source active
#> 15 polygon R_GlobalEnv geometry register_pattern   TRUE
if (run_example) {
  print(has_pattern("polygon"))
}
#> [1] TRUE
if (run_example) {
  unregister_pattern("polygon")
}