PostGIS  2.2.7dev-r@@SVN_REVISION@@
static LWGEOM* _lwt_split_by_nodes ( const LWGEOM g,
const LWGEOM nodes 
)
static

Definition at line 5568 of file lwgeom_topo.c.

References LWCOLLECTION::geoms, lwgeom_as_lwcollection(), lwgeom_clone_deep(), lwgeom_free(), lwgeom_split(), LWCOLLECTION::ngeoms, and LWGEOM::srid.

Referenced by lwt_AddLine().

5569 {
5570  LWCOLLECTION *col = lwgeom_as_lwcollection(nodes);
5571  int i;
5572  LWGEOM *bg;
5573 
5574  bg = lwgeom_clone_deep(g);
5575  if ( ! col->ngeoms ) return bg;
5576 
5577  for (i=0; i<col->ngeoms; ++i)
5578  {
5579  LWGEOM *g2;
5580  g2 = lwgeom_split(bg, col->geoms[i]);
5581  lwgeom_free(bg);
5582  bg = g2;
5583  }
5584  bg->srid = nodes->srid;
5585 
5586  return bg;
5587 }
void lwgeom_free(LWGEOM *geom)
Definition: lwgeom.c:1050
LWGEOM * lwgeom_clone_deep(const LWGEOM *lwgeom)
Deep clone an LWGEOM, everything is copied.
Definition: lwgeom.c:433
int32_t srid
Definition: liblwgeom.h:383
LWGEOM ** geoms
Definition: liblwgeom.h:493
LWCOLLECTION * lwgeom_as_lwcollection(const LWGEOM *lwgeom)
Definition: lwgeom.c:143
LWGEOM * lwgeom_split(const LWGEOM *lwgeom_in, const LWGEOM *blade_in)

Here is the call graph for this function:

Here is the caller graph for this function: