8 std::tuple<std::vector<std::decay_t<typename attribute::ConstMapResult<T>>>, int64_t>
14 const std::optional<wmtk::Tuple>& vertex_marker)
16 std::vector<Tuple>
faces;
32 std::vector<std::decay_t<typename attribute::ConstMapResult<T>>> ret;
34 int64_t vertex_marker_index = -1;
39 std::back_inserter(ret),
40 [&](
const Tuple& face_tuple) {
41 auto value = accessor.const_vector_attribute(face_tuple);
47 if (vertex_marker.has_value()) {
48 const auto& variable_tuple = vertex_marker.value();
49 for (
size_t i = 0; i <
faces.
size(); ++i) {
55 vertex_marker_index = i;
59 assert(vertex_marker_index >= 0);
61 return {ret, vertex_marker_index};
64 template std::tuple<std::vector<std::decay_t<typename attribute::ConstMapResult<char>>>, int64_t>
70 const std::optional<wmtk::Tuple>& vertex_marker);
72 template std::tuple<std::vector<std::decay_t<typename attribute::ConstMapResult<int64_t>>>, int64_t>
78 const std::optional<wmtk::Tuple>& vertex_marker);
80 template std::tuple<std::vector<std::decay_t<typename attribute::ConstMapResult<double>>>, int64_t>
86 const std::optional<wmtk::Tuple>& vertex_marker);
89 tuple<std::vector<std::decay_t<typename attribute::ConstMapResult<Rational>>>, int64_t>
95 const std::optional<wmtk::Tuple>& vertex_marker);
virtual std::vector< Tuple > orient_vertices(const Tuple &t) const =0
virtual bool is_ccw(const Tuple &tuple) const =0
TODO this needs dimension?
virtual Tuple switch_tuple(const Tuple &tuple, PrimitiveType type) const =0
switch the orientation of the Tuple of the given dimension
A CachingAccessor that uses tuples for accessing attributes instead of indices.
const Tuple & tuple() const
PrimitiveType primitive_type() const
static bool equal(const Mesh &m, const Simplex &s0, const Simplex &s1)
std::tuple< std::vector< std::decay_t< typename attribute::ConstMapResult< T > > >, int64_t > get_simplex_attributes(const Mesh &mesh, const wmtk::attribute::Accessor< T > &accessor, const PrimitiveType primitive_type, const simplex::Simplex &simplex_in, const std::optional< wmtk::Tuple > &vertex_marker)
get attributes from a simplex
std::vector< Tuple > faces_single_dimension_tuples(const Mesh &mesh, const Simplex &simplex, const PrimitiveType face_type)
SimplexCollection faces(const Mesh &mesh, const Simplex &simplex, const bool sort_and_clean)
Returns all faces of a simplex.