java.lang.Object
org.apache.lucene.spatial3d.geom.BasePlanetObject
org.apache.lucene.spatial3d.geom.BaseXYZSolid
org.apache.lucene.spatial3d.geom.XYdZSolid
- All Implemented Interfaces:
GeoArea,Membership,PlanetObject,SerializableObject,XYZSolid
3D rectangle, bounded on six sides by X,Y,Z limits, degenerate in Z
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected final GeoPoint[]These are the edge points of the shape, which are defined to be at least one point on each surface area boundary.protected final doubleMax-Xprotected final SidedPlaneMax-X planeprotected final doubleMax-Yprotected final SidedPlaneMax-Y planeprotected final doubleMin-Xprotected final SidedPlaneMin-X planeprotected final doubleMin-Yprotected final SidedPlaneMin-Y planeprotected final GeoPoint[]Notable points for ZPlaneprotected final doubleZprotected final PlaneZ planeFields inherited from class org.apache.lucene.spatial3d.geom.BaseXYZSolid
ALL_INSIDE, EMPTY_POINTS, NO_EDGEPOINTS, NONE_INSIDE, SOME_INSIDE, xUnitVector, xVerticalPlane, yUnitVector, yVerticalPlane, zUnitVectorFields inherited from class org.apache.lucene.spatial3d.geom.BasePlanetObject
planetModel -
Constructor Summary
ConstructorsConstructorDescriptionXYdZSolid(PlanetModel planetModel, double minX, double maxX, double minY, double maxY, double Z) Sole constructorXYdZSolid(PlanetModel planetModel, InputStream inputStream) Constructor for deserialization. -
Method Summary
Modifier and TypeMethodDescriptionbooleanprotected GeoPoint[]Get the edge points for this shape.intgetRelationship(GeoShape path) Find the spatial relationship between a shape and the current geo area.inthashCode()booleanisWithin(double x, double y, double z) Check if a point is within this shape.toString()voidwrite(OutputStream outputStream) Serialize to output stream.Methods inherited from class org.apache.lucene.spatial3d.geom.BaseXYZSolid
glueTogether, isAreaInsideShape, isShapeInsideArea, isWithinMethods inherited from class org.apache.lucene.spatial3d.geom.BasePlanetObject
getPlanetModelMethods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, waitMethods inherited from interface org.apache.lucene.spatial3d.geom.PlanetObject
getPlanetModel
-
Field Details
-
minX
protected final double minXMin-X -
maxX
protected final double maxXMax-X -
minY
protected final double minYMin-Y -
maxY
protected final double maxYMax-Y -
Z
protected final double ZZ -
minXPlane
Min-X plane -
maxXPlane
Max-X plane -
minYPlane
Min-Y plane -
maxYPlane
Max-Y plane -
zPlane
Z plane -
edgePoints
These are the edge points of the shape, which are defined to be at least one point on each surface area boundary. In the case of a solid, this includes points which represent the intersection of XYZ bounding planes and the planet, as well as points representing the intersection of single bounding planes with the planet itself. -
notableZPoints
Notable points for ZPlane
-
-
Constructor Details
-
XYdZSolid
public XYdZSolid(PlanetModel planetModel, double minX, double maxX, double minY, double maxY, double Z) Sole constructor- Parameters:
planetModel- is the planet model.minX- is the minimum X value.maxX- is the maximum X value.minY- is the minimum Y value.maxY- is the maximum Y value.Z- is the Z value.
-
XYdZSolid
Constructor for deserialization.- Parameters:
planetModel- is the planet model.inputStream- is the input stream.- Throws:
IOException
-
-
Method Details
-
write
Description copied from interface:SerializableObjectSerialize to output stream.- Specified by:
writein interfaceSerializableObject- Overrides:
writein classBasePlanetObject- Parameters:
outputStream- is the output stream to write to.- Throws:
IOException
-
getEdgePoints
Description copied from class:BaseXYZSolidGet the edge points for this shape.- Specified by:
getEdgePointsin classBaseXYZSolid- Returns:
- the edge points.
-
isWithin
public boolean isWithin(double x, double y, double z) Description copied from interface:MembershipCheck if a point is within this shape.- Specified by:
isWithinin interfaceMembership- Specified by:
isWithinin classBaseXYZSolid- Parameters:
x- is x coordinate of point to check.y- is y coordinate of point to check.z- is z coordinate of point to check.- Returns:
- true if the point is within this shape
-
getRelationship
Description copied from interface:GeoAreaFind the spatial relationship between a shape and the current geo area. Note: return value is how the GeoShape relates to the GeoArea, not the other way around. For example, if this GeoArea is entirely within the shape, then CONTAINS should be returned. If the shape is entirely enclosed by this GeoArea, then WITHIN should be returned.It is permissible to return OVERLAPS instead of WITHIN if the shape intersects with the area at even a single point. So, a circle inscribed in a rectangle could return either OVERLAPS or WITHIN, depending on implementation. It is not permissible to return CONTAINS or DISJOINT in this circumstance, however.
Similarly, it is permissible to return OVERLAPS instead of CONTAINS under conditions where the shape consists of multiple independent overlapping subshapes, and the area overlaps one of the subshapes. It is not permissible to return WITHIN or DISJOINT in this circumstance, however.
- Parameters:
path- is the shape to consider.- Returns:
- the relationship, from the perspective of the shape.
-
equals
- Overrides:
equalsin classBaseXYZSolid
-
hashCode
public int hashCode()- Overrides:
hashCodein classBaseXYZSolid
-
toString
-