Wildmeshing Toolkit
AttributeTransferConfiguration.hpp
Go to the documentation of this file.
1 #pragma once
2 
3 #include <memory>
4 #include <vector>
6 namespace wmtk {
7 
8 namespace attribute {
9 class MeshAttributeHandle;
10 }
11 namespace operations {
12 namespace internal {
13 class AttributeTransferConfigurationPimpl;
14 }
15 class BaseSplitAttributeStrategy;
16 class NewAttributeStrategy;
17 class AttributeTransferEdge;
18 class AttributeTransferStrategyBase;
19 
20 class EdgeCollapse;
21 class EdgeSplit;
22 
24 {
25 public:
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
41  void add_collapse_new(
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 
59 private:
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)
Definition: Accessor.hpp:6