21 #ifndef GEOS_GEOMGRAPH_TOPOLOGYLOCATION_H
22 #define GEOS_GEOMGRAPH_TOPOLOGYLOCATION_H
24 #include <geos/export.h>
25 #include <geos/inline.h>
32 #pragma warning(disable: 4251) // warning C4251: needs to have dll-interface to be used by clients of class
58 class GEOS_DLL TopologyLocation {
62 friend std::ostream& operator<< (std::ostream&,
const TopologyLocation&);
68 TopologyLocation(
const std::vector<int> &newLocation);
81 TopologyLocation(
int on,
int left,
int right);
83 TopologyLocation(
int on);
85 TopologyLocation(
const TopologyLocation &gl);
87 TopologyLocation& operator= (
const TopologyLocation &gl);
89 int get(std::size_t posIndex)
const;
99 bool isAnyNull()
const;
101 bool isEqualOnSide(
const TopologyLocation &le,
int locIndex)
const;
109 void setAllLocations(
int locValue);
111 void setAllLocationsIfNull(
int locValue);
113 void setLocation(std::size_t locIndex,
int locValue);
115 void setLocation(
int locValue);
118 const std::vector<int> &getLocations()
const;
120 void setLocations(
int on,
int left,
int right);
122 bool allPositionsEqual(
int loc)
const;
128 void merge(
const TopologyLocation &gl);
130 std::string toString()
const;
134 std::vector<int> location;
137 std::ostream& operator<< (std::ostream&,
const TopologyLocation&);
150 #endif // ifndef GEOS_GEOMGRAPH_TOPOLOGYLOCATION_H