1#ifndef SQL_GIS_SYMDIFFERENCE_FUNCTOR_H_INCLUDED
2#define SQL_GIS_SYMDIFFERENCE_FUNCTOR_H_INCLUDED
35#include <boost/geometry.hpp>
56 boost::geometry::strategy::within::geographic_winding<>
59 boost::geometry::strategy::intersection::geographic_segments<>
67 boost::geometry::strategy::intersection::geographic_segments<>
81 std::unique_ptr<Cartesian_geometrycollection>
eval(
83 std::unique_ptr<Cartesian_geometrycollection>
eval(
85 std::unique_ptr<Cartesian_multipoint>
eval(
87 std::unique_ptr<Cartesian_geometrycollection>
eval(
89 std::unique_ptr<Cartesian_geometrycollection>
eval(
100 std::unique_ptr<Cartesian_multilinestring>
eval(
102 std::unique_ptr<Cartesian_geometrycollection>
eval(
104 std::unique_ptr<Cartesian_geometrycollection>
eval(
106 std::unique_ptr<Cartesian_multilinestring>
eval(
109 std::unique_ptr<Cartesian_geometrycollection>
eval(
122 std::unique_ptr<Cartesian_multipolygon>
eval(
124 std::unique_ptr<Cartesian_geometrycollection>
eval(
126 std::unique_ptr<Cartesian_geometrycollection>
eval(
128 std::unique_ptr<Cartesian_multipolygon>
eval(
153 std::unique_ptr<Cartesian_multipoint>
eval(
155 std::unique_ptr<Cartesian_geometrycollection>
eval(
158 std::unique_ptr<Cartesian_geometrycollection>
eval(
175 std::unique_ptr<Cartesian_multilinestring>
eval(
178 std::unique_ptr<Cartesian_geometrycollection>
eval(
198 std::unique_ptr<Cartesian_multipolygon>
eval(
209 std::unique_ptr<Geographic_geometrycollection>
eval(
211 std::unique_ptr<Geographic_geometrycollection>
eval(
213 std::unique_ptr<Geographic_multipoint>
eval(
215 std::unique_ptr<Geographic_geometrycollection>
eval(
217 std::unique_ptr<Geographic_geometrycollection>
eval(
228 std::unique_ptr<Geographic_multilinestring>
eval(
230 std::unique_ptr<Geographic_geometrycollection>
eval(
232 std::unique_ptr<Geographic_geometrycollection>
eval(
234 std::unique_ptr<Geographic_multilinestring>
eval(
237 std::unique_ptr<Geographic_geometrycollection>
eval(
250 std::unique_ptr<Geographic_multipolygon>
eval(
252 std::unique_ptr<Geographic_geometrycollection>
eval(
254 std::unique_ptr<Geographic_geometrycollection>
eval(
256 std::unique_ptr<Geographic_multipolygon>
eval(
281 std::unique_ptr<Geographic_multipoint>
eval(
283 std::unique_ptr<Geographic_geometrycollection>
eval(
286 std::unique_ptr<Geographic_geometrycollection>
eval(
303 std::unique_ptr<Geographic_multilinestring>
eval(
306 std::unique_ptr<Geographic_geometrycollection>
eval(
326 std::unique_ptr<Geographic_multipolygon>
eval(
A Cartesian 2d geometry collection.
Definition: geometries_cs.h:374
A Cartesian 2d linestring.
Definition: geometries_cs.h:70
A Cartesian 2d multilinestring.
Definition: geometries_cs.h:601
A Cartesian 2d multipoint.
Definition: geometries_cs.h:500
A Cartesian 2d multipolygon.
Definition: geometries_cs.h:719
A Cartesian 2d point.
Definition: geometries_cs.h:46
A Cartesian 2d polygon.
Definition: geometries_cs.h:268
The base class of all functors that takes two geometry arguments.
Definition: functor.h:164
A geographic (ellipsoidal) 2d geometry collection.
Definition: geometries_cs.h:437
A geographic (ellipsoidal) 2d linestring.
Definition: geometries_cs.h:124
A geographic (ellipsoidal) 2d multilinestring.
Definition: geometries_cs.h:660
A geographic (ellipsoidal) 2d multipoint.
Definition: geometries_cs.h:551
A geographic (ellipsoidal) 2d multipolygon.
Definition: geometries_cs.h:773
A geographic (ellipsoidal) 2d point.
Definition: geometries_cs.h:57
A geographic (ellipsoidal) 2d polygon.
Definition: geometries_cs.h:321
Abstract superclass for all geometric objects.
Definition: geometries.h:99
SymDifference functor that calls Boost.Geometry with the correct parameter types.
Definition: symdifference_functor.h:49
double semi_major() const
Definition: symdifference_functor.h:65
double m_semi_major
Semi-major axis of ellipsoid.
Definition: symdifference_functor.h:52
double semi_minor() const
Definition: symdifference_functor.h:64
SymDifference(double semi_major, double semi_minor)
Definition: symdifference_functor.cc:227
std::unique_ptr< Geometry > eval(const Geometry *g1, const Geometry *g2) const
Definition: symdifference_functor.cc:245
boost::geometry::strategy::intersection::geographic_segments get_ll_la_aa_strategy() const
Definition: symdifference_functor.h:68
double m_semi_minor
Semi-minor axis of ellipsoid.
Definition: symdifference_functor.h:54
boost::geometry::strategy::within::geographic_winding m_geographic_pl_pa_strategy
Strategy used for P/L and P/A.
Definition: symdifference_functor.h:57
std::unique_ptr< Geometry > operator()(const Geometry *g1, const Geometry *g2) const override
Definition: symdifference_functor.cc:235
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:60
auto get_pl_pa_strategy() const
Definition: symdifference_functor.h:66
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.