# Hierarchy For All Packages

Package Hierarchies:

- org.apache.lucene.spatial,
- org.apache.lucene.spatial.bbox,
- org.apache.lucene.spatial.composite,
- org.apache.lucene.spatial.prefix,
- org.apache.lucene.spatial.prefix.tree,
- org.apache.lucene.spatial.query,
- org.apache.lucene.spatial.serialized,
- org.apache.lucene.spatial.spatial4j,
- org.apache.lucene.spatial.util,
- org.apache.lucene.spatial.vector

## Class Hierarchy

- java.lang.Object
  - org.apache.lucene.spatial.prefix.AbstractPrefixTreeQuery.BaseTermsEnumTraverser
    - org.apache.lucene.spatial.prefix.AbstractVisitingPrefixTreeQuery.VisitorTemplate
  - org.apache.lucene.spatial.prefix.AbstractVisitingPrefixTreeQuery.VNode
  - org.apache.lucene.util.AttributeSource
    - org.apache.lucene.analysis.TokenStream (implements java.io.Closeable)
      - org.apache.lucene.spatial.prefix.BytesRefIteratorTokenStream
        - org.apache.lucene.spatial.prefix.PrefixTreeStrategy.ShapeTokenStream
  - org.locationtech.spatial4j.io.BinaryCodec
    - org.apache.lucene.spatial.spatial4j.Geo3dBinaryCodec
  - org.apache.lucene.spatial.prefix.tree.CellIterator (implements java.util.Iterator<E>)
    - org.apache.lucene.spatial.prefix.tree.NumberRangePrefixTree.NRCell (implements org.apache.lucene.spatial.prefix.tree.Cell, org.apache.lucene.spatial.prefix.tree.NumberRangePrefixTree.UnitNRShape)
    - org.apache.lucene.spatial.prefix.tree.PackedQuadPrefixTree.PrefixTreeIterator
  - org.apache.lucene.spatial.prefix.CellToBytesRefIterator (implements org.apache.lucene.util.BytesRefIterator)
  - org.apache.lucene.search.DoubleValuesSource (implements org.apache.lucene.search.SegmentCacheable)
    - org.apache.lucene.spatial.bbox.BBoxSimilarityValueSource
      - org.apache.lucene.spatial.bbox.BBoxOverlapRatioValueSource
    - org.apache.lucene.spatial.util.CachingDoubleValueSource
    - org.apache.lucene.spatial.util.DistanceToShapeValueSource
    - org.apache.lucene.spatial.vector.DistanceValueSource
    - org.apache.lucene.spatial.util.ReciprocalDoubleValuesSource
    - org.apache.lucene.spatial.util.ShapeAreaValueSource
    - org.apache.lucene.spatial.util.ShapeFieldCacheDistanceValueSource
  - org.apache.lucene.spatial.spatial4j.Geo3dDistanceCalculator (implements org.locationtech.spatial4j.distance.DistanceCalculator)
  - org.apache.lucene.spatial.spatial4j.Geo3dShape<T> (implements org.locationtech.spatial4j.shape.Shape)
    - org.apache.lucene.spatial.spatial4j.Geo3dCircleShape (implements org.locationtech.spatial4j.shape.Circle)
    - org.apache.lucene.spatial.spatial4j.Geo3dPointShape (implements org.locationtech.spatial4j.shape.Point)
    - org.apache.lucene.spatial.spatial4j.Geo3dRectangleShape (implements org.locationtech.spatial4j.shape.Rectangle)
  - org.apache.lucene.spatial.spatial4j.Geo3dShapeFactory (implements org.apache.lucene.spatial.prefix.tree.S2ShapeFactory)
  - org.apache.lucene.spatial.prefix.HeatmapFacetCounter
  - org.apache.lucene.spatial.prefix.HeatmapFacetCounter.Heatmap
  - org.apache.lucene.spatial.prefix.tree.LegacyCell (implements org.apache.lucene.spatial.prefix.tree.CellCanPrune)
    - org.apache.lucene.spatial.prefix.tree.QuadPrefixTree.QuadCell
      - org.apache.lucene.spatial.prefix.tree.PackedQuadPrefixTree.PackedQuadCell
  - org.apache.lucene.spatial.prefix.tree.NumberRangePrefixTree.SpanUnitsNRShape (implements org.apache.lucene.spatial.prefix.tree.NumberRangePrefixTree.NRShape)
  - org.apache.lucene.spatial.prefix.NumberRangePrefixTreeStrategy.Facets
  - org.apache.lucene.spatial.prefix.NumberRangePrefixTreeStrategy.Facets.FacetParentVal
  - org.apache.lucene.spatial.prefix.PrefixTreeFacetCounter
  - org.apache.lucene.spatial.prefix.PrefixTreeFacetCounter.FacetVisitor
  - org.apache.lucene.search.Query
    - org.apache.lucene.spatial.prefix.AbstractPrefixTreeQuery
      - org.apache.lucene.spatial.prefix.AbstractVisitingPrefixTreeQuery
        - org.apache.lucene.spatial.prefix.IntersectsPrefixTreeQuery
        - org.apache.lucene.spatial.prefix.WithinPrefixTreeQuery
      - org.apache.lucene.spatial.prefix.ContainsPrefixTreeQuery
    - org.apache.lucene.spatial.composite.CompositeVerifyQuery
    - org.apache.lucene.spatial.composite.IntersectsRPTVerifyQuery
  - org.apache.lucene.spatial.util.ShapeFieldCache<T>
  - org.apache.lucene.spatial.util.ShapeFieldCacheProvider<T>
    - org.apache.lucene.spatial.prefix.PointPrefixTreeFieldCacheProvider
  - org.apache.lucene.spatial.ShapeValues
  - org.apache.lucene.spatial.util.ShapeValuesPredicate (implements org.apache.lucene.search.SegmentCacheable)
  - org.apache.lucene.spatial.ShapeValuesSource (implements org.apache.lucene.search.SegmentCacheable)
  - org.apache.lucene.spatial.query.SpatialArgs
  - org.apache.lucene.spatial.query.SpatialArgsParser
  - org.locationtech.spatial4j.context.SpatialContextFactory
    - org.apache.lucene.spatial.spatial4j.Geo3dSpatialContextFactory
  - org.apache.lucene.spatial.query.SpatialOperation (implements java.io.Serializable)
  - org.apache.lucene.spatial.prefix.tree.SpatialPrefixTree
    - org.apache.lucene.spatial.prefix.tree.GeohashPrefixTree
    - org.apache.lucene.spatial.prefix.tree.NumberRangePrefixTree
      - org.apache.lucene.spatial.prefix.tree.DateRangePrefixTree
    - org.apache.lucene.spatial.prefix.tree.QuadPrefixTree
      - org.apache.lucene.spatial.prefix.tree.PackedQuadPrefixTree
    - org.apache.lucene.spatial.prefix.tree.S2PrefixTree
  - org.apache.lucene.spatial.prefix.tree.SpatialPrefixTreeFactory
    - org.apache.lucene.spatial.prefix.tree.GeohashPrefixTree.Factory
    - org.apache.lucene.spatial.prefix.tree.QuadPrefixTree.Factory
      - org.apache.lucene.spatial.prefix.tree.PackedQuadPrefixTree.Factory
    - org.apache.lucene.spatial.prefix.tree.S2PrefixTree.Factory
  - org.apache.lucene.spatial.SpatialStrategy
    - org.apache.lucene.spatial.bbox.BBoxStrategy
    - org.apache.lucene.spatial.composite.CompositeSpatialStrategy
    - org.apache.lucene.spatial.vector.PointVectorStrategy
    - org.apache.lucene.spatial.prefix.PrefixTreeStrategy
      - org.apache.lucene.spatial.prefix.RecursivePrefixTreeStrategy
        - org.apache.lucene.spatial.prefix.NumberRangePrefixTreeStrategy
      - org.apache.lucene.spatial.prefix.TermQueryPrefixTreeStrategy
    - org.apache.lucene.spatial.serialized.SerializedDVStrategy
  - java.lang.Throwable (implements java.io.Serializable)
    - java.lang.Exception
      - java.lang.RuntimeException
        - java.lang.UnsupportedOperationException
          - org.apache.lucene.spatial.query.UnsupportedSpatialOperation

## Interface Hierarchy

- org.apache.lucene.spatial.prefix.tree.Cell
  - org.apache.lucene.spatial.prefix.tree.CellCanPrune
- java.lang.Cloneable
  - org.apache.lucene.spatial.prefix.tree.NumberRangePrefixTree.NRShape (also extends org.locationtech.spatial4j.shape.Shape)
    - org.apache.lucene.spatial.prefix.tree.NumberRangePrefixTree.UnitNRShape (also extends java.lang.Comparable<T>)
  - org.apache.lucene.spatial.prefix.tree.NumberRangePrefixTree.UnitNRShape (also extends java.lang.Comparable<T>, org.apache.lucene.spatial.prefix.tree.NumberRangePrefixTree.NRShape)
- java.lang.Comparable<T>
  - org.apache.lucene.spatial.prefix.tree.NumberRangePrefixTree.UnitNRShape (also extends org.apache.lucene.spatial.prefix.tree.NumberRangePrefixTree.NRShape)
- org.locationtech.spatial4j.shape.Shape
  - org.apache.lucene.spatial.prefix.tree.NumberRangePrefixTree.NRShape (also extends java.lang.Cloneable)
    - org.apache.lucene.spatial.prefix.tree.NumberRangePrefixTree.UnitNRShape (also extends java.lang.Comparable<T>)
  - org.apache.lucene.spatial.prefix.tree.NumberRangePrefixTree.UnitNRShape (also extends java.lang.Comparable<T>, org.apache.lucene.spatial.prefix.tree.NumberRangePrefixTree.NRShape)
- org.locationtech.spatial4j.shape.ShapeFactory
  - org.apache.lucene.spatial.prefix.tree.S2ShapeFactory