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
`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 and 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
`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.
`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, 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 Detail

#### sigNum

    public final double sigNum

The sign value for evaluation of a point on the correct side of the plane

### 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 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 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.

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