## com.vividsolutions.jts.geomgraph
Class Label

    java.lang.Object
      com.vividsolutions.jts.geomgraph.Label

public class Label
extends java.lang.Object

A `Label` indicates the topological relationship of a component of a topology graph to a given `Geometry`. This class supports labels for relationships to two `Geometry`s, which is sufficient for algorithms for binary operations.

Topology graphs support the concept of labeling nodes and edges in the graph. The label of a node or edge specifies its topological relationship to one or more geometries. (In fact, since JTS operations have only two arguments labels are required for only two geometries). A label for a node or edge has one or two elements, depending on whether the node or edge occurs in one or both of the input `Geometry`s. Elements contain attributes which categorize the topological location of the node or edge relative to the parent `Geometry`; that is, whether the node or edge is in the interior, boundary or exterior of the `Geometry`. Attributes have a value from the set `{Interior, Boundary, Exterior}`. In a node each element has a single attribute `<On>`. For an edge each element has a triplet of attributes `<Left, On, Right>`.

It is up to the client code to associate the 0 and 1 `TopologyLocation`s with specific geometries.

Version:
  1.7

Constructor Summary
`Label(int onLoc)` Construct a Label with a single location for both Geometries.
`Label(int geomIndex, int onLoc)` Construct a Label with a single location for both Geometries.
`Label(int onLoc, int leftLoc, int rightLoc)` Construct a Label with On, Left and Right locations for both Geometries.
`Label(int geomIndex, int onLoc, int leftLoc, int rightLoc)` Construct a Label with On, Left and Right locations for both Geometries.
`Label(Label lbl)` Construct a Label with the same values as the argument Label.

Method Summary
`boolean` `allPositionsEqual(int geomIndex, int loc)`
`void` `flip()`
`int` `getGeometryCount()`
`int` `getLocation(int geomIndex)`
`int` `getLocation(int geomIndex, int posIndex)`
`boolean` `isAnyNull(int geomIndex)`
`boolean` `isArea()`
`boolean` `isArea(int geomIndex)`
`boolean` `isEqualOnSide(Label lbl, int side)`
`boolean` `isLine(int geomIndex)`
`boolean` `isNull(int geomIndex)`
`void` `merge(Label lbl)` Merge this label with another one.
`void` `setAllLocations(int geomIndex, int location)`
`void` `setAllLocationsIfNull(int location)`
`void` `setAllLocationsIfNull(int geomIndex, int location)`
`void` `setLocation(int geomIndex, int location)`
`void` `setLocation(int geomIndex, int posIndex, int location)`
`void` `toLine(int geomIndex)` Converts one GeometryLocation to a Line location
`static Label` `toLineLabel(Label label)`
`java.lang.String` `toString()`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

Constructor Detail

### Label

    public Label(int onLoc)

  Construct a Label with a single location for both Geometries. Initialize the locations to Null

### Label

    public Label(int geomIndex,
                 int onLoc)

  Construct a Label with a single location for both Geometries. Initialize the location for the Geometry index.

### Label

    public Label(int onLoc,
                 int leftLoc,
                 int rightLoc)

  Construct a Label with On, Left and Right locations for both Geometries. Initialize the locations for both Geometries to the given values.

### Label

    public Label(int geomIndex,
                 int onLoc,
                 int leftLoc,
                 int rightLoc)

  Construct a Label with On, Left and Right locations for both Geometries. Initialize the locations for the given Geometry index.

### Label

    public Label(Label lbl)

  Construct a Label with the same values as the argument Label.

Method Detail

### toLineLabel

    public static Label toLineLabel(Label label)

### flip

    public void flip()

### getLocation

    public int getLocation(int geomIndex,
                           int posIndex)

### getLocation

    public int getLocation(int geomIndex)

### setLocation

    public void setLocation(int geomIndex,
                            int posIndex,
                            int location)

### setLocation

    public void setLocation(int geomIndex,
                            int location)

### setAllLocations

    public void setAllLocations(int geomIndex,
                                int location)

### setAllLocationsIfNull

    public void setAllLocationsIfNull(int geomIndex,
                                      int location)

### setAllLocationsIfNull

    public void setAllLocationsIfNull(int location)

### merge

    public void merge(Label lbl)

  Merge this label with another one. Merging updates any null attributes of this label with the attributes from lbl

### getGeometryCount

    public int getGeometryCount()

### isNull

    public boolean isNull(int geomIndex)

### isAnyNull

    public boolean isAnyNull(int geomIndex)

### isArea

    public boolean isArea()

### isArea

    public boolean isArea(int geomIndex)

### isLine

    public boolean isLine(int geomIndex)

### isEqualOnSide

    public boolean isEqualOnSide(Label lbl,
                                 int side)

### allPositionsEqual

    public boolean allPositionsEqual(int geomIndex,
                                     int loc)

### toLine

    public void toLine(int geomIndex)

  Converts one GeometryLocation to a Line location

### toString

    public java.lang.String toString()