10class MultiMeshManager;
12template <
typename Derived>
15template <
typename T,
typename MeshType,
int Dim>
25 template <
typename Derived>
27 template <
typename T,
typename MeshType,
int Dim>
80#if defined(WMTK_ENABLE_SIMPLEX_ID_CACHING)
A Curiously Recurring Template Pattern shim to enable generic specialization of functions.
The Tuple is the basic navigation tool in our mesh data structure.
A CachingAccessor that uses tuples for accessing attributes instead of indices.
Implementation details for how the Mesh class implements multiple meshes.
static Simplex face(const Mesh &m, const Tuple &t)
Simplex(Simplex &&)=default
Simplex & operator=(const Simplex &)=default
Simplex(const Simplex &)=default
PrimitiveType m_primitive_type
static Simplex tetrahedron(const Tuple &t)
static Simplex vertex(const Tuple &t)
Simplex(const PrimitiveType &ptype, const Tuple &t)
static Simplex edge(const Mesh &m, const Tuple &t)
static Simplex tetrahedron(const Mesh &m, const Tuple &t)
static Simplex vertex(const Mesh &m, const Tuple &t)
static Simplex edge(const Tuple &t)
Simplex & operator=(Simplex &&)=default
const Tuple & tuple() const
PrimitiveType primitive_type() const
int64_t dimension() const
static Simplex face(const Tuple &t)
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)
constexpr bool operator==(PrimitiveType a, PrimitiveType b)
constexpr int8_t get_primitive_type_id(PrimitiveType t)
Get a unique integer id corresponding to each primitive type.
constexpr bool operator<(PrimitiveType a, PrimitiveType b)