PostGIS  2.4.9dev-r@@SVN_REVISION@@
lwstroke.c File Reference
#include <stdio.h>
#include <stdlib.h>
#include <stdarg.h>
#include <string.h>
#include "../postgis_config.h"
#include "lwgeom_log.h"
#include "liblwgeom_internal.h"
Include dependency graph for lwstroke.c:

Go to the source code of this file.

Functions

LWGEOMpta_unstroke (const POINTARRAY *points, int type, int srid)
 
LWGEOMlwline_unstroke (const LWLINE *line)
 
LWGEOMlwpolygon_unstroke (const LWPOLY *poly)
 
LWGEOMlwmline_unstroke (const LWMLINE *mline)
 
LWGEOMlwmpolygon_unstroke (const LWMPOLY *mpoly)
 
LWGEOMlwgeom_unstroke (const LWGEOM *geom)
 
int lwgeom_has_arc (const LWGEOM *geom)
 
static double interpolate_arc (double angle, double a1, double a2, double a3, double zm1, double zm2, double zm3)
 
static int lwarc_linearize (POINTARRAY *to, const POINT4D *p1, const POINT4D *p2, const POINT4D *p3, double tol, LW_LINEARIZE_TOLERANCE_TYPE tolerance_type, int flags)
 Segmentize an arc. More...
 
static LWLINElwcircstring_linearize (const LWCIRCSTRING *icurve, double tol, LW_LINEARIZE_TOLERANCE_TYPE tolerance_type, int flags)
 
static LWLINElwcompound_linearize (const LWCOMPOUND *icompound, double tol, LW_LINEARIZE_TOLERANCE_TYPE tolerance_type, int flags)
 
LWLINElwcompound_stroke (const LWCOMPOUND *icompound, uint32_t perQuad)
 
static LWPOLYlwcurvepoly_linearize (const LWCURVEPOLY *curvepoly, double tol, LW_LINEARIZE_TOLERANCE_TYPE tolerance_type, int flags)
 
LWPOLYlwcurvepoly_stroke (const LWCURVEPOLY *curvepoly, uint32_t perQuad)
 
static LWMLINElwmcurve_linearize (const LWMCURVE *mcurve, double tol, LW_LINEARIZE_TOLERANCE_TYPE type, int flags)
 
static LWMPOLYlwmsurface_linearize (const LWMSURFACE *msurface, double tol, LW_LINEARIZE_TOLERANCE_TYPE type, int flags)
 
static LWCOLLECTIONlwcollection_linearize (const LWCOLLECTION *collection, double tol, LW_LINEARIZE_TOLERANCE_TYPE type, int flags)
 
LWGEOMlwcurve_linearize (const LWGEOM *geom, double tol, LW_LINEARIZE_TOLERANCE_TYPE type, int flags)
 
LWGEOMlwgeom_stroke (const LWGEOM *geom, uint32_t perQuad)
 
static double lw_arc_angle (const POINT2D *a, const POINT2D *b, const POINT2D *c)
 Return ABC angle in radians TODO: move to lwalgorithm. More...
 
static int pt_continues_arc (const POINT4D *a1, const POINT4D *a2, const POINT4D *a3, const POINT4D *b)
 Returns LW_TRUE if b is on the arc formed by a1/a2/a3, but not within that portion already described by a1/a2/a3. More...
 
static LWGEOMlinestring_from_pa (const POINTARRAY *pa, int srid, int start, int end)
 
static LWGEOMcircstring_from_pa (const POINTARRAY *pa, int srid, int start, int end)
 
static LWGEOMgeom_from_pa (const POINTARRAY *pa, int srid, int is_arc, int start, int end)