PostGIS  2.4.9dev-r@@SVN_REVISION@@
liblwgeom/lwgeom_geos.c File Reference
#include "lwgeom_geos.h"
#include "liblwgeom.h"
#include "liblwgeom_internal.h"
#include "lwgeom_log.h"
#include <stdlib.h>
#include <time.h>
Include dependency graph for liblwgeom/lwgeom_geos.c:

Go to the source code of this file.

Data Structures

struct  Face_t
 

Macros

#define LWGEOM_GEOS_ERRMSG_MAXSIZE   256
 

Typedefs

typedef struct Face_t Face
 

Functions

LWTINlwtin_from_geos (const GEOSGeometry *geom, int want3d)
 
void lwgeom_geos_error (const char *fmt,...)
 
POINTARRAYptarray_from_GEOSCoordSeq (const GEOSCoordSequence *cs, char want3d)
 
LWGEOMGEOS2LWGEOM (const GEOSGeometry *geom, char want3d)
 
GEOSCoordSeq ptarray_to_GEOSCoordSeq (const POINTARRAY *, int fix_ring)
 
static GEOSGeometry * ptarray_to_GEOSLinearRing (const POINTARRAY *pa, int autofix)
 
GEOSGeometry * GBOX2GEOS (const GBOX *box)
 
GEOSGeometry * LWGEOM2GEOS (const LWGEOM *lwgeom, int autofix)
 
GEOSGeometry * make_geos_point (double x, double y)
 
GEOSGeometry * make_geos_segment (double x1, double y1, double x2, double y2)
 
const char * lwgeom_geos_version ()
 Return GEOS version string (not to be freed) More...
 
LWGEOMlwgeom_normalize (const LWGEOM *geom1)
 
LWGEOMlwgeom_intersection (const LWGEOM *geom1, const LWGEOM *geom2)
 
LWGEOMlwgeom_linemerge (const LWGEOM *geom1)
 
LWGEOMlwgeom_unaryunion (const LWGEOM *geom1)
 
LWGEOMlwgeom_difference (const LWGEOM *geom1, const LWGEOM *geom2)
 
LWGEOMlwgeom_symdifference (const LWGEOM *geom1, const LWGEOM *geom2)
 
LWGEOMlwgeom_centroid (const LWGEOM *geom)
 
LWGEOMlwgeom_union (const LWGEOM *geom1, const LWGEOM *geom2)
 
LWGEOMlwgeom_clip_by_rect (const LWGEOM *geom1, double x0, double y0, double x1, double y1)
 
static FacenewFace (const GEOSGeometry *g)
 
static void delFace (Face *f)
 
static unsigned int countParens (const Face *f)
 
static void findFaceHoles (Face **faces, int nfaces)
 
static int compare_by_envarea (const void *g1, const void *g2)
 
static GEOSGeometry * collectFacesWithEvenAncestors (Face **faces, int nfaces)
 
GEOSGeometry * LWGEOM_GEOS_buildArea (const GEOSGeometry *geom_in)
 
LWGEOMlwgeom_buildarea (const LWGEOM *geom)
 Take a geometry and return an areal geometry (Polygon or MultiPolygon). More...
 
int lwgeom_is_simple (const LWGEOM *geom)
 
LWGEOMlwgeom_geos_noop (const LWGEOM *geom_in)
 Convert an LWGEOM to a GEOS Geometry and convert back – for debug only. More...
 
LWGEOMlwgeom_snap (const LWGEOM *geom1, const LWGEOM *geom2, double tolerance)
 Snap vertices and segments of a geometry to another using a given tolerance. More...
 
LWGEOMlwgeom_sharedpaths (const LWGEOM *geom1, const LWGEOM *geom2)
 
LWGEOMlwgeom_offsetcurve (const LWLINE *lwline, double size, int quadsegs, int joinStyle, double mitreLimit)
 
LWMPOINTlwpoly_to_points (const LWPOLY *lwpoly, int npoints)
 
LWMPOINTlwmpoly_to_points (const LWMPOLY *lwmpoly, int npoints)
 
LWMPOINTlwgeom_to_points (const LWGEOM *lwgeom, int npoints)
 
LWGEOMlwgeom_delaunay_triangulation (const LWGEOM *lwgeom_in, double tolerance, int output)
 Take vertices of a geometry and build a delaunay triangulation on them. More...
 
static GEOSCoordSequence * lwgeom_get_geos_coordseq_2d (const LWGEOM *g, uint32_t num_points)
 
LWGEOMlwgeom_voronoi_diagram (const LWGEOM *g, const GBOX *env, double tolerance, int output_edges)
 Take vertices of a geometry and build the Voronoi diagram. More...
 

Variables

char lwgeom_geos_errmsg [LWGEOM_GEOS_ERRMSG_MAXSIZE]