| 181 | } |
| 182 | |
| 183 | void InflatorEngine::remove_short_edges() { |
| 184 | ShortEdgeRemoval remover(m_vertices, m_faces); |
| 185 | remover.run(1e-3); |
| 186 | |
| 187 | m_vertices = remover.get_vertices(); |
| 188 | m_faces = remover.get_faces(); |
| 189 | |
| 190 | const size_t num_faces = m_faces.rows(); |
| 191 | VectorI face_indices = remover.get_face_indices(); |
| 192 | assert(face_indices.size() == num_faces); |
| 193 | VectorI face_sources(num_faces); |
| 194 | for (size_t i=0; i<num_faces; i++) { |
| 195 | face_sources[i] = m_face_sources(face_indices[i]); |
| 196 | } |
| 197 | m_face_sources = face_sources; |
| 198 | } |
| 199 | |
| 200 | void InflatorEngine::save_mesh(const std::string& filename, |
| 201 | const MatrixFr& vertices, const MatrixIr& faces, VectorF debug) { |
no test coverage detected