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`

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

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