org.apache.lucene.geo

## Class Line2D

- java.lang.Object
- - org.apache.lucene.geo.Line2D

All Implemented Interfaces:
  Component2D

    public final class Line2D
    extends Object
    implements Component2D

2D geo line implementation represented as a balanced interval tree of edges.

Line `Line2D` Construction takes `O(n log n)` time for sorting and tree construction. `relate()` are `O(n)`, but for most practical lines are much faster than brute force.

NOTE: This API is for internal purposes only and might change in incompatible ways in the next release.

### Nested Class Summary

### Nested classes/interfaces inherited from interface org.apache.lucene.geo.Component2D

`Component2D.WithinRelation`

### Method Summary

All Methods Static Methods Instance Methods Concrete Methods
`boolean` `contains(double x, double y)`
`static Component2D` `create(Line... lines)` create a Line2D edge tree from provided array of Linestrings
`static Component2D` `create(XYLine... lines)` create a Line2D edge tree from provided array of Linestrings
`double` `getMaxX()`
`double` `getMaxY()`
`double` `getMinX()`
`double` `getMinY()`
`PointValues.Relation` `relate(double minX, double maxX, double minY, double maxY)`
`PointValues.Relation` `relateTriangle(double minX, double maxX, double minY, double maxY, double ax, double ay, double bx, double by, double cx, double cy)`
`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)`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Methods inherited from interface org.apache.lucene.geo.Component2D

`containsPoint, disjoint, pointInTriangle, relateTriangle, within, withinTriangle`

### Method Detail

#### getMinX

    public double getMinX()

Specified by:
  `getMinX` in interface `Component2D`

#### getMaxX

    public double getMaxX()

Specified by:
  `getMaxX` in interface `Component2D`

#### getMinY

    public double getMinY()

Specified by:
  `getMinY` in interface `Component2D`

#### getMaxY

    public double getMaxY()

Specified by:
  `getMaxY` in interface `Component2D`

#### contains

    public boolean contains(double x,
                            double y)

Specified by:
  `contains` in interface `Component2D`

#### relate

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

Specified by:
  `relate` in interface `Component2D`

#### relateTriangle

    public PointValues.Relation relateTriangle(double minX,
                                               double maxX,
                                               double minY,
                                               double maxY,
                                               double ax,
                                               double ay,
                                               double bx,
                                               double by,
                                               double cx,
                                               double cy)

Specified by:
  `relateTriangle` in interface `Component2D`

#### withinTriangle

    public 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)

Specified by:
  `withinTriangle` in interface `Component2D`

#### create

    public static Component2D create(Line... lines)

create a Line2D edge tree from provided array of Linestrings

#### create

    public static Component2D create(XYLine... lines)

create a Line2D edge tree from provided array of Linestrings