16 for (
size_t i = 0; i <
vertices.size(); ++i) {
58 return std::lexicographical_compare(
67 std::vector<int64_t> face_ids;
71 if (v != excluded_id) {
72 face_ids.emplace_back(v);
94 assert(f_v.size() <= s_v.size());
96 std::vector<int64_t> o_v;
97 o_v.reserve(s_v.size() - f_v.size());
104 std::inserter(o_v, o_v.begin()));
106 assert(o_v.size() == s_v.size() - f_v.size());
115 std::vector<RawSimplex>
faces;
155 default: assert(
false);
int64_t id(const Tuple &tuple, PrimitiveType type) const
return the global id of the Tuple of the given dimension
virtual bool is_valid(const Tuple &tuple) const
check validity of tuple including its hash
A meshless implementation of the simplex that just stores an array of ids.
std::vector< int64_t > m_vertices
bool operator==(const RawSimplex &o) const
RawSimplex opposite_face(const int64_t excluded_id)
Get the face opposite to the given vertex.
RawSimplexCollection faces()
Get all faces of the simplex.
int64_t dimension() const
bool operator<(const RawSimplex &o) const
const Tuple & tuple() const
std::vector< Tuple > vertices(const Mesh &m, const Simplex &simplex)
std::vector< Tuple > faces_single_dimension_tuples(const Mesh &mesh, const Simplex &simplex, const PrimitiveType face_type)