Wildmeshing Toolkit
|
Performs an edge swap, implemented as a combination of swap and collapse. More...
#include <TetEdgeSwap.hpp>
Protected Member Functions | |
std::vector< simplex::Simplex > | unmodified_primitives (const simplex::Simplex &simplex) const override |
Returns all simplices that will be potentially affected by the operation. More... | |
std::vector< simplex::Simplex > | execute (const simplex::Simplex &simplex) override |
returns an empty vector in case of failure More... | |
Protected Member Functions inherited from wmtk::operations::Operation | |
virtual bool | before (const simplex::Simplex &simplex) const |
virtual bool | after (const std::vector< simplex::Simplex > &unmods, const std::vector< simplex::Simplex > &mods) const |
void | apply_attribute_transfer (const std::vector< simplex::Simplex > &direct_mods) |
Private Attributes | |
EdgeSplit | m_split |
EdgeCollapse | m_collapse |
int64_t | m_collapse_index |
Additional Inherited Members | |
Protected Attributes inherited from wmtk::operations::Operation | |
std::function< double(const simplex::Simplex &)> | m_priority = nullptr |
invariants::InvariantCollection | m_invariants |
std::vector< std::shared_ptr< const operations::AttributeTransferStrategyBase > > | m_attr_transfer_strategies |
Performs an edge swap, implemented as a combination of swap and collapse.
When swapping an edge, one first split the edge (that splits all the tets incident to that edge), then collapse the edge with index collapse_index.)
Edge swap cannot be performed on boundary edges.
Definition at line 18 of file TetEdgeSwap.hpp.
wmtk::operations::composite::TetEdgeSwap::TetEdgeSwap | ( | Mesh & | m, |
int64_t | collapse_index = 0 |
||
) |
Definition at line 10 of file TetEdgeSwap.cpp.
|
inline |
Definition at line 26 of file TetEdgeSwap.hpp.
References m_collapse.
|
overrideprotectedvirtual |
returns an empty vector in case of failure
Implements wmtk::operations::Operation.
Definition at line 17 of file TetEdgeSwap.cpp.
References wmtk::simplex::closed_star(), wmtk::Edge, wmtk::simplex::Simplex::edge(), wmtk::simplex::Simplex::face(), wmtk::simplex::SimplexCollection::get_intersection(), wmtk::get_primitive_type_id(), wmtk::simplex::utils::SimplexComparisons::less(), m_collapse, m_collapse_index, m_split, wmtk::operations::Operation::mesh(), wmtk::simplex::open_star(), wmtk::operations::EdgeCollapse::primitive_type(), wmtk::Mesh::switch_tuples(), wmtk::Tetrahedron, wmtk::Triangle, and wmtk::simplex::Simplex::vertex().
|
inlineoverridevirtual |
Implements wmtk::operations::Operation.
Definition at line 23 of file TetEdgeSwap.hpp.
References wmtk::Edge.
|
inline |
Definition at line 25 of file TetEdgeSwap.hpp.
References m_split.
|
overrideprotectedvirtual |
Returns all simplices that will be potentially affected by the operation.
Implements wmtk::operations::Operation.
Definition at line 159 of file TetEdgeSwap.cpp.
|
private |
Definition at line 36 of file TetEdgeSwap.hpp.
Referenced by collapse(), and execute().
|
private |
Definition at line 37 of file TetEdgeSwap.hpp.
Referenced by execute().
|
private |
Definition at line 35 of file TetEdgeSwap.hpp.