20 array[edges[i][0]] =
true;
21 array[edges[i][1]] =
true;
29 const int verts_or_edges_num,
34 array.as_mutable_span().fill_indices(corner_verts_or_edges.
slice(faces[i]),
true);
63 const int2 edge = edges[i];
64 return vert_selection[edge[0]] && vert_selection[edge[1]];
76 return std::all_of(indices.begin(), indices.end(), [&](
const int i) {
77 return vert_or_edge_selection[i];
constexpr Span slice(int64_t start, int64_t size) const
static IndexMask from_predicate(const IndexMask &universe, GrainSize grain_size, IndexMaskMemory &memory, Fn &&predicate)
void foreach_index_optimized(Fn &&fn) const
static IndexMask from_bools(Span< bool > bools, IndexMaskMemory &memory)
void foreach_index(Fn &&fn) const
static IndexMask mapped_corner_selection_from_face(const OffsetIndices< int > faces, const IndexMask &face_mask, const Span< int > corner_verts_or_edges, const int verts_or_edges_num, IndexMaskMemory &memory)
IndexMask edge_selection_from_face(OffsetIndices< int > faces, const IndexMask &face_mask, Span< int > corner_edges, int edges_num, IndexMaskMemory &memory)
IndexMask edge_selection_from_vert(Span< int2 > edges, Span< bool > vert_selection, IndexMaskMemory &memory)
IndexMask face_selection_from_edge(OffsetIndices< int > faces, Span< int > corner_edges, Span< bool > edge_mask, IndexMaskMemory &memory)
static IndexMask face_selection_from_mapped_corner(const OffsetIndices< int > faces, const Span< int > corner_verts_or_edges, const Span< bool > vert_or_edge_selection, IndexMaskMemory &memory)
IndexMask vert_selection_from_face(OffsetIndices< int > faces, const IndexMask &face_mask, Span< int > corner_verts, int verts_num, IndexMaskMemory &memory)
IndexMask face_selection_from_vert(OffsetIndices< int > faces, Span< int > corner_verts, Span< bool > vert_selection, IndexMaskMemory &memory)
IndexMask vert_selection_from_edge(Span< int2 > edges, const IndexMask &edge_mask, int verts_num, IndexMaskMemory &memory)