9template <
size_t N,
typename MeshType,
typename...
AttributeType>
16 template <
typename FirstAcc,
int FirstDim,
typename... AccTypes,
int... Dims>
22 using ValueType = std::tuple<MapResult<AttributeType>...>;
26 template <
size_t... Ns>
29 return std::make_tuple(std::get<Ns>(
m_base_accessors).vector_attribute(t)...);
33 template <
size_t... Ns>
36 return std::make_tuple(std::get<Ns>(
m_base_accessors).const_vector_attribute(t)...);
40 return _const_value(t, std::make_integer_sequence<size_t, N>{});
43 template <
size_t Index>
44 const auto&
get()
const
48 template <
size_t Index>
56 template <
size_t Index>
81template <
typename MeshType,
typename... AttrType>
84template <
typename FirstAcc,
typename MeshType,
int FirstDim,
typename... AccTypes,
int... Dims>
88 ->
CompoundAccessor<
sizeof...(AccTypes) + 1, MeshType, FirstAcc, AccTypes...>;
The Tuple is the basic navigation tool in our mesh data structure.
A CachingAccessor that uses tuples for accessing attributes instead of indices.
Handle that represents attributes for some mesh.
PrimitiveType primitive_type() const
returns the primitive type of the Index'th type
std::tuple< ConstMapResult< AttributeType >... > ConstValueType
std::tuple< Accessor< AttributeType, MeshType >... > m_base_accessors
std::tuple< MapResult< AttributeType >... > ValueType
CompoundAccessor(const Accessor< FirstAcc, MeshType, FirstDim > &, const Accessor< AccTypes, MeshType, Dims > &...)
ValueType _value(const Tuple &t, std::integer_sequence< size_t, Ns... >)
ValueType value(const Tuple &t)
std::tuple< AttributeType... > Type
ConstValueType _const_value(const Tuple &t, std::integer_sequence< size_t, Ns... >) const
ConstValueType const_value(const Tuple &t) const
std::tuple< Accessor< AttributeType, MeshType >... > AccessorTuple