14 namespace components::internal {
19 template <
typename T,
typename MeshType,
int Dim>
25 namespace operations {
28 class SplitAlternateFacetData;
29 class CollapseAlternateFacetData;
31 class EdgeOperationData;
35 class TupleCellLessThan;
38 class MultiMeshManager;
50 std::array<int8_t, 5>
m_pad = {{0, 0, 0, 0, 0}};
59 template <
typename T,
typename MeshType,
int Dim>
100 inline Tuple::Tuple(int8_t local_vid, int8_t local_eid, int8_t local_fid, int64_t global_cid)
101 : m_global_cid(global_cid)
102 , m_local_vid(local_vid)
103 , m_local_eid(local_eid)
104 , m_local_fid(local_fid)
bool is_null() const
Checks if a tuple is "null". This merely implies the global index is -1.
Tuple(const Tuple &other)=default
bool operator==(const Tuple &t) const
Tuple & operator=(const Tuple &other)=default
bool same_ids(const Tuple &t) const
Checks whether two tuples are equal, but ignores the hash.
bool operator<(const Tuple &t) const
bool operator!=(const Tuple &t) const
Tuple & operator=(Tuple &&other)=default
std::array< int8_t, 5 > m_pad
Tuple(Tuple &&other)=default
A CachingAccessor that uses tuples for accessing attributes instead of indices.
This class generates a multi-mesh from a mesh where the substructure is represented by a tag.
Implementation details for how the Mesh class implements multiple meshes.
Given a global id returns global ids.
std::pair< std::shared_ptr< Mesh >, std::shared_ptr< Mesh > > multimesh(const MultiMeshType &type, Mesh &parent, std::shared_ptr< Mesh > child, const attribute::MeshAttributeHandle parent_position_handle, const std::string &tag_name, const int64_t tag_value, const int64_t primitive)