longest edges are split first and shortest edges are collapsed first todo : allow edges incident to boundary to be collapsed