1730{
1733 int32_t srid = lwgeom->
srid;
1738
1740 {
1741
1742 PG_RETURN_POINTER(geom);
1743 }
1744
1746 {
1747
1748 PG_RETURN_POINTER(geom);
1749 }
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1763 {
1764
1768 }
1770 {
1772
1774
1775
1782
1783
1787 }
1788 else
1789 {
1793 ppa[0] = pa;
1794
1795
1811
1812
1816 }
1817
1818 PG_FREE_IF_COPY(geom, 0);
1819
1820 PG_RETURN_POINTER(
result);
1821}
char result[OUT_DOUBLE_BUFFER_SIZE]
LWGEOM * lwgeom_from_gserialized(const GSERIALIZED *g)
Allocate a new LWGEOM from a GSERIALIZED.
LWGEOM * lwpoint_as_lwgeom(const LWPOINT *obj)
void lwpoint_free(LWPOINT *pt)
POINTARRAY * ptarray_construct_empty(char hasz, char hasm, uint32_t maxpoints)
Create a new POINTARRAY with no points.
void * lwalloc(size_t size)
LWLINE * lwline_construct(int32_t srid, GBOX *bbox, POINTARRAY *points)
LWPOINT * lwpoint_make2d(int32_t srid, double x, double y)
LWGEOM * lwline_as_lwgeom(const LWLINE *obj)
LWPOLY * lwpoly_construct(int32_t srid, GBOX *bbox, uint32_t nrings, POINTARRAY **points)
int lwgeom_calculate_gbox(const LWGEOM *lwgeom, GBOX *gbox)
Calculate bounding box of a geometry, automatically taking into account whether it is cartesian or ge...
int ptarray_append_point(POINTARRAY *pa, const POINT4D *pt, int allow_duplicates)
Append a point to the end of an existing POINTARRAY If allow_duplicate is LW_FALSE,...
void lwpoly_free(LWPOLY *poly)
#define LW_TRUE
Return types for functions with status returns.
LWGEOM * lwpoly_as_lwgeom(const LWPOLY *obj)
void lwline_free(LWLINE *line)
static int lwgeom_is_empty(const LWGEOM *geom)
Return true or false depending on whether a geometry is an "empty" geometry (no vertices members)