Package 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
Modifier and Type
Field
Description
`protected org.locationtech.spatial4j.shape.Rectangle`
`boundingBox`
`protected org.locationtech.spatial4j.shape.Point`
`center`
`protected T`
`shape`
`protected final org.locationtech.spatial4j.context.SpatialContext`
`spatialcontext`

## Constructor Summary

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

## Method Summary

Modifier and Type
Method
Description
`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 Details

### 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 Details

### Geo3dShape

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

## Method Details

### 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`