22 #ifndef GEOS_GEOMGRAPH_LABEL_H
23 #define GEOS_GEOMGRAPH_LABEL_H
25 #include <geos/export.h>
26 #include <geos/geomgraph/TopologyLocation.h>
28 #include <geos/inline.h>
62 friend std::ostream& operator<< (std::ostream&,
const Label&);
85 Label(
int geomIndex,
int onLoc);
92 Label(
int onLoc,
int leftLoc,
int rightLoc);
111 Label(
int geomIndex,
int onLoc,
int leftLoc,
int rightLoc);
115 int getLocation(
int geomIndex,
int posIndex)
const;
117 int getLocation(
int geomIndex)
const;
119 void setLocation(
int geomIndex,
int posIndex,
int location);
121 void setLocation(
int geomIndex,
int location);
123 void setAllLocations(
int geomIndex,
int location);
125 void setAllLocationsIfNull(
int geomIndex,
int location);
127 void setAllLocationsIfNull(
int location);
135 void merge(
const Label &lbl);
137 int getGeometryCount()
const;
139 bool isNull(
int geomIndex)
const;
141 bool isAnyNull(
int geomIndex)
const;
145 bool isArea(
int geomIndex)
const;
147 bool isLine(
int geomIndex)
const;
149 bool isEqualOnSide(
const Label &lbl,
int side)
const;
151 bool allPositionsEqual(
int geomIndex,
int loc)
const;
156 void toLine(
int geomIndex);
158 std::string toString()
const;
165 std::ostream& operator<< (std::ostream&,
const Label&);
175 #endif // ifndef GEOS_GEOMGRAPH_LABEL_H