void disconnectEdgeFromCluster_ ( int edge , int cluster ) { int next = getNextEdge ( edge , cluster ) ; assert ( getPrevEdge ( next , cluster ) == edge ) ; int prev = getPrevEdge ( edge , cluster ) ; assert ( getNextEdge ( prev , cluster ) == edge ) ; int first_edge = getClusterFirstEdge ( cluster ) ; if ( next != edge ) { setNextEdge_ ( prev , cluster , next ) ; setPrevEdge_ ( next , cluster , prev ) ; if ( first_edge == edge ) setClusterFirstEdge_ ( cluster , next ) ; } else setClusterFirstEdge_ ( cluster , - 1 ) ; }
Disconnects the edge from a cluster it is connected to .