Package com.google.common.geometry
Class S2ShapeIndex.Cell
java.lang.Object
com.google.common.geometry.S2ShapeIndex.Cell
- All Implemented Interfaces:
S2Iterator.Entry
,Serializable
- Direct Known Subclasses:
S2ShapeIndex.Cell.BinaryCell
,S2ShapeIndex.Cell.MultiCell
,S2ShapeIndex.S2ClippedShape
,S2ShapeIndexCoder.EncodedS2ShapeIndex.LazyCell
- Enclosing class:
S2ShapeIndex
public abstract static class S2ShapeIndex.Cell
extends Object
implements S2Iterator.Entry, Serializable
This class contains the set of clipped shapes within a particular index cell, sorted in
increasing order of shape id.
To be as memory efficient as possible, we specialize two very common cases.
- The Cell class is extended by S2ClippedShape, and in the *very* common case of a cell
containing just one clipped shape, we return the shape directly without wrapping it (this
requires that the clipped shapes contain the cell IDs, rather than the Cell; more about
that on
S2ShapeIndex.S2ClippedShape
.) - In the fairly common case of a cell intersecting two shapes, we have a BinaryCell implementation that is half the size of the general purpose MultiCell in that case.
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprivate static final class
A specialization of Cell for the case of two clipped shapes.private static final class
A specialization of Cell for multiple shapes per cell. -
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionabstract S2ShapeIndex.S2ClippedShape
clipped
(int i) Returns the clipped shape at the given index.(package private) static S2ShapeIndex.Cell
create
(int size, S2ShapeIndex.S2ClippedShape[] tempClippedShapes) Returns a Cell with a copy of the given shapes, specialized for the number of elements.(package private) S2ShapeIndex.S2ClippedShape
findClipped
(S2Shape shape) Returns the clipped shape corresponding to the given shape ID, or null if the shape does not intersect this cell.long
id()
Returns the cell ID of this cell as a primitive.abstract int
Returns the number of clipped shapes in this cell.
-
Field Details
-
serialVersionUID
private static final long serialVersionUID- See Also:
-
-
Constructor Details
-
Cell
public Cell()
-
-
Method Details
-
create
Returns a Cell with a copy of the given shapes, specialized for the number of elements. -
id
public long id()Description copied from interface:S2Iterator.Entry
Returns the cell ID of this cell as a primitive.- Specified by:
id
in interfaceS2Iterator.Entry
-
numShapes
public abstract int numShapes()Returns the number of clipped shapes in this cell. -
clipped
Returns the clipped shape at the given index.- Parameters:
i
- must be at least 0 and less thannumShapes()
-
findClipped
Returns the clipped shape corresponding to the given shape ID, or null if the shape does not intersect this cell.
-