MySQL 9.1.0
Source Code Documentation
|
A utility class to flatten any hierarchy of geometry collection into one with no nested geometry collections. More...
#include <item_geofunc.h>
Public Types | |
typedef std::vector< Geometry * > | Geometry_list |
Public Member Functions | |
BG_geometry_collection () | |
bool | is_comp_no_overlapped () const |
void | set_comp_no_overlapped (bool b) |
gis::srid_t | get_srid () const |
void | set_srid (gis::srid_t srid) |
bool | fill (const Geometry *geo, bool break_multi_geom=false) |
const Geometry_list & | get_geometries () const |
Geometry_list & | get_geometries () |
bool | all_isolated () const |
size_t | num_isolated () const |
Private Member Functions | |
bool | store_geometry (const Geometry *geo, bool break_multi_geom) |
Store a Geometry object into this collection. More... | |
Geometry * | store (const Geometry *geo) |
Store a geometry of GEOMETRY format into this collection. More... | |
Private Attributes | |
bool | comp_no_overlapped |
gis::srid_t | m_srid |
size_t | m_num_isolated |
std::vector< Geometry * > | m_geos |
Inplace_vector< Geometry_buffer > | m_geobufs |
Inplace_vector< String > | m_geosdata |
A utility class to flatten any hierarchy of geometry collection into one with no nested geometry collections.
All components are stored separately and all their data stored in this class, in order to easily manipulate them.
typedef std::vector<Geometry *> BG_geometry_collection::Geometry_list |
BG_geometry_collection::BG_geometry_collection | ( | ) |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
Store a geometry of GEOMETRY format into this collection.
geo | a geometry object whose data of GEOMETRY format is to be duplicated and stored into this collection. It's not a geometry collection. |
|
private |
Store a Geometry object into this collection.
If it's a geometry collection, flatten it and store its components into this collection, so that no component is a geometry collection.
geo | The Geometry object to put into this collection. We duplicate geo's data rather than directly using it. |
break_multi_geom | whether break a multipoint or multilinestring or multipolygon so as to store its components separately into this object. |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |