Move an isolated node.
3840{
3842 int ret;
3843 int newPointFace;
3844
3846 if ( ! node ) return -1;
3847
3849 {
3851 lwerror(
"SQL/MM Spatial exception - coincident node");
3852 return -1;
3853 }
3854
3856 {
3858 lwerror(
"SQL/MM Spatial exception - edge crosses node.");
3859 return -1;
3860 }
3861
3862
3863
3865 if ( newPointFace == -1 ) {
3867 return -1;
3868 }
3870 {
3872 lwerror(
"Cannot move isolated node across faces");
3873 return -1;
3874 }
3875
3880 if ( ret == -1 ) {
3883 return -1;
3884 }
3885
3887 return 0;
3888}
#define LWT_COL_NODE_GEOM
#define PGTOPO_BE_ERROR()
void void lwerror(const char *fmt,...) __attribute__((format(printf
Write a notice out to the error handler.
LWT_ELEMID lwt_be_ExistsCoincidentNode(LWT_TOPOLOGY *topo, const LWPOINT *pt)
LWT_ELEMID lwt_be_ExistsEdgeIntersectingPoint(LWT_TOPOLOGY *topo, const LWPOINT *pt)
LWT_ELEMID lwt_GetFaceContainingPoint(LWT_TOPOLOGY *topo, const LWPOINT *pt)
Find the face-id of the face properly containing a given point.
static LWT_ISO_NODE * _lwt_GetIsoNode(LWT_TOPOLOGY *topo, LWT_ELEMID nid)
static int lwt_be_updateNodesById(LWT_TOPOLOGY *topo, const LWT_ISO_NODE *nodes, int numnodes, int upd_fields)
LWT_ELEMID containing_face