10class MultiMeshManager;
12template <
typename Derived>
15template <
typename T,
typename MeshType,
typename AttributeType,
int Dim>
25 template <
typename Derived>
27 template <
typename T,
typename MeshType,
typename AttributeType,
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.
An Accessor 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)