Wildmeshing Toolkit
Loading...
Searching...
No Matches
SplitNewAttributeTopoInfo.hpp
Go to the documentation of this file.
1#pragma once
2
4
5namespace wmtk::operations {
7{
8public:
10 using ReturnVariant = ReturnData::ReturnVariant;
11
12 virtual ~SplitNewAttributeTopoInfo() = default;
13
14 virtual std::vector<std::array<Tuple, 2>> input_ear_simplices(
15 const ReturnVariant& ret_data,
16 const Tuple& input_tuple,
17 PrimitiveType pt) const = 0;
18
19 // the simplices at the boundary of the pairs of simplices that were split
20 // vertex should return 0
21 // edge should return 2
22 virtual std::vector<Tuple> output_rib_simplices(
23 const ReturnVariant& ret_data,
24 const Tuple& output_tuple,
25 PrimitiveType pt) const = 0;
26
27
28 // the sipmlices that were split from one simplex above
29 // vertex should return 1
30 virtual std::vector<std::array<Tuple, 2>> output_split_simplices(
31 const ReturnVariant& ret_data,
32 const Tuple& output_tuple,
33 PrimitiveType pt) const = 0;
34
35 // the simplices that were split in half
36 // vertex should return 0
37 // edge should return 1 (the input edge)
38 virtual std::vector<Tuple> input_split_simplices(
39 const ReturnVariant& ret_data,
40 const Tuple& input_tuple,
41 PrimitiveType pt) const = 0;
42
43 virtual std::vector<std::array<int64_t, 2>> output_duplicated_free_simplices(
44 const ReturnVariant& ret_data,
45 PrimitiveType pt) const = 0;
46
49 // virtual std::vector<Tuple> output_modified_simplices(
50 // const ReturnVariant& ret_data,
51 // const PrimitiveType pt,
52 // const Tuple& output_tuple) const = 0;
53
54
60 // std::vector<Tuple> split_top_dimension_simplices(
61 // const ReturnVariant& ret_data,
62 // const Tuple& input_tuple) const;
63};
64} // namespace wmtk::operations
The Tuple is the basic navigation tool in our mesh data structure.
Definition Tuple.hpp:19
virtual std::vector< std::array< Tuple, 2 > > output_split_simplices(const ReturnVariant &ret_data, const Tuple &output_tuple, PrimitiveType pt) const =0
wmtk::multimesh::operations::SplitReturnData ReturnData
virtual std::vector< Tuple > output_rib_simplices(const ReturnVariant &ret_data, const Tuple &output_tuple, PrimitiveType pt) const =0
virtual std::vector< std::array< Tuple, 2 > > input_ear_simplices(const ReturnVariant &ret_data, const Tuple &input_tuple, PrimitiveType pt) const =0
virtual std::vector< std::array< int64_t, 2 > > output_duplicated_free_simplices(const ReturnVariant &ret_data, PrimitiveType pt) const =0
virtual std::vector< Tuple > input_split_simplices(const ReturnVariant &ret_data, const Tuple &input_tuple, PrimitiveType pt) const =0
wmtk::utils::metaprogramming::ReferenceWrappedFunctorReturnCacheCustomComparator< wmtk::operations::utils::MultiMeshEdgeSplitFunctor, wmtk::utils::metaprogramming::MeshVariantTraits, wmtk::simplex::utils::MeshSimplexComparator, simplex::NavigatableSimplex > SplitReturnData