PostGIS 3.7.0dev-r@@SVN_REVISION@@
Loading...
Searching...
No Matches

◆ lwcollection_clone()

LWCOLLECTION * lwcollection_clone ( const LWCOLLECTION g)

Clone LWCOLLECTION object.

POINTARRAY are not copied. Bbox is cloned if present in input.

Definition at line 125 of file lwcollection.c.

126{
127 uint32_t i;
128 LWCOLLECTION *ret = lwalloc(sizeof(LWCOLLECTION));
129 memcpy(ret, g, sizeof(LWCOLLECTION));
130 if ( g->ngeoms > 0 )
131 {
132 ret->geoms = lwalloc(sizeof(LWGEOM *)*g->ngeoms);
133 for (i=0; i<g->ngeoms; i++)
134 {
135 ret->geoms[i] = lwgeom_clone(g->geoms[i]);
136 }
137 if ( g->bbox ) ret->bbox = gbox_copy(g->bbox);
138 }
139 else
140 {
141 ret->bbox = NULL; /* empty collection */
142 ret->geoms = NULL;
143 }
144 return ret;
145}
GBOX * gbox_copy(const GBOX *box)
Return a copy of the GBOX, based on dimensionality of flags.
Definition gbox.c:438
LWGEOM * lwgeom_clone(const LWGEOM *lwgeom)
Clone LWGEOM object.
Definition lwgeom.c:519
void * lwalloc(size_t size)
Definition lwutil.c:227
uint32_t ngeoms
Definition liblwgeom.h:580
GBOX * bbox
Definition liblwgeom.h:574
LWGEOM ** geoms
Definition liblwgeom.h:575

References LWCOLLECTION::bbox, gbox_copy(), LWCOLLECTION::geoms, lwalloc(), lwgeom_clone(), and LWCOLLECTION::ngeoms.

Referenced by lwcollection_segmentize2d(), and lwgeom_clone().

Here is the call graph for this function:
Here is the caller graph for this function: