9 template <
size_t N,
typename MeshType,
typename... AttributeType>
13 using Type = std::tuple<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>
81 template <
typename MeshType,
typename... AttrType>
84 template <typename FirstAcc, typename MeshType, int FirstDim, typename... AccTypes, int... Dims>
88 ->
CompoundAccessor<
sizeof...(AccTypes) + 1, MeshType, FirstAcc, AccTypes...>;
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
CompoundAccessor(MeshType &m, const TypedAttributeHandle< AttributeType > &... handle)
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
CompoundAccessor(MeshType &m, const TypedAttributeHandle< AttrType > &... handle) -> CompoundAccessor< sizeof...(AttrType), MeshType, AttrType... >