20 #ifndef ANTKEEPER_GEOM_BREP_FACE_HPP
21 #define ANTKEEPER_GEOM_BREP_FACE_HPP
34 class brep_element_container;
68 m_loop = m_loop->m_face_next;
82 m_loop = m_loop->m_face_previous;
96 return m_position == other.m_position;
101 return m_position <=> other.m_position;
106 return m_position - rhs.m_position;
111 std::ptrdiff_t m_position;
128 return m_head->m_face_previous;
157 it.m_position =
static_cast<std::ptrdiff_t
>(m_size);
171 return std::make_reverse_iterator(
end());
183 return std::make_reverse_iterator(
begin());
196 [[nodiscard]]
inline constexpr
bool empty() const noexcept
202 [[nodiscard]]
inline constexpr std::size_t
size() const noexcept
237 std::size_t m_size{};
255 [[nodiscard]]
inline constexpr std::size_t
index() const noexcept
298 void clear() noexcept;
Container for B-rep elements.
virtual element_type * emplace_back()
Appends a new element to the end of the container.
void clear() noexcept
Erases all faces and their loops.
void erase(brep_face *face) override
Erases a face and all of its loops.
void reverse(brep_face *face)
Reverses the direction of a face's bounding loops.
List of B-rep loops that bound a common face.
std::reverse_iterator< const_iterator > const_reverse_iterator
constexpr const_reverse_iterator crend() const noexcept
Returns a reverse iterator to the loop following the last loop of the reversed list.
brep_loop * front() const noexcept
Returns the first loop.
constexpr const_iterator cend() const noexcept
Returns an iterator to the loop following the last loop.
constexpr const_iterator begin() const noexcept
Returns an iterator to the first loop.
constexpr const_reverse_iterator rend() const noexcept
Returns a reverse iterator to the loop following the last loop of the reversed list.
constexpr const_reverse_iterator rbegin() const noexcept
Returns a reverse iterator to the first loop of the reversed list.
constexpr std::size_t size() const noexcept
Returns the number of loops in the list.
constexpr const_reverse_iterator crbegin() const noexcept
Returns a reverse iterator to the first loop of the reversed list.
constexpr bool empty() const noexcept
Returns true if the list is empty, false otherwise.
brep_loop * back() const noexcept
Returns the last loop.
void push_back(brep_loop *loop)
Appends a loop to the end of the list.
void insert(brep_loop *next, brep_loop *loop)
Inserts a loop before a given loop.
constexpr const_iterator end() const noexcept
Returns an iterator to the loop following the last loop.
constexpr const_iterator cbegin() const noexcept
Returns an iterator to the first loop.
void remove(brep_loop *loop)
Removes an loop from the list.
Portion of a shell bounded by loops.
constexpr const brep_face_loop_list & loops() const noexcept
Returns the list of loops associated with this face.
constexpr std::size_t index() const noexcept
Returns the index of this face in the mesh face array.
Connected boundary of a single face.
Boundary representation (B-rep) of a mesh.
bool operator==(const const_iterator &other) const noexcept
difference_type operator-(const const_iterator &rhs) const noexcept
std::bidirectional_iterator_tag iterator_concept
const_iterator operator--(int) noexcept
const_iterator & operator++() noexcept
const_iterator operator++(int) noexcept
std::ptrdiff_t difference_type
std::weak_ordering operator<=>(const const_iterator &other) const noexcept
const_iterator & operator--() noexcept
constexpr value_type operator*() const noexcept
std::bidirectional_iterator_tag iterator_category
constexpr value_type operator->() const noexcept