PBSmapping (version 2.72.1)

isIntersecting: Determine Whether Polygons are Self-Intersecting

Description

Determine whether polygons found in a PolySet are self-intersecting.

Usage

isIntersecting (polys, numericResult = FALSE)

Arguments

polys

PolySet to use.

numericResult

Boolean value; if TRUE, returns the number of intersections.

Value

PolyData with columns PID, SID (may be missing), and intersecting. If numericResult is TRUE, intersecting contains the number of intersections. Otherwise, it contains a Boolean value.

Details

When numericResult = TRUE, this function counts intersections as the algorithm processes them. It counts certain types (i.e., those involving vertices and those where an edge retraces over an edge) more than once.

The function does not give special consideration to holes. It returns a value for each unique (PID, SID), regardless of whether a contour represents a hole.

See Also

isConvex, PolySet.

Examples

Run this code
# NOT RUN {
local(envir=.PBSmapEnv,expr={
  #--- load the data (if using R)
  if (!is.null(version$language) && (version$language=="R"))
  data(nepacLL,envir=.PBSmapEnv)
  #--- calculate then print the polygons that are self-intersecting
  p <- isIntersecting(nepacLL, numericResult = FALSE)
  print(p[p$intersecting,])
})
# }

Run the code above in your browser using DataLab