9template <
typename MeshType,
int Dim>
11 : m_base_accessor(m, handle)
12 , m_dimension(m_base_accessor.dimension() / (sizeof(
Tuple) / sizeof(int64_t)))
14template <
typename MeshType,
int Dim>
20template <
typename MeshType,
int Dim>
25 static_assert(Dim == Eigen::Dynamic || Dim2 == Eigen::Dynamic || Dim == Dim2);
28template <
typename MeshType,
int Dim>
32 auto base_map = m_base_accessor.template const_vector_attribute<D>(t);
34 const int64_t* int_data = base_map.data();
35 const Tuple* data =
reinterpret_cast<const Tuple*
>(int_data);
39template <
typename MeshType,
int Dim>
43 auto base_map = m_base_accessor.template vector_attribute<D>(t);
44 int64_t* int_data = base_map.data();
45 Tuple* data =
reinterpret_cast<Tuple*
>(int_data);
49template <
typename MeshType,
int Dim>
52 auto base_map = m_base_accessor.template vector_attribute<2>(t);
54 assert(m_dimension == 1);
55 return *
reinterpret_cast<Tuple*
>(base_map.data());
58template <
typename MeshType,
int Dim>
61 assert(m_dimension == 1);
62 auto base_map = m_base_accessor.template const_vector_attribute<2>(t);
63 return *
reinterpret_cast<const Tuple*
>(base_map.data());
The Tuple is the basic navigation tool in our mesh data structure.
A CachingAccessor that uses tuples for accessing attributes instead of indices.
const Tuple & const_scalar_attribute(const Tuple &t) const
internal::ConstMapResult< Tuple, D > ConstMapResult
TupleAccessor(MeshType &m, const TypedAttributeHandle< int64_t > &handle)
Tuple & scalar_attribute(const Tuple &t)
MapResult< D > vector_attribute(const Tuple &t)
ConstMapResult< D > const_vector_attribute(const Tuple &t) const
internal::MapResult< Tuple, D > MapResult
Handle that represents attributes for some mesh.