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

◆ _lwt_GetIsoNode()

static LWT_ISO_NODE * _lwt_GetIsoNode ( LWT_TOPOLOGY topo,
LWT_ELEMID  nid 
)
static

Definition at line 3549 of file lwgeom_topo.c.

3550{
3551 LWT_ISO_NODE *node;
3552 uint64_t n = 1;
3553
3554 node = lwt_be_getNodeById( topo, &nid, &n, LWT_COL_NODE_CONTAINING_FACE );
3555 if (n == UINT64_MAX)
3556 {
3557 lwerror("Backend error: %s", lwt_be_lastErrorMessage(topo->be_iface));
3558 return 0;
3559 }
3560 if ( n < 1 ) {
3561 lwerror("SQL/MM Spatial exception - non-existent node");
3562 return 0;
3563 }
3564 if ( node->containing_face == -1 )
3565 {
3566 lwfree(node);
3567 lwerror("SQL/MM Spatial exception - not isolated node");
3568 return 0;
3569 }
3570
3571 return node;
3572}
void lwfree(void *mem)
Definition lwutil.c:242
#define LWT_COL_NODE_CONTAINING_FACE
void lwerror(const char *fmt,...)
Write a notice out to the error handler.
Definition lwutil.c:190
const char * lwt_be_lastErrorMessage(const LWT_BE_IFACE *be)
LWT_ISO_NODE * lwt_be_getNodeById(LWT_TOPOLOGY *topo, const LWT_ELEMID *ids, uint64_t *numelems, int fields)
LWT_ELEMID containing_face
const LWT_BE_IFACE * be_iface

References LWT_TOPOLOGY_T::be_iface, LWT_ISO_NODE::containing_face, lwerror(), lwfree(), lwt_be_getNodeById(), lwt_be_lastErrorMessage(), and LWT_COL_NODE_CONTAINING_FACE.

Referenced by lwt_MoveIsoNode(), and lwt_RemoveIsoNode().

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