PostGIS  2.4.9dev-r@@SVN_REVISION@@

◆ lwline_get_lwpoint()

LWPOINT* lwline_get_lwpoint ( const LWLINE line,
int  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 324 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().

325 {
326  POINT4D pt;
327  LWPOINT *lwpoint;
328  POINTARRAY *pa;
330  if ( lwline_is_empty(line) || where < 0 || where >= line->points->npoints )
331  return NULL;
334  pt = getPoint4d(line->points, where);
335  ptarray_append_point(pa, &pt, LW_TRUE);
336  lwpoint = lwpoint_construct(line->srid, NULL, pa);
337  return lwpoint;
338 }
int npoints
Definition: liblwgeom.h:371
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:525
int32_t srid
Definition: liblwgeom.h:421
POINT4D getPoint4d(const POINTARRAY *pa, int n)
Definition: lwgeom_api.c:105
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:76
#define FLAGS_GET_Z(flags)
Macros for manipulating the &#39;flags&#39; byte.
Definition: liblwgeom.h:140
#define FLAGS_GET_M(flags)
Definition: liblwgeom.h:141
LWPOINT * lwpoint_construct(int srid, GBOX *bbox, POINTARRAY *point)
Definition: lwpoint.c:129
uint8_t flags
Definition: liblwgeom.h:419
Definition: liblwgeom.h:422
Here is the call graph for this function:
Here is the caller graph for this function: