Class S2EdgeQuery.MergedEdges

java.lang.Object
com.google.common.geometry.S2EdgeQuery.MergedEdges
All Implemented Interfaces:
S2EdgeQuery.Edges
Enclosing class:
S2EdgeQuery

private static final class S2EdgeQuery.MergedEdges extends Object implements S2EdgeQuery.Edges
An Edges implementation optimized for merging edges from multiple S2ClippedShapes already in sorted order.
  • Field Details

    • steppers

    • top

      The top of the priority queue (the stepper which currently has the least value for currentEdge). It is stored separately as an optimization, to avoid repeatedly adding and polling it from the top of the queue.
  • Constructor Details

    • MergedEdges

      private MergedEdges()
  • Method Details

    • add

      public void add(S2ShapeIndex.S2ClippedShape shape)
      Note: shape should have at least one edge.
    • nextEdge

      public int nextEdge()
      Description copied from interface: S2EdgeQuery.Edges
      Returns the next edge ID, or throws an exception if empty.
      Specified by:
      nextEdge in interface S2EdgeQuery.Edges
    • removeFromPriorityQueue

      private void removeFromPriorityQueue(int n)
      Updates the priority queue steppers so that no stepper in the queue will return n if currentEdge() is called on it.
    • isEmpty

      public boolean isEmpty()
      Description copied from interface: S2EdgeQuery.Edges
      Returns true if there are no more edges.
      Specified by:
      isEmpty in interface S2EdgeQuery.Edges