19 , m_link_type(link_type)
21 , m_it_end(m_tdc_itrbl.end())
27 : m_container(container)
28 , m_it(container.m_tdc_itrbl, t)
44 logger().warn(
"Trying to retrieve simplices in the link that cannot exist!");
56 return step_depth_3();
60 m_t = navigate_to_link(*m_it);
81 const Mesh& mesh = m_container.m_mesh;
91 return m_container.m_mesh.top_cell_dimension() - 1 ==
97 m_t = navigate_to_link(*m_it);
100 const Mesh& mesh = m_container.m_mesh;
103 m_container.m_visited_link.is_visited(mesh.
get_id_simplex(m_t, link_type));
109 const Mesh& mesh = m_container.m_mesh;
111 auto& visited = m_container.m_visited_link;
117 while (!m_t.is_null()) {
118 for (; m_edge_counter < 3; ++m_edge_counter) {
128 m_t = navigate_to_link(*m_it);
132 m_t = navigate_to_link(*m_it);
143 const Mesh& mesh = m_container.m_mesh;
178 for (int8_t j = s; j > -1; --j) {
179 for (int8_t i = 0; i < m - s; ++i) {
Tuple switch_tuples(const Tuple &tuple, const ContainerType &op_sequence) const
int64_t top_cell_dimension() const
virtual Tuple switch_tuple(const Tuple &tuple, PrimitiveType type) const =0
switch the orientation of the Tuple of the given dimension
simplex::IdSimplex get_id_simplex(const Tuple &tuple, PrimitiveType pt) const
Retrieve the IdSimplex that is represented by the tuple and primitive type.
bool is_null() const
Checks if a tuple is "null". This merely implies the global index is -1.
bool operator!=(const Iterator &other) const
Iterator & step_depth_3()
Use breadth first search to find all d-simplices, and iterate through all cofaces in a d-simplex.
void init()
Depending on the depth, the iterator must be initialized differently.
Iterator(LinkSingleDimensionIterable &container, const Tuple &t=Tuple())
bool is_link_d1()
Check if coface type is the mesh's top simplex type.
LinkSingleDimensionIterable & m_container
int64_t depth()
Compute the depth from the mesh and the simplex type.
Tuple navigate_to_link(Tuple t)
This iterator internally uses TopDimensionCofacesIterable.
LinkSingleDimensionIterable(const Mesh &mesh, const Simplex &simplex, const PrimitiveType cofaces_type)
const PrimitiveType m_link_type
PrimitiveType primitive_type() const
constexpr PrimitiveType get_primitive_type_from_id(int8_t id)
Get the primitive type corresponding to its unique integer id.
constexpr int8_t get_primitive_type_id(PrimitiveType t)
Get a unique integer id corresponding to each primitive type.
spdlog::logger & logger()
Retrieves the current logger.