PostGIS  2.5.0dev-r@@SVN_REVISION@@

◆ lwline_get_lwpoint()

LWPOINT* lwline_get_lwpoint ( const LWLINE line,
uint32_t  where 

Returns freshly allocated LWPOINT that corresponds to the index where.

Returns NULL if the geometry is empty or the index invalid.

Definition at line 318 of file lwline.c.

References LWLINE::flags, FLAGS_GET_M, FLAGS_GET_Z, getPoint4d(), LW_TRUE, lwline_is_empty(), lwpoint_construct(), POINTARRAY::npoints, LWLINE::points, ptarray_append_point(), ptarray_construct_empty(), and LWLINE::srid.

Referenced by _lwt_AddLineEdge(), gserialized_distance_nd(), lwcompound_get_endpoint(), lwcompound_get_lwpoint(), lwgeom_collect_endpoints(), LWGEOM_dumppoints(), LWGEOM_endpoint_linestring(), LWGEOM_pointn_linestring(), LWGEOM_startpoint_linestring(), and lwline_covers_lwline().

319 {
320  POINT4D pt;
321  LWPOINT *lwpoint;
322  POINTARRAY *pa;
324  if ( lwline_is_empty(line) || where >= line->points->npoints )
325  return NULL;
328  pt = getPoint4d(line->points, where);
329  ptarray_append_point(pa, &pt, LW_TRUE);
330  lwpoint = lwpoint_construct(line->srid, NULL, pa);
331  return lwpoint;
332 }
POINTARRAY * ptarray_construct_empty(char hasz, char hasm, uint32_t maxpoints)
Create a new POINTARRAY with no points.
Definition: ptarray.c:70
int lwline_is_empty(const LWLINE *line)
Definition: lwline.c:511
int32_t srid
Definition: liblwgeom.h:420
POINT4D getPoint4d(const POINTARRAY *pa, uint32_t n)
Definition: lwgeom_api.c:96
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, then a duplicate point will not be added.
Definition: ptarray.c:156
#define LW_TRUE
Return types for functions with status returns.
Definition: liblwgeom.h:75
#define FLAGS_GET_Z(flags)
Macros for manipulating the 'flags' byte.
Definition: liblwgeom.h:139
#define FLAGS_GET_M(flags)
Definition: liblwgeom.h:140
LWPOINT * lwpoint_construct(int srid, GBOX *bbox, POINTARRAY *point)
Definition: lwpoint.c:129
uint8_t flags
Definition: liblwgeom.h:418
Definition: liblwgeom.h:421
uint32_t npoints
Definition: liblwgeom.h:370
Here is the call graph for this function:
Here is the caller graph for this function: