MySQL 9.0.0
Source Code Documentation
geometries.h File Reference

This file declares the geometry class hierarchy used by the server as the internal representation of geometries. More...

#include <cmath>
#include <cstdint>

Go to the source code of this file.

Classes

class  gis::Geometry
 Abstract superclass for all geometric objects. More...
 
class  gis::Point
 A 2d point. More...
 
class  gis::Curve
 An abstract 2d curve. More...
 
class  gis::Linestring
 A string of connected line segments. More...
 
class  gis::Linearring
 A ring-shaped linestring. More...
 
class  gis::Surface
 An abstract 2d surface. More...
 
class  gis::Polygon
 A polygon consisting of an outer ring and zero or more interior rings defining holes in the polygon. More...
 
class  gis::Geometrycollection
 A collection of geometries. More...
 
class  gis::Multipoint
 A collection of points. More...
 
class  gis::Multicurve
 An abstract collection of curves. More...
 
class  gis::Multilinestring
 A collection of linestrings. More...
 
class  gis::Multisurface
 An abstract collection of surfaces. More...
 
class  gis::Multipolygon
 A collection of polygons. More...
 

Namespaces

namespace  gis
 

Enumerations

enum class  gis::Geometry_type : std::uint32_t {
  gis::kGeometry = 0 , gis::kPoint = 1 , gis::kLinestring = 2 , gis::kPolygon = 3 ,
  gis::kMultipoint = 4 , gis::kMultilinestring = 5 , gis::kMultipolygon = 6 , gis::kGeometrycollection = 7
}
 Types of geometry objects. More...
 
enum class  gis::Coordinate_system { gis::kCartesian = 0 , gis::kGeographic = 1 }
 Types of coordinate systems. More...
 
enum class  gis::Ring_direction { gis::kCW = 0 , gis::kCCW = 1 , gis::kUnknown = 2 }
 Direction of a ring. More...
 

Functions

bool gis::operator< (const Point &lhs, const Point &rhs)
 Compares two points. More...
 
const char * gis::type_to_name (Geometry_type type)
 Get the type name string corresponding to a geometry type. More...
 

Detailed Description

This file declares the geometry class hierarchy used by the server as the internal representation of geometries.

The hierarchy is closely modelled after the hierarchy in SFA-CA (OGC 06-103r4), but since Boost.Geometry depends on type traits to know if a geometry is in a Cartesian or geographic SRS, there are Cartesian and geographic specializations of each instantiable type in the SFA-CA. These are defined in geometries_cs.h.

Because of Boost.Geometry, iterators have to be of coordinate system specific types. It is therefore not possible to have the standard begin() and end() iterators in the common superclass. Instead, operator[] is provided as a coordinate system agnostic option.

See also
geometries_cs.h