23#ifndef VCL_ALGORITHMS_MESH_SORT_H
24#define VCL_ALGORITHMS_MESH_SORT_H
26#include <vclib/misc/parallel.h>
27#include <vclib/space/complex/mesh_edge_util.h>
33template<FaceMeshConcept MeshType>
34std::vector<MeshEdgeUtil<MeshType>> fillAndSortMeshEdgeUtilVector(
36 bool includeFauxEdges =
true)
38 using FaceType = MeshType::FaceType;
40 std::vector<MeshEdgeUtil<MeshType>> vec;
43 for (
const FaceType& f : m.
faces())
44 n_edges += f.vertexNumber();
48 for (FaceType& f : m.
faces()) {
49 for (uint j = 0; j < f.vertexNumber(); ++j) {
50 if (includeFauxEdges || !f.edgeFaux(j)) {
51 vec.emplace_back(f, j);
57 std::sort(std::execution::par_unseq, vec.begin(), vec.end());
62template<FaceMeshConcept MeshType>
63std::vector<ConstMeshEdgeUtil<MeshType>> fillAndSortMeshEdgeUtilVector(
65 bool includeFauxEdges =
true)
67 using FaceType = MeshType::FaceType;
69 std::vector<ConstMeshEdgeUtil<MeshType>> vec;
72 for (
const FaceType& f : m.
faces())
73 n_edges += f.vertexNumber();
77 for (
const FaceType& f : m.
faces()) {
78 for (uint j = 0; j < f.vertexNumber(); ++j) {
79 if (includeFauxEdges || !f.edgeFaux(j)) {
80 vec.emplace_back(f, j);
86 std::sort(std::execution::par_unseq, vec.begin(), vec.end());
constexpr detail::FacesView faces
A view that allows to iterate overt the Face elements of an object.
Definition face.h:52