14#include <lagrange/SurfaceMesh.h>
15#include <lagrange/utils/function_ref.h>
16#include <lagrange/utils/invalid.h>
17#include <lagrange/utils/span.h>
34struct SeparateByFacetGroupsOptions
49 SeparateByFacetGroupsOptions() =
default;
50 SeparateByFacetGroupsOptions(
const SeparateByFacetGroupsOptions&) =
default;
51 SeparateByFacetGroupsOptions(SeparateByFacetGroupsOptions&&) =
default;
52 SeparateByFacetGroupsOptions& operator=(
const SeparateByFacetGroupsOptions&) =
default;
53 SeparateByFacetGroupsOptions& operator=(SeparateByFacetGroupsOptions&&) =
default;
81template <
typename Scalar,
typename Index>
83 const SurfaceMesh<Scalar, Index>& mesh,
86 const SeparateByFacetGroupsOptions& options = {});
103template <
typename Scalar,
typename Index>
125template <
typename Scalar,
typename Index>
A general purpose polygonal mesh class.
Definition SurfaceMesh.h:66
A lightweight non-owning reference to a callable.
Definition function_ref.h:47
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
::nonstd::span< T, Extent > span
A bounds-safe view for sequences of objects.
Definition span.h:27
Main namespace for Lagrange.
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