1#ifndef SQL_GIS_SYMDIFFERENCE_FUNCTOR_H_INCLUDED
2#define SQL_GIS_SYMDIFFERENCE_FUNCTOR_H_INCLUDED
36#include <boost/geometry.hpp>
57 boost::geometry::strategy::within::geographic_winding<>
60 boost::geometry::strategy::intersection::geographic_segments<>
68 boost::geometry::strategy::intersection::geographic_segments<>
82 std::unique_ptr<Cartesian_geometrycollection>
eval(
84 std::unique_ptr<Cartesian_geometrycollection>
eval(
86 std::unique_ptr<Cartesian_multipoint>
eval(
88 std::unique_ptr<Cartesian_geometrycollection>
eval(
90 std::unique_ptr<Cartesian_geometrycollection>
eval(
101 std::unique_ptr<Cartesian_multilinestring>
eval(
103 std::unique_ptr<Cartesian_geometrycollection>
eval(
105 std::unique_ptr<Cartesian_geometrycollection>
eval(
107 std::unique_ptr<Cartesian_multilinestring>
eval(
110 std::unique_ptr<Cartesian_geometrycollection>
eval(
123 std::unique_ptr<Cartesian_multipolygon>
eval(
125 std::unique_ptr<Cartesian_geometrycollection>
eval(
127 std::unique_ptr<Cartesian_geometrycollection>
eval(
129 std::unique_ptr<Cartesian_multipolygon>
eval(
154 std::unique_ptr<Cartesian_multipoint>
eval(
156 std::unique_ptr<Cartesian_geometrycollection>
eval(
159 std::unique_ptr<Cartesian_geometrycollection>
eval(
176 std::unique_ptr<Cartesian_multilinestring>
eval(
179 std::unique_ptr<Cartesian_geometrycollection>
eval(
199 std::unique_ptr<Cartesian_multipolygon>
eval(
210 std::unique_ptr<Geographic_geometrycollection>
eval(
212 std::unique_ptr<Geographic_geometrycollection>
eval(
214 std::unique_ptr<Geographic_multipoint>
eval(
216 std::unique_ptr<Geographic_geometrycollection>
eval(
218 std::unique_ptr<Geographic_geometrycollection>
eval(
229 std::unique_ptr<Geographic_multilinestring>
eval(
231 std::unique_ptr<Geographic_geometrycollection>
eval(
233 std::unique_ptr<Geographic_geometrycollection>
eval(
235 std::unique_ptr<Geographic_multilinestring>
eval(
238 std::unique_ptr<Geographic_geometrycollection>
eval(
251 std::unique_ptr<Geographic_multipolygon>
eval(
253 std::unique_ptr<Geographic_geometrycollection>
eval(
255 std::unique_ptr<Geographic_geometrycollection>
eval(
257 std::unique_ptr<Geographic_multipolygon>
eval(
282 std::unique_ptr<Geographic_multipoint>
eval(
284 std::unique_ptr<Geographic_geometrycollection>
eval(
287 std::unique_ptr<Geographic_geometrycollection>
eval(
304 std::unique_ptr<Geographic_multilinestring>
eval(
307 std::unique_ptr<Geographic_geometrycollection>
eval(
327 std::unique_ptr<Geographic_multipolygon>
eval(
A Cartesian 2d geometry collection.
Definition: geometries_cs.h:375
A Cartesian 2d linestring.
Definition: geometries_cs.h:71
A Cartesian 2d multilinestring.
Definition: geometries_cs.h:602
A Cartesian 2d multipoint.
Definition: geometries_cs.h:501
A Cartesian 2d multipolygon.
Definition: geometries_cs.h:720
A Cartesian 2d point.
Definition: geometries_cs.h:47
A Cartesian 2d polygon.
Definition: geometries_cs.h:269
The base class of all functors that takes two geometry arguments.
Definition: functor.h:165
A geographic (ellipsoidal) 2d geometry collection.
Definition: geometries_cs.h:438
A geographic (ellipsoidal) 2d linestring.
Definition: geometries_cs.h:125
A geographic (ellipsoidal) 2d multilinestring.
Definition: geometries_cs.h:661
A geographic (ellipsoidal) 2d multipoint.
Definition: geometries_cs.h:552
A geographic (ellipsoidal) 2d multipolygon.
Definition: geometries_cs.h:774
A geographic (ellipsoidal) 2d point.
Definition: geometries_cs.h:58
A geographic (ellipsoidal) 2d polygon.
Definition: geometries_cs.h:322
Abstract superclass for all geometric objects.
Definition: geometries.h:100
SymDifference functor that calls Boost.Geometry with the correct parameter types.
Definition: symdifference_functor.h:50
double semi_major() const
Definition: symdifference_functor.h:66
double m_semi_major
Semi-major axis of ellipsoid.
Definition: symdifference_functor.h:53
double semi_minor() const
Definition: symdifference_functor.h:65
SymDifference(double semi_major, double semi_minor)
Definition: symdifference_functor.cc:228
std::unique_ptr< Geometry > eval(const Geometry *g1, const Geometry *g2) const
Definition: symdifference_functor.cc:246
boost::geometry::strategy::intersection::geographic_segments get_ll_la_aa_strategy() const
Definition: symdifference_functor.h:69
double m_semi_minor
Semi-minor axis of ellipsoid.
Definition: symdifference_functor.h:55
boost::geometry::strategy::within::geographic_winding m_geographic_pl_pa_strategy
Strategy used for P/L and P/A.
Definition: symdifference_functor.h:58
std::unique_ptr< Geometry > operator()(const Geometry *g1, const Geometry *g2) const override
Definition: symdifference_functor.cc:236
boost::geometry::strategy::intersection::geographic_segments m_geographic_ll_la_aa_strategy
Strategy used for L/L, L/A and A/A.
Definition: symdifference_functor.h:61
auto get_pl_pa_strategy() const
Definition: symdifference_functor.h:67
This file contains the superclasses for GIS functors.
This file declares the geometry class hierarchy used by the server as the internal representation of ...
This file contains Boost.Geometry type traits declarations for Cartesian and geographic geometries.