15#ifndef DRACO_COMPRESSION_MESH_TRAVERSER_TRAVERSER_BASE_H_
16#define DRACO_COMPRESSION_MESH_TRAVERSER_TRAVERSER_BASE_H_
26template <
class CornerTableT,
class TraversalObserverT>
38 is_face_visited_.assign(
corner_table->num_faces(),
false);
39 is_vertex_visited_.assign(corner_table_->num_vertices(),
false);
46 if (face_id == kInvalidFaceIndex) {
49 return is_face_visited_[face_id.value()];
54 if (corner_id == kInvalidCornerIndex) {
57 return is_face_visited_[corner_id.value() / 3];
61 is_face_visited_[face_id.value()] =
true;
64 return is_vertex_visited_[vert_id.value()];
67 is_vertex_visited_[vert_id.value()] =
true;
72 return traversal_observer_;
75 return traversal_observer_;
80 TraversalObserverT traversal_observer_;
81 std::vector<bool> is_face_visited_;
82 std::vector<bool> is_vertex_visited_;
Definition corner_table.h:53
const CornerTable * corner_table() const
Definition traverser_base.h:70
CornerTable CornerTable
Definition traverser_base.h:29
bool IsVertexVisited(VertexIndex vert_id) const
Definition traverser_base.h:63
const TraversalObserver & traversal_observer() const
Definition traverser_base.h:71
bool IsFaceVisited(FaceIndex face_id) const
Definition traverser_base.h:45
TraversalObserverT & traversal_observer()
Definition traverser_base.h:74
TraversalObserver TraversalObserver
Definition traverser_base.h:30
void MarkVertexVisited(VertexIndex vert_id)
Definition traverser_base.h:66
void MarkFaceVisited(FaceIndex face_id)
Definition traverser_base.h:60
const CornerTable & GetCornerTable() const
Definition traverser_base.h:43
virtual ~TraverserBase()=default
TraverserBase()
Definition traverser_base.h:32
bool IsFaceVisited(CornerIndex corner_id) const
Definition traverser_base.h:53
virtual void Init(const CornerTable *corner_table, TraversalObserver traversal_observer)
Definition traverser_base.h:35
Definition attribute_octahedron_transform.cc:21
VertexIndex VertexIndex
Definition mesh_edgebreaker_encoder_impl.cc:37
CornerIndex CornerIndex
Definition mesh_edgebreaker_encoder_impl.cc:35
FaceIndex FaceIndex
Definition mesh_edgebreaker_encoder_impl.cc:36