PostGIS  2.5.0beta1dev-r@@SVN_REVISION@@

◆ ST_GeneratePoints()

Datum ST_GeneratePoints ( PG_FUNCTION_ARGS  )

Definition at line 1026 of file postgis/lwgeom_geos.c.

References gserialized_from_lwgeom(), lwgeom_free(), lwgeom_from_gserialized(), lwgeom_to_points(), PG_FUNCTION_INFO_V1(), and ST_OffsetCurve().

Referenced by buffer().

1027 {
1028  GSERIALIZED *gser_input;
1029  GSERIALIZED *gser_result;
1030  LWGEOM *lwgeom_input;
1031  LWGEOM *lwgeom_result;
1032  int32 npoints;
1033 
1034  gser_input = PG_GETARG_GSERIALIZED_P(0);
1035  npoints = DatumGetInt32(DirectFunctionCall1(numeric_int4, PG_GETARG_DATUM(1)));
1036 
1037  if (npoints < 0)
1038  PG_RETURN_NULL();
1039 
1040  /* Types get checked in the code, we'll keep things small out there */
1041  lwgeom_input = lwgeom_from_gserialized(gser_input);
1042  lwgeom_result = (LWGEOM*)lwgeom_to_points(lwgeom_input, npoints);
1043  lwgeom_free(lwgeom_input);
1044  PG_FREE_IF_COPY(gser_input, 0);
1045 
1046  /* Return null as null */
1047  if (!lwgeom_result)
1048  PG_RETURN_NULL();
1049 
1050  /* Serialize and return */
1051  gser_result = gserialized_from_lwgeom(lwgeom_result, 0);
1052  lwgeom_free(lwgeom_result);
1053  PG_RETURN_POINTER(gser_result);
1054 }
unsigned int int32
Definition: shpopen.c:273
LWGEOM * lwgeom_from_gserialized(const GSERIALIZED *g)
Allocate a new LWGEOM from a GSERIALIZED.
void lwgeom_free(LWGEOM *geom)
Definition: lwgeom.c:1144
LWMPOINT * lwgeom_to_points(const LWGEOM *lwgeom, uint32_t npoints)
GSERIALIZED * gserialized_from_lwgeom(LWGEOM *geom, size_t *size)
Allocate a new GSERIALIZED from an LWGEOM.
Here is the call graph for this function:
Here is the caller graph for this function: