PostGIS  2.4.9dev-r@@SVN_REVISION@@

◆ ptarray_same()

char ptarray_same ( const POINTARRAY pa1,
const POINTARRAY pa2 
)

Definition at line 479 of file ptarray.c.

References POINTARRAY::flags, FLAGS_GET_ZM, getPoint_internal(), LW_FALSE, LW_TRUE, LWDEBUG, LWDEBUGF, POINTARRAY::npoints, and ptarray_point_size().

Referenced by lwcircstring_same(), lwline_same(), lwpoint_same(), lwpoly_same(), lwtriangle_is_repeated_points(), and lwtriangle_same().

480 {
481  uint32_t i;
482  size_t ptsize;
483 
484  if ( FLAGS_GET_ZM(pa1->flags) != FLAGS_GET_ZM(pa2->flags) ) return LW_FALSE;
485  LWDEBUG(5,"dimensions are the same");
486 
487  if ( pa1->npoints != pa2->npoints ) return LW_FALSE;
488  LWDEBUG(5,"npoints are the same");
489 
490  ptsize = ptarray_point_size(pa1);
491  LWDEBUGF(5, "ptsize = %d", ptsize);
492 
493  for (i=0; i<pa1->npoints; i++)
494  {
495  if ( memcmp(getPoint_internal(pa1, i), getPoint_internal(pa2, i), ptsize) )
496  return LW_FALSE;
497  LWDEBUGF(5,"point #%d is the same",i);
498  }
499 
500  return LW_TRUE;
501 }
int ptarray_point_size(const POINTARRAY *pa)
Definition: ptarray.c:54
int npoints
Definition: liblwgeom.h:371
#define FLAGS_GET_ZM(flags)
Definition: liblwgeom.h:153
#define LWDEBUG(level, msg)
Definition: lwgeom_log.h:83
unsigned int uint32_t
Definition: uthash.h:78
#define LW_FALSE
Definition: liblwgeom.h:77
uint8_t flags
Definition: liblwgeom.h:369
#define LW_TRUE
Return types for functions with status returns.
Definition: liblwgeom.h:76
#define LWDEBUGF(level, msg,...)
Definition: lwgeom_log.h:88
uint8_t * getPoint_internal(const POINTARRAY *pa, int n)
Definition: ptarray.c:1753
Here is the call graph for this function:
Here is the caller graph for this function: