14#include <lagrange/SurfaceMesh.h>
15#include <lagrange/utils/function_ref.h>
16#include <lagrange/utils/invalid.h>
17#include <lagrange/utils/span.h>
81template <
typename Scalar,
typename Index>
85 span<const Index> facet_group_indices,
86 const SeparateByFacetGroupsOptions& options = {});
103template <
typename Scalar,
typename Index>
106 span<const Index> facet_group_indices,
107 const SeparateByFacetGroupsOptions& options = {});
125template <
typename Scalar,
typename Index>
130 const SeparateByFacetGroupsOptions& options = {});
A general purpose polygonal mesh class.
Definition: SurfaceMesh.h:66
std::vector< SurfaceMesh< Scalar, Index > > separate_by_facet_groups(const SurfaceMesh< Scalar, Index > &mesh, size_t num_groups, span< const Index > facet_group_indices, const SeparateByFacetGroupsOptions &options={})
Extract a set of submeshes based on facet groups.
Definition: separate_by_facet_groups.cpp:29
function_ref(R(*)(Args...)) -> function_ref< R(Args...)>
Deduce function_ref type from a function pointer.
Main namespace for Lagrange.
Definition: AABBIGL.h:30
Option settings for separate_by_facet_groups.
Definition: separate_by_facet_groups.h:35
std::string_view source_facet_attr_name
The name of the output attribute holding source facet indices.
Definition: separate_by_facet_groups.h:44
bool map_attributes
Map all attributes over to submesh.
Definition: separate_by_facet_groups.h:47
SeparateByFacetGroupsOptions(const T &options)
Explicit conversion from other compatible option types.
Definition: separate_by_facet_groups.h:57
std::string_view source_vertex_attr_name
The name of the output attribute holding source vertex indices.
Definition: separate_by_facet_groups.h:39