Package org.apache.lucene.spatial3d.geom
Class GeoBaseMembershipShape
- java.lang.Object
-
- org.apache.lucene.spatial3d.geom.BasePlanetObject
-
- org.apache.lucene.spatial3d.geom.GeoBaseBounds
-
- org.apache.lucene.spatial3d.geom.GeoBaseShape
-
- org.apache.lucene.spatial3d.geom.GeoBaseMembershipShape
-
- All Implemented Interfaces:
Bounded,GeoBounds,GeoMembershipShape,GeoOutsideDistance,GeoShape,Membership,PlanetObject,SerializableObject
- Direct Known Subclasses:
GeoBaseDistanceShape,GeoDegenerateVerticalLine
public abstract class GeoBaseMembershipShape extends GeoBaseShape implements GeoMembershipShape
Membership shapes have capabilities of both geohashing and membership determination. This is a useful baseclass for them.- WARNING: This API is experimental and might change in incompatible ways in the next release.
-
-
Field Summary
-
Fields inherited from class org.apache.lucene.spatial3d.geom.BasePlanetObject
planetModel
-
-
Constructor Summary
Constructors Constructor Description GeoBaseMembershipShape(PlanetModel planetModel)Constructor.
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description doublecomputeOutsideDistance(DistanceStyle distanceStyle, double x, double y, double z)Compute this shape's distance to the GeoPoint.doublecomputeOutsideDistance(DistanceStyle distanceStyle, GeoPoint point)Compute this shape's distance to the GeoPoint.booleanisWithin(Vector point)Check if a point is within this shape.protected abstract doubleoutsideDistance(DistanceStyle distanceStyle, double x, double y, double z)Called by acomputeOutsideDistancemethod if X/Y/Z is not within this shape.-
Methods inherited from class org.apache.lucene.spatial3d.geom.GeoBaseBounds
getBounds
-
Methods inherited from class org.apache.lucene.spatial3d.geom.BasePlanetObject
equals, getPlanetModel, hashCode, write
-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.apache.lucene.spatial3d.geom.GeoShape
getEdgePoints, intersects
-
Methods inherited from interface org.apache.lucene.spatial3d.geom.Membership
isWithin
-
Methods inherited from interface org.apache.lucene.spatial3d.geom.PlanetObject
getPlanetModel
-
Methods inherited from interface org.apache.lucene.spatial3d.geom.SerializableObject
write
-
-
-
-
Constructor Detail
-
GeoBaseMembershipShape
public GeoBaseMembershipShape(PlanetModel planetModel)
Constructor.- Parameters:
planetModel- is the planet model to use.
-
-
Method Detail
-
isWithin
public boolean isWithin(Vector point)
Description copied from interface:MembershipCheck if a point is within this shape.- Specified by:
isWithinin interfaceMembership- Parameters:
point- is the point to check.- Returns:
- true if the point is within this shape
-
computeOutsideDistance
public double computeOutsideDistance(DistanceStyle distanceStyle, GeoPoint point)
Description copied from interface:GeoOutsideDistanceCompute this shape's distance to the GeoPoint. A return value of 0.0 should be returned for points inside of the shape.- Specified by:
computeOutsideDistancein interfaceGeoOutsideDistance- Parameters:
distanceStyle- is the distance style.point- is the point to compute the distance to.- Returns:
- the distance.
-
computeOutsideDistance
public double computeOutsideDistance(DistanceStyle distanceStyle, double x, double y, double z)
Description copied from interface:GeoOutsideDistanceCompute this shape's distance to the GeoPoint. A return value of 0.0 should be returned for points inside of the shape.- Specified by:
computeOutsideDistancein interfaceGeoOutsideDistance- Parameters:
distanceStyle- is the distance style.x- is the point's unit x coordinate (using U.S. convention).y- is the point's unit y coordinate (using U.S. convention).z- is the point's unit z coordinate (using U.S. convention).- Returns:
- the distance.
-
outsideDistance
protected abstract double outsideDistance(DistanceStyle distanceStyle, double x, double y, double z)
Called by acomputeOutsideDistancemethod if X/Y/Z is not within this shape.
-
-