private void	CleanEdges()
  {
    cEdge  e;	/* Primary index into edge list. */
    cEdge  t;	/* Temporary edge pointer. */
    
    /* Integrate the newface's into the data structure. */
    /* Check every edge. */
    e = elist.head;
    do {
      if ( e.newface != null ) { 
	if ( e.adjface[0].visible )
	    e.adjface[0] = e.newface; 
	else	e.adjface[1] = e.newface;
	e.newface = null;
      }
      e = e.next;
    } while ( e != elist.head );
    
    /* Delete any edges marked for deletion. */
    while ( elist.head != null && elist.head.delete ) { 
      e = elist.head;
      elist.Delete( e );
    }
    e = elist.head.next;
    do {
      if ( e.delete ) {
	t = e;
	e = e.next;
	elist.Delete( t );
      }
      else e = e.next;
    } while ( e != elist.head );
  }