Add parallel version of neighbors index creation, make it default

This commit is contained in:
tamasmeszaros 2021-06-04 14:11:39 +02:00
parent b4d540ec4c
commit 97529ff6b7
6 changed files with 112 additions and 116 deletions

View file

@ -142,6 +142,11 @@ private:
std::vector<Vec3i> create_face_neighbors_index(const indexed_triangle_set &its);
std::vector<Vec3i> create_face_neighbors_index(const indexed_triangle_set &its, std::function<void()> throw_on_cancel_callback);
// Create index that gives neighbor faces for each face. Ignores face orientations.
// TODO: naming...
std::vector<Vec3i> its_create_neighbors_index(const indexed_triangle_set &its);
std::vector<Vec3i> its_create_neighbors_index_par(const indexed_triangle_set &its);
// After applying a transformation with negative determinant, flip the faces to keep the transformed mesh volume positive.
void its_flip_triangles(indexed_triangle_set &its);
@ -156,11 +161,6 @@ int its_remove_degenerate_faces(indexed_triangle_set &its, bool shrink_to_fit =
// Remove vertices, which none of the faces references. Return number of freed vertices.
int its_compactify_vertices(indexed_triangle_set &its, bool shrink_to_fit = true);
using FaceNeighborIndex = std::vector< std::array<size_t, 3> >;
// Create index that gives neighbor faces for each face. Ignores face orientations.
std::vector<Vec3i> its_create_neighbors_index(const indexed_triangle_set &its);
std::vector<indexed_triangle_set> its_split(const indexed_triangle_set &its);
bool its_is_splittable(const indexed_triangle_set &its);