Wildmeshing Toolkit
|
A FaceSwap (or a Swap 2-3) performs a swap a face sharing by two tets to an edge split the volume of the two tets into three new tets. More...
#include <TetFaceSwap.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 |
A FaceSwap (or a Swap 2-3) performs a swap a face sharing by two tets to an edge split the volume of the two tets into three new tets.
This is the reverse operation of a EdgeSwap 3-2.
FaceSwap executes two splits then two collapses.
FaceSwap cannot be performed on boundary faces.
0 ---------- 4 / \\ _- / / \ \ _- / / __\- \ /
/_– \ \ 3 1 ------— 2/ output: (4, 4-1, 4-1-3, 4-1-3-2)
Definition at line 37 of file TetFaceSwap.hpp.
wmtk::operations::composite::TetFaceSwap::TetFaceSwap | ( | Mesh & | m | ) |
Definition at line 5 of file TetFaceSwap.cpp.
|
inline |
Definition at line 45 of file TetFaceSwap.hpp.
References m_collapse.
|
overrideprotectedvirtual |
returns an empty vector in case of failure
Implements wmtk::operations::Operation.
Definition at line 11 of file TetFaceSwap.cpp.
References wmtk::Edge, wmtk::simplex::Simplex::edge(), m_collapse, m_split, wmtk::operations::Operation::mesh(), wmtk::PE, PF, PT, wmtk::PV, wmtk::Mesh::switch_tuples(), wmtk::Tetrahedron, wmtk::Triangle, wmtk::simplex::Simplex::tuple(), and wmtk::Vertex.
|
inlineoverridevirtual |
Implements wmtk::operations::Operation.
Definition at line 42 of file TetFaceSwap.hpp.
References wmtk::Triangle.
|
inline |
Definition at line 44 of file TetFaceSwap.hpp.
References m_split.
|
overrideprotectedvirtual |
Returns all simplices that will be potentially affected by the operation.
Implements wmtk::operations::Operation.
Definition at line 64 of file TetFaceSwap.cpp.
|
private |
Definition at line 54 of file TetFaceSwap.hpp.
Referenced by collapse(), and execute().
|
private |
Definition at line 53 of file TetFaceSwap.hpp.