1728{
1731 int32_t srid = lwgeom->
srid;
1736
1738 {
1739
1740 PG_RETURN_POINTER(geom);
1741 }
1742
1744 {
1745
1746 PG_RETURN_POINTER(geom);
1747 }
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1761 {
1762
1766 }
1768 {
1770
1772
1773
1780
1781
1785 }
1786 else
1787 {
1791 ppa[0] = pa;
1792
1793
1809
1810
1814 }
1815
1816 PG_FREE_IF_COPY(geom, 0);
1817
1818 PG_RETURN_POINTER(
result);
1819}
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)