Move an isolated node.
For ST_MoveIsoNode
- Parameters
-
topo | the topology to operate on |
node | the identifier of the nod to be moved |
pt | the new node position |
- Returns
- 0 on success, -1 on error (liblwgeom error handler will be invoked with error message)
Definition at line 3707 of file lwgeom_topo.c.
References _lwt_GetIsoNode(), LWT_TOPOLOGY_T::be_iface, LWT_ISO_NODE::geom, lwerror(), lwfree(), lwt_be_ExistsCoincidentNode(), lwt_be_ExistsEdgeIntersectingPoint(), lwt_be_lastErrorMessage(), lwt_be_updateNodesById(), LWT_COL_NODE_GEOM, and LWT_ISO_NODE::node_id.
3713 if ( ! node )
return -1;
3718 lwerror(
"SQL/MM Spatial exception - coincident node");
3725 lwerror(
"SQL/MM Spatial exception - edge crosses node.");
int lwt_be_ExistsEdgeIntersectingPoint(LWT_TOPOLOGY *topo, LWPOINT *pt)
const LWT_BE_IFACE * be_iface
int lwt_be_ExistsCoincidentNode(LWT_TOPOLOGY *topo, LWPOINT *pt)
static int lwt_be_updateNodesById(LWT_TOPOLOGY *topo, const LWT_ISO_NODE *nodes, int numnodes, int upd_fields)
static LWT_ISO_NODE * _lwt_GetIsoNode(LWT_TOPOLOGY *topo, LWT_ELEMID nid)
#define LWT_COL_NODE_GEOM
const char * lwt_be_lastErrorMessage(const LWT_BE_IFACE *be)
void lwerror(const char *fmt,...)
Write a notice out to the error handler.