Package org.apache.lucene.spatial3d.geom
Class SidedPlane
- java.lang.Object
-
- org.apache.lucene.spatial3d.geom.Vector
-
- org.apache.lucene.spatial3d.geom.Plane
-
- org.apache.lucene.spatial3d.geom.SidedPlane
-
- All Implemented Interfaces:
Membership
public class SidedPlane extends Plane implements Membership
Combination of a plane, and a sign value indicating what evaluation values are on the correct side of the plane.- WARNING: This API is experimental and might change in incompatible ways in the next release.
-
-
Field Summary
Fields Modifier and Type Field Description double
sigNum
The sign value for evaluation of a point on the correct side of the plane-
Fields inherited from class org.apache.lucene.spatial3d.geom.Plane
D, NO_BOUNDS, NO_POINTS, normalXPlane, normalYPlane, normalZPlane
-
Fields inherited from class org.apache.lucene.spatial3d.geom.Vector
MINIMUM_ANGULAR_RESOLUTION, MINIMUM_RESOLUTION, MINIMUM_RESOLUTION_CUBED, MINIMUM_RESOLUTION_SQUARED, x, y, z
-
-
Constructor Summary
Constructors Constructor Description SidedPlane(double pX, double pY, double pZ, Vector v, double D)
Construct a sided plane with a normal vector and offset.SidedPlane(double pX, double pY, double pZ, Vector A, Vector B)
Construct a sided plane from a pair of vectors describing points, and including origin, plus a point p which describes the side.SidedPlane(SidedPlane sidedPlane)
Construct a SidedPlane identical to an existing one, but reversed.SidedPlane(Vector p, boolean onSide, Vector A, Vector B)
Construct a sided plane from a pair of vectors describing points, and including origin, plus a point p which describes the side.SidedPlane(Vector p, double x, double y)
Construct a sided vertical plane from a point and specified x and y coordinates.SidedPlane(Vector p, double vX, double vY, double vZ, double D)
Construct a sided plane with a normal vector and offset.SidedPlane(Vector p, PlanetModel planetModel, double sinLat)
Construct a sided plane from a point and a Z coordinate.SidedPlane(Vector A, Vector B)
Construct a sided plane from a pair of vectors describing points, and including origin.SidedPlane(Vector p, Vector v, double D)
Construct a sided plane with a normal vector and offset.SidedPlane(Vector p, Vector A, double BX, double BY, double BZ)
Construct a sided plane from a pair of vectors describing points, and including origin, plus a point p which describes the side.SidedPlane(Vector p, Vector A, Vector B)
Construct a sided plane from a pair of vectors describing points, and including origin, plus a point p which describes the side.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static SidedPlane
constructNormalizedPerpendicularSidedPlane(Vector insidePoint, Vector normalVector, Vector point1, Vector point2)
Construct a sided plane from two points and a third normal vector.static SidedPlane
constructNormalizedThreePointSidedPlane(Vector insidePoint, Vector point1, Vector point2, Vector point3)
Construct a sided plane from three points.static SidedPlane
constructSidedPlaneFromOnePoint(Vector insidePoint, Plane plane, Vector intersectionPoint)
Construct sided plane from a plane and one point.static SidedPlane
constructSidedPlaneFromTwoPoints(Vector insidePoint, Vector upperPoint, Vector lowerPoint)
Construct sided plane from two points.boolean
equals(Object o)
int
hashCode()
boolean
isWithin(double x, double y, double z)
Check if a point is within this shape.boolean
strictlyWithin(double x, double y, double z)
Check whether a point is strictly within a plane.boolean
strictlyWithin(Vector v)
Check whether a point is strictly within a plane.String
toString()
-
Methods inherited from class org.apache.lucene.spatial3d.geom.Plane
arcDistance, arcDistance, arePointsCoplanar, constructNormalizedXPlane, constructNormalizedXPlane, constructNormalizedYPlane, constructNormalizedYPlane, constructNormalizedZPlane, constructNormalizedZPlane, constructPerpendicularCenterPlaneOnePoint, constructPerpendicularCenterPlaneTwoPoints, crosses, evaluate, evaluate, evaluateIsZero, evaluateIsZero, findArcDistancePoints, findCrossings, findCrossings, findIntersectionBounds, findIntersections, findIntersections, getSampleIntersectionPoint, interpolate, intersects, isFunctionallyIdentical, isNumericallyIdentical, linearDistance, linearDistance, linearDistanceSquared, linearDistanceSquared, modify, normalDistance, normalDistance, normalDistanceSquared, normalDistanceSquared, normalize, recordBounds, recordBounds, recordBounds, recordBounds, reverseModify
-
Methods inherited from class org.apache.lucene.spatial3d.geom.Vector
crossProductEvaluateIsZero, dotProduct, dotProduct, isNumericallyIdentical, isNumericallyIdentical, isParallel, isParallel, isWithin, linearDistance, linearDistance, linearDistanceSquared, linearDistanceSquared, magnitude, magnitude, normalDistance, normalDistance, normalDistanceSquared, normalDistanceSquared, rotateXY, rotateXY, rotateXZ, rotateXZ, rotateZY, rotateZY, translate
-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface org.apache.lucene.spatial3d.geom.Membership
isWithin
-
-
-
-
Constructor Detail
-
SidedPlane
public SidedPlane(SidedPlane sidedPlane)
Construct a SidedPlane identical to an existing one, but reversed.- Parameters:
sidedPlane
- is the existing plane.
-
SidedPlane
public SidedPlane(double pX, double pY, double pZ, Vector A, Vector B)
Construct a sided plane from a pair of vectors describing points, and including origin, plus a point p which describes the side.- Parameters:
pX
- point X to evaluatepY
- point Y to evaluatepZ
- point Z to evaluateA
- is the first in-plane pointB
- is the second in-plane point
-
SidedPlane
public SidedPlane(Vector p, Vector A, Vector B)
Construct a sided plane from a pair of vectors describing points, and including origin, plus a point p which describes the side.- Parameters:
p
- point to evaluateA
- is the first in-plane pointB
- is the second in-plane point
-
SidedPlane
public SidedPlane(Vector A, Vector B)
Construct a sided plane from a pair of vectors describing points, and including origin. Choose the side arbitrarily.- Parameters:
A
- is the first in-plane pointB
- is the second in-plane point
-
SidedPlane
public SidedPlane(Vector p, Vector A, double BX, double BY, double BZ)
Construct a sided plane from a pair of vectors describing points, and including origin, plus a point p which describes the side.- Parameters:
p
- point to evaluateA
- is the first in-plane pointBX
- is the X value of the second in-plane pointBY
- is the Y value of the second in-plane pointBZ
- is the Z value of the second in-plane point
-
SidedPlane
public SidedPlane(Vector p, boolean onSide, Vector A, Vector B)
Construct a sided plane from a pair of vectors describing points, and including origin, plus a point p which describes the side.- Parameters:
p
- point to evaluateonSide
- is true if the point is on the correct side of the plane, false otherwise.A
- is the first in-plane pointB
- is the second in-plane point
-
SidedPlane
public SidedPlane(Vector p, PlanetModel planetModel, double sinLat)
Construct a sided plane from a point and a Z coordinate.- Parameters:
p
- point to evaluate.planetModel
- is the planet model.sinLat
- is the sin of the latitude of the plane.
-
SidedPlane
public SidedPlane(Vector p, double x, double y)
Construct a sided vertical plane from a point and specified x and y coordinates.- Parameters:
p
- point to evaluate.x
- is the specified x.y
- is the specified y.
-
SidedPlane
public SidedPlane(Vector p, double vX, double vY, double vZ, double D)
Construct a sided plane with a normal vector and offset.- Parameters:
p
- point to evaluate.vX
- is the normal vector X.vY
- is the normal vector Y.vZ
- is the normal vector Z.D
- is the origin offset for the plan.
-
SidedPlane
public SidedPlane(Vector p, Vector v, double D)
Construct a sided plane with a normal vector and offset.- Parameters:
p
- point to evaluate.v
- is the normal vector.D
- is the origin offset for the plan.
-
SidedPlane
public SidedPlane(double pX, double pY, double pZ, Vector v, double D)
Construct a sided plane with a normal vector and offset.- Parameters:
pX
- X coord of point to evaluate.pY
- Y coord of point to evaluate.pZ
- Z coord of point to evaluate.v
- is the normal vector.D
- is the origin offset for the plan.
-
-
Method Detail
-
constructNormalizedPerpendicularSidedPlane
public static SidedPlane constructNormalizedPerpendicularSidedPlane(Vector insidePoint, Vector normalVector, Vector point1, Vector point2)
Construct a sided plane from two points and a third normal vector.
-
constructSidedPlaneFromTwoPoints
public static SidedPlane constructSidedPlaneFromTwoPoints(Vector insidePoint, Vector upperPoint, Vector lowerPoint)
Construct sided plane from two points. This first constructs a plane that goes through the center, then finds one that is perpendicular that goes through the same two points.
-
constructSidedPlaneFromOnePoint
public static SidedPlane constructSidedPlaneFromOnePoint(Vector insidePoint, Plane plane, Vector intersectionPoint)
Construct sided plane from a plane and one point. This finds a plane perpendicular to the passed-in plane, and goes through both the origin and the point.
-
constructNormalizedThreePointSidedPlane
public static SidedPlane constructNormalizedThreePointSidedPlane(Vector insidePoint, Vector point1, Vector point2, Vector point3)
Construct a sided plane from three points.
-
isWithin
public boolean isWithin(double x, double y, double z)
Description copied from interface:Membership
Check if a point is within this shape.- Specified by:
isWithin
in interfaceMembership
- 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
-
strictlyWithin
public boolean strictlyWithin(Vector v)
Check whether a point is strictly within a plane.- Parameters:
v
- is the point.- Returns:
- true if within.
-
strictlyWithin
public boolean strictlyWithin(double x, double y, double z)
Check whether a point is strictly within a plane.- Parameters:
x
- is the point x value.y
- is the point y value.z
- is the point z value.- Returns:
- true if within.
-
-