17#include <geos/noding/BasicSegmentString.h> 
   25class CoordinateSequence;
 
   37class GEOS_DLL CoverageRing : 
public noding::BasicSegmentString {
 
   49    bool m_isInteriorOnRight;
 
   50    std::vector<bool> m_isInvalid;
 
   51    std::vector<bool> m_isMatched;
 
   53    std::size_t findInvalidStart(std::size_t index);
 
   55    std::size_t findInvalidEnd(std::size_t index);
 
   57    std::size_t nextMarkIndex(std::size_t index);
 
   68    std::unique_ptr<LineString> createLine(
 
   69        std::size_t startIndex,
 
   71        const GeometryFactory* geomFactory);
 
   73    std::unique_ptr<CoordinateSequence> extractSection(
 
   74        std::size_t startIndex, std::size_t endIndex);
 
   76    std::unique_ptr<CoordinateSequence> extractSectionWrap(
 
   77        std::size_t startIndex, std::size_t endIndex);
 
   81    CoverageRing(CoordinateSequence* pts, 
bool interiorOnRight);
 
   83    CoverageRing(
const LinearRing* ring, 
bool isShell);
 
   85    geom::Envelope getEnvelope(std::size_t start, std::size_t end);
 
   94    static bool isKnown(std::vector<CoverageRing*>& rings);
 
  102    bool isInteriorOnRight() 
const;
 
  109    void markInvalid(std::size_t index);
 
  116    void markMatched(std::size_t index);
 
  124    bool isKnown() 
const;
 
  132    bool isInvalid(std::size_t i) 
const;
 
  139    bool isInvalid() 
const;
 
  146    bool hasInvalid() 
const;
 
  154    bool isKnown(std::size_t i) 
const;
 
  164    const Coordinate& findVertexPrev(std::size_t index, 
const Coordinate& pt) 
const;
 
  174    const Coordinate& findVertexNext(std::size_t index, 
const Coordinate& pt) 
const;
 
  182    std::size_t prev(std::size_t index) 
const;
 
  190    std::size_t next(std::size_t index) 
const;
 
  192    void createInvalidLines(
 
  193        const GeometryFactory* geomFactory,
 
  194        std::vector<std::unique_ptr<LineString>>& lines);
 
The internal representation of a list of coordinates inside a Geometry.
Definition CoordinateSequence.h:56
 
Coordinate is the lightweight class used to store coordinates.
Definition Coordinate.h:217
 
Supplies a set of utility methods for building Geometry objects from CoordinateSequence or other Geom...
Definition GeometryFactory.h:71
 
Basic implementation of Geometry, constructed and destructed by GeometryFactory.
Definition Geometry.h:196
 
Definition LineString.h:66
 
Models an OGC SFS LinearRing. A LinearRing is a LineString which is both closed and simple.
Definition LinearRing.h:54
 
Represents a linear polygon, which may include holes.
Definition Polygon.h:61
 
Basic namespace for all GEOS functionalities.
Definition geos.h:38