|
GEOS
3.5.0
|
Represents a ring of PolygonizeDirectedEdge which form a ring of a polygon. The ring may be either an outer shell or a hole. More...
#include <EdgeRing.h>
Public Member Functions | |
| EdgeRing (const geom::GeometryFactory *newFactory) | |
| void | add (const planargraph::DirectedEdge *de) |
| Adds a DirectedEdge which is known to form part of this ring. More... | |
| bool | isHole () |
| Tests whether this ring is a hole. More... | |
| void | addHole (geom::LinearRing *hole) |
| Adds a hole to the polygon formed by this ring. More... | |
| geom::Polygon * | getPolygon () |
| Computes the Polygon formed by this ring and any contained holes. More... | |
| bool | isValid () |
| Tests if the LinearRing ring formed by this edge ring is topologically valid. | |
| geom::LineString * | getLineString () |
| Gets the coordinates for this ring as a LineString. More... | |
| geom::LinearRing * | getRingInternal () |
| Returns this ring as a LinearRing, or null if an Exception occurs while creating it (such as a topology problem). More... | |
| geom::LinearRing * | getRingOwnership () |
| Returns this ring as a LinearRing, or null if an Exception occurs while creating it (such as a topology problem). More... | |
Static Public Member Functions | |
| static EdgeRing * | findEdgeRingContaining (EdgeRing *testEr, std::vector< EdgeRing * > *shellList) |
| Find the innermost enclosing shell EdgeRing containing the argument EdgeRing, if any. More... | |
| static const geom::Coordinate & | ptNotInList (const geom::CoordinateSequence *testPts, const geom::CoordinateSequence *pts) |
| Finds a point in a list of points which is not contained in another list of points. More... | |
| static bool | isInList (const geom::Coordinate &pt, const geom::CoordinateSequence *pts) |
| Tests whether a given point is in an array of points. Uses a value-based test. More... | |
Represents a ring of PolygonizeDirectedEdge which form a ring of a polygon. The ring may be either an outer shell or a hole.
| void geos::operation::polygonize::EdgeRing::add | ( | const planargraph::DirectedEdge * | de | ) |
Adds a DirectedEdge which is known to form part of this ring.
| de | the DirectedEdge to add. Ownership to the caller. |
| void geos::operation::polygonize::EdgeRing::addHole | ( | geom::LinearRing * | hole | ) |
Adds a hole to the polygon formed by this ring.
| hole | the LinearRing forming the hole. |
|
static |
Find the innermost enclosing shell EdgeRing containing the argument EdgeRing, if any.
The innermost enclosing ring is the smallest enclosing ring. The algorithm used depends on the fact that:
ring A contains ring B iff envelope(ring A) contains envelope(ring B)
This routine is only safe to use if the chosen point of the hole is known to be properly contained in a shell (which is guaranteed to be the case if the hole does not touch its shell)
| geom::LineString* geos::operation::polygonize::EdgeRing::getLineString | ( | ) |
Gets the coordinates for this ring as a LineString.
Used to return the coordinates in this ring as a valid geometry, when it has been detected that the ring is topologically invalid.
| geom::Polygon* geos::operation::polygonize::EdgeRing::getPolygon | ( | ) |
Computes the Polygon formed by this ring and any contained holes.
LinearRings ownership is transferred to returned polygon. Subsequent calls to the function will return NULL.
| geom::LinearRing* geos::operation::polygonize::EdgeRing::getRingInternal | ( | ) |
Returns this ring as a LinearRing, or null if an Exception occurs while creating it (such as a topology problem).
Ownership of ring is retained by the object. Details of problems are written to standard output.
| geom::LinearRing* geos::operation::polygonize::EdgeRing::getRingOwnership | ( | ) |
Returns this ring as a LinearRing, or null if an Exception occurs while creating it (such as a topology problem).
Details of problems are written to standard output. Caller gets ownership of ring.
| bool geos::operation::polygonize::EdgeRing::isHole | ( | ) |
Tests whether this ring is a hole.
Due to the way the edges in the polyongization graph are linked, a ring is a hole if it is oriented counter-clockwise.
true if this ring is a hole
|
static |
Tests whether a given point is in an array of points. Uses a value-based test.
| pt | a Coordinate for the test point |
| pts | an array of Coordinate to test |
true if the point is in the array
|
static |
Finds a point in a list of points which is not contained in another list of points.
| testPts | the CoordinateSequence to test |
| pts | the CoordinateSequence to test the input points against |
testPts which is not in pts, or Coordinate::nullCoord
1.8.11