Alias S2Builder.IsFullPolygonPredicate

For output layers that represent polygons, there is an ambiguity inherent in spherical geometry that does not exist in planar geometry. Namely, if a polygon has no edges, does it represent the empty polygon (containing no points) or the full polygon (containing all points)? This ambiguity also occurs for polygons that consist only of degeneracies, e.g. a degenerate loop with only two edges could be either a degenerate shell in the empty polygon or a degenerate hole in the full polygon.

class S2Builder
{
  // ...
  alias IsFullPolygonPredicate = bool function(in s2.builder.graph.Graph, ref s2.s2error.S2Error);
  // ...
}

To resolve this ambiguity, an IsFullPolygonPredicate may be specified for each input layer (see AddIsFullPolygonPredicate below). If the layer consists only of polygon degeneracies, the layer implementation may call this method to determine whether the polygon is empty or full except for the given degeneracies. (Note that under the semi-open boundary model, degeneracies do not affect point containment.)

This predicate is only required for layers that will be assembled into polygons. It is not used by other layer types.