25 const std::vector<Vertex>&
vertices()
const;
26 const std::vector<Edge>& edges()
const;
27 const std::vector<Face>& faces()
const;
28 const std::vector<Tet>& tets()
const;
30 void reserve_vertices(
size_t new_capacity) { m_v.reserve(new_capacity); }
31 void reserve_edges(
size_t new_capacity) { m_e.reserve(new_capacity); }
32 void reserve_faces(
size_t new_capacity) { m_f.reserve(new_capacity); }
33 void reserve_tets(
size_t new_capacity) { m_t.reserve(new_capacity); }
41 void add(
const Edge& s) { m_e.emplace_back(s); }
42 void add(
const Face& s) { m_f.emplace_back(s); }
43 void add(
const Tet& s) { m_t.emplace_back(s); }
65 void add(
const RawSimplexCollection& simplex_collection);
79 assert(std::is_sorted(m_v.begin(), m_v.end()));
80 return std::binary_search(m_v.begin(), m_v.end(), simplex);
84 assert(std::is_sorted(m_e.begin(), m_e.end()));
85 return std::binary_search(m_e.begin(), m_e.end(), simplex);
87 bool contains(
const Face& simplex)
const
89 assert(std::is_sorted(m_f.begin(), m_f.end()));
90 return std::binary_search(m_f.begin(), m_f.end(), simplex);
92 bool contains(
const Tet& simplex)
const
94 assert(std::is_sorted(m_t.begin(), m_t.end()));
95 return std::binary_search(m_t.begin(), m_t.end(), simplex);
104 const RawSimplexCollection& collection_a,
105 const RawSimplexCollection& collection_b);
113 const RawSimplexCollection& collection_a,
114 const RawSimplexCollection& collection_b);
122 const RawSimplexCollection& collection_a,
123 const RawSimplexCollection& collection_b);
131 std::vector<Face> faces_with_edge(
const Edge& e)
const;
135 bool operator==(
const RawSimplexCollection& that)
const;
136 bool operator!=(
const RawSimplexCollection& that)
const;
139 std::vector<Vertex> m_v;
140 std::vector<Edge> m_e;
141 std::vector<Face> m_f;
142 std::vector<Tet> m_t;
static bool are_simplex_collections_equal(const RawSimplexCollection &collection_a, const RawSimplexCollection &collection_b)
Check if the two simplex collections are equal.
Definition RawSimplexCollection.cpp:92
static RawSimplexCollection get_intersection(const RawSimplexCollection &collection_a, const RawSimplexCollection &collection_b)
Get intersection of two simplex collections.
Definition RawSimplexCollection.cpp:70
static RawSimplexCollection get_union(const RawSimplexCollection &collection_a, const RawSimplexCollection &collection_b)
Get union of two simplex collections.
Definition RawSimplexCollection.cpp:48