geos::geomgraph::Label Class Referencefinal

A `Label` indicates the topological relationship of a component of a topology graph to a given `Geometry`. More...

`#include <Label.h>`

## Public Member Functions

| Label (geom::Location onLoc)
| Construct a Label with a single location for both Geometries.
| Label (uint32_t geomIndex, geom::Location onLoc)
| Construct a Label with the location specified for the given Geometry.
| Label (geom::Location onLoc, geom::Location leftLoc, geom::Location rightLoc)
| Construct a Label with On, Left and Right locations for both Geometries.
| Label (const Label &l)
| Copy ctor.
| Label ()
| Initialize both locations to Location::NONE.
| Label (uint32_t geomIndex, geom::Location onLoc, geom::Location leftLoc, geom::Location rightLoc)
| Construct a Label with On, Left and Right locations for the given Geometries. Initialize the locations for the other Geometry to Location::NONE.
Label & | operator= (const Label &l)
void | flip ()
void | merge (const Label &lbl)
| Merge this label with another one.
int | getGeometryCount () const
geom::Location | getLocation (uint32_t geomIndex, uint32_t posIndex) const
geom::Location | getLocation (uint32_t geomIndex) const
void | setLocation (uint32_t geomIndex, uint32_t posIndex, geom::Location location)
void | setLocation (uint32_t geomIndex, geom::Location location)
void | setAllLocations (uint32_t geomIndex, geom::Location location)
void | setAllLocationsIfNull (uint32_t geomIndex, geom::Location location)
void | setAllLocationsIfNull (geom::Location location)
bool | isNull (uint32_t geomIndex) const
bool | isNull () const
bool | isAnyNull (uint32_t geomIndex) const
bool | isArea () const
bool | isArea (uint32_t geomIndex) const
bool | isLine (uint32_t geomIndex) const
bool | isEqualOnSide (const Label &lbl, uint32_t side) const
bool | allPositionsEqual (uint32_t geomIndex, geom::Location loc) const
void | toLine (uint32_t geomIndex)
| Converts one GeometryLocation to a Line location.
std::string | toString () const

## Static Public Member Functions

static Label | toLineLabel (const Label &label)
| Converts a Label to a Line label (that is, one with no side Locations).

## Friends

std::ostream & | operator<< (std::ostream &, const Label &)

## Detailed Description

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.

## Constructor & Destructor Documentation

## Label() [1/3]

geos::geomgraph::Label::Label | ( | uint32_t | geomIndex,
|  | geom::Location | onLoc )

inline

Construct a Label with the location specified for the given Geometry.

Other geometry location will be set to Location::NONE.

## Label() [2/3]

geos::geomgraph::Label::Label | ( | geom::Location | onLoc,
|  | geom::Location | leftLoc,
|  | geom::Location | rightLoc )

inline

Construct a Label with On, Left and Right locations for both Geometries.

Initialize the locations for both Geometries to the given values.

## Label() [3/3]

geos::geomgraph::Label::Label | ( |  | ) |

inline

Initialize both locations to Location::NONE.

isNull() should return true after this kind of construction

## Member Function Documentation

## merge()

void geos::geomgraph::Label::merge | ( | const Label & | lbl | ) |

inline

Merge this label with another one.

Merging updates any null attributes of this label with the attributes from lbl

References Label().

The documentation for this class was generated from the following file:

- Label.h