PostGIS 3.0.6dev-r@@SVN_REVISION@@
Loading...
Searching...
No Matches
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, int32_t 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 * lwcollection_unstroke (const LWCOLLECTION *c)
 
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 double angle_increment_using_segments_per_quad (double tol)
 
static double angle_increment_using_max_deviation (double max_deviation, double radius)
 
static double angle_increment_using_max_angle (double tol)
 
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.
 
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)
 
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.
 
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.
 
static LWGEOM * linestring_from_pa (const POINTARRAY *pa, int32_t srid, int start, int end)
 
static LWGEOM * circstring_from_pa (const POINTARRAY *pa, int32_t srid, int start, int end)
 
static LWGEOM * geom_from_pa (const POINTARRAY *pa, int32_t srid, int is_arc, int start, int end)