org.apache.lucene.spatial.spatial4j

## Class Geo3dShape<T extends GeoAreaShape>

- java.lang.Object
- - org.apache.lucene.spatial.spatial4j.Geo3dShape<T>

Type Parameters:
  `T` - is the type of `GeoAreaShape`

All Implemented Interfaces:
  org.locationtech.spatial4j.shape.Shape

Direct Known Subclasses:
  Geo3dCircleShape, Geo3dPointShape, Geo3dRectangleShape

    public class Geo3dShape<T extends GeoAreaShape>
    extends Object
    implements org.locationtech.spatial4j.shape.Shape

A Spatial4j Shape wrapping a `GeoAreaShape` ("Geo3D") -- a 3D planar geometry based Spatial4j Shape implementation. Geo3D implements shapes on the surface of a sphere or ellipsoid.

WARNING: This API is experimental and might change in incompatible ways in the next release.

### Field Summary

Fields
`protected org.locationtech.spatial4j.shape.Rectangle` `boundingBox`
`protected org.locationtech.spatial4j.shape.Point` `center`
`protected T` `shape`
`protected org.locationtech.spatial4j.context.SpatialContext` `spatialcontext`

### Constructor Summary

Constructors
Constructor and Description
`Geo3dShape(T shape, org.locationtech.spatial4j.context.SpatialContext spatialcontext)`

### Method Summary

All Methods Instance Methods Concrete Methods
`boolean` `equals(Object o)`
`double` `getArea(org.locationtech.spatial4j.context.SpatialContext spatialContext)`
`org.locationtech.spatial4j.shape.Rectangle` `getBoundingBox()`
`org.locationtech.spatial4j.shape.Shape` `getBuffered(double distance, org.locationtech.spatial4j.context.SpatialContext spatialContext)`
`org.locationtech.spatial4j.shape.Point` `getCenter()`
`org.locationtech.spatial4j.context.SpatialContext` `getContext()`
`boolean` `hasArea()`
`int` `hashCode()`
`boolean` `isEmpty()`
`org.locationtech.spatial4j.shape.SpatialRelation` `relate(org.locationtech.spatial4j.shape.Shape other)`
`String` `toString()`

### Methods inherited from class java.lang.Object

`clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

### Field Detail

#### spatialcontext

    protected final org.locationtech.spatial4j.context.SpatialContext spatialcontext

#### shape

    protected T extends GeoAreaShape shape

#### boundingBox

    protected volatile org.locationtech.spatial4j.shape.Rectangle boundingBox

#### center

    protected volatile org.locationtech.spatial4j.shape.Point center

### Constructor Detail

#### Geo3dShape

    public Geo3dShape(T shape,
                      org.locationtech.spatial4j.context.SpatialContext spatialcontext)

### Method Detail

#### relate

    public org.locationtech.spatial4j.shape.SpatialRelation relate(org.locationtech.spatial4j.shape.Shape other)

Specified by:
  `relate` in interface `org.locationtech.spatial4j.shape.Shape`

#### getBoundingBox

    public org.locationtech.spatial4j.shape.Rectangle getBoundingBox()

Specified by:
  `getBoundingBox` in interface `org.locationtech.spatial4j.shape.Shape`

#### hasArea

    public boolean hasArea()

Specified by:
  `hasArea` in interface `org.locationtech.spatial4j.shape.Shape`

#### getArea

    public double getArea(org.locationtech.spatial4j.context.SpatialContext spatialContext)

Specified by:
  `getArea` in interface `org.locationtech.spatial4j.shape.Shape`

#### getCenter

    public org.locationtech.spatial4j.shape.Point getCenter()

Specified by:
  `getCenter` in interface `org.locationtech.spatial4j.shape.Shape`

#### getBuffered

    public org.locationtech.spatial4j.shape.Shape getBuffered(double distance,
                                                              org.locationtech.spatial4j.context.SpatialContext spatialContext)

Specified by:
  `getBuffered` in interface `org.locationtech.spatial4j.shape.Shape`

#### isEmpty

    public boolean isEmpty()

Specified by:
  `isEmpty` in interface `org.locationtech.spatial4j.shape.Shape`

#### getContext

    public org.locationtech.spatial4j.context.SpatialContext getContext()

Specified by:
  `getContext` in interface `org.locationtech.spatial4j.shape.Shape`

#### toString

    public String toString()

Overrides:
  `toString` in class `Object`

#### equals

    public boolean equals(Object o)

Specified by:
  `equals` in interface `org.locationtech.spatial4j.shape.Shape`
Overrides:
  `equals` in class `Object`

#### hashCode

    public int hashCode()

Overrides:
  `hashCode` in class `Object`