|
EBGeometry
Compact, header-only C++ library for fast evaluation of signed distance functions
|
Half-edge iterator class for navigating the half edge mesh. More...
#include <EBGeometry_DCEL_Iterator.hpp>

Public Types | |
| using | Vertex = VertexT< T, Meta > |
| Alias for DCEL vertex type. | |
| using | Edge = EdgeT< T, Meta > |
| Alias for DCEL edge type. | |
| using | Face = FaceT< T, Meta > |
| Alias for DCEL face type. | |
| using | VertexPtr = std::shared_ptr< Vertex > |
| Alias for vertex pointer. | |
| using | EdgePtr = std::shared_ptr< Edge > |
| Alias for edge pointer. | |
| using | FacePtr = std::shared_ptr< Face > |
| Alias for face pointer. | |
Public Member Functions | |
| EdgeIteratorT ()=delete | |
| Default construction is not allowed. Use one of the full constructors. | |
| EdgeIteratorT (Face &a_face) noexcept | |
| Constructor, taking a face as argument. The iterator begins at the half-edge pointer contained in the face. | |
| EdgeIteratorT (const Face &a_face) noexcept | |
| Constructor, taking a face as argument. The iterator begins at the half-edge pointer contained in the face. | |
| EdgeIteratorT (const EdgePtr &a_startEdge) noexcept | |
| Constructor, taking an arbitrary starting half-edge directly (rather than a face's own half-edge). Useful for iterating a half-edge loop when only an edge – not its face – is available. | |
| EdgeIteratorT (const EdgeIteratorT &a_other) noexcept=default | |
| Copy constructor. | |
| EdgeIteratorT (EdgeIteratorT &&a_other) noexcept=default | |
| Move constructor. | |
| ~EdgeIteratorT () noexcept=default | |
| Destructor. | |
| EdgeIteratorT & | operator= (const EdgeIteratorT &a_other) noexcept=default |
| Copy assignment operator. | |
| EdgeIteratorT & | operator= (EdgeIteratorT &&a_other) noexcept=default |
| Move assignment operator. | |
| EdgePtr & | operator() () noexcept |
| Operator returning a pointer to the current half-edge. | |
| const EdgePtr & | operator() () const noexcept |
| Operator returning a pointer to the current half-edge (const overload) | |
| void | reset () noexcept |
| Reset function for the iterator. This resets the iterator so that it begins from the starting half-edge. | |
| void | operator++ () noexcept |
| Incrementation operator, bringing the iterator to the next half-edge. | |
| bool | ok () const noexcept |
| Function which checks if the iteration can be continued. | |
Protected Attributes | |
| bool | m_fullLoop = false |
| If true, a full loop has been made around the polygon face. | |
| std::shared_ptr< Edge > | m_startEdge = nullptr |
| Starting half-edge. | |
| std::shared_ptr< Edge > | m_curEdge = nullptr |
| Current half-edge. | |
Half-edge iterator class for navigating the half edge mesh.
Class which makes it easier to iterate through DCEL edges.
| T | Floating-point precision type. |
| Meta | User-defined metadata type. |
Iterates the half-edge loop bounding a polygon face (or starting from an arbitrary half-edge), following EdgeT::getNextEdge() until either the loop returns to its starting edge (a well-formed, closed face) or a null next-edge is reached (an incomplete/open half-edge chain). Typical usage:
| T | Floating-point precision type. |
| Meta | User-defined metadata type. |
|
noexcept |
Constructor, taking a face as argument. The iterator begins at the half-edge pointer contained in the face.
| [in] | a_face | DCEL polygon face |
|
noexcept |
Constructor, taking a face as argument. The iterator begins at the half-edge pointer contained in the face.
| [in] | a_face | DCEL polygon face |
|
noexcept |
Constructor, taking an arbitrary starting half-edge directly (rather than a face's own half-edge). Useful for iterating a half-edge loop when only an edge – not its face – is available.
| [in] | a_startEdge | Starting half-edge. May be nullptr (ok() will then immediately return false). |
|
defaultnoexcept |
Copy constructor.
| [in] | a_other | Other iterator. |
|
defaultnoexcept |
Move constructor.
| [in,out] | a_other | Other iterator. |
|
inlinenoexcept |
Function which checks if the iteration can be continued.
|
inlinenoexcept |
Operator returning a pointer to the current half-edge (const overload)
|
inlinenoexcept |
Operator returning a pointer to the current half-edge.
|
defaultnoexcept |
Copy assignment operator.
| [in] | a_other | Other iterator. |
|
defaultnoexcept |
Move assignment operator.
| [in,out] | a_other | Other iterator. |