Wildmeshing Toolkit
Loading...
Searching...
No Matches
CollapseNewValueApplicator.hpp
Go to the documentation of this file.
2
3#include <wmtk/attribute/SmartAttributeHandle.hpp>
4
6
8{
9 using ReturnData = wmtk::multiesh::operations::CollapseReturnData;
10
11public:
13 const ReturnData& ret_data,
15 const std::array<Tuple, 2>& input_simplices,
16 const Tuple& output_simplex) const = 0;
18 const ReturnData& ret_data,
20 const std::vector<Tuple>& output_simplex) const;
21
22 virtual const Mesh& mesh() const = 0;
23
24private:
25 // the edge that was collapsed upon
26 Tuple collapsed_edge(const ReturnData& ret_data, const Tuple& input_tuple) const;
27
28
29 // the sipmlices that were merged together
30 std::vector<std::array<Tuple, 2>>
31 merged_simplices(const ReturnData& ret_data, const Tuple& input_tuple, PrimitiveType pt) const;
32
33 // the simplices that were created by merging simplices
34 std::vector<Tuple>
35 new_simplices(const ReturnData& ret_data, const Tuple& input_tuple, PrimitiveType pt) const;
36
37 // set of faces whose one ring were modified
38 // SHOULD be safe to resurrect to a previous state
39 std::vector<Tuple> output_modified_simplices(
40 const ReturnData& ret_data,
41 const Tuple& output_tuple,
42 const PrimitiveType pt) const;
43
44
45 // the top dimension that were removed in the operation
46 // not necessarily used, but defines a unique ordering for
47 // * input_ears
48 // * merged_edges
49 // that defines a correspondence between the two
51 const ReturnData& ret_data,
52 const Tuple& input_tuple) const;
53};
54template <typename T>
55
56SmartAttributeHandle<T>
57} // namespace wmtk::multimesh::attribute
The Tuple is the basic navigation tool in our mesh data structure.
Definition Tuple.hpp:19
Tuple collapsed_edge(const ReturnData &ret_data, const Tuple &input_tuple) const
wmtk::multiesh::operations::CollapseReturnData ReturnData
std::vector< Tuple > removed_top_dimension_simplices(const ReturnData &ret_data, const Tuple &input_tuple) const
virtual void update_neighboring_simplices(const ReturnData &ret_data, PrimitiveType pt, const std::vector< Tuple > &output_simplex) const
std::vector< Tuple > output_modified_simplices(const ReturnData &ret_data, const Tuple &output_tuple, const PrimitiveType pt) const
std::vector< std::array< Tuple, 2 > > merged_simplices(const ReturnData &ret_data, const Tuple &input_tuple, PrimitiveType pt) const
std::vector< Tuple > new_simplices(const ReturnData &ret_data, const Tuple &input_tuple, PrimitiveType pt) const
virtual void update_merged_simplices(const ReturnData &ret_data, PrimitiveType pt, const std::array< Tuple, 2 > &input_simplices, const Tuple &output_simplex) const =0