Package org.apache.lucene.spatial3d.geom
Class XdYdZSolid
- java.lang.Object
-
- org.apache.lucene.spatial3d.geom.BasePlanetObject
-
- org.apache.lucene.spatial3d.geom.BaseXYZSolid
-
- org.apache.lucene.spatial3d.geom.XdYdZSolid
-
- All Implemented Interfaces:
GeoArea,Membership,PlanetObject,SerializableObject,XYZSolid
class XdYdZSolid extends BaseXYZSolid
3D rectangle, bounded on six sides by X,Y,Z limits, degenerate in Y and Z. This figure, in fact, represents either zero, one, or two points, so the actual data stored is minimal.
-
-
Field Summary
Fields Modifier and Type Field Description protected doublemaxXMax-Xprotected doubleminXMin-Xprotected GeoPoint[]surfacePointsThe points in this figure on the planet surface; also doubles for edge pointsprotected doubleYYprotected doubleZZ-
Fields inherited from class org.apache.lucene.spatial3d.geom.BaseXYZSolid
ALL_INSIDE, EMPTY_POINTS, NO_EDGEPOINTS, NONE_INSIDE, SOME_INSIDE, xUnitVector, xVerticalPlane, yUnitVector, yVerticalPlane, zUnitVector
-
Fields inherited from class org.apache.lucene.spatial3d.geom.BasePlanetObject
planetModel
-
-
Constructor Summary
Constructors Constructor Description XdYdZSolid(PlanetModel planetModel, double minX, double maxX, double Y, double Z)Sole constructorXdYdZSolid(PlanetModel planetModel, java.io.InputStream inputStream)Constructor for deserialization.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description booleanequals(java.lang.Object o)protected GeoPoint[]getEdgePoints()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.java.lang.StringtoString()voidwrite(java.io.OutputStream outputStream)Serialize to output stream.-
Methods inherited from class org.apache.lucene.spatial3d.geom.BaseXYZSolid
glueTogether, isAreaInsideShape, isShapeInsideArea, isWithin
-
Methods inherited from class org.apache.lucene.spatial3d.geom.BasePlanetObject
getPlanetModel
-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface org.apache.lucene.spatial3d.geom.PlanetObject
getPlanetModel
-
-
-
-
Field Detail
-
minX
protected final double minX
Min-X
-
maxX
protected final double maxX
Max-X
-
Y
protected final double Y
Y
-
Z
protected final double Z
Z
-
surfacePoints
protected final GeoPoint[] surfacePoints
The points in this figure on the planet surface; also doubles for edge points
-
-
Constructor Detail
-
XdYdZSolid
public XdYdZSolid(PlanetModel planetModel, double minX, double maxX, double Y, double Z)
Sole constructor- Parameters:
planetModel- is the planet model.minX- is the minimum X value.maxX- is the maximum X value.Y- is the Y value.Z- is the Z value.
-
XdYdZSolid
public XdYdZSolid(PlanetModel planetModel, java.io.InputStream inputStream) throws java.io.IOException
Constructor for deserialization.- Parameters:
planetModel- is the planet model.inputStream- is the input stream.- Throws:
java.io.IOException
-
-
Method Detail
-
write
public void write(java.io.OutputStream outputStream) throws java.io.IOExceptionDescription copied from interface:SerializableObjectSerialize to output stream.- Specified by:
writein interfaceSerializableObject- Overrides:
writein classBasePlanetObject- Parameters:
outputStream- is the output stream to write to.- Throws:
java.io.IOException
-
getEdgePoints
protected GeoPoint[] 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
public int getRelationship(GeoShape path)
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
public boolean equals(java.lang.Object o)
- Overrides:
equalsin classBaseXYZSolid
-
hashCode
public int hashCode()
- Overrides:
hashCodein classBaseXYZSolid
-
toString
public java.lang.String toString()
- Overrides:
toStringin classjava.lang.Object
-
-