Wildmeshing Toolkit
SplitAlternateFacetOptionData.hpp
Go to the documentation of this file.
1 #pragma once
2 #include <array>
3 #include <wmtk/autogen/Dart.hpp>
5 namespace wmtk {
6 class Mesh;
7 namespace autogen {
8 class SimplexDart;
9 }
10 } // namespace wmtk
13 {
14 public:
17  const Dart& input_tuple,
18  const std::array<int64_t, 2>& new_facet_indices);
19 
21 
22  // Stores {ear_global_id, M}
23  // where M is defined by:
24  // Let {G, O} be the input dart
25  // Let {Ge, Oe} be the left/0 or right/1 ear opposite
26  // Let R be such that Oe = R O
27  // We select an arbitrary dart that includes the right face
28  // {G,Oa} a dart that includes the ear face, and
29  // {Ge,Ob} a dart denoting a art on Ge whose D-1 subdart is equivalent
30  // Let M be Ob = M Oa.
31  // Note that for D-1 subdart encoded on G, M will return the equivalent D-1 subdart on Ge
32  //
33  std::array<int64_t, 2> new_facet_indices;
34 
35  // Let d be a dart where every D-simplex for D <the input mesh dimension
36  // lies in left/index=0 (equivalently right/index=1) ear then
37  // returns a dart such that those simplices are preserved using the other face
38  //
39  // This is given by the definition of alts and applying
40  // Let {G, Od} be d
41  // We compute {G, M Od}
42  //
43  int64_t new_gid(PrimitiveType primitive_type, int8_t index) const;
44 
45 
46 private:
47  // returns the indices of the ear boundary simplices
48  const std::array<int8_t, 2>& boundary_indices(PrimitiveType pt) const;
49 };
50 } // namespace wmtk::operations::internal
int64_t new_gid(PrimitiveType primitive_type, int8_t index) const
SplitAlternateFacetOptionData(const Dart &input_tuple, const std::array< int64_t, 2 > &new_facet_indices)
const std::array< int8_t, 2 > & boundary_indices(PrimitiveType pt) const
Definition: Accessor.hpp:6