Remove a point from a pointarray.
- Parameters
-
| which | - is the offset (starting at 0) |
- Returns
- POINTARRAY is newly allocated
Definition at line 561 of file ptarray.c.
562{
565
566 LWDEBUGF(3,
"pa %x which %d", pa, which);
567
568#if PARANOIA_LEVEL > 0
570 {
571 lwerror(
"%s [%d] offset (%d) out of range (%d..%d)", __FILE__, __LINE__,
573 return NULL;
574 }
575
577 {
578 lwerror(
"%s [%d] can't remove a point from a 2-vertex POINTARRAY", __FILE__, __LINE__);
579 return NULL;
580 }
581#endif
582
585
586
587 if ( which )
588 {
590 }
591
592
593 if ( which < pa->npoints-1 )
594 {
597 }
598
599 return ret;
600}
#define FLAGS_GET_Z(flags)
#define FLAGS_GET_M(flags)
#define LWDEBUGF(level, msg,...)
void lwerror(const char *fmt,...)
Write a notice out to the error handler.
static uint8_t * getPoint_internal(const POINTARRAY *pa, uint32_t n)
static size_t ptarray_point_size(const POINTARRAY *pa)
POINTARRAY * ptarray_construct(char hasz, char hasm, uint32_t npoints)
Construct an empty pointarray, allocating storage and setting the npoints, but not filling in any inf...
References POINTARRAY::flags, FLAGS_GET_M, FLAGS_GET_Z, getPoint_internal(), LWDEBUGF, lwerror(), POINTARRAY::npoints, ptarray_construct(), and ptarray_point_size().
Referenced by lwcircstring_removepoint(), and lwline_removepoint().