A point consisting of BigDecimal coordinates.
Simple utility for reading little endian primitives from a stream.
Simple utility for writing little endian primitives to a stream.
An S2Point that also has a parameter associated with it, which corresponds to a time-like order
on the points.
A cursor storing a position and a limit.
An R1Interval represents a closed, bounded interval on the real line.
Designates which end of the interval to work with.
An R2Rect represents a closed axis-aligned rectangle in the (x,y) plane.
R2Vector represents a vector in the two-dimensional space.
This class provides portable support for several exact arithmetic operations on double values,
without loss of precision.
S1ChordAngle represents the angle subtended by a chord (i.e., the straight 3D Cartesian line
segment connecting two points on the unit sphere).
An S1Interval represents a closed interval on a unit circle (also known as a 1-dimensional
sphere).
Defines an area or a length cell metric.
The area of an interior, i.e.
S2Cap represents a disc-shaped region defined by a center and radius.
An S2Cell is an S2Region object that represents a cell.
An S2CellId is a 64-bit unsigned integer that uniquely identifies a cell in the S2 cell
decomposition.
A list of
S2CellId
s, and specialized methods for directly operating on the encoded form.
An iterator over all (cellId, label) pairs in an unspecified order.
Represents a node in the (cellId, label) tree.
A function that is called with each (cellId, label) pair to be visited.
An iterator that visits the (cellId, label) pairs that cover a set of leaf cell ranges (see
RangeIterator).
To build the cell tree and leaf cell ranges, we maintain a stack of (cellId, label) pairs that
contain the current leaf cell.
An iterator that seeks and iterates over a set of non-overlapping leaf cell ranges that cover
the entire sphere.
A range of leaf S2CellIds, from the level 30 leaf cell of this range to the next range.
An S2CellUnion is a region consisting of cells of various sizes.
A type that is comparable on distance only.
A queued cell waiting to be processed by the current query, ordered by distance to any point in
the cell in ascending order.
A query result paired with the distance to the query target.
An interface for encoding and decoding values.
A visitor that receives each edge that has some query point p as an endpoint.
The options for building an S2ContainsPointQuery.
A rule for whether shapes are considered to contain their vertices.
A visitor that receives each shape that contains a query point, returning true to continue
receiving shapes or false to terminate early.
An abstract directed edge from one S2Point to another S2Point.
S2EdgeQuery is used to find edges or shapes that are crossed by an edge.
An iterator over the sorted unique edge IDs of a shape that may intersect some query edge.
Tracks the current edge index within a clipped shape.
Used to denote which point should be used when finding distances/points.
Used to efficiently test a fixed edge AB against an edge chain.
FaceSegment represents an edge AB clipped to an S2 cube face.
Encapsulation of a mutable error value.
Wedge processors are used to determine the local relationship between two polygons that share a
common vertex.
Spatial containment relationships between a wedge A to another wedge B.
An error code and text string describing the first error encountered during a validation process.
A random access iterator that provides low-level access to entries sorted by cell ID.
An interface to provide the cell ID for an element in a sorted list.
This class represents a point on the unit sphere as a pair of latitude-longitude coordinates.
S2LatLngRect represents a latitude-longitude rectangle.
This class is a builder for S2LatLngRect instances.
A region defined by a collection of zero or more closed loops.
S2LaxPolylineShape represents a polyline.
An S2Loop represents a simple spherical polygon.
A relation between two loops (e.g.
S2PaddedCell represents an S2Cell whose (u,v)-range has been expanded on all sides by a given
amount of "padding".
An S2Point represents a point on the unit sphere as a 3D vector.
An S2Shape representing a list of S2Points.
S2PointIndex maintains an index of points sorted by leaf S2CellId.
An S2Iterator-compatible pair of S2Point with associated client data of a given type.
An S2PointRegion is a region that contains a single point.
Represents a point that can be encoded as an
S2CellId
center.
Controls whether to optimize for speed or size when encoding points.
An S2Polygon is an S2Region object that represents a polygon.
This is a simple class for assembling polygons out of edges.
An S2Polyline represents a sequence of zero or more vertices connected by straight edges
(geodesics).
Given two sites A and B that form the center of caps of radius 'r', this indicates which sites
are irrelevant to the Voronoi diagram relative to an edge PQ.
This class specifies the coordinate systems and transforms used to project points from the sphere
to the unit cube to an
S2CellId
.
A [face, si, ti] position.
A transform from 3D cartesian coordinates to the 2D coordinates of a face.
A transform from 2D cartesian coordinates of a face to 3D directional vectors.
An S2Region represents a two-dimensional region over the unit sphere.
An S2RegionCoverer is a class that allows arbitrary regions to be approximated as unions of cells
(S2CellUnion).
S2Shape is an abstract base class that defines a shape.
A simple receiver for the endpoints of an edge.
A point with a known containment relationship.
A provider of the 'edgeId' ranges for each chain, allowing alternate chain representations.
A sequence of chains, represented as an array of the first 'edgeId' for each chain.
An array of S2Point references for multiple chains.
Packed coordinates for multiple chains.
Snapped cell centers for multiple chains.
A single non-empty chain.
A simple chain of S2Point references.
A simple chain of packed coordinates.
A simple chain of packed cell centers.
A provider of the 'vertexId' for the start and end of each 'edgeId' or 'chainId'/'edgeOffset',
allowing alternate edge/vertex mappings.
Chains are closed, that is, there is an implicit edge between the ends of each chain.
Chains are open, that is, there is no implicit edge between the ends of each chain.
A full S2Shape that mixes together each aspect.
How world positions are classified as exterior, interior, or on the boundary of the object.
A provider of S2Point given a 'vertexId', allowing alternate storage options.
This class contains the set of clipped shapes within a particular index cell, sorted in
increasing order of shape id.
The possible relationships between a "target" cell and the cells of the S2ShapeIndex.
ClippedEdge represents the portion of a FaceEdge that has been clipped to an S2Cell.
This class provides temporary storage for new ClippedEdges that are created during indexing.
FaceEdge stores temporary edge data while the index is being updated.
Given a set of shapes, InteriorTracker keeps track of which shapes contain a particular point
(the "focus".) It provides an efficient way to move the focus from one point to another and
incrementally update the set of shapes which contain it.
Options that affect construction of the S2ShapeIndex.
RangeIterator is a wrapper over CellIterator that is specialized for merging shape indices.
S2ClippedShape represents the part of a shape that intersects an S2Cell.
An S2ClippedShape for a shape that completely contains the cell (no edge intersections and
containsCenter is true.)
An S2ClippedShape containing a single range of contiguous edge IDs.
An S2ClippedShape that contains the non-contiguous edges from start
to end
in
edges
.
An S2ClippedShape that contains a single edge from a given shape.
A consumer which accepts two arguments.
A function which accepts an int.
Represents a cyclic ordering of the loop vertices, starting at the index "first" and proceeding
in direction "dir" (either +1 or -1).
A collector of the steradian area.
A collector of the center of mass.
An encoder/decoder of tagged
S2Shape
s.
An encoder/decoder of
List<T>
s.