Wildmeshing Toolkit
Loading...
Searching...
No Matches
SplitNewAttributeTopoInfo.hpp
Go to the documentation of this file.
1#pragma once
4
7{
8public:
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
45private:
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::edge_mesh
The Tuple is the basic navigation tool in our mesh data structure.
Definition Tuple.hpp:19
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 > > input_ear_simplices(const ReturnVariant &ret_data, const Tuple &input_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< Tuple > output_rib_simplices(const ReturnVariant &ret_data, const Tuple &output_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