PostGIS
2.5.7dev-r@@SVN_REVISION@@
|
#include <stdio.h>
#include <string.h>
#include "../postgis_config.h"
#include "liblwgeom_internal.h"
#include "lwgeom_log.h"
Go to the source code of this file.
Functions | |
int | ptarray_has_z (const POINTARRAY *pa) |
int | ptarray_has_m (const POINTARRAY *pa) |
size_t | ptarray_point_size (const POINTARRAY *pa) |
POINTARRAY * | ptarray_construct (char hasz, char hasm, uint32_t npoints) |
Construct an empty pointarray, allocating storage and setting the npoints, but not filling in any information. More... | |
POINTARRAY * | ptarray_construct_empty (char hasz, char hasm, uint32_t maxpoints) |
Create a new POINTARRAY with no points. More... | |
int | ptarray_insert_point (POINTARRAY *pa, const POINT4D *p, uint32_t where) |
Insert a point into an existing POINTARRAY. More... | |
int | ptarray_append_point (POINTARRAY *pa, const POINT4D *pt, int repeated_points) |
Append a point to the end of an existing POINTARRAY If allow_duplicate is LW_FALSE, then a duplicate point will not be added. More... | |
int | ptarray_append_ptarray (POINTARRAY *pa1, POINTARRAY *pa2, double gap_tolerance) |
Append a POINTARRAY, pa2 to the end of an existing POINTARRAY, pa1. More... | |
int | ptarray_remove_point (POINTARRAY *pa, uint32_t where) |
Remove a point from an existing POINTARRAY. More... | |
POINTARRAY * | ptarray_construct_reference_data (char hasz, char hasm, uint32_t npoints, uint8_t *ptlist) |
Build a new POINTARRAY, but on top of someone else's ordinate array. More... | |
POINTARRAY * | ptarray_construct_copy_data (char hasz, char hasm, uint32_t npoints, const uint8_t *ptlist) |
Construct a new POINTARRAY, copying in the data from ptlist. More... | |
void | ptarray_free (POINTARRAY *pa) |
void | ptarray_reverse_in_place (POINTARRAY *pa) |
POINTARRAY * | ptarray_flip_coordinates (POINTARRAY *pa) |
Reverse X and Y axis on a given POINTARRAY. More... | |
void | ptarray_swap_ordinates (POINTARRAY *pa, LWORD o1, LWORD o2) |
Swap ordinate values o1 and o2 on a given POINTARRAY. More... | |
POINTARRAY * | ptarray_segmentize2d (const POINTARRAY *ipa, double dist) |
Returns a modified POINTARRAY so that no segment is longer than the given distance (computed using 2d). More... | |
char | ptarray_same (const POINTARRAY *pa1, const POINTARRAY *pa2) |
POINTARRAY * | ptarray_addPoint (const POINTARRAY *pa, uint8_t *p, size_t pdims, uint32_t where) |
Add a point in a pointarray. More... | |
POINTARRAY * | ptarray_removePoint (POINTARRAY *pa, uint32_t which) |
Remove a point from a pointarray. More... | |
POINTARRAY * | ptarray_merge (POINTARRAY *pa1, POINTARRAY *pa2) |
Merge two given POINTARRAY and returns a pointer on the new aggregate one. More... | |
POINTARRAY * | ptarray_clone_deep (const POINTARRAY *in) |
Deep clone a pointarray (also clones serialized pointlist) More... | |
POINTARRAY * | ptarray_clone (const POINTARRAY *in) |
Clone a POINTARRAY object. More... | |
int | ptarray_is_closed (const POINTARRAY *in) |
Check for ring closure using whatever dimensionality is declared on the pointarray. More... | |
int | ptarray_is_closed_2d (const POINTARRAY *in) |
int | ptarray_is_closed_3d (const POINTARRAY *in) |
int | ptarray_is_closed_z (const POINTARRAY *in) |
int | ptarray_contains_point (const POINTARRAY *pa, const POINT2D *pt) |
Return 1 if the point is inside the POINTARRAY, -1 if it is outside, and 0 if it is on the boundary. More... | |
int | ptarray_contains_point_partial (const POINTARRAY *pa, const POINT2D *pt, int check_closed, int *winding_number) |
int | ptarrayarc_contains_point (const POINTARRAY *pa, const POINT2D *pt) |
For POINTARRAYs representing CIRCULARSTRINGS. More... | |
int | ptarrayarc_contains_point_partial (const POINTARRAY *pa, const POINT2D *pt, int check_closed, int *winding_number) |
double | ptarray_signed_area (const POINTARRAY *pa) |
Returns the area in cartesian units. More... | |
int | ptarray_isccw (const POINTARRAY *pa) |
POINTARRAY * | ptarray_force_dims (const POINTARRAY *pa, int hasz, int hasm) |
POINTARRAY * | ptarray_substring (POINTARRAY *ipa, double from, double to, double tolerance) |
@d1 start location (distance from start / total distance) @d2 end location (distance from start / total distance) More... | |
void | closest_point_on_segment (const POINT4D *p, const POINT4D *A, const POINT4D *B, POINT4D *ret) |
double | ptarray_locate_point (const POINTARRAY *pa, const POINT4D *p4d, double *mindistout, POINT4D *proj4d) |
void | ptarray_longitude_shift (POINTARRAY *pa) |
Longitude shift for a pointarray. More... | |
static POINTARRAY * | ptarray_remove_repeated_points_minpoints (const POINTARRAY *in, double tolerance, int minpoints) |
POINTARRAY * | ptarray_remove_repeated_points (const POINTARRAY *in, double tolerance) |
void | ptarray_remove_repeated_points_in_place (POINTARRAY *pa, double tolerance, uint32_t min_points) |
static void | ptarray_dp_findsplit_in_place (const POINTARRAY *pts, int p1, int p2, int *split, double *dist) |
static int | int_cmp (const void *a, const void *b) |
void | ptarray_simplify_in_place (POINTARRAY *pa, double epsilon, uint32_t minpts) |
double | ptarray_arc_length_2d (const POINTARRAY *pts) |
Find the 2d length of the given POINTARRAY, using circular arc interpolation between each coordinate triple. More... | |
double | ptarray_length_2d (const POINTARRAY *pts) |
Find the 2d length of the given POINTARRAY (even if it's 3d) More... | |
double | ptarray_length (const POINTARRAY *pts) |
Find the 3d/2d length of the given POINTARRAY (depending on its dimensionality) More... | |
uint8_t * | getPoint_internal (const POINTARRAY *pa, uint32_t n) |
void | ptarray_affine (POINTARRAY *pa, const AFFINE *a) |
Affine transform a pointarray. More... | |
void | ptarray_scale (POINTARRAY *pa, const POINT4D *fact) |
WARNING, make sure you send in only 16-member double arrays or obviously things will go pear-shaped fast. More... | |
int | ptarray_startpoint (const POINTARRAY *pa, POINT4D *pt) |
void | ptarray_grid_in_place (POINTARRAY *pa, const gridspec *grid) |
int | ptarray_npoints_in_rect (const POINTARRAY *pa, const GBOX *gbox) |