PostGIS  3.7.0dev-r@@SVN_REVISION@@

◆ _lwt_split_by_nodes()

static LWGEOM* _lwt_split_by_nodes ( const LWGEOM g,
const LWGEOM nodes 
)
static

Definition at line 7114 of file lwgeom_topo.c.

7115 {
7116  LWCOLLECTION *col = lwgeom_as_lwcollection(nodes);
7117  uint32_t i;
7118  LWGEOM *bg;
7119 
7120  bg = lwgeom_clone_deep(g);
7121  if ( ! col->ngeoms ) return bg;
7122 
7123  for (i=0; i<col->ngeoms; ++i)
7124  {
7125  LWGEOM *g2;
7126  g2 = lwgeom_split(bg, col->geoms[i]);
7127  lwgeom_free(bg);
7128  bg = g2;
7129  }
7130  bg->srid = nodes->srid;
7131 
7132  return bg;
7133 }
void lwgeom_free(LWGEOM *geom)
Definition: lwgeom.c:1246
LWGEOM * lwgeom_split(const LWGEOM *lwgeom_in, const LWGEOM *blade_in)
LWGEOM * lwgeom_clone_deep(const LWGEOM *lwgeom)
Deep clone an LWGEOM, everything is copied.
Definition: lwgeom.c:557
LWCOLLECTION * lwgeom_as_lwcollection(const LWGEOM *lwgeom)
Definition: lwgeom.c:261
uint32_t ngeoms
Definition: liblwgeom.h:580
LWGEOM ** geoms
Definition: liblwgeom.h:575
int32_t srid
Definition: liblwgeom.h:460

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

Referenced by _lwt_AddLine().

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