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