From ef34199ca26a637b07d4f566be4d3e2ef37204f2 Mon Sep 17 00:00:00 2001 From: pramsey Date: Fri, 1 Nov 2024 19:10:35 +0000 Subject: [PATCH] =?UTF-8?q?Deploying=20to=20gh-pages=20from=20@=20libgeos/?= =?UTF-8?q?geos@7fc5059b95621660a0496bc5ccdd3391d3daf7dd=20=F0=9F=9A=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- doxygen/EdgeMerger_8h_source.html | 68 +++--- doxygen/EdgeNodingBuilder_8h_source.html | 208 +++++++++--------- ...verlayng_1_1EdgeNodingBuilder-members.html | 2 +- ...ion_1_1overlayng_1_1EdgeNodingBuilder.html | 12 +- doxygen/functions_e.html | 2 +- doxygen/functions_func_e.html | 2 +- 6 files changed, 142 insertions(+), 152 deletions(-) diff --git a/doxygen/EdgeMerger_8h_source.html b/doxygen/EdgeMerger_8h_source.html index cd2541c633..725fb340f9 100644 --- a/doxygen/EdgeMerger_8h_source.html +++ b/doxygen/EdgeMerger_8h_source.html @@ -63,46 +63,40 @@
14 
15 #pragma once
16 
-
17 #include <geos/operation/overlayng/OverlayLabel.h>
-
18 #include <geos/operation/overlayng/EdgeKey.h>
-
19 #include <geos/operation/overlayng/Edge.h>
-
20 #include <geos/export.h>
+
17 #include <geos/export.h>
+
18 #include <vector>
+
19 #include <map>
+
20 
21 
-
22 #include <vector>
-
23 #include <map>
-
24 
-
25 
-
26 // Forward declarations
-
27 namespace geos {
-
28 namespace geom {
-
29 class Coordinate;
+
22 // Forward declarations
+
23 namespace geos {
+
24 namespace geom {
+
25 class Coordinate;
+
26 }
+
27 namespace operation {
+
28 namespace overlayng {
+
29 class Edge;
30 }
-
31 namespace operation {
-
32 namespace overlayng {
-
33 class Edge;
-
34 class EdgeKey;
-
35 }
-
36 }
-
37 }
-
38 
-
39 namespace geos { // geos.
-
40 namespace operation { // geos.operation
-
41 namespace overlayng { // geos.operation.overlayng
-
42 
-
70 class GEOS_DLL EdgeMerger {
-
71 
-
72 public:
+
31 }
+
32 }
+
33 
+
34 namespace geos { // geos.
+
35 namespace operation { // geos.operation
+
36 namespace overlayng { // geos.operation.overlayng
+
37 
+
65 class GEOS_DLL EdgeMerger {
+
66 
+
67 public:
+
68 
+
69  static std::vector<Edge*> merge(std::vector<Edge*>& edges);
+
70 
+
71 };
+
72 
73 
-
74  static std::vector<Edge*> merge(std::vector<Edge*>& edges);
-
75 
-
76 };
-
77 
-
78 
-
79 } // namespace geos.operation.overlayng
-
80 } // namespace geos.operation
-
81 } // namespace geos
-
Coordinate is the lightweight class used to store coordinates.
Definition: Coordinate.h:217
-
Definition: EdgeMerger.h:70
+
74 } // namespace geos.operation.overlayng
+
75 } // namespace geos.operation
+
76 } // namespace geos
+
Definition: EdgeMerger.h:65
Basic namespace for all GEOS functionalities.
Definition: Angle.h:25
diff --git a/doxygen/EdgeNodingBuilder_8h_source.html b/doxygen/EdgeNodingBuilder_8h_source.html index fb05644990..9791a99271 100644 --- a/doxygen/EdgeNodingBuilder_8h_source.html +++ b/doxygen/EdgeNodingBuilder_8h_source.html @@ -89,115 +89,113 @@
40 #include <memory>
41 #include <deque>
42 
-
43 using namespace geos::geom;
-
44 using namespace geos::noding;
-
45 
-
46 
-
47 namespace geos { // geos.
-
48 namespace operation { // geos.operation
-
49 namespace overlayng { // geos.operation.overlayng
-
50 
-
66 class GEOS_DLL EdgeNodingBuilder {
+
43 
+
44 
+
45 namespace geos { // geos.
+
46 namespace operation { // geos.operation
+
47 namespace overlayng { // geos.operation.overlayng
+
48 
+
64 class GEOS_DLL EdgeNodingBuilder {
+
65 
+
66 private:
67 
-
68 private:
-
69 
-
70  // Constants
-
71  static constexpr int MIN_LIMIT_PTS = 20;
-
72  static constexpr bool IS_NODING_VALIDATED = true;
-
73 
-
74  // Members
-
75  const PrecisionModel* pm;
-
76  std::unique_ptr<std::vector<SegmentString*>> inputEdges;
-
77  Noder* customNoder;
-
78  std::array<bool, 2> hasEdges;
-
79  const Envelope* clipEnv;
-
80  std::unique_ptr<RingClipper> clipper;
-
81  std::unique_ptr<LineLimiter> limiter;
-
82 
-
83  // For use in createFloatingPrecisionNoder()
-
84  algorithm::LineIntersector lineInt;
-
85  IntersectionAdder intAdder;
-
86  std::unique_ptr<Noder> internalNoder;
-
87  std::unique_ptr<Noder> spareInternalNoder;
-
88  // EdgeSourceInfo*, Edge* owned by EdgeNodingBuilder, stored in deque
-
89  std::deque<EdgeSourceInfo> edgeSourceInfoQue;
-
90  std::deque<Edge> edgeQue;
-
91  bool inputHasZ;
-
92  bool inputHasM;
-
93 
-
102  Noder* getNoder();
-
103  static std::unique_ptr<Noder> createFixedPrecisionNoder(const PrecisionModel* pm);
-
104  std::unique_ptr<Noder> createFloatingPrecisionNoder(bool doValidation);
-
105 
-
106 
-
107  void addCollection(const GeometryCollection* gc, uint8_t geomIndex);
-
108  void addGeometryCollection(const GeometryCollection* gc, uint8_t geomIndex, int expectedDim);
-
109  void addPolygon(const Polygon* poly, uint8_t geomIndex);
-
110  void addPolygonRing(const LinearRing* ring, bool isHole, uint8_t geomIndex);
-
111  void addLine(const LineString* line, uint8_t geomIndex);
-
112  void addLine(std::unique_ptr<CoordinateSequence>& pts, uint8_t geomIndex);
-
113  void addEdge(std::unique_ptr<CoordinateSequence>& cas, const EdgeSourceInfo* info);
-
114 
-
115  // Create a EdgeSourceInfo* owned by EdgeNodingBuilder
-
116  const EdgeSourceInfo* createEdgeSourceInfo(uint8_t index, int depthDelta, bool isHole);
-
117  const EdgeSourceInfo* createEdgeSourceInfo(uint8_t index);
-
118 
-
123  bool isClippedCompletely(const Envelope* env) const;
-
124 
-
130  bool isToBeLimited(const LineString* line) const;
-
131 
-
137  std::vector<std::unique_ptr<CoordinateSequence>>& limit(const LineString* line);
-
138 
-
153  std::unique_ptr<CoordinateSequence> clip(const LinearRing* line);
-
154 
-
162  static std::unique_ptr<CoordinateSequence> removeRepeatedPoints(const LineString* line);
+
68  // Constants
+
69  static constexpr int MIN_LIMIT_PTS = 20;
+
70  static constexpr bool IS_NODING_VALIDATED = true;
+
71 
+
72  // Members
+
73  const PrecisionModel* pm;
+
74  std::unique_ptr<std::vector<noding::SegmentString*>> inputEdges;
+
75  noding::Noder* customNoder;
+
76  std::array<bool, 2> hasEdges;
+
77  const Envelope* clipEnv;
+
78  std::unique_ptr<RingClipper> clipper;
+
79  std::unique_ptr<LineLimiter> limiter;
+
80 
+
81  // For use in createFloatingPrecisionNoder()
+
82  algorithm::LineIntersector lineInt;
+
83  noding::IntersectionAdder intAdder;
+
84  std::unique_ptr<noding::Noder> internalNoder;
+
85  std::unique_ptr<noding::Noder> spareInternalNoder;
+
86  // EdgeSourceInfo*, Edge* owned by EdgeNodingBuilder, stored in deque
+
87  std::deque<EdgeSourceInfo> edgeSourceInfoQue;
+
88  std::deque<Edge> edgeQue;
+
89  bool inputHasZ;
+
90  bool inputHasM;
+
91 
+
100  noding::Noder* getNoder();
+
101  static std::unique_ptr<noding::Noder> createFixedPrecisionNoder(const PrecisionModel* pm);
+
102  std::unique_ptr<noding::Noder> createFloatingPrecisionNoder(bool doValidation);
+
103 
+
104 
+
105  void addCollection(const GeometryCollection* gc, uint8_t geomIndex);
+
106  void addGeometryCollection(const GeometryCollection* gc, uint8_t geomIndex, int expectedDim);
+
107  void addPolygon(const Polygon* poly, uint8_t geomIndex);
+
108  void addPolygonRing(const LinearRing* ring, bool isHole, uint8_t geomIndex);
+
109  void addLine(const LineString* line, uint8_t geomIndex);
+
110  void addLine(std::unique_ptr<CoordinateSequence>& pts, uint8_t geomIndex);
+
111  void addEdge(std::unique_ptr<CoordinateSequence>& cas, const EdgeSourceInfo* info);
+
112 
+
113  // Create a EdgeSourceInfo* owned by EdgeNodingBuilder
+
114  const EdgeSourceInfo* createEdgeSourceInfo(uint8_t index, int depthDelta, bool isHole);
+
115  const EdgeSourceInfo* createEdgeSourceInfo(uint8_t index);
+
116 
+
121  bool isClippedCompletely(const Envelope* env) const;
+
122 
+
128  bool isToBeLimited(const LineString* line) const;
+
129 
+
135  std::vector<std::unique_ptr<CoordinateSequence>>& limit(const LineString* line);
+
136 
+
151  std::unique_ptr<CoordinateSequence> clip(const LinearRing* line);
+
152 
+
160  static std::unique_ptr<CoordinateSequence> removeRepeatedPoints(const LineString* line);
+
161 
+
162  static int computeDepthDelta(const LinearRing* ring, bool isHole);
163 
-
164  static int computeDepthDelta(const LinearRing* ring, bool isHole);
+
164  void add(const Geometry* g, uint8_t geomIndex);
165 
-
166  void add(const Geometry* g, uint8_t geomIndex);
-
167 
-
174  std::vector<Edge*> node(std::vector<SegmentString*>* segStrings);
-
175  std::vector<Edge*> createEdges(std::vector<SegmentString*>* segStrings);
-
176 
+
172  std::vector<Edge*> node(std::vector<noding::SegmentString*>* segStrings);
+
173  std::vector<Edge*> createEdges(std::vector<noding::SegmentString*>* segStrings);
+
174 
+
175 
+
176 public:
177 
-
178 public:
-
179 
-
185  EdgeNodingBuilder(const PrecisionModel* p_pm, Noder* p_customNoder)
-
186  : pm(p_pm)
-
187  , inputEdges(new std::vector<SegmentString*>)
-
188  , customNoder(p_customNoder)
-
189  , hasEdges{{false,false}}
-
190  , clipEnv(nullptr)
-
191  , intAdder(lineInt)
-
192  , inputHasZ(false)
-
193  , inputHasM(false)
-
194  {};
-
195 
-
196  ~EdgeNodingBuilder()
-
197  {
-
198  for (SegmentString* ss: *inputEdges) {
-
199  delete ss;
-
200  }
-
201  }
+
183  EdgeNodingBuilder(const PrecisionModel* p_pm, noding::Noder* p_customNoder)
+
184  : pm(p_pm)
+
185  , inputEdges(new std::vector<noding::SegmentString*>)
+
186  , customNoder(p_customNoder)
+
187  , hasEdges{{false,false}}
+
188  , clipEnv(nullptr)
+
189  , intAdder(lineInt)
+
190  , inputHasZ(false)
+
191  , inputHasM(false)
+
192  {};
+
193 
+
194  ~EdgeNodingBuilder()
+
195  {
+
196  for (noding::SegmentString* ss: *inputEdges) {
+
197  delete ss;
+
198  }
+
199  }
+
200 
+
201  void setClipEnvelope(const Envelope* clipEnv);
202 
-
203  void setClipEnvelope(const Envelope* clipEnv);
-
204 
-
205  // returns newly allocated vector and segmentstrings
-
206  // std::vector<SegmentString*>* node();
-
207 
-
218  bool hasEdgesFor(uint8_t geomIndex) const;
-
219 
-
231  std::vector<Edge*> build(const Geometry* geom0, const Geometry* geom1);
+
203  // returns newly allocated vector and segmentstrings
+
204  // std::vector<noding::SegmentString*>* node();
+
205 
+
216  bool hasEdgesFor(uint8_t geomIndex) const;
+
217 
+
229  std::vector<Edge*> build(const Geometry* geom0, const Geometry* geom1);
+
230 
+
231 
232 
-
233 
+
233 };
234 
-
235 };
-
236 
-
237 
-
238 } // namespace geos.operation.overlayng
-
239 } // namespace geos.operation
-
240 } // namespace geos
-
241 
+
235 
+
236 } // namespace geos.operation.overlayng
+
237 } // namespace geos.operation
+
238 } // namespace geos
+
239 
A LineIntersector is an algorithm that can both test whether two line segments intersect and compute ...
Definition: LineIntersector.h:53
An Envelope defines a rectangulare region of the 2D coordinate plane.
Definition: Envelope.h:59
Represents a collection of heterogeneous Geometry objects.
Definition: GeometryCollection.h:51
@@ -209,13 +207,11 @@
Computes the intersections between two line segments in SegmentString and adds them to each string.
Definition: IntersectionAdder.h:54
Computes all intersections between segments in a set of SegmentString.
Definition: Noder.h:46
An interface for classes which represent a sequence of contiguous line segments.
Definition: SegmentString.h:47
-
Definition: EdgeNodingBuilder.h:66
+
Definition: EdgeNodingBuilder.h:64
bool hasEdgesFor(uint8_t geomIndex) const
std::vector< Edge * > build(const Geometry *geom0, const Geometry *geom1)
-
EdgeNodingBuilder(const PrecisionModel *p_pm, Noder *p_customNoder)
Definition: EdgeNodingBuilder.h:185
+
EdgeNodingBuilder(const PrecisionModel *p_pm, noding::Noder *p_customNoder)
Definition: EdgeNodingBuilder.h:183
Definition: EdgeSourceInfo.h:38
-
Definition: Angle.h:26
-
Classes to compute nodings for arrangements of line segments and line segment sequences.
Definition: InvalidSegmentDetector.h:25
Basic namespace for all GEOS functionalities.
Definition: Angle.h:25
diff --git a/doxygen/classgeos_1_1operation_1_1overlayng_1_1EdgeNodingBuilder-members.html b/doxygen/classgeos_1_1operation_1_1overlayng_1_1EdgeNodingBuilder-members.html index 562be16694..9eeb6ffe0f 100644 --- a/doxygen/classgeos_1_1operation_1_1overlayng_1_1EdgeNodingBuilder-members.html +++ b/doxygen/classgeos_1_1operation_1_1overlayng_1_1EdgeNodingBuilder-members.html @@ -51,7 +51,7 @@

This is the complete list of members for geos::operation::overlayng::EdgeNodingBuilder, including all inherited members.

- + diff --git a/doxygen/classgeos_1_1operation_1_1overlayng_1_1EdgeNodingBuilder.html b/doxygen/classgeos_1_1operation_1_1overlayng_1_1EdgeNodingBuilder.html index 017fd543b0..4c931a7346 100644 --- a/doxygen/classgeos_1_1operation_1_1overlayng_1_1EdgeNodingBuilder.html +++ b/doxygen/classgeos_1_1operation_1_1overlayng_1_1EdgeNodingBuilder.html @@ -55,8 +55,8 @@
build(const Geometry *geom0, const Geometry *geom1)geos::operation::overlayng::EdgeNodingBuilder
EdgeNodingBuilder(const PrecisionModel *p_pm, Noder *p_customNoder)geos::operation::overlayng::EdgeNodingBuilderinline
EdgeNodingBuilder(const PrecisionModel *p_pm, noding::Noder *p_customNoder)geos::operation::overlayng::EdgeNodingBuilderinline
hasEdgesFor(uint8_t geomIndex) constgeos::operation::overlayng::EdgeNodingBuilder
setClipEnvelope(const Envelope *clipEnv) (defined in geos::operation::overlayng::EdgeNodingBuilder)geos::operation::overlayng::EdgeNodingBuilder
~EdgeNodingBuilder() (defined in geos::operation::overlayng::EdgeNodingBuilder)geos::operation::overlayng::EdgeNodingBuilderinline
- - + + @@ -72,14 +72,14 @@
  • Extracts input edges, and attaches topological information
  • if clipping is enabled, handles clipping or limiting input geometry
  • chooses a noding::Noder based on provided precision model, unless a custom one is supplied
  • -
  • calls the chosen Noder, with precision model
  • +
  • calls the chosen noding::Noder, with precision model
  • removes any fully collapsed noded edges
  • builds Edges and merges them
  • Author
    mdavis

    Constructor & Destructor Documentation

    - -

    ◆ EdgeNodingBuilder()

    + +

    ◆ EdgeNodingBuilder()

    @@ -96,7 +96,7 @@

    - + diff --git a/doxygen/functions_e.html b/doxygen/functions_e.html index 12b8199c0f..15b2931bcb 100644 --- a/doxygen/functions_e.html +++ b/doxygen/functions_e.html @@ -69,7 +69,7 @@

    - e -

    Public Member Functions

     EdgeNodingBuilder (const PrecisionModel *p_pm, Noder *p_customNoder)
     
     EdgeNodingBuilder (const PrecisionModel *p_pm, noding::Noder *p_customNoder)
     
    void setClipEnvelope (const Envelope *clipEnv)
     
    Nodernoding::Noder p_customNoder