MySQL 8.3.0
Source Code Documentation
gis::Buffer Class Reference

Buffer functor that calls boost::geometry::buffer with correct geometry type and strategy combination. More...

#include <buffer_functor.h>

Inheritance diagram for gis::Buffer:
[legend]

Public Member Functions

 Buffer (const BufferStrategies &strats)
 
 Buffer (const dd::Spatial_reference_system *srs, const BufferStrategies &strats)
 
std::unique_ptr< Geometryoperator() (const Geometry &g) const override
 
std::unique_ptr< Geometryeval (const Geometry &g) const
 
std::unique_ptr< Geometryeval (const Cartesian_point &g) const
 
std::unique_ptr< Geometryeval (const Cartesian_multipoint &g) const
 
std::unique_ptr< Geometryeval (const Cartesian_linestring &g) const
 
std::unique_ptr< Geometryeval (const Cartesian_multilinestring &g) const
 
std::unique_ptr< Geometryeval (const Cartesian_polygon &g) const
 
std::unique_ptr< Geometryeval (const Cartesian_multipolygon &g) const
 
std::unique_ptr< Geometryeval (const Cartesian_geometrycollection &g) const
 
std::unique_ptr< Geometryeval (const Geographic_point &g) const
 
template<class T >
std::unique_ptr< Geometrytyped_buffer (T &g) const
 Templated call to bg::buffer based on geometry type. More...
 
- Public Member Functions inherited from gis::Unary_functor< std::unique_ptr< Geometry > >
virtual ~Unary_functor ()=default
 

Private Attributes

const dd::Spatial_reference_systemm_srs
 
const BufferStrategiesstrats
 
bg::strategy::buffer::distance_symmetric< double > d_symmetric
 
bg::strategy::buffer::side_straight s_straight
 
bg::strategy::buffer::join_round j_round
 
bg::strategy::buffer::join_miter j_miter
 
bg::strategy::buffer::end_round e_round
 
bg::strategy::buffer::end_flat e_flat
 
bg::strategy::buffer::point_circle p_circle
 
bg::strategy::buffer::point_square p_square
 
bg::strategy::buffer::geographic_point_circle geo_point_circle
 

Additional Inherited Members

- Static Protected Member Functions inherited from gis::Unary_functor< std::unique_ptr< Geometry > >
static std::unique_ptr< Geometryapply (F &f, const Geometry &g)
 

Detailed Description

Buffer functor that calls boost::geometry::buffer with correct geometry type and strategy combination.

The functor may throw exceptions. It is intended for implementing geographic functions. It should not be used directly by other MySQL code.

Constructor & Destructor Documentation

◆ Buffer() [1/2]

gis::Buffer::Buffer ( const BufferStrategies strats)
explicit

◆ Buffer() [2/2]

gis::Buffer::Buffer ( const dd::Spatial_reference_system srs,
const BufferStrategies strats 
)

Member Function Documentation

◆ eval() [1/9]

std::unique_ptr< Geometry > gis::Buffer::eval ( const Cartesian_geometrycollection g) const

◆ eval() [2/9]

std::unique_ptr< Geometry > gis::Buffer::eval ( const Cartesian_linestring g) const

◆ eval() [3/9]

std::unique_ptr< Geometry > gis::Buffer::eval ( const Cartesian_multilinestring g) const

◆ eval() [4/9]

std::unique_ptr< Geometry > gis::Buffer::eval ( const Cartesian_multipoint g) const

◆ eval() [5/9]

std::unique_ptr< Geometry > gis::Buffer::eval ( const Cartesian_multipolygon g) const

◆ eval() [6/9]

std::unique_ptr< Geometry > gis::Buffer::eval ( const Cartesian_point g) const

◆ eval() [7/9]

std::unique_ptr< Geometry > gis::Buffer::eval ( const Cartesian_polygon g) const

◆ eval() [8/9]

std::unique_ptr< Geometry > gis::Buffer::eval ( const Geographic_point g) const

◆ eval() [9/9]

std::unique_ptr< Geometry > gis::Buffer::eval ( const Geometry g) const

◆ operator()()

std::unique_ptr< Geometry > gis::Buffer::operator() ( const Geometry g) const
overridevirtual

◆ typed_buffer()

template<class T >
std::unique_ptr< Geometry > gis::Buffer::typed_buffer ( T &  g) const

Templated call to bg::buffer based on geometry type.

Function also switches on strategy combination. PS. Not called by eval for Cartesian GC or Geographic point.

Member Data Documentation

◆ d_symmetric

bg::strategy::buffer::distance_symmetric<double> gis::Buffer::d_symmetric
private

◆ e_flat

bg::strategy::buffer::end_flat gis::Buffer::e_flat
private

◆ e_round

bg::strategy::buffer::end_round gis::Buffer::e_round
private

◆ geo_point_circle

bg::strategy::buffer::geographic_point_circle gis::Buffer::geo_point_circle
private

◆ j_miter

bg::strategy::buffer::join_miter gis::Buffer::j_miter
private

◆ j_round

bg::strategy::buffer::join_round gis::Buffer::j_round
private

◆ m_srs

const dd::Spatial_reference_system* gis::Buffer::m_srs
private

◆ p_circle

bg::strategy::buffer::point_circle gis::Buffer::p_circle
private

◆ p_square

bg::strategy::buffer::point_square gis::Buffer::p_square
private

◆ s_straight

bg::strategy::buffer::side_straight gis::Buffer::s_straight
private

◆ strats

const BufferStrategies& gis::Buffer::strats
private

The documentation for this class was generated from the following files: