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

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`

## Field Details

### sigNum

public final double sigNum
The sign value for evaluation of a point on the correct side of the plane

## Constructor Details

### 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 evaluate
  `pY` - point Y to evaluate
  `pZ` - point Z to evaluate
  `A` - is the first in-plane point
  `B` - 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 evaluate
  `A` - is the first in-plane point
  `B` - 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 point
  `B` - 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 evaluate
  `A` - is the first in-plane point
  `BX` - is the X value of the second in-plane point
  `BY` - is the Y value of the second in-plane point
  `BZ` - 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 evaluate
  `onSide` - is true if the point is on the correct side of the plane, false otherwise.
  `A` - is the first in-plane point
  `B` - 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 Details

### 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 interface `Membership`
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.

### equals

public boolean equals(Object o)

Overrides:
  `equals` in class `Plane`

### hashCode

public int hashCode()

Overrides:
  `hashCode` in class `Plane`

### toString

public String toString()

Overrides:
  `toString` in class `Plane`