| 28 | } |
| 29 | |
| 30 | size_t ShortEdgeRemoval::run(Float threshold) { |
| 31 | size_t num_collapsed = m_num_collapsed; |
| 32 | init(); |
| 33 | do { |
| 34 | num_collapsed = m_num_collapsed; |
| 35 | collapse(threshold); |
| 36 | update(); |
| 37 | if (num_collapsed == m_num_collapsed) break; |
| 38 | } while (get_num_faces() > 0 && min_edge_length() <= threshold); |
| 39 | return m_num_collapsed; |
| 40 | } |
| 41 | |
| 42 | MatrixFr ShortEdgeRemoval::get_vertices() const { |
| 43 | const size_t dim = get_dim(); |