Wildmeshing Toolkit
Loading...
Searching...
No Matches
AttributeTransferConfiguration.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <memory>
4#include <vector>
6namespace wmtk {
7
8namespace attribute {
9class MeshAttributeHandle;
10}
11namespace operations {
12namespace internal {
13class AttributeTransferConfigurationPimpl;
14}
15class BaseSplitAttributeStrategy;
16class NewAttributeStrategy;
17class AttributeTransferEdge;
18class AttributeTransferStrategyBase;
19
20class EdgeCollapse;
21class EdgeSplit;
22
24{
25public:
28
29 void add(const AttributeTransferEdge&);
30
31
32 // convenience for creating split starting/new edges
33 void add_split_new(
34 const attribute::MeshAttributeHandle& attribute,
39
40 // convenience for creating collapse starting/new edges
42 const attribute::MeshAttributeHandle& attribute,
45
46
47 std::vector<std::shared_ptr<const AttributeTransferEdge>> linearized_strategies() const;
48 std::vector<std::shared_ptr<const NewAttributeStrategy>> linearized_new_strategies() const;
49 std::vector<std::shared_ptr<const AttributeTransferStrategyBase>>
51
52
54 void apply(EdgeSplit& split, bool clear = false) const;
56 void apply(EdgeCollapse& split, bool clear = false) const;
57
58
59private:
60 std::unique_ptr<internal::AttributeTransferConfigurationPimpl> m_impl;
61};
62} // namespace operations
63} // namespace wmtk
std::unique_ptr< internal::AttributeTransferConfigurationPimpl > m_impl
void add_split_new(const attribute::MeshAttributeHandle &attribute, const wmtk::operations::SplitBasicStrategy &spine=wmtk::operations::SplitBasicStrategy::Default, const wmtk::operations::SplitRibBasicStrategy &rib=wmtk::operations::SplitRibBasicStrategy::Default)
std::vector< std::shared_ptr< const AttributeTransferStrategyBase > > linearized_transfer_strategies() const
std::vector< std::shared_ptr< const AttributeTransferEdge > > linearized_strategies() const
void apply(EdgeSplit &split, bool clear=false) const
std::vector< std::shared_ptr< const NewAttributeStrategy > > linearized_new_strategies() const
void add_collapse_new(const attribute::MeshAttributeHandle &attribute, const wmtk::operations::CollapseBasicStrategy &strategy=wmtk::operations::CollapseBasicStrategy::Default)