Wildmeshing Toolkit
Loading...
Searching...
No Matches
local_switch_tuple.hxx
Go to the documentation of this file.
1#pragma once
2#include <cassert>
3#include <stdexcept>
8
11{
12 const int64_t global_cid = tuple.global_cid();
13 switch (pt) {
15 return Tuple(
16 1 - tuple.local_vid(),
17 tuple.local_eid(),
18 tuple.local_fid(),
19 tuple.global_cid());
20
24 default: assert(false); // "Tuple switch: Invalid primitive type"
25 }
26 return Tuple();
27}
28
29inline Tuple local_switch_tuple(const Tuple& t, int8_t valid_tuple_index)
30{
31 int8_t input_index = valid_index_from_tuple(t);
32 const int8_t product_result = auto_valid_switch_product_table[input_index][valid_tuple_index];
33 return tuple_from_valid_index(t.global_cid(), product_result);
34}
35
36namespace internal {
45} // namespace internal
46} // namespace wmtk::autogen::edge_mesh
The Tuple is the basic navigation tool in our mesh data structure.
Definition Tuple.hpp:19
int8_t local_vid() const
Definition Tuple.hxx:52
int8_t local_fid() const
Definition Tuple.hxx:62
int8_t local_eid() const
Definition Tuple.hxx:57
int64_t global_cid() const
Definition Tuple.hxx:47
int8_t switch_primitive_to_valid_tuple_index(wmtk::PrimitiveType pt)
Tuple local_switch_tuple(const Tuple &t, PrimitiveType pt)
const int8_t auto_valid_switch_product_table[2][2]
Tuple tuple_from_valid_index(int64_t global_cid, int8_t valid_tuple_index)
int8_t valid_index_from_tuple(const Tuple &t)
const int8_t auto_valid_tuple_switch_indices[3]
constexpr int8_t get_primitive_type_id(PrimitiveType t)
Get a unique integer id corresponding to each primitive type.