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

LWGEOM * pta_unstroke (const POINTARRAY *points, int type, int srid)
 
LWGEOM * lwline_unstroke (const LWLINE *line)
 
LWGEOM * lwpolygon_unstroke (const LWPOLY *poly)
 
LWGEOM * lwmline_unstroke (const LWMLINE *mline)
 
LWGEOM * lwmpolygon_unstroke (const LWMPOLY *mpoly)
 
LWGEOM * lwgeom_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 LWLINE * lwcircstring_linearize (const LWCIRCSTRING *icurve, double tol, LW_LINEARIZE_TOLERANCE_TYPE tolerance_type, int flags)
 
static LWLINE * lwcompound_linearize (const LWCOMPOUND *icompound, double tol, LW_LINEARIZE_TOLERANCE_TYPE tolerance_type, int flags)
 
LWLINE * lwcompound_stroke (const LWCOMPOUND *icompound, uint32_t perQuad)
 
static LWPOLY * lwcurvepoly_linearize (const LWCURVEPOLY *curvepoly, double tol, LW_LINEARIZE_TOLERANCE_TYPE tolerance_type, int flags)
 
LWPOLY * lwcurvepoly_stroke (const LWCURVEPOLY *curvepoly, uint32_t perQuad)
 
static LWMLINE * lwmcurve_linearize (const LWMCURVE *mcurve, double tol, LW_LINEARIZE_TOLERANCE_TYPE type, int flags)
 
static LWMPOLY * lwmsurface_linearize (const LWMSURFACE *msurface, double tol, LW_LINEARIZE_TOLERANCE_TYPE type, int flags)
 
static LWCOLLECTION * lwcollection_linearize (const LWCOLLECTION *collection, double tol, LW_LINEARIZE_TOLERANCE_TYPE type, int flags)
 
LWGEOM * lwcurve_linearize (const LWGEOM *geom, double tol, LW_LINEARIZE_TOLERANCE_TYPE type, int flags)
 
LWGEOM * lwgeom_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 LWGEOM * linestring_from_pa (const POINTARRAY *pa, int srid, int start, int end)
 
static LWGEOM * circstring_from_pa (const POINTARRAY *pa, int srid, int start, int end)
 
static LWGEOM * geom_from_pa (const POINTARRAY *pa, int srid, int is_arc, int start, int end)