MySQL 8.4.3
Source Code Documentation
|
This file defines common build blocks of GIS functions. More...
#include <stddef.h>
#include <boost/concept/usage.hpp>
#include <boost/geometry/core/cs.hpp>
#include <boost/geometry/core/tags.hpp>
#include <boost/geometry/geometries/box.hpp>
#include <boost/geometry/geometries/point.hpp>
#include <boost/geometry/geometries/segment.hpp>
#include <boost/geometry/index/rtree.hpp>
#include <cmath>
#include <utility>
#include <vector>
#include "sql/gis/srid.h"
#include "sql/gis_bg_traits.h"
#include "sql/item_geofunc.h"
#include "sql/spatial.h"
Go to the source code of this file.
Classes | |
class | BG_models< CoordinateSystemType > |
A wrapper and interface for all geometry types used here. More... | |
struct | bgpt_lt |
Less than comparator for points used by BG. More... | |
struct | bgpt_eq |
Equals comparator for points used by BG. More... | |
Macros | |
#define | GIS_ZERO 0.00000000001 |
Typedefs | |
typedef bgm::point< double, 2, bgcs::cartesian > | BG_point |
typedef bgm::box< BG_point > | BG_box |
typedef std::pair< BG_box, size_t > | BG_rtree_entry |
typedef std::vector< BG_rtree_entry > | BG_rtree_entries |
typedef bgi::rtree< BG_rtree_entry, bgi::quadratic< 64 > > | Rtree_index |
typedef std::vector< BG_rtree_entry > | Rtree_result |
Functions | |
void | make_bg_box (const Geometry *g, BG_box *box) |
bool | is_box_valid (const BG_box &box) |
void | make_rtree (const BG_geometry_collection::Geometry_list &gl, Rtree_index *rtree) |
Build an rtree set using a geometry collection. More... | |
template<typename MultiGeometry > | |
void | make_rtree_bggeom (const MultiGeometry &mg, Rtree_index *rtree) |
Build an rtree set using array of Boost.Geometry objects, which are components of a multi geometry. More... | |
Gis_geometry_collection * | empty_collection (String *str, gis::srid_t srid) |
bool | is_empty_geocollection (const Geometry *g) |
bool | is_empty_geocollection (const String &wkbres) |
template<typename BG_geotype > | |
bool | post_fix_result (BG_result_buf_mgr *resbuf_mgr, BG_geotype &geout, String *res) |
For every Geometry object write-accessed by a boost geometry function, i.e. More... | |
This file defines common build blocks of GIS functions.
#define GIS_ZERO 0.00000000001 |
typedef bgm::point<double, 2, bgcs::cartesian> BG_point |
typedef std::vector<BG_rtree_entry> BG_rtree_entries |
typedef std::pair<BG_box, size_t> BG_rtree_entry |
typedef bgi::rtree<BG_rtree_entry, bgi::quadratic<64> > Rtree_index |
typedef std::vector<BG_rtree_entry> Rtree_result |
|
inline |
|
inline |
bool is_empty_geocollection | ( | const Geometry * | g | ) |
bool is_empty_geocollection | ( | const String & | wkbres | ) |
void make_rtree | ( | const BG_geometry_collection::Geometry_list & | gl, |
Rtree_index * | rtree | ||
) |
Build an rtree set using a geometry collection.
gl | geometry object pointers container. | |
[out] | rtree | entries which can be used to build an rtree. |
void make_rtree_bggeom | ( | const MultiGeometry & | mg, |
Rtree_index * | rtree | ||
) |
Build an rtree set using array of Boost.Geometry objects, which are components of a multi geometry.
mg | the multi geometry. |
rtree | the rtree to build. |
bool post_fix_result | ( | BG_result_buf_mgr * | resbuf_mgr, |
BG_geotype & | geout, | ||
String * | res | ||
) |
For every Geometry object write-accessed by a boost geometry function, i.e.
those passed as out parameter into set operation functions, call this function before using the result object's data.
resbuf_mgr | Tracks the result buffer | |
[in,out] | geout | Geometry object |
[in,out] | res | GEOMETRY string. |