Package org.apache.lucene.geo

## Interface Component2D

-     public interface Component2D

  2D Geometry object that supports spatial relationships with bounding boxes, triangles and points.
  NOTE: This API is for internal purposes only and might change in incompatible ways in the next release.

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Interface | Description
    --- | --- | ---
    `static class` | `Component2D.WithinRelation` | Used by withinTriangle to check the within relationship between a triangle and the query shape (e.g.

  - ### Method Summary

    All Methods Static Methods Instance Methods Abstract Methods Default Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `boolean` | `contains​(double x, double y)` | relates this component2D with a point *
    `default boolean` | `containsLine​(double aX, double aY, double bX, double bY)` | return true if this component2D contains the provided line *
    `boolean` | `containsLine​(double minX, double maxX, double minY, double maxY, double aX, double aY, double bX, double bY)` | return true if this component2D contains the provided line *
    `static boolean` | `containsPoint​(double x, double y, double minX, double maxX, double minY, double maxY)` | returns true if rectangle (defined by minX, maxX, minY, maxY) contains the X Y point
    `default boolean` | `containsTriangle​(double aX, double aY, double bX, double bY, double cX, double cY)` | return true if this component2D contains the provided triangle *
    `boolean` | `containsTriangle​(double minX, double maxX, double minY, double maxY, double aX, double aY, double bX, double bY, double cX, double cY)` | return true if this component2D contains the provided triangle *
    `static boolean` | `disjoint​(double minX1, double maxX1, double minY1, double maxY1, double minX2, double maxX2, double minY2, double maxY2)` | Compute whether the bounding boxes are disjoint *
    `double` | `getMaxX()` | max X value for the component *
    `double` | `getMaxY()` | max Y value for the component *
    `double` | `getMinX()` | min X value for the component *
    `double` | `getMinY()` | min Y value for the component *
    `default boolean` | `intersectsLine​(double aX, double aY, double bX, double bY)` | return true if this component2D intersects the provided line *
    `boolean` | `intersectsLine​(double minX, double maxX, double minY, double maxY, double aX, double aY, double bX, double bY)` | return true if this component2D intersects the provided line *
    `default boolean` | `intersectsTriangle​(double aX, double aY, double bX, double bY, double cX, double cY)` | return true if this component2D intersects the provided triangle *
    `boolean` | `intersectsTriangle​(double minX, double maxX, double minY, double maxY, double aX, double aY, double bX, double bY, double cX, double cY)` | return true if this component2D intersects the provided triangle *
    `static boolean` | `pointInTriangle​(double minX, double maxX, double minY, double maxY, double x, double y, double aX, double aY, double bX, double bY, double cX, double cY)` | Compute whether the given x, y point is in a triangle; uses the winding order method
    `PointValues.Relation` | `relate​(double minX, double maxX, double minY, double maxY)` | relates this component2D with a bounding box *
    `static boolean` | `within​(double minX1, double maxX1, double minY1, double maxY1, double minX2, double maxX2, double minY2, double maxY2)` | Compute whether the first bounding box 1 is within the second bounding box *
    `default Component2D.WithinRelation` | `withinLine​(double aX, double aY, boolean ab, double bX, double bY)` | Compute the within relation of this component2D with a triangle *
    `Component2D.WithinRelation` | `withinLine​(double minX, double maxX, double minY, double maxY, double aX, double aY, boolean ab, double bX, double bY)` | Compute the within relation of this component2D with a line *
    `Component2D.WithinRelation` | `withinPoint​(double x, double y)` | Compute the within relation of this component2D with a point *
    `default Component2D.WithinRelation` | `withinTriangle​(double aX, double aY, boolean ab, double bX, double bY, boolean bc, double cX, double cY, boolean ca)` | Compute the within relation of this component2D with a triangle *
    `Component2D.WithinRelation` | `withinTriangle​(double minX, double maxX, double minY, double maxY, double aX, double aY, boolean ab, double bX, double bY, boolean bc, double cX, double cY, boolean ca)` | Compute the within relation of this component2D with a triangle *

- - ### Method Detail

    - #### getMinX

          double getMinX()

      min X value for the component *

    - #### getMaxX

          double getMaxX()

      max X value for the component *

    - #### getMinY

          double getMinY()

      min Y value for the component *

    - #### getMaxY

          double getMaxY()

      max Y value for the component *

    - #### contains

          boolean contains​(double x,
                           double y)

      relates this component2D with a point *

    - #### relate

          PointValues.Relation relate​(double minX,
                                      double maxX,
                                      double minY,
                                      double maxY)

      relates this component2D with a bounding box *

    - #### intersectsLine

          boolean intersectsLine​(double minX,
                                 double maxX,
                                 double minY,
                                 double maxY,
                                 double aX,
                                 double aY,
                                 double bX,
                                 double bY)

      return true if this component2D intersects the provided line *

    - #### intersectsTriangle

          boolean intersectsTriangle​(double minX,
                                     double maxX,
                                     double minY,
                                     double maxY,
                                     double aX,
                                     double aY,
                                     double bX,
                                     double bY,
                                     double cX,
                                     double cY)

      return true if this component2D intersects the provided triangle *

    - #### containsLine

          boolean containsLine​(double minX,
                               double maxX,
                               double minY,
                               double maxY,
                               double aX,
                               double aY,
                               double bX,
                               double bY)

      return true if this component2D contains the provided line *

    - #### containsTriangle

          boolean containsTriangle​(double minX,
                                   double maxX,
                                   double minY,
                                   double maxY,
                                   double aX,
                                   double aY,
                                   double bX,
                                   double bY,
                                   double cX,
                                   double cY)

      return true if this component2D contains the provided triangle *

    - #### withinPoint

          Component2D.WithinRelation withinPoint​(double x,
                                                 double y)

      Compute the within relation of this component2D with a point *

    - #### withinLine

          Component2D.WithinRelation withinLine​(double minX,
                                                double maxX,
                                                double minY,
                                                double maxY,
                                                double aX,
                                                double aY,
                                                boolean ab,
                                                double bX,
                                                double bY)

      Compute the within relation of this component2D with a line *

    - #### withinTriangle

          Component2D.WithinRelation withinTriangle​(double minX,
                                                    double maxX,
                                                    double minY,
                                                    double maxY,
                                                    double aX,
                                                    double aY,
                                                    boolean ab,
                                                    double bX,
                                                    double bY,
                                                    boolean bc,
                                                    double cX,
                                                    double cY,
                                                    boolean ca)

      Compute the within relation of this component2D with a triangle *

    - #### intersectsLine

          default boolean intersectsLine​(double aX,
                                         double aY,
                                         double bX,
                                         double bY)

      return true if this component2D intersects the provided line *

    - #### intersectsTriangle

          default boolean intersectsTriangle​(double aX,
                                             double aY,
                                             double bX,
                                             double bY,
                                             double cX,
                                             double cY)

      return true if this component2D intersects the provided triangle *

    - #### containsLine

          default boolean containsLine​(double aX,
                                       double aY,
                                       double bX,
                                       double bY)

      return true if this component2D contains the provided line *

    - #### containsTriangle

          default boolean containsTriangle​(double aX,
                                           double aY,
                                           double bX,
                                           double bY,
                                           double cX,
                                           double cY)

      return true if this component2D contains the provided triangle *

    - #### withinLine

          default Component2D.WithinRelation withinLine​(double aX,
                                                        double aY,
                                                        boolean ab,
                                                        double bX,
                                                        double bY)

      Compute the within relation of this component2D with a triangle *

    - #### withinTriangle

          default Component2D.WithinRelation withinTriangle​(double aX,
                                                            double aY,
                                                            boolean ab,
                                                            double bX,
                                                            double bY,
                                                            boolean bc,
                                                            double cX,
                                                            double cY,
                                                            boolean ca)

      Compute the within relation of this component2D with a triangle *

    - #### disjoint

          static boolean disjoint​(double minX1,
                                  double maxX1,
                                  double minY1,
                                  double maxY1,
                                  double minX2,
                                  double maxX2,
                                  double minY2,
                                  double maxY2)

      Compute whether the bounding boxes are disjoint *

    - #### within

          static boolean within​(double minX1,
                                double maxX1,
                                double minY1,
                                double maxY1,
                                double minX2,
                                double maxX2,
                                double minY2,
                                double maxY2)

      Compute whether the first bounding box 1 is within the second bounding box *

    - #### containsPoint

          static boolean containsPoint​(double x,
                                       double y,
                                       double minX,
                                       double maxX,
                                       double minY,
                                       double maxY)

      returns true if rectangle (defined by minX, maxX, minY, maxY) contains the X Y point

    - #### pointInTriangle

          static boolean pointInTriangle​(double minX,
                                         double maxX,
                                         double minY,
                                         double maxY,
                                         double x,
                                         double y,
                                         double aX,
                                         double aY,
                                         double bX,
                                         double bY,
                                         double cX,
                                         double cY)

      Compute whether the given x, y point is in a triangle; uses the winding order method