Wildmeshing Toolkit
|
Performs an edge swap, implemented as a combination of swap and collapse. More...
#include <TriEdgeSwap.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 |
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.
There are no explicit checks for valence. However, the collapse checks implicitly for validity of the swap. The swap will be not performed if the collapse does not fulfill the link condition.
The edge swap cannot be performed on boundary edges.
input: / \ / \ / f \ X—>—. \ / \ / \ / output: /|\ / | \ / | \ . f ^ . \ | / \ | / |/ X
Definition at line 40 of file TriEdgeSwap.hpp.
wmtk::operations::composite::TriEdgeSwap::TriEdgeSwap | ( | Mesh & | m | ) |
Definition at line 7 of file TriEdgeSwap.cpp.
|
inline |
Definition at line 48 of file TriEdgeSwap.hpp.
References m_collapse.
|
overrideprotectedvirtual |
returns an empty vector in case of failure
Implements wmtk::operations::Operation.
Definition at line 14 of file TriEdgeSwap.cpp.
References wmtk::simplex::Simplex::edge(), m_collapse, m_split, wmtk::operations::Operation::mesh(), wmtk::operations::EdgeCollapse::primitive_type(), and wmtk::Mesh::switch_tuples().
|
inlineoverridevirtual |
Implements wmtk::operations::Operation.
Definition at line 45 of file TriEdgeSwap.hpp.
References wmtk::Edge.
|
inline |
Definition at line 47 of file TriEdgeSwap.hpp.
References m_split.
|
overrideprotectedvirtual |
Returns all simplices that will be potentially affected by the operation.
Implements wmtk::operations::Operation.
Definition at line 72 of file TriEdgeSwap.cpp.
|
private |
Definition at line 57 of file TriEdgeSwap.hpp.
Referenced by collapse(), and execute().
|
private |
Definition at line 56 of file TriEdgeSwap.hpp.