20 if (split_simplicies_first.empty())
return {};
21 assert(split_simplicies_first.size() == 1);
25 const Tuple& split_ret_first = split_simplicies_first.front().tuple();
26 const auto edge_input_for_second_split =
30 const auto split_simplicies_second =
m_split(edge_input_for_second_split);
31 if (split_simplicies_second.empty())
return {};
32 assert(split_simplicies_second.size() == 1);
35 const Tuple& split_ret_second = split_simplicies_second.front().tuple();
41 const Tuple& edge_tuple_input_for_second_collapse =
48 const auto collapse_simplicies_first =
m_collapse(edge_input_for_first_collapse);
49 if (collapse_simplicies_first.empty())
return {};
50 assert(collapse_simplicies_first.size() == 1);
53 const auto edge_input_for_second_collapse =
57 const auto collapse_simplicies_second =
m_collapse(edge_input_for_second_collapse);
58 if (collapse_simplicies_second.empty())
return {};
59 assert(collapse_simplicies_second.size() == 1);
Tuple switch_tuples(const Tuple &tuple, const ContainerType &op_sequence) const
const Mesh & mesh() const
std::vector< simplex::Simplex > unmodified_primitives(const simplex::Simplex &simplex) const override
Returns all simplices that will be potentially affected by the operation.
std::vector< simplex::Simplex > execute(const simplex::Simplex &simplex) override
returns an empty vector in case of failure
const Tuple & tuple() const
static Simplex edge(const Mesh &m, const Tuple &t)
constexpr wmtk::PrimitiveType PT
constexpr wmtk::PrimitiveType PF
constexpr PrimitiveType PV
constexpr PrimitiveType PE