Wildmeshing Toolkit
Loading...
Searching...
No Matches
EdgeSplit.hpp
Go to the documentation of this file.
1#pragma once
2
3#include "Operation.hpp"
4
6
7namespace wmtk::operations {
8class EdgeSplit : public Operation
9{
10public:
11 EdgeSplit(Mesh& m);
12
14
15 static std::pair<Tuple, Tuple> new_spine_edges(const Mesh& mesh, const Tuple& new_vertex);
16
17
18 std::shared_ptr<const operations::BaseSplitNewAttributeStrategy> get_new_attribute_strategy(
19 const attribute::MeshAttributeHandle& attribute) const;
20
22 const attribute::MeshAttributeHandle& attribute,
23 const std::shared_ptr<const operations::BaseSplitNewAttributeStrategy>& other);
24
26 const attribute::MeshAttributeHandle& attribute,
31
35 std::vector<simplex::Simplex> execute(const simplex::Simplex& simplex) override;
36 std::vector<simplex::Simplex> unmodified_primitives(
37 const simplex::Simplex& simplex) const override;
38
39
41
42 // checks through attribute new for throws, prints to the logger if so
44
45private:
46 std::vector<std::shared_ptr<const operations::BaseSplitNewAttributeStrategy>>
48};
49
50} // namespace wmtk::operations
The Tuple is the basic navigation tool in our mesh data structure.
Definition Tuple.hpp:19
PrimitiveType primitive_type() const override
Definition EdgeSplit.hpp:13
std::vector< simplex::Simplex > unmodified_primitives(const simplex::Simplex &simplex) const override
Returns all simplices that will be potentially affected by the operation.
Definition EdgeSplit.cpp:63
std::vector< std::shared_ptr< const operations::BaseSplitNewAttributeStrategy > > m_new_attr_strategies
Definition EdgeSplit.hpp:47
bool attribute_new_all_configured() const
Definition EdgeSplit.cpp:17
void set_new_attribute_strategy(const attribute::MeshAttributeHandle &attribute, const std::shared_ptr< const operations::BaseSplitNewAttributeStrategy > &other)
Definition EdgeSplit.cpp:85
static std::pair< Tuple, Tuple > new_spine_edges(const Mesh &mesh, const Tuple &new_vertex)
std::vector< simplex::Simplex > execute(const simplex::Simplex &simplex) override
Definition EdgeSplit.cpp:56
std::shared_ptr< const operations::BaseSplitNewAttributeStrategy > get_new_attribute_strategy(const attribute::MeshAttributeHandle &attribute) const
Definition EdgeSplit.cpp:71
const Mesh & mesh() const
Definition Operation.hpp:45