PostGIS  2.5.0dev-r@@SVN_REVISION@@
LWPOLY* lwpoly_clone_deep ( const LWPOLY lwgeom)

Definition at line 226 of file lwpoly.c.

References LWPOLY::bbox, LWPOLY::flags, FLAGS_SET_READONLY, gbox_copy(), lwalloc(), LWPOLY::nrings, ptarray_clone_deep(), and LWPOLY::rings.

Referenced by lwgeom_clone_deep().

227 {
228  uint32_t i;
229  LWPOLY *ret = lwalloc(sizeof(LWPOLY));
230  memcpy(ret, g, sizeof(LWPOLY));
231  if ( g->bbox ) ret->bbox = gbox_copy(g->bbox);
232  ret->rings = lwalloc(sizeof(POINTARRAY *)*g->nrings);
233  for ( i = 0; i < ret->nrings; i++ )
234  {
235  ret->rings[i] = ptarray_clone_deep(g->rings[i]);
236  }
237  FLAGS_SET_READONLY(ret->flags,0);
238  return ret;
239 }
GBOX * gbox_copy(const GBOX *box)
Return a copy of the GBOX, based on dimensionality of flags.
Definition: g_box.c:433
GBOX * bbox
Definition: liblwgeom.h:452
uint32_t nrings
Definition: liblwgeom.h:454
unsigned int uint32_t
Definition: uthash.h:78
POINTARRAY ** rings
Definition: liblwgeom.h:456
POINTARRAY * ptarray_clone_deep(const POINTARRAY *ptarray)
Deep clone a pointarray (also clones serialized pointlist)
Definition: ptarray.c:628
uint8_t flags
Definition: liblwgeom.h:451
void * lwalloc(size_t size)
Definition: lwutil.c:229
#define FLAGS_SET_READONLY(flags, value)
Definition: liblwgeom.h:149

Here is the call graph for this function:

Here is the caller graph for this function: