diff --git a/doxygen/AdjacentEdgeLocator_8h_source.html b/doxygen/AdjacentEdgeLocator_8h_source.html new file mode 100644 index 0000000000..cd44659bae --- /dev/null +++ b/doxygen/AdjacentEdgeLocator_8h_source.html @@ -0,0 +1,171 @@ + + + + + + + +GEOS: AdjacentEdgeLocator.h Source File + + + + + + +
+
+ + + + + + +
+
GEOS +  3.13.0dev +
+
+
+ + + + + + + +
+
+
+
AdjacentEdgeLocator.h
+
+
+
1 /**********************************************************************
+
2  *
+
3  * GEOS - Geometry Engine Open Source
+
4  * http://geos.osgeo.org
+
5  *
+
6  * Copyright (c) 2024 Martin Davis
+
7  * Copyright (C) 2024 Paul Ramsey <pramsey@cleverelephant.ca>
+
8  *
+
9  * This is free software; you can redistribute and/or modify it under
+
10  * the terms of the GNU Lesser General Public Licence as published
+
11  * by the Free Software Foundation.
+
12  * See the COPYING file for more information.
+
13  *
+
14  **********************************************************************/
+
15 
+
16 #pragma once
+
17 
+
18 #include <geos/geom/CoordinateSequence.h>
+
19 #include <geos/geom/Location.h>
+
20 #include <geos/export.h>
+
21 
+
22 
+
23 // Forward declarations
+
24 namespace geos {
+
25 namespace operation {
+
26 namespace relateng {
+
27  class NodeSections;
+
28  class NodeSection;
+
29 }
+
30 }
+
31 namespace geom {
+
32  class CoordinateXY;
+
33  class Geometry;
+
34  class LinearRing;
+
35  class Polygon;
+
36 }
+
37 }
+
38 
+
39 
+
40 using geos::geom::CoordinateXY;
+ + + + + +
46 
+
47 
+
48 
+
49 namespace geos { // geos.
+
50 namespace operation { // geos.operation
+
51 namespace relateng { // geos.operation.relateng
+
52 
+
67 class GEOS_DLL AdjacentEdgeLocator {
+
68 
+
69 public:
+
70 
+
71  AdjacentEdgeLocator(const Geometry* geom)
+
72  {
+
73  init(geom);
+
74  }
+
75 
+
76  Location locate(const CoordinateXY* p);
+
77 
+ +
83  AdjacentEdgeLocator& operator=(const AdjacentEdgeLocator&) = delete;
+
84 
+
85 
+
86 private:
+
87 
+
88  // Members
+
89 
+
90  std::vector<const CoordinateSequence*> ringList;
+
91 
+
92  /*
+
93  * When we have to reorient rings, we end up allocating new
+
94  * rings, since we cannot reorient the rings of the input
+
95  * geometry, so this is where we store those "local" rings.
+
96  */
+
97  std::vector<std::unique_ptr<CoordinateSequence>> localRingList;
+
98 
+
99 
+
100  // Methods
+
101 
+
102  void addSections(
+
103  const CoordinateXY* p,
+
104  const CoordinateSequence* ring,
+
105  NodeSections& sections);
+
106 
+
107  NodeSection* createSection(
+
108  const CoordinateXY* p,
+
109  const CoordinateXY* prev,
+
110  const CoordinateXY* next);
+
111 
+
112  void init(const Geometry* geom);
+
113 
+
114  void addRings(const Geometry* geom);
+
115 
+
116  void addRing(const LinearRing* ring, bool requireCW);
+
117 
+
118 
+
119 };
+
120 
+
121 } // namespace geos.operation.relateng
+
122 } // namespace geos.operation
+
123 } // namespace geos
+
124 
+
The internal representation of a list of coordinates inside a Geometry.
Definition: CoordinateSequence.h:56
+
Basic implementation of Geometry, constructed and destructed by GeometryFactory.
Definition: Geometry.h:197
+
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
+
Definition: AdjacentEdgeLocator.h:67
+
AdjacentEdgeLocator(const AdjacentEdgeLocator &)=delete
+
Definition: NodeSection.h:55
+
Location
Constants representing the location of a point relative to a geometry.
Definition: Location.h:32
+
Basic namespace for all GEOS functionalities.
Definition: Angle.h:25
+
+ + + + diff --git a/doxygen/Angle_8h_source.html b/doxygen/Angle_8h_source.html index fde52e11b0..ed7be29380 100644 --- a/doxygen/Angle_8h_source.html +++ b/doxygen/Angle_8h_source.html @@ -164,7 +164,7 @@
geos::algorithm::Angle::isAcute
static bool isAcute(const geom::CoordinateXY &p0, const geom::CoordinateXY &p1, const geom::CoordinateXY &p2)
geos::algorithm::Angle::toRadians
static double toRadians(double angleDegrees)
geos::algorithm::Angle::angleBetweenOriented
static double angleBetweenOriented(const geom::CoordinateXY &tip1, const geom::CoordinateXY &tail, const geom::CoordinateXY &tip2)
-
geos::geom::Coordinate
Coordinate is the lightweight class used to store coordinates.
Definition: Coordinate.h:216
+
geos::geom::Coordinate
Coordinate is the lightweight class used to store coordinates.
Definition: Coordinate.h:217
geos
Basic namespace for all GEOS functionalities.
Definition: Angle.h:25
diff --git a/doxygen/BasicPredicate_8h_source.html b/doxygen/BasicPredicate_8h_source.html new file mode 100644 index 0000000000..dc0d24a651 --- /dev/null +++ b/doxygen/BasicPredicate_8h_source.html @@ -0,0 +1,150 @@ + + + + + + + +GEOS: BasicPredicate.h Source File + + + + + + +
+
+ + + + + + +
+
GEOS +  3.13.0dev +
+
+
+ + + + + + + +
+
+
+
BasicPredicate.h
+
+
+
1 /**********************************************************************
+
2  *
+
3  * GEOS - Geometry Engine Open Source
+
4  * http://geos.osgeo.org
+
5  *
+
6  * Copyright (c) 2024 Martin Davis
+
7  * Copyright (C) 2024 Paul Ramsey <pramsey@cleverelephant.ca>
+
8  *
+
9  * This is free software; you can redistribute and/or modify it under
+
10  * the terms of the GNU Lesser General Public Licence as published
+
11  * by the Free Software Foundation.
+
12  * See the COPYING file for more information.
+
13  *
+
14  **********************************************************************/
+
15 
+
16 #pragma once
+
17 
+
18 #include <geos/geom/Location.h>
+
19 #include <geos/operation/relateng/TopologyPredicate.h>
+
20 #include <geos/export.h>
+
21 
+
22 #include <memory>
+
23 #include <vector>
+
24 
+
25 // Forward declarations
+
26 namespace geos {
+
27 namespace geom {
+
28  class Envelope;
+
29 }
+
30 }
+
31 
+
32 
+ + +
35 
+
36 
+
37 namespace geos { // geos.
+
38 namespace operation { // geos.operation.
+
39 namespace relateng { // geos.operation.relateng
+
40 
+
41 
+
42 class GEOS_DLL BasicPredicate : public TopologyPredicate {
+
43 
+
44 private:
+
45 
+
46  static constexpr int UNKNOWN = -1;
+
47  static constexpr int FALSE = 0;
+
48  static constexpr int TRUE = 1;
+
49 
+
50  int m_value = UNKNOWN;
+
51 
+
52  static bool isKnown(int val);
+
53 
+
54  static bool toBoolean(int val);
+
55 
+
56  static int toValue(bool val);
+
57 
+
58 
+
59 protected:
+
60 
+
67  void setValue(bool val);
+
68 
+
69  void setValue(int val);
+
70 
+
71  void setValueIf(bool val, bool cond);
+
72 
+
73  void require(bool cond);
+
74 
+
75  using TopologyPredicate::requireCovers;
+
76  void requireCovers(const Envelope& a, const Envelope& b);
+
77 
+
78 
+
79 public:
+
80 
+
89  static bool isIntersection(Location locA, Location locB);
+
90 
+
91  std::string name() const override = 0;
+
92 
+
93  void finish() override = 0;
+
94 
+
95  bool isKnown() const override;
+
96 
+
97  bool value() const override;
+
98 
+
99 
+
100 };
+
101 
+
102 } // namespace geos.operation.relateng
+
103 } // namespace geos.operation
+
104 } // namespace geos
+
105 
+
An Envelope defines a rectangulare region of the 2D coordinate plane.
Definition: Envelope.h:59
+
Location
Constants representing the location of a point relative to a geometry.
Definition: Location.h:32
+
Basic namespace for all GEOS functionalities.
Definition: Angle.h:25
+
+ + + + diff --git a/doxygen/BasicPreparedGeometry_8h_source.html b/doxygen/BasicPreparedGeometry_8h_source.html index ef5b8bf191..8051d8beac 100644 --- a/doxygen/BasicPreparedGeometry_8h_source.html +++ b/doxygen/BasicPreparedGeometry_8h_source.html @@ -69,25 +69,25 @@
20 #pragma once
21 
22 #include <geos/geom/prep/PreparedGeometry.h> // for inheritance
-
23 //#include <geos/algorithm/PointLocator.h>
-
24 //#include <geos/geom/util/ComponentCoordinateExtracter.h>
-
25 #include <geos/geom/Coordinate.h>
-
26 //#include <geos/geom/Location.h>
-
27 
-
28 #include <vector>
-
29 #include <string>
-
30 
-
31 namespace geos {
-
32 namespace geom {
-
33 class Geometry;
-
34 class Coordinate;
-
35 }
-
36 }
-
37 
-
38 
-
39 namespace geos {
-
40 namespace geom { // geos::geom
-
41 namespace prep { // geos::geom::prep
+
23 #include <geos/geom/Coordinate.h>
+
24 #include <geos/operation/relateng/RelateNG.h>
+
25 
+
26 #include <vector>
+
27 #include <string>
+
28 
+
29 namespace geos {
+
30 namespace geom {
+
31 class Geometry;
+
32 class Coordinate;
+
33 }
+
34 }
+
35 
+
36 
+
37 namespace geos {
+
38 namespace geom { // geos::geom
+
39 namespace prep { // geos::geom::prep
+
40 
+
41 using geos::operation::relateng::RelateNG;
42 
43 // * \class BasicPreparedGeometry
44 
@@ -95,73 +95,88 @@
59 private:
60  const geom::Geometry* baseGeom;
61  std::vector<const CoordinateXY*> representativePts;
-
62 
-
63 protected:
-
67  void setGeometry(const geom::Geometry* geom);
+
62  mutable std::unique_ptr<RelateNG> relate_ng;
+
63 
+
64  std::unique_ptr<RelateNG>& getRelateNG() const
+
65  {
+
66  if (relate_ng == nullptr)
+
67  relate_ng = RelateNG::prepare(baseGeom);
68 
-
76  bool envelopesIntersect(const geom::Geometry* g) const;
+
69  return relate_ng;
+
70  }
+
71 
+
72 protected:
+
76  void setGeometry(const geom::Geometry* geom);
77 
-
86  bool envelopeCovers(const geom::Geometry* g) const;
-
87 
-
88 public:
-
89  BasicPreparedGeometry(const Geometry* geom);
-
90 
-
91  ~BasicPreparedGeometry() override = default;
-
92 
-
93  const geom::Geometry&
-
94  getGeometry() const override
-
95  {
-
96  return *baseGeom;
-
97  }
-
98 
-
106  const std::vector<const CoordinateXY*>*
-
107  getRepresentativePoints() const
-
108  {
-
109  return &representativePts;
-
110  }
-
111 
-
120  bool isAnyTargetComponentInTest(const geom::Geometry* testGeom) const;
-
121 
-
125  bool contains(const geom::Geometry* g) const override;
-
126 
-
130  bool containsProperly(const geom::Geometry* g) const override;
-
131 
-
135  bool coveredBy(const geom::Geometry* g) const override;
-
136 
-
140  bool covers(const geom::Geometry* g) const override;
-
141 
-
145  bool crosses(const geom::Geometry* g) const override;
-
146 
-
151  bool disjoint(const geom::Geometry* g) const override;
-
152 
-
156  bool intersects(const geom::Geometry* g) const override;
-
157 
-
161  bool overlaps(const geom::Geometry* g) const override;
-
162 
-
166  bool touches(const geom::Geometry* g) const override;
-
167 
-
171  bool within(const geom::Geometry* g) const override;
-
172 
-
176  std::unique_ptr<geom::CoordinateSequence> nearestPoints(const geom::Geometry* g) const override;
-
177 
-
181  double distance(const geom::Geometry* g) const override;
-
182 
-
186  bool isWithinDistance(const geom::Geometry* geom, double dist) const override;
-
187 
-
188  std::string toString();
-
189 
-
190 };
+
85  bool envelopesIntersect(const geom::Geometry* g) const;
+
86 
+
95  bool envelopeCovers(const geom::Geometry* g) const;
+
96 
+
97 public:
+
98  BasicPreparedGeometry(const Geometry* geom);
+
99 
+
100  ~BasicPreparedGeometry() override = default;
+
101 
+
102  const geom::Geometry&
+
103  getGeometry() const override
+
104  {
+
105  return *baseGeom;
+
106  }
+
107 
+
115  const std::vector<const CoordinateXY*>*
+
116  getRepresentativePoints() const
+
117  {
+
118  return &representativePts;
+
119  }
+
120 
+
129  bool isAnyTargetComponentInTest(const geom::Geometry* testGeom) const;
+
130 
+
134  bool within(const geom::Geometry* g) const override;
+
135 
+
139  bool contains(const geom::Geometry* g) const override;
+
140 
+
144  bool containsProperly(const geom::Geometry* g) const override;
+
145 
+
149  bool coveredBy(const geom::Geometry* g) const override;
+
150 
+
154  bool covers(const geom::Geometry* g) const override;
+
155 
+
159  bool crosses(const geom::Geometry* g) const override;
+
160 
+
165  bool disjoint(const geom::Geometry* g) const override;
+
166 
+
170  bool intersects(const geom::Geometry* g) const override;
+
171 
+
175  bool overlaps(const geom::Geometry* g) const override;
+
176 
+
180  bool touches(const geom::Geometry* g) const override;
+
181 
+
185  std::unique_ptr<IntersectionMatrix> relate(const geom::Geometry* g) const override;
+
186 
+
190  bool relate(const geom::Geometry* g, const std::string& pat) const override;
191 
-
192 } // namespace geos::geom::prep
-
193 } // namespace geos::geom
-
194 } // namespace geos
-
195 
+
195  std::unique_ptr<geom::CoordinateSequence> nearestPoints(const geom::Geometry* g) const override;
+
196 
+
200  double distance(const geom::Geometry* g) const override;
+
201 
+
205  bool isWithinDistance(const geom::Geometry* geom, double dist) const override;
+
206 
+
207  std::string toString();
+
208 
+
209 };
+
210 
+
211 } // namespace geos::geom::prep
+
212 } // namespace geos::geom
+
213 } // namespace geos
+
214 
+
geos::geom::Coordinate
Coordinate is the lightweight class used to store coordinates.
Definition: Coordinate.h:217
geos::geom::Geometry
Basic implementation of Geometry, constructed and destructed by GeometryFactory.
Definition: Geometry.h:197
geos::geom::prep::BasicPreparedGeometry
A base class for PreparedGeometry subclasses.
Definition: BasicPreparedGeometry.h:58
-
geos::geom::prep::BasicPreparedGeometry::getGeometry
const geom::Geometry & getGeometry() const override
Gets the original Geometry which has been prepared.
Definition: BasicPreparedGeometry.h:94
+
geos::geom::prep::BasicPreparedGeometry::getGeometry
const geom::Geometry & getGeometry() const override
Gets the original Geometry which has been prepared.
Definition: BasicPreparedGeometry.h:103
geos::geom::prep::BasicPreparedGeometry::covers
bool covers(const geom::Geometry *g) const override
geos::geom::prep::BasicPreparedGeometry::envelopeCovers
bool envelopeCovers(const geom::Geometry *g) const
-
geos::geom::prep::BasicPreparedGeometry::getRepresentativePoints
const std::vector< const CoordinateXY * > * getRepresentativePoints() const
Definition: BasicPreparedGeometry.h:107
+
geos::geom::prep::BasicPreparedGeometry::getRepresentativePoints
const std::vector< const CoordinateXY * > * getRepresentativePoints() const
Definition: BasicPreparedGeometry.h:116
+
geos::geom::prep::BasicPreparedGeometry::relate
bool relate(const geom::Geometry *g, const std::string &pat) const override
geos::geom::prep::BasicPreparedGeometry::coveredBy
bool coveredBy(const geom::Geometry *g) const override
geos::geom::prep::BasicPreparedGeometry::isWithinDistance
bool isWithinDistance(const geom::Geometry *geom, double dist) const override
geos::geom::prep::BasicPreparedGeometry::intersects
bool intersects(const geom::Geometry *g) const override
@@ -175,9 +190,12 @@
geos::geom::prep::BasicPreparedGeometry::overlaps
bool overlaps(const geom::Geometry *g) const override
geos::geom::prep::BasicPreparedGeometry::setGeometry
void setGeometry(const geom::Geometry *geom)
geos::geom::prep::BasicPreparedGeometry::within
bool within(const geom::Geometry *g) const override
+
geos::geom::prep::BasicPreparedGeometry::relate
std::unique_ptr< IntersectionMatrix > relate(const geom::Geometry *g) const override
geos::geom::prep::BasicPreparedGeometry::disjoint
bool disjoint(const geom::Geometry *g) const override
geos::geom::prep::BasicPreparedGeometry::containsProperly
bool containsProperly(const geom::Geometry *g) const override
-
geos::geom::prep::PreparedGeometry
An interface for classes which prepare Geometrys in order to optimize the performance of repeated cal...
Definition: PreparedGeometry.h:56
+
geos::geom::prep::PreparedGeometry
An interface for classes which prepare Geometrys in order to optimize the performance of repeated cal...
Definition: PreparedGeometry.h:58
+
geos::operation::relateng::RelateNG
Definition: RelateNG.h:93
+
geos::operation::relateng::RelateNG::prepare
static std::unique_ptr< RelateNG > prepare(const Geometry *a)
geos
Basic namespace for all GEOS functionalities.
Definition: Angle.h:25
diff --git a/doxygen/BoundaryChainNoder_8h_source.html b/doxygen/BoundaryChainNoder_8h_source.html index dd5a67e7fa..01d49743e4 100644 --- a/doxygen/BoundaryChainNoder_8h_source.html +++ b/doxygen/BoundaryChainNoder_8h_source.html @@ -201,7 +201,7 @@
170 
171 
geos::geom::CoordinateSequence
The internal representation of a list of coordinates inside a Geometry.
Definition: CoordinateSequence.h:56
-
geos::geom::Coordinate
Coordinate is the lightweight class used to store coordinates.
Definition: Coordinate.h:216
+
geos::geom::Coordinate
Coordinate is the lightweight class used to store coordinates.
Definition: Coordinate.h:217
geos::noding::BoundaryChainNoder
Definition: BoundaryChainNoder.h:57
geos::noding::BoundaryChainNoder::getNodedSubstrings
std::vector< SegmentString * > * getNodedSubstrings() const override
Returns a collection of fully noded SegmentStrings. The SegmentStrings have the same context as their...
geos::noding::BoundaryChainNoder::computeNodes
void computeNodes(std::vector< SegmentString * > *inputSegStrings) override
Computes the noding for a collection of SegmentStrings.
diff --git a/doxygen/BufferInputLineSimplifier_8h_source.html b/doxygen/BufferInputLineSimplifier_8h_source.html index d1e5e721aa..d8393be1ac 100644 --- a/doxygen/BufferInputLineSimplifier_8h_source.html +++ b/doxygen/BufferInputLineSimplifier_8h_source.html @@ -147,7 +147,7 @@
179 } // namespace geos
180 
geos::geom::CoordinateSequence
The internal representation of a list of coordinates inside a Geometry.
Definition: CoordinateSequence.h:56
-
geos::geom::Coordinate
Coordinate is the lightweight class used to store coordinates.
Definition: Coordinate.h:216
+
geos::geom::Coordinate
Coordinate is the lightweight class used to store coordinates.
Definition: Coordinate.h:217
geos::operation::buffer::BufferInputLineSimplifier
Simplifies a buffer input line to remove concavities with shallow depth.
Definition: BufferInputLineSimplifier.h:71
geos::operation::buffer::BufferInputLineSimplifier::simplify
std::unique_ptr< geom::CoordinateSequence > simplify(double distanceTol)
geos::operation::buffer::BufferInputLineSimplifier::simplify
static std::unique_ptr< geom::CoordinateSequence > simplify(const geom::CoordinateSequence &inputLine, double distanceTol)
diff --git a/doxygen/BufferSubgraph_8h_source.html b/doxygen/BufferSubgraph_8h_source.html index a3d5ca56aa..afd4ae8204 100644 --- a/doxygen/BufferSubgraph_8h_source.html +++ b/doxygen/BufferSubgraph_8h_source.html @@ -181,7 +181,7 @@
200 #pragma warning(pop)
201 #endif
202 
-
geos::geom::Coordinate
Coordinate is the lightweight class used to store coordinates.
Definition: Coordinate.h:216
+
geos::geom::Coordinate
Coordinate is the lightweight class used to store coordinates.
Definition: Coordinate.h:217
geos::geom::Envelope
An Envelope defines a rectangulare region of the 2D coordinate plane.
Definition: Envelope.h:59
geos::geomgraph::DirectedEdge
A directed EdgeEnd.
Definition: geomgraph/DirectedEdge.h:42
geos::geomgraph::Node
The node component of a geometry graph.
Definition: geomgraph/Node.h:59
diff --git a/doxygen/CentralEndpointIntersector_8h_source.html b/doxygen/CentralEndpointIntersector_8h_source.html index 1fdf729e97..9caaad9b06 100644 --- a/doxygen/CentralEndpointIntersector_8h_source.html +++ b/doxygen/CentralEndpointIntersector_8h_source.html @@ -180,7 +180,7 @@
160 #endif
161 
geos::algorithm::CentralEndpointIntersector
Computes an approximate intersection of two line segments by taking the most central of the endpoints...
Definition: CentralEndpointIntersector.h:61
-
geos::geom::Coordinate
Coordinate is the lightweight class used to store coordinates.
Definition: Coordinate.h:216
+
geos::geom::Coordinate
Coordinate is the lightweight class used to store coordinates.
Definition: Coordinate.h:217
geos
Basic namespace for all GEOS functionalities.
Definition: Angle.h:25
diff --git a/doxygen/CommonBitsRemover_8h_source.html b/doxygen/CommonBitsRemover_8h_source.html index 09aae9f825..89f0278424 100644 --- a/doxygen/CommonBitsRemover_8h_source.html +++ b/doxygen/CommonBitsRemover_8h_source.html @@ -109,7 +109,7 @@
90 } // namespace geos.precision
91 } // namespace geos
92 
-
geos::geom::Coordinate
Coordinate is the lightweight class used to store coordinates.
Definition: Coordinate.h:216
+
geos::geom::Coordinate
Coordinate is the lightweight class used to store coordinates.
Definition: Coordinate.h:217
geos::geom::Geometry
Basic implementation of Geometry, constructed and destructed by GeometryFactory.
Definition: Geometry.h:197
geos::precision::CommonBitsRemover
Allow computing and removing common mantissa bits from one or more Geometries.
Definition: CommonBitsRemover.h:39
geos::precision::CommonBitsRemover::getCommonCoordinate
geom::Coordinate & getCommonCoordinate()
diff --git a/doxygen/ComponentJumpChecker_8h_source.html b/doxygen/ComponentJumpChecker_8h_source.html index eb55fc03e9..0d35b720ae 100644 --- a/doxygen/ComponentJumpChecker_8h_source.html +++ b/doxygen/ComponentJumpChecker_8h_source.html @@ -155,7 +155,7 @@
118 
119 
120 
-
geos::geom::Coordinate
Coordinate is the lightweight class used to store coordinates.
Definition: Coordinate.h:216
+
geos::geom::Coordinate
Coordinate is the lightweight class used to store coordinates.
Definition: Coordinate.h:217
geos::geom::Envelope
An Envelope defines a rectangulare region of the 2D coordinate plane.
Definition: Envelope.h:59
geos::geom::LineSegment
Definition: LineSegment.h:61
geos
Basic namespace for all GEOS functionalities.
Definition: Angle.h:25
diff --git a/doxygen/ConcaveHullOfPolygons_8h_source.html b/doxygen/ConcaveHullOfPolygons_8h_source.html index a9f80fa1df..bd6851cb0a 100644 --- a/doxygen/ConcaveHullOfPolygons_8h_source.html +++ b/doxygen/ConcaveHullOfPolygons_8h_source.html @@ -249,7 +249,7 @@
geos::algorithm::hull::ConcaveHullOfPolygons::setHolesAllowed
void setHolesAllowed(bool p_isHolesAllowed)
geos::algorithm::hull::ConcaveHullOfPolygons::setMaximumEdgeLengthRatio
void setMaximumEdgeLengthRatio(double edgeLengthRatio)
geos::geom::CoordinateSequence
The internal representation of a list of coordinates inside a Geometry.
Definition: CoordinateSequence.h:56
-
geos::geom::Coordinate
Coordinate is the lightweight class used to store coordinates.
Definition: Coordinate.h:216
+
geos::geom::Coordinate
Coordinate is the lightweight class used to store coordinates.
Definition: Coordinate.h:217
geos::geom::Envelope
An Envelope defines a rectangulare region of the 2D coordinate plane.
Definition: Envelope.h:59
geos::geom::GeometryCollection
Represents a collection of heterogeneous Geometry objects.
Definition: GeometryCollection.h:51
geos::geom::GeometryFactory
Supplies a set of utility methods for building Geometry objects from CoordinateSequence or other Geom...
Definition: GeometryFactory.h:70
diff --git a/doxygen/ConcaveHull_8h_source.html b/doxygen/ConcaveHull_8h_source.html index 743df8d7ea..4332a026d3 100644 --- a/doxygen/ConcaveHull_8h_source.html +++ b/doxygen/ConcaveHull_8h_source.html @@ -205,7 +205,7 @@
geos::algorithm::hull::ConcaveHull::setMaximumEdgeLength
void setMaximumEdgeLength(double edgeLength)
geos::algorithm::hull::ConcaveHull::concaveHullByLength
static std::unique_ptr< Geometry > concaveHullByLength(const Geometry *geom, double maxLength)
geos::algorithm::hull::ConcaveHull::setMaximumEdgeLengthRatio
void setMaximumEdgeLengthRatio(double edgeLengthRatio)
-
geos::geom::Coordinate
Coordinate is the lightweight class used to store coordinates.
Definition: Coordinate.h:216
+
geos::geom::Coordinate
Coordinate is the lightweight class used to store coordinates.
Definition: Coordinate.h:217
geos::geom::GeometryFactory
Supplies a set of utility methods for building Geometry objects from CoordinateSequence or other Geom...
Definition: GeometryFactory.h:70
geos::geom::Geometry
Basic implementation of Geometry, constructed and destructed by GeometryFactory.
Definition: Geometry.h:197
geos::geom::Triangle
Represents a planar triangle, and provides methods for calculating various properties of triangles.
Definition: Triangle.h:28
diff --git a/doxygen/ConsistentAreaTester_8h_source.html b/doxygen/ConsistentAreaTester_8h_source.html index 5a0ad7135c..3427916644 100644 --- a/doxygen/ConsistentAreaTester_8h_source.html +++ b/doxygen/ConsistentAreaTester_8h_source.html @@ -126,7 +126,7 @@
136 } // namespace geos
137 
geos::algorithm::LineIntersector
A LineIntersector is an algorithm that can both test whether two line segments intersect and compute ...
Definition: LineIntersector.h:53
-
geos::geom::Coordinate
Coordinate is the lightweight class used to store coordinates.
Definition: Coordinate.h:216
+
geos::geom::Coordinate
Coordinate is the lightweight class used to store coordinates.
Definition: Coordinate.h:217
geos::geomgraph::GeometryGraph
A GeometryGraph is a graph that models a given Geometry.
Definition: GeometryGraph.h:71
geos::operation::relate::RelateNodeGraph
Implements the simple graph of Nodes and geomgraph::EdgeEnd which is all that is required to determin...
Definition: RelateNodeGraph.h:67
geos::operation::valid::ConsistentAreaTester
Checks that a geomgraph::GeometryGraph representing an area (a geom::Polygon or geom::MultiPolygon) h...
Definition: ConsistentAreaTester.h:68
diff --git a/doxygen/ConvexHull_8h_source.html b/doxygen/ConvexHull_8h_source.html index bf8850da79..3afc6db5a0 100644 --- a/doxygen/ConvexHull_8h_source.html +++ b/doxygen/ConvexHull_8h_source.html @@ -171,8 +171,8 @@
geos::algorithm::ConvexHull
Computes the convex hull of a Geometry.
Definition: ConvexHull.h:64
geos::algorithm::ConvexHull::getConvexHull
std::unique_ptr< geom::Geometry > getConvexHull()
geos::algorithm::ConvexHull::ConvexHull
ConvexHull(const geom::Geometry *newGeometry)
Definition: ConvexHull.h:180
-
geos::geom::Coordinate
Coordinate is the lightweight class used to store coordinates.
Definition: Coordinate.h:216
-
geos::geom::Coordinate::ConstVect
std::vector< const Coordinate * > ConstVect
A vector of const Coordinate pointers.
Definition: Coordinate.h:227
+
geos::geom::Coordinate
Coordinate is the lightweight class used to store coordinates.
Definition: Coordinate.h:217
+
geos::geom::Coordinate::ConstVect
std::vector< const Coordinate * > ConstVect
A vector of const Coordinate pointers.
Definition: Coordinate.h:229
geos::geom::GeometryFactory
Supplies a set of utility methods for building Geometry objects from CoordinateSequence or other Geom...
Definition: GeometryFactory.h:70
geos::geom::Geometry
Basic implementation of Geometry, constructed and destructed by GeometryFactory.
Definition: Geometry.h:197
geos
Basic namespace for all GEOS functionalities.
Definition: Angle.h:25
diff --git a/doxygen/CoordinateFilter_8h_source.html b/doxygen/CoordinateFilter_8h_source.html index bcdea0a604..1945e1303b 100644 --- a/doxygen/CoordinateFilter_8h_source.html +++ b/doxygen/CoordinateFilter_8h_source.html @@ -156,7 +156,7 @@
geos::geom::CoordinateFilter
Geometry classes support the concept of applying a coordinate filter to every coordinate in the Geome...
Definition: CoordinateFilter.h:43
geos::geom::CoordinateFilter::filter_ro
virtual void filter_ro(const CoordinateXY *)
Performs an operation with coord.
Definition: CoordinateFilter.h:70
geos::geom::CoordinateFilter::filter_rw
virtual void filter_rw(CoordinateXY *) const
Performs an operation on coord.
Definition: CoordinateFilter.h:59
-
geos::geom::Coordinate
Coordinate is the lightweight class used to store coordinates.
Definition: Coordinate.h:216
+
geos::geom::Coordinate
Coordinate is the lightweight class used to store coordinates.
Definition: Coordinate.h:217
geos
Basic namespace for all GEOS functionalities.
Definition: Angle.h:25
diff --git a/doxygen/CoordinateList_8h_source.html b/doxygen/CoordinateList_8h_source.html index 33dc52f8d2..6f861cf6f0 100644 --- a/doxygen/CoordinateList_8h_source.html +++ b/doxygen/CoordinateList_8h_source.html @@ -264,8 +264,8 @@
geos::geom::CoordinateList::insert
iterator insert(iterator pos, const Coordinate &c, bool allowRepeated)
Inserts the specified coordinate at the specified position in this list.
Definition: CoordinateList.h:143
geos::geom::CoordinateList::CoordinateList
CoordinateList(const T &v)
Constructs a new list from an array of Coordinates, allowing repeated points.
Definition: CoordinateList.h:76
geos::geom::CoordinateSequence
The internal representation of a list of coordinates inside a Geometry.
Definition: CoordinateSequence.h:56
-
geos::geom::Coordinate
Coordinate is the lightweight class used to store coordinates.
Definition: Coordinate.h:216
-
geos::geom::Coordinate::Vect
std::vector< Coordinate > Vect
A vector of Coordinate objects (real object, not pointers)
Definition: Coordinate.h:233
+
geos::geom::Coordinate
Coordinate is the lightweight class used to store coordinates.
Definition: Coordinate.h:217
+
geos::geom::Coordinate::Vect
std::vector< Coordinate > Vect
A vector of Coordinate objects (real object, not pointers)
Definition: Coordinate.h:235
geos
Basic namespace for all GEOS functionalities.
Definition: Angle.h:25
diff --git a/doxygen/CoordinateSequenceIterator_8h_source.html b/doxygen/CoordinateSequenceIterator_8h_source.html index 9b28f99ec9..bf53fe83d6 100644 --- a/doxygen/CoordinateSequenceIterator_8h_source.html +++ b/doxygen/CoordinateSequenceIterator_8h_source.html @@ -173,7 +173,7 @@
124 
125 }
126 }
-
geos::geom::operator<
bool operator<(const CoordinateXY &a, const CoordinateXY &b)
Strict weak ordering operator for Coordinate.
Definition: Coordinate.h:453
+
geos::geom::operator<
bool operator<(const CoordinateXY &a, const CoordinateXY &b)
Strict weak ordering operator for Coordinate.
Definition: Coordinate.h:458
geos
Basic namespace for all GEOS functionalities.
Definition: Angle.h:25
diff --git a/doxygen/CoordinateSequence_8h_source.html b/doxygen/CoordinateSequence_8h_source.html index f8c505ffaa..f072953e4f 100644 --- a/doxygen/CoordinateSequence_8h_source.html +++ b/doxygen/CoordinateSequence_8h_source.html @@ -605,7 +605,7 @@
806 } // namespace geos
807 
geos::geom::CoordinateSequence
The internal representation of a list of coordinates inside a Geometry.
Definition: CoordinateSequence.h:56
-
geos::geom::Coordinate
Coordinate is the lightweight class used to store coordinates.
Definition: Coordinate.h:216
+
geos::geom::Coordinate
Coordinate is the lightweight class used to store coordinates.
Definition: Coordinate.h:217
geos::geom::Envelope
An Envelope defines a rectangulare region of the 2D coordinate plane.
Definition: Envelope.h:59
geos::geom::CoordinateSequence::toVector
void toVector(std::vector< Coordinate > &coords) const
Pushes all Coordinates of this sequence into the provided vector.
geos::geom::CoordinateSequence::getAt
T & getAt(std::size_t i)
Returns a reference to Coordinate at position i.
Definition: CoordinateSequence.h:261
diff --git a/doxygen/CoordinateSequences_8h_source.html b/doxygen/CoordinateSequences_8h_source.html index ba7cc30980..670dd4cd6f 100644 --- a/doxygen/CoordinateSequences_8h_source.html +++ b/doxygen/CoordinateSequences_8h_source.html @@ -117,7 +117,7 @@
geos::geom::CoordinateSequence
The internal representation of a list of coordinates inside a Geometry.
Definition: CoordinateSequence.h:56
geos::geom::CoordinateSequences
The CoordinateSequences class provides utility methods to operate on CoordinateSequences....
Definition: CoordinateSequences.h:28
geos::geom::CoordinateSequences::binaryDispatch
static void binaryDispatch(const CoordinateSequence &seq1, const CoordinateSequence &seq2, F &fun, Args... args)
binaryDispatch calls a functor template, explicitly providing the backing types of two CoordinateSequ...
Definition: CoordinateSequences.h:43
-
geos::geom::Coordinate
Coordinate is the lightweight class used to store coordinates.
Definition: Coordinate.h:216
+
geos::geom::Coordinate
Coordinate is the lightweight class used to store coordinates.
Definition: Coordinate.h:217
geos::geom::CoordinateSequence::getCoordinateType
CoordinateType getCoordinateType() const
Definition: CoordinateSequence.h:233
geos
Basic namespace for all GEOS functionalities.
Definition: Angle.h:25
diff --git a/doxygen/Coordinate_8h_source.html b/doxygen/Coordinate_8h_source.html index 166f9f570d..11a3386394 100644 --- a/doxygen/Coordinate_8h_source.html +++ b/doxygen/Coordinate_8h_source.html @@ -71,547 +71,546 @@
22 #include <vector> // for typedefs
23 #include <string>
24 #include <limits>
-
25 
-
26 #ifdef _MSC_VER
-
27 #pragma warning(push)
-
28 #pragma warning(disable: 4251) // warning C4251: needs to have dll-interface to be used by clients of class
-
29 #endif
-
30 
-
31 namespace geos {
-
32 namespace geom { // geos.geom
-
33 
-
34 // Forward declarations
-
35 struct CoordinateLessThan;
-
36 class CoordinateXYZM;
-
37 class CoordinateXYM;
-
38 class Coordinate;
-
39 
-
40 enum class CoordinateType : std::uint8_t {
-
41  XY,
-
42  XYZ,
-
43  XYZM,
-
44  XYM,
-
45 };
-
46 
-
47 enum class Ordinate : std::uint8_t {
-
48  X,
-
49  Y,
-
50  Z,
-
51  M
-
52 };
-
53 
-
54 GEOS_DLL std::ostream& operator<< (std::ostream&, const CoordinateType);
-
55 
-
56 class GEOS_DLL CoordinateXY {
-
57 
-
58  const static CoordinateXY _nullCoord;
-
59 
-
60 protected:
-
61  constexpr const static double DEFAULT_X = 0.0;
-
62  constexpr const static double DEFAULT_Y = 0.0;
-
63  constexpr const static double DEFAULT_Z = DoubleNotANumber;
-
64  constexpr const static double DEFAULT_M = DoubleNotANumber;
-
65 
-
66 public:
-
67  CoordinateXY()
-
68  : x(DEFAULT_X)
-
69  , y(DEFAULT_Y)
-
70  {}
-
71 
-
72  CoordinateXY(double xNew, double yNew)
-
73  : x(xNew)
-
74  , y(yNew)
-
75  {}
-
76 
-
77  template<Ordinate>
-
78  double get() const;
-
79 
-
81  double x;
-
82 
-
84  double y;
-
85 
-
87  GEOS_DLL friend bool operator==(const CoordinateXY& a, const CoordinateXY& b)
-
88  {
-
89  return a.equals2D(b);
-
90  };
-
91 
-
93  GEOS_DLL friend bool operator!=(const CoordinateXY& a, const CoordinateXY& b)
-
94  {
-
95  return ! a.equals2D(b);
-
96  };
-
97 
-
98  bool isValid() const
-
99  {
-
100  return std::isfinite(x) && std::isfinite(y);
-
101  };
-
102 
-
103  bool equals2D(const CoordinateXY& other) const
-
104  {
-
105  if(x != other.x) {
-
106  return false;
-
107  }
-
108  if(y != other.y) {
-
109  return false;
-
110  }
-
111  return true;
-
112  };
-
113 
-
114  bool equals2D(const CoordinateXY& other, double tolerance) const
-
115  {
-
116  if (std::abs(x - other.x) > tolerance) {
-
117  return false;
-
118  }
-
119  if (std::abs(y - other.y) > tolerance) {
-
120  return false;
-
121  }
-
122  return true;
-
123  };
-
124 
-
126  bool equals(const CoordinateXY& other) const
-
127  {
-
128  return equals2D(other);
-
129  };
-
130 
-
132  inline int compareTo(const CoordinateXY& other) const
-
133  {
-
134  if(x < other.x) {
-
135  return -1;
-
136  }
-
137  if(x > other.x) {
-
138  return 1;
-
139  }
-
140  if(y < other.y) {
-
141  return -1;
-
142  }
-
143  if(y > other.y) {
-
144  return 1;
-
145  }
-
146  return 0;
-
147  };
-
148 
-
149  static const CoordinateXY& getNull();
-
150 
-
151  double distance(const CoordinateXY& p) const
-
152  {
-
153  double dx = x - p.x;
-
154  double dy = y - p.y;
-
155  return std::sqrt(dx * dx + dy * dy);
-
156  };
-
157 
-
158  double distanceSquared(const CoordinateXY& p) const
-
159  {
-
160  double dx = x - p.x;
-
161  double dy = y - p.y;
-
162  return dx * dx + dy * dy;
-
163  };
-
164 
-
165  bool isNull() const
-
166  {
-
167  return (std::isnan(x) && std::isnan(y));
-
168  };
-
169 
-
170  void setNull()
-
171  {
-
172  x = DoubleNotANumber;
-
173  y = DoubleNotANumber;
-
174  };
-
175 
-
176  struct GEOS_DLL HashCode
-
177  {
-
178  inline std::size_t operator()(const CoordinateXY& c) const
-
179  {
-
180  size_t h = std::hash<double>{}(c.x);
-
181  h ^= std::hash<double>{}(c.y) << 1;
-
182  // z ordinate ignored for consistency with operator==
-
183  return h;
-
184  };
-
185  };
-
186 
-
187  using UnorderedSet = std::unordered_set<Coordinate, HashCode>;
-
188 
-
190  std::string toString() const;
-
191 };
-
192 
-
213 // Define the following to make assignments and copy constructions
-
214 // NON-(will let profilers report usages)
-
215 //#define PROFILE_COORDINATE_COPIES 1
-
216 class GEOS_DLL Coordinate : public CoordinateXY {
-
217 
-
218 private:
-
219 
-
220  static const Coordinate _nullCoord;
-
221 
-
222 public:
-
224  typedef std::set<const Coordinate*, CoordinateLessThan> ConstSet;
-
225 
-
227  typedef std::vector<const Coordinate*> ConstVect;
-
228 
-
230  typedef std::stack<const Coordinate*> ConstStack;
-
231 
-
233  typedef std::vector<Coordinate> Vect;
-
234 
-
236  double z;
-
237 
-
238  Coordinate()
-
239  : CoordinateXY()
-
240  , z(DEFAULT_Z)
-
241  {};
+
25 #include <map>
+
26 
+
27 #ifdef _MSC_VER
+
28 #pragma warning(push)
+
29 #pragma warning(disable: 4251) // warning C4251: needs to have dll-interface to be used by clients of class
+
30 #endif
+
31 
+
32 namespace geos {
+
33 namespace geom { // geos.geom
+
34 
+
35 // Forward declarations
+
36 struct CoordinateLessThan;
+
37 class CoordinateXYZM;
+
38 class CoordinateXYM;
+
39 class Coordinate;
+
40 
+
41 enum class CoordinateType : std::uint8_t {
+
42  XY,
+
43  XYZ,
+
44  XYZM,
+
45  XYM,
+
46 };
+
47 
+
48 enum class Ordinate : std::uint8_t {
+
49  X,
+
50  Y,
+
51  Z,
+
52  M
+
53 };
+
54 
+
55 GEOS_DLL std::ostream& operator<< (std::ostream&, const CoordinateType);
+
56 
+
57 class GEOS_DLL CoordinateXY {
+
58 
+
59  const static CoordinateXY _nullCoord;
+
60 
+
61 protected:
+
62  constexpr const static double DEFAULT_X = 0.0;
+
63  constexpr const static double DEFAULT_Y = 0.0;
+
64  constexpr const static double DEFAULT_Z = DoubleNotANumber;
+
65  constexpr const static double DEFAULT_M = DoubleNotANumber;
+
66 
+
67 public:
+
68  CoordinateXY()
+
69  : x(DEFAULT_X)
+
70  , y(DEFAULT_Y)
+
71  {}
+
72 
+
73  CoordinateXY(double xNew, double yNew)
+
74  : x(xNew)
+
75  , y(yNew)
+
76  {}
+
77 
+
78  template<Ordinate>
+
79  double get() const;
+
80 
+
82  double x;
+
83 
+
85  double y;
+
86 
+
88  GEOS_DLL friend bool operator==(const CoordinateXY& a, const CoordinateXY& b)
+
89  {
+
90  return a.equals2D(b);
+
91  };
+
92 
+
94  GEOS_DLL friend bool operator!=(const CoordinateXY& a, const CoordinateXY& b)
+
95  {
+
96  return ! a.equals2D(b);
+
97  };
+
98 
+
99  bool isValid() const
+
100  {
+
101  return std::isfinite(x) && std::isfinite(y);
+
102  };
+
103 
+
104  bool equals2D(const CoordinateXY& other) const
+
105  {
+
106  if(x != other.x) {
+
107  return false;
+
108  }
+
109  if(y != other.y) {
+
110  return false;
+
111  }
+
112  return true;
+
113  };
+
114 
+
115  bool equals2D(const CoordinateXY& other, double tolerance) const
+
116  {
+
117  if (std::abs(x - other.x) > tolerance) {
+
118  return false;
+
119  }
+
120  if (std::abs(y - other.y) > tolerance) {
+
121  return false;
+
122  }
+
123  return true;
+
124  };
+
125 
+
127  bool equals(const CoordinateXY& other) const
+
128  {
+
129  return equals2D(other);
+
130  };
+
131 
+
133  inline int compareTo(const CoordinateXY& other) const
+
134  {
+
135  if(x < other.x) {
+
136  return -1;
+
137  }
+
138  if(x > other.x) {
+
139  return 1;
+
140  }
+
141  if(y < other.y) {
+
142  return -1;
+
143  }
+
144  if(y > other.y) {
+
145  return 1;
+
146  }
+
147  return 0;
+
148  };
+
149 
+
150  static const CoordinateXY& getNull();
+
151 
+
152  double distance(const CoordinateXY& p) const
+
153  {
+
154  double dx = x - p.x;
+
155  double dy = y - p.y;
+
156  return std::sqrt(dx * dx + dy * dy);
+
157  };
+
158 
+
159  double distanceSquared(const CoordinateXY& p) const
+
160  {
+
161  double dx = x - p.x;
+
162  double dy = y - p.y;
+
163  return dx * dx + dy * dy;
+
164  };
+
165 
+
166  bool isNull() const
+
167  {
+
168  return (std::isnan(x) && std::isnan(y));
+
169  };
+
170 
+
171  void setNull()
+
172  {
+
173  x = DoubleNotANumber;
+
174  y = DoubleNotANumber;
+
175  };
+
176 
+
177  struct GEOS_DLL HashCode
+
178  {
+
179  inline std::size_t operator()(const CoordinateXY& c) const
+
180  {
+
181  size_t h = std::hash<double>{}(c.x);
+
182  h ^= std::hash<double>{}(c.y) << 1;
+
183  // z ordinate ignored for consistency with operator==
+
184  return h;
+
185  };
+
186  };
+
187 
+
188  using UnorderedSet = std::unordered_set<Coordinate, HashCode>;
+
189 
+
191  std::string toString() const;
+
192 };
+
193 
+
214 // Define the following to make assignments and copy constructions
+
215 // NON-(will let profilers report usages)
+
216 //#define PROFILE_COORDINATE_COPIES 1
+
217 class GEOS_DLL Coordinate : public CoordinateXY {
+
218 
+
219 private:
+
220 
+
221  static const Coordinate _nullCoord;
+
222 
+
223 public:
+
225  typedef std::set<const Coordinate*, CoordinateLessThan> ConstSet;
+
226  typedef std::set<const CoordinateXY*, CoordinateLessThan> ConstXYSet;
+
227 
+
229  typedef std::vector<const Coordinate*> ConstVect;
+
230 
+
232  typedef std::stack<const Coordinate*> ConstStack;
+
233 
+
235  typedef std::vector<Coordinate> Vect;
+
236 
+
238  typedef std::map<const CoordinateXY*, int, CoordinateLessThan> ConstIntMap;
+
239 
+
241  double z;
242 
-
243  Coordinate(double xNew, double yNew, double zNew = DEFAULT_Z)
-
244  : CoordinateXY(xNew, yNew)
-
245  , z(zNew)
+
243  Coordinate()
+
244  : CoordinateXY()
+
245  , z(DEFAULT_Z)
246  {};
247 
-
248  explicit Coordinate(const CoordinateXY& other)
-
249  : CoordinateXY(other)
-
250  , z(DEFAULT_Z)
+
248  Coordinate(double xNew, double yNew, double zNew = DEFAULT_Z)
+
249  : CoordinateXY(xNew, yNew)
+
250  , z(zNew)
251  {};
252 
-
253  template<Ordinate>
-
254  double get() const;
-
255 
-
256  void setNull()
-
257  {
-
258  CoordinateXY::setNull();
-
259  z = DoubleNotANumber;
-
260  };
-
261 
-
262  static const Coordinate& getNull();
-
263 
-
264  bool isNull() const
-
265  {
-
266  return CoordinateXY::isNull() && std::isnan(z);
-
267  };
+
253  explicit Coordinate(const CoordinateXY& other)
+
254  : CoordinateXY(other)
+
255  , z(DEFAULT_Z)
+
256  {};
+
257 
+
258  template<Ordinate>
+
259  double get() const;
+
260 
+
261  void setNull()
+
262  {
+
263  CoordinateXY::setNull();
+
264  z = DoubleNotANumber;
+
265  };
+
266 
+
267  static const Coordinate& getNull();
268 
-
270  bool equals3D(const Coordinate& other) const
-
271  {
-
272  return (x == other.x) && (y == other.y) &&
-
273  ((z == other.z) || (std::isnan(z) && std::isnan(other.z)));
-
274  };
-
275 
-
277  std::string toString() const;
-
278 
-
279  Coordinate& operator=(const CoordinateXY& other){
-
280  x = other.x;
-
281  y = other.y;
-
282  z = DEFAULT_Z;
+
269  bool isNull() const
+
270  {
+
271  return CoordinateXY::isNull() && std::isnan(z);
+
272  };
+
273 
+
275  bool equals3D(const Coordinate& other) const
+
276  {
+
277  return (x == other.x) && (y == other.y) &&
+
278  ((z == other.z) || (std::isnan(z) && std::isnan(other.z)));
+
279  };
+
280 
+
282  std::string toString() const;
283 
-
284  return *this;
-
285  }
-
286 };
-
287 
+
284  Coordinate& operator=(const CoordinateXY& other){
+
285  x = other.x;
+
286  y = other.y;
+
287  z = DEFAULT_Z;
288 
-
289 class GEOS_DLL CoordinateXYM : public CoordinateXY {
-
290 private:
-
291  static const CoordinateXYM _nullCoord;
+
289  return *this;
+
290  }
+
291 };
292 
-
293 public:
-
294  CoordinateXYM() : CoordinateXYM(DEFAULT_X, DEFAULT_Y, DEFAULT_M) {}
-
295 
-
296  explicit CoordinateXYM(const CoordinateXY& c)
-
297  : CoordinateXY(c)
-
298  , m(DEFAULT_M) {}
-
299 
-
300  CoordinateXYM(double x_, double y_, double m_)
-
301  : CoordinateXY(x_, y_)
-
302  , m(m_) {}
-
303 
-
304  double m;
-
305 
-
306  template<Ordinate>
-
307  double get() const;
+
293 
+
294 class GEOS_DLL CoordinateXYM : public CoordinateXY {
+
295 private:
+
296  static const CoordinateXYM _nullCoord;
+
297 
+
298 public:
+
299  CoordinateXYM() : CoordinateXYM(DEFAULT_X, DEFAULT_Y, DEFAULT_M) {}
+
300 
+
301  explicit CoordinateXYM(const CoordinateXY& c)
+
302  : CoordinateXY(c)
+
303  , m(DEFAULT_M) {}
+
304 
+
305  CoordinateXYM(double x_, double y_, double m_)
+
306  : CoordinateXY(x_, y_)
+
307  , m(m_) {}
308 
-
309  static const CoordinateXYM& getNull();
+
309  double m;
310 
-
311  void setNull()
-
312  {
-
313  CoordinateXY::setNull();
-
314  m = DoubleNotANumber;
-
315  };
-
316 
-
317  bool isNull() const
-
318  {
-
319  return CoordinateXY::isNull() && std::isnan(m);
-
320  }
-
321  bool equals3D(const CoordinateXYM& other) const {
-
322  return x == other.x && y == other.y && (m == other.m || (std::isnan(m) && std::isnan(other.m)));
-
323  }
-
324 
-
325  CoordinateXYM& operator=(const CoordinateXYZM& other);
-
326 
-
327  CoordinateXYM& operator=(const CoordinateXY& other) {
-
328  x = other.x;
-
329  y = other.y;
-
330  m = DEFAULT_M;
+
311  template<Ordinate>
+
312  double get() const;
+
313 
+
314  static const CoordinateXYM& getNull();
+
315 
+
316  void setNull()
+
317  {
+
318  CoordinateXY::setNull();
+
319  m = DoubleNotANumber;
+
320  };
+
321 
+
322  bool isNull() const
+
323  {
+
324  return CoordinateXY::isNull() && std::isnan(m);
+
325  }
+
326  bool equals3D(const CoordinateXYM& other) const {
+
327  return x == other.x && y == other.y && (m == other.m || (std::isnan(m) && std::isnan(other.m)));
+
328  }
+
329 
+
330  CoordinateXYM& operator=(const CoordinateXYZM& other);
331 
-
332  return *this;
-
333  }
-
334 
-
335  std::string toString() const;
-
336 };
-
337 
-
338 
-
339 class GEOS_DLL CoordinateXYZM : public Coordinate {
-
340 private:
-
341  static const CoordinateXYZM _nullCoord;
+
332  CoordinateXYM& operator=(const CoordinateXY& other) {
+
333  x = other.x;
+
334  y = other.y;
+
335  m = DEFAULT_M;
+
336 
+
337  return *this;
+
338  }
+
339 
+
340  std::string toString() const;
+
341 };
342 
-
343 public:
-
344  CoordinateXYZM() : CoordinateXYZM(DEFAULT_X, DEFAULT_Y, DEFAULT_Z, DEFAULT_M) {}
-
345 
-
346  explicit CoordinateXYZM(const CoordinateXY& c)
-
347  : Coordinate(c)
-
348  , m(DEFAULT_M) {}
-
349 
-
350  explicit CoordinateXYZM(const CoordinateXYM& c)
-
351  : Coordinate(c)
-
352  , m(c.m) {}
-
353 
-
354  explicit CoordinateXYZM(const Coordinate& c)
-
355  : Coordinate(c)
-
356  , m(DEFAULT_M) {}
-
357 
-
358  CoordinateXYZM(double x_, double y_, double z_, double m_)
-
359  : Coordinate(x_, y_, z_)
-
360  , m(m_) {}
-
361 
-
362  double m;
-
363 
-
364  template<Ordinate>
-
365  double get() const;
+
343 
+
344 class GEOS_DLL CoordinateXYZM : public Coordinate {
+
345 private:
+
346  static const CoordinateXYZM _nullCoord;
+
347 
+
348 public:
+
349  CoordinateXYZM() : CoordinateXYZM(DEFAULT_X, DEFAULT_Y, DEFAULT_Z, DEFAULT_M) {}
+
350 
+
351  explicit CoordinateXYZM(const CoordinateXY& c)
+
352  : Coordinate(c)
+
353  , m(DEFAULT_M) {}
+
354 
+
355  explicit CoordinateXYZM(const CoordinateXYM& c)
+
356  : Coordinate(c)
+
357  , m(c.m) {}
+
358 
+
359  explicit CoordinateXYZM(const Coordinate& c)
+
360  : Coordinate(c)
+
361  , m(DEFAULT_M) {}
+
362 
+
363  CoordinateXYZM(double x_, double y_, double z_, double m_)
+
364  : Coordinate(x_, y_, z_)
+
365  , m(m_) {}
366 
-
367  static const CoordinateXYZM& getNull();
+
367  double m;
368 
-
369  void setNull()
-
370  {
-
371  Coordinate::setNull();
-
372  m = DoubleNotANumber;
-
373  };
-
374 
-
375 
-
376  bool isNull() const
-
377  {
-
378  return Coordinate::isNull() && std::isnan(m);
-
379  }
+
369  template<Ordinate>
+
370  double get() const;
+
371 
+
372  static const CoordinateXYZM& getNull();
+
373 
+
374  void setNull()
+
375  {
+
376  Coordinate::setNull();
+
377  m = DoubleNotANumber;
+
378  };
+
379 
380 
-
381  bool equals4D(const CoordinateXYZM& other) const {
-
382  return x == other.x && y == other.y &&
-
383  (z == other.z || (std::isnan(z) && std::isnan(other.z))) &&
-
384  (m == other.m || (std::isnan(m) && std::isnan(other.m)));
-
385  }
-
386 
-
387  CoordinateXYZM& operator=(const CoordinateXY& other) {
-
388  x = other.x;
-
389  y = other.y;
-
390  z = DEFAULT_Z;
-
391  m = DEFAULT_M;
-
392 
-
393  return *this;
-
394  }
-
395 
-
396  CoordinateXYZM& operator=(const Coordinate& other) {
-
397  x = other.x;
-
398  y = other.y;
-
399  z = other.z;
-
400  m = DEFAULT_M;
-
401 
-
402  return *this;
-
403  }
-
404 
-
405  CoordinateXYZM& operator=(const CoordinateXYM& other) {
-
406  x = other.x;
-
407  y = other.y;
-
408  z = DEFAULT_Z;
-
409  m = other.m;
-
410 
-
411  return *this;
-
412  }
-
413 
-
414  std::string toString() const;
-
415 };
-
416 
-
417 inline CoordinateXYM&
-
418 CoordinateXYM::operator=(const CoordinateXYZM& other) {
-
419  x = other.x;
-
420  y = other.y;
-
421  m = other.m;
-
422 
-
423  return *this;
-
424 }
-
425 
-
426 
-
428 struct GEOS_DLL CoordinateLessThan {
-
429 
-
430  bool operator()(const CoordinateXY* a, const CoordinateXY* b) const
-
431  {
-
432  if(a->compareTo(*b) < 0) {
-
433  return true;
-
434  }
-
435  else {
-
436  return false;
-
437  }
-
438  };
-
439 
-
440  bool operator()(const CoordinateXY& a, const CoordinateXY& b) const
-
441  {
-
442  if(a.compareTo(b) < 0) {
-
443  return true;
-
444  }
-
445  else {
-
446  return false;
-
447  }
-
448  };
-
449 
-
450 };
-
451 
-
453 inline bool operator<(const CoordinateXY& a, const CoordinateXY& b)
-
454 {
-
455  return CoordinateLessThan()(a, b);
-
456 }
-
457 
-
458 
-
459 // Generic accessors, XY
-
460 
-
461 template<>
-
462 inline double CoordinateXY::get<Ordinate::X>() const
-
463 {
-
464  return x;
-
465 }
-
466 
-
467 template<>
-
468 inline double CoordinateXY::get<Ordinate::Y>() const
-
469 {
-
470  return y;
-
471 }
-
472 
-
473 template<>
-
474 inline double CoordinateXY::get<Ordinate::Z>() const
-
475 {
-
476  return DEFAULT_Z;
-
477 }
-
478 
-
479 template<>
-
480 inline double CoordinateXY::get<Ordinate::M>() const
-
481 {
-
482  return DEFAULT_M;
-
483 }
-
484 
-
485 // Generic accessors, XYZ
-
486 
-
487 template<>
-
488 inline double Coordinate::get<Ordinate::X>() const
-
489 {
-
490  return x;
-
491 }
-
492 
-
493 template<>
-
494 inline double Coordinate::get<Ordinate::Y>() const
-
495 {
-
496  return y;
-
497 }
-
498 
-
499 template<>
-
500 inline double Coordinate::get<Ordinate::Z>() const
-
501 {
-
502  return z;
-
503 }
-
504 
-
505 template<>
-
506 inline double Coordinate::get<Ordinate::M>() const
-
507 {
-
508  return DEFAULT_M;
-
509 }
-
510 
-
511 // Generic accessors, XYM
-
512 
-
513 template<>
-
514 inline double CoordinateXYM::get<Ordinate::X>() const
-
515 {
-
516  return x;
-
517 }
-
518 
-
519 template<>
-
520 inline double CoordinateXYM::get<Ordinate::Y>() const
-
521 {
-
522  return y;
-
523 }
-
524 
-
525 template<>
-
526 inline double CoordinateXYM::get<Ordinate::Z>() const
-
527 {
-
528  return DEFAULT_Z;
-
529 }
-
530 
-
531 template<>
-
532 inline double CoordinateXYM::get<Ordinate::M>() const
-
533 {
-
534  return m;
-
535 }
-
536 
-
537 // Generic accessors, XYZM
-
538 
-
539 template<>
-
540 inline double CoordinateXYZM::get<Ordinate::X>() const
-
541 {
-
542  return x;
-
543 }
-
544 
-
545 template<>
-
546 inline double CoordinateXYZM::get<Ordinate::Y>() const
-
547 {
-
548  return y;
-
549 }
-
550 
-
551 template<>
-
552 inline double CoordinateXYZM::get<Ordinate::Z>() const
-
553 {
-
554  return z;
-
555 }
-
556 
-
557 template<>
-
558 inline double CoordinateXYZM::get<Ordinate::M>() const
-
559 {
-
560  return m;
-
561 }
-
562 
-
563 GEOS_DLL std::ostream& operator<< (std::ostream& os, const CoordinateXY& c);
-
564 GEOS_DLL std::ostream& operator<< (std::ostream& os, const Coordinate& c);
-
565 GEOS_DLL std::ostream& operator<< (std::ostream& os, const CoordinateXYM& c);
-
566 GEOS_DLL std::ostream& operator<< (std::ostream& os, const CoordinateXYZM& c);
+
381  bool isNull() const
+
382  {
+
383  return Coordinate::isNull() && std::isnan(m);
+
384  }
+
385 
+
386  bool equals4D(const CoordinateXYZM& other) const {
+
387  return x == other.x && y == other.y &&
+
388  (z == other.z || (std::isnan(z) && std::isnan(other.z))) &&
+
389  (m == other.m || (std::isnan(m) && std::isnan(other.m)));
+
390  }
+
391 
+
392  CoordinateXYZM& operator=(const CoordinateXY& other) {
+
393  x = other.x;
+
394  y = other.y;
+
395  z = DEFAULT_Z;
+
396  m = DEFAULT_M;
+
397 
+
398  return *this;
+
399  }
+
400 
+
401  CoordinateXYZM& operator=(const Coordinate& other) {
+
402  x = other.x;
+
403  y = other.y;
+
404  z = other.z;
+
405  m = DEFAULT_M;
+
406 
+
407  return *this;
+
408  }
+
409 
+
410  CoordinateXYZM& operator=(const CoordinateXYM& other) {
+
411  x = other.x;
+
412  y = other.y;
+
413  z = DEFAULT_Z;
+
414  m = other.m;
+
415 
+
416  return *this;
+
417  }
+
418 
+
419  std::string toString() const;
+
420 };
+
421 
+
422 inline CoordinateXYM&
+
423 CoordinateXYM::operator=(const CoordinateXYZM& other) {
+
424  x = other.x;
+
425  y = other.y;
+
426  m = other.m;
+
427 
+
428  return *this;
+
429 }
+
430 
+
431 
+
433 struct GEOS_DLL CoordinateLessThan {
+
434 
+
435  bool operator()(const CoordinateXY* a, const CoordinateXY* b) const
+
436  {
+
437  if(a->compareTo(*b) < 0) {
+
438  return true;
+
439  }
+
440  else {
+
441  return false;
+
442  }
+
443  };
+
444 
+
445  bool operator()(const CoordinateXY& a, const CoordinateXY& b) const
+
446  {
+
447  if(a.compareTo(b) < 0) {
+
448  return true;
+
449  }
+
450  else {
+
451  return false;
+
452  }
+
453  };
+
454 
+
455 };
+
456 
+
458 inline bool operator<(const CoordinateXY& a, const CoordinateXY& b)
+
459 {
+
460  return CoordinateLessThan()(a, b);
+
461 }
+
462 
+
463 
+
464 // Generic accessors, XY
+
465 
+
466 template<>
+
467 inline double CoordinateXY::get<Ordinate::X>() const
+
468 {
+
469  return x;
+
470 }
+
471 
+
472 template<>
+
473 inline double CoordinateXY::get<Ordinate::Y>() const
+
474 {
+
475  return y;
+
476 }
+
477 
+
478 template<>
+
479 inline double CoordinateXY::get<Ordinate::Z>() const
+
480 {
+
481  return DEFAULT_Z;
+
482 }
+
483 
+
484 template<>
+
485 inline double CoordinateXY::get<Ordinate::M>() const
+
486 {
+
487  return DEFAULT_M;
+
488 }
+
489 
+
490 // Generic accessors, XYZ
+
491 
+
492 template<>
+
493 inline double Coordinate::get<Ordinate::X>() const
+
494 {
+
495  return x;
+
496 }
+
497 
+
498 template<>
+
499 inline double Coordinate::get<Ordinate::Y>() const
+
500 {
+
501  return y;
+
502 }
+
503 
+
504 template<>
+
505 inline double Coordinate::get<Ordinate::Z>() const
+
506 {
+
507  return z;
+
508 }
+
509 
+
510 template<>
+
511 inline double Coordinate::get<Ordinate::M>() const
+
512 {
+
513  return DEFAULT_M;
+
514 }
+
515 
+
516 // Generic accessors, XYM
+
517 
+
518 template<>
+
519 inline double CoordinateXYM::get<Ordinate::X>() const
+
520 {
+
521  return x;
+
522 }
+
523 
+
524 template<>
+
525 inline double CoordinateXYM::get<Ordinate::Y>() const
+
526 {
+
527  return y;
+
528 }
+
529 
+
530 template<>
+
531 inline double CoordinateXYM::get<Ordinate::Z>() const
+
532 {
+
533  return DEFAULT_Z;
+
534 }
+
535 
+
536 template<>
+
537 inline double CoordinateXYM::get<Ordinate::M>() const
+
538 {
+
539  return m;
+
540 }
+
541 
+
542 // Generic accessors, XYZM
+
543 
+
544 template<>
+
545 inline double CoordinateXYZM::get<Ordinate::X>() const
+
546 {
+
547  return x;
+
548 }
+
549 
+
550 template<>
+
551 inline double CoordinateXYZM::get<Ordinate::Y>() const
+
552 {
+
553  return y;
+
554 }
+
555 
+
556 template<>
+
557 inline double CoordinateXYZM::get<Ordinate::Z>() const
+
558 {
+
559  return z;
+
560 }
+
561 
+
562 template<>
+
563 inline double CoordinateXYZM::get<Ordinate::M>() const
+
564 {
+
565  return m;
+
566 }
567 
-
568 } // namespace geos.geom
-
569 } // namespace geos
-
570 
-
571 // Add specializations of std::common_type for Coordinate types
-
572 namespace std {
-
573  template<> struct common_type<geos::geom::CoordinateXY, geos::geom::CoordinateXY> { using type = geos::geom::CoordinateXY; };
-
574  template<> struct common_type<geos::geom::CoordinateXY, geos::geom::Coordinate> { using type = geos::geom::Coordinate; };
-
575  template<> struct common_type<geos::geom::CoordinateXY, geos::geom::CoordinateXYM> { using type = geos::geom::CoordinateXYM; };
-
576  template<> struct common_type<geos::geom::CoordinateXY, geos::geom::CoordinateXYZM> { using type = geos::geom::CoordinateXYZM; };
-
577 
-
578  template<> struct common_type<geos::geom::Coordinate, geos::geom::CoordinateXY> { using type = geos::geom::Coordinate; };
-
579  template<> struct common_type<geos::geom::Coordinate, geos::geom::Coordinate> { using type = geos::geom::Coordinate; };
-
580  template<> struct common_type<geos::geom::Coordinate, geos::geom::CoordinateXYM> { using type = geos::geom::CoordinateXYZM; };
-
581  template<> struct common_type<geos::geom::Coordinate, geos::geom::CoordinateXYZM> { using type = geos::geom::CoordinateXYZM; };
+
568 GEOS_DLL std::ostream& operator<< (std::ostream& os, const CoordinateXY& c);
+
569 GEOS_DLL std::ostream& operator<< (std::ostream& os, const Coordinate& c);
+
570 GEOS_DLL std::ostream& operator<< (std::ostream& os, const CoordinateXYM& c);
+
571 GEOS_DLL std::ostream& operator<< (std::ostream& os, const CoordinateXYZM& c);
+
572 
+
573 } // namespace geos.geom
+
574 } // namespace geos
+
575 
+
576 // Add specializations of std::common_type for Coordinate types
+
577 namespace std {
+
578  template<> struct common_type<geos::geom::CoordinateXY, geos::geom::CoordinateXY> { using type = geos::geom::CoordinateXY; };
+
579  template<> struct common_type<geos::geom::CoordinateXY, geos::geom::Coordinate> { using type = geos::geom::Coordinate; };
+
580  template<> struct common_type<geos::geom::CoordinateXY, geos::geom::CoordinateXYM> { using type = geos::geom::CoordinateXYM; };
+
581  template<> struct common_type<geos::geom::CoordinateXY, geos::geom::CoordinateXYZM> { using type = geos::geom::CoordinateXYZM; };
582 
-
583  template<> struct common_type<geos::geom::CoordinateXYM, geos::geom::CoordinateXY> { using type = geos::geom::CoordinateXYM; };
-
584  template<> struct common_type<geos::geom::CoordinateXYM, geos::geom::Coordinate> { using type = geos::geom::CoordinateXYZM; };
-
585  template<> struct common_type<geos::geom::CoordinateXYM, geos::geom::CoordinateXYM> { using type = geos::geom::CoordinateXYM; };
-
586  template<> struct common_type<geos::geom::CoordinateXYM, geos::geom::CoordinateXYZM> { using type = geos::geom::CoordinateXYZM; };
+
583  template<> struct common_type<geos::geom::Coordinate, geos::geom::CoordinateXY> { using type = geos::geom::Coordinate; };
+
584  template<> struct common_type<geos::geom::Coordinate, geos::geom::Coordinate> { using type = geos::geom::Coordinate; };
+
585  template<> struct common_type<geos::geom::Coordinate, geos::geom::CoordinateXYM> { using type = geos::geom::CoordinateXYZM; };
+
586  template<> struct common_type<geos::geom::Coordinate, geos::geom::CoordinateXYZM> { using type = geos::geom::CoordinateXYZM; };
587 
-
588  template<> struct common_type<geos::geom::CoordinateXYZM, geos::geom::CoordinateXY> { using type = geos::geom::CoordinateXYZM; };
-
589  template<> struct common_type<geos::geom::CoordinateXYZM, geos::geom::Coordinate> { using type = geos::geom::CoordinateXYZM; };
-
590  template<> struct common_type<geos::geom::CoordinateXYZM, geos::geom::CoordinateXYM> { using type = geos::geom::CoordinateXYZM; };
-
591  template<> struct common_type<geos::geom::CoordinateXYZM, geos::geom::CoordinateXYZM> { using type = geos::geom::CoordinateXYZM; };
-
592 }
-
593 
-
594 #ifdef _MSC_VER
-
595 #pragma warning(pop)
-
596 #endif
-
597 
+
588  template<> struct common_type<geos::geom::CoordinateXYM, geos::geom::CoordinateXY> { using type = geos::geom::CoordinateXYM; };
+
589  template<> struct common_type<geos::geom::CoordinateXYM, geos::geom::Coordinate> { using type = geos::geom::CoordinateXYZM; };
+
590  template<> struct common_type<geos::geom::CoordinateXYM, geos::geom::CoordinateXYM> { using type = geos::geom::CoordinateXYM; };
+
591  template<> struct common_type<geos::geom::CoordinateXYM, geos::geom::CoordinateXYZM> { using type = geos::geom::CoordinateXYZM; };
+
592 
+
593  template<> struct common_type<geos::geom::CoordinateXYZM, geos::geom::CoordinateXY> { using type = geos::geom::CoordinateXYZM; };
+
594  template<> struct common_type<geos::geom::CoordinateXYZM, geos::geom::Coordinate> { using type = geos::geom::CoordinateXYZM; };
+
595  template<> struct common_type<geos::geom::CoordinateXYZM, geos::geom::CoordinateXYM> { using type = geos::geom::CoordinateXYZM; };
+
596  template<> struct common_type<geos::geom::CoordinateXYZM, geos::geom::CoordinateXYZM> { using type = geos::geom::CoordinateXYZM; };
+
597 }
598 
-
599 
-
600 
-
601 
+
599 #ifdef _MSC_VER
+
600 #pragma warning(pop)
+
601 #endif
602 
603 
604 
@@ -633,17 +632,23 @@
620 
621 
622 
-
geos::geom::Coordinate
Coordinate is the lightweight class used to store coordinates.
Definition: Coordinate.h:216
+
623 
+
624 
+
625 
+
626 
+
627 
+
geos::geom::Coordinate
Coordinate is the lightweight class used to store coordinates.
Definition: Coordinate.h:217
geos::geom::Coordinate::toString
std::string toString() const
Returns a string of the form (x,y,z) .
-
geos::geom::Coordinate::ConstSet
std::set< const Coordinate *, CoordinateLessThan > ConstSet
A set of const Coordinate pointers.
Definition: Coordinate.h:224
-
geos::geom::Coordinate::Vect
std::vector< Coordinate > Vect
A vector of Coordinate objects (real object, not pointers)
Definition: Coordinate.h:233
-
geos::geom::Coordinate::ConstVect
std::vector< const Coordinate * > ConstVect
A vector of const Coordinate pointers.
Definition: Coordinate.h:227
-
geos::geom::Coordinate::ConstStack
std::stack< const Coordinate * > ConstStack
A stack of const Coordinate pointers.
Definition: Coordinate.h:230
-
geos::geom::Coordinate::equals3D
bool equals3D(const Coordinate &other) const
3D comparison
Definition: Coordinate.h:270
-
geos::geom::Coordinate::z
double z
z-coordinate
Definition: Coordinate.h:236
-
geos::geom::operator<
bool operator<(const CoordinateXY &a, const CoordinateXY &b)
Strict weak ordering operator for Coordinate.
Definition: Coordinate.h:453
+
geos::geom::Coordinate::ConstIntMap
std::map< const CoordinateXY *, int, CoordinateLessThan > ConstIntMap
A map of const Coordinate pointers to integers.
Definition: Coordinate.h:238
+
geos::geom::Coordinate::ConstSet
std::set< const Coordinate *, CoordinateLessThan > ConstSet
A set of const Coordinate pointers.
Definition: Coordinate.h:225
+
geos::geom::Coordinate::Vect
std::vector< Coordinate > Vect
A vector of Coordinate objects (real object, not pointers)
Definition: Coordinate.h:235
+
geos::geom::Coordinate::ConstVect
std::vector< const Coordinate * > ConstVect
A vector of const Coordinate pointers.
Definition: Coordinate.h:229
+
geos::geom::Coordinate::ConstStack
std::stack< const Coordinate * > ConstStack
A stack of const Coordinate pointers.
Definition: Coordinate.h:232
+
geos::geom::Coordinate::equals3D
bool equals3D(const Coordinate &other) const
3D comparison
Definition: Coordinate.h:275
+
geos::geom::Coordinate::z
double z
z-coordinate
Definition: Coordinate.h:241
+
geos::geom::operator<
bool operator<(const CoordinateXY &a, const CoordinateXY &b)
Strict weak ordering operator for Coordinate.
Definition: Coordinate.h:458
geos
Basic namespace for all GEOS functionalities.
Definition: Angle.h:25
-
geos::geom::CoordinateLessThan
Strict weak ordering Functor for Coordinate.
Definition: Coordinate.h:428
+
geos::geom::CoordinateLessThan
Strict weak ordering Functor for Coordinate.
Definition: Coordinate.h:433