MySQL 8.3.0
Source Code Documentation
symdifference_functor.cc File Reference

This file implements the symdifference functor. More...

#include <memory>
#include <boost/geometry.hpp>
#include "sql/gis/gc_utils.h"
#include "sql/gis/geometries.h"
#include "sql/gis/geometries_traits.h"
#include "sql/gis/so_utils.h"
#include "sql/gis/symdifference_functor.h"

Namespaces

namespace  gis
 

Functions

template<typename PointLike , typename Geometry , typename std::enable_if_t< std::is_same< PointLike, Cartesian_point >::value||std::is_same< PointLike, Cartesian_multipoint >::value > * = nullptr>
bool gis::call_bg_disjoint (const PointLike &g1, const Geometry &g2, const SymDifference &)
 
template<typename MultipointOrLinear , typename Geometry , typename GeometryOut , typename std::enable_if_t< std::is_same< MultipointOrLinear, Cartesian_linestring >::value||std::is_same< MultipointOrLinear, Cartesian_multipoint >::value||std::is_same< MultipointOrLinear, Cartesian_multilinestring >::value > * = nullptr>
void gis::call_bg_difference (const MultipointOrLinear &g1, const Geometry &g2, GeometryOut &gout, const SymDifference &)
 
template<typename Geometry , typename GeometryOut >
void gis::call_bg_difference (const Geographic_multipoint &g1, const Geometry &g2, GeometryOut &gout, const SymDifference &f)
 
template<typename Linear , typename Geometry , typename GeometryOut , typename std::enable_if_t< std::is_same< Linear, Geographic_linestring >::value||std::is_same< Linear, Geographic_multilinestring >::value > * = nullptr>
void gis::call_bg_difference (const Linear &g1, const Geometry &g2, GeometryOut &gout, const SymDifference &f)
 
template<typename MultiPointType , typename Geometry1 , typename Geometry2 >
static auto gis::symdifference_pointlike_pointlike (Geometry1 g1, Geometry2 g2)
 
template<typename GCType , typename Geometry1 , typename Geometry2 >
static auto gis::symdifference_multipoint_linear_or_areal (const SymDifference &f, Geometry1 g1, Geometry2 g2)
 
template<typename GCType , typename Geometry1 , typename Geometry2 >
static auto gis::symdifference_point_linear_or_areal (const SymDifference &f, Geometry1 g1, Geometry2 g2)
 
template<typename MlsType , typename GCType , typename Linear , typename Areal >
static auto gis::symdifference_linear_areal (const SymDifference &f, Linear g1, Areal g2)
 
template<typename MptType , typename MlsType , typename MpyType , typename PtMpt , typename GC >
std::unique_ptr< Geometrygis::symdifference_pointlike_geomcol (const SymDifference &f, PtMpt g1, GC *g2)
 
template<typename MptType , typename MlsType , typename MpyType , typename Linear , typename GC >
std::unique_ptr< Geometrygis::symdifference_linear_geomcol (const SymDifference &f, Linear g1, GC *g2)
 
template<typename MptType , typename MlsType , typename Areal , typename GC >
std::unique_ptr< Geometrygis::symdifference_areal_geomcol (const SymDifference &f, Areal g1, GC *g2)
 

Detailed Description

This file implements the symdifference functor.