24 const auto split_simplicies =
m_split(simplex);
25 if (split_simplicies.empty())
return {};
26 assert(split_simplicies.size() == 1);
39 split_simplicies.front().tuple(),
40 {PrimitiveType::Edge, PrimitiveType::Triangle});
49 const auto collapse_simplicies =
51 if (collapse_simplicies.empty())
return {};
52 assert(collapse_simplicies.size() == 1);
65 collapse_simplicies.front().tuple(),
66 {PrimitiveType::Edge, PrimitiveType::Vertex});
Tuple switch_tuples(const Tuple &tuple, const ContainerType &op_sequence) const
PrimitiveType primitive_type() const override
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
static Simplex edge(const Mesh &m, const Tuple &t)