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.