Wildmeshing Toolkit
SplitNewAttributeTopoInfo.hpp
Go to the documentation of this file.
1 
2 #pragma once
4 #include "EdgeOperationData.hpp"
5 
8 {
9 public:
11 
12  std::vector<std::array<Tuple, 2>> input_ear_simplices(
13  const ReturnVariant& ret_data,
14  const Tuple& input_tuple,
15  PrimitiveType pt) const final override;
16 
17  // the simplices at the boundary of the pairs of simplices that were split
18  // vertex should return 0
19  // edge should return 2
20  std::vector<Tuple> output_rib_simplices(
21  const ReturnVariant& ret_data,
22  const Tuple& output_tuple,
23  PrimitiveType pt) const final override;
24 
25 
26  // the sipmlices that were split from one simplex above
27  // vertex should return 1
28  std::vector<std::array<Tuple, 2>> output_split_simplices(
29  const ReturnVariant& ret_data,
30  const Tuple& output_tuple,
31  PrimitiveType pt) const final override;
32 
33  // the simplices that were split in half
34  // vertex should return 0
35  // edge should return 1 (the input edge)
36  std::vector<Tuple> input_split_simplices(
37  const ReturnVariant& ret_data,
38  const Tuple& input_tuple,
39  PrimitiveType pt) const final override;
40 
41 
42  std::vector<std::array<int64_t, 2>> output_duplicated_free_simplices(
43  const ReturnVariant& ret_data,
44  PrimitiveType pt) const final override;
45 
46 private:
47  std::vector<std::array<Tuple, 2>> input_ear_simplices(
48  const EdgeOperationData& ret_data,
49  const Tuple& input_tuple,
50  PrimitiveType pt) const;
51 
52  // the simplices at the boundary of the pairs of simplices that were split
53  // vertex should return 0
54  // edge should return 2
55  std::vector<Tuple> output_rib_simplices(
56  const EdgeOperationData& ret_data,
57  const Tuple& output_tuple,
58  PrimitiveType pt) const;
59 
60 
61  // the sipmlices that were split from one simplex above
62  // vertex should return 1
63  std::vector<std::array<Tuple, 2>> output_split_simplices(
64  const EdgeOperationData& ret_data,
65  const Tuple& output_tuple,
66  PrimitiveType pt) const;
67 
68  // the simplices that were split in half
69  // vertex should return 0
70  // edge should return 1 (the input edge)
71  std::vector<Tuple> input_split_simplices(
72  const EdgeOperationData& ret_data,
73  const Tuple& input_tuple,
74  PrimitiveType pt) const;
75  std::vector<std::array<int64_t, 2>> output_duplicated_free_simplices(
76  const EdgeOperationData& ret_data,
77  PrimitiveType pt) const;
78 
80 };
81 } // namespace wmtk::operations::tet_mesh
std::vector< std::array< int64_t, 2 > > output_duplicated_free_simplices(const ReturnVariant &ret_data, PrimitiveType pt) const final override
std::vector< std::array< Tuple, 2 > > output_split_simplices(const ReturnVariant &ret_data, const Tuple &output_tuple, PrimitiveType pt) const final override
std::vector< Tuple > input_split_simplices(const ReturnVariant &ret_data, const Tuple &input_tuple, PrimitiveType pt) const final override
std::vector< std::array< Tuple, 2 > > input_ear_simplices(const ReturnVariant &ret_data, const Tuple &input_tuple, PrimitiveType pt) const final override
std::vector< Tuple > output_rib_simplices(const ReturnVariant &ret_data, const Tuple &output_tuple, PrimitiveType pt) const final override