OpenABF 2.1.0
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | List of all members
OpenABF::HalfEdgeMesh< T, Dim, VertexTraits, EdgeTraits, FaceTraits >::Face Struct Reference

Face type More...

#include <OpenABF/OpenABF.hpp>

Inheritance diagram for OpenABF::HalfEdgeMesh< T, Dim, VertexTraits, EdgeTraits, FaceTraits >::Face:
[legend]
Collaboration diagram for OpenABF::HalfEdgeMesh< T, Dim, VertexTraits, EdgeTraits, FaceTraits >::Face:
[legend]

Public Types

using iterator = FaceIterator<>
 
using const_iterator = FaceIterator< true >
 

Public Member Functions

 Face ()=default
 
 Face (const Face &rhs)
 Copy-construct inherited traits.
 
iterator begin ()
 Returns an iterator over the edges of the face.
 
iterator end ()
 Returns the end iterator.
 
const_iterator cbegin () const
 Returns a const iterator over the edges of the face.
 
const_iterator cend () const
 Returns the const end iterator.
 
auto edges () const
 Returns an iterable range over the edges of the face.
 
auto area () const -> T
 Area of the face.
 
auto barycenter () const -> Vec< T, Dim >
 Face barycenter (center-of-mass)
 
auto normal () const -> Vec< T, Dim >
 Unit face normal.
 

Static Public Member Functions

template<typename... Args>
static auto New (Args &&... args) -> FacePtr
 Construct a new Face pointer.
 

Public Attributes

EdgePtr head
 First edge in the face.
 
FacePtr next
 The next face in the mesh.
 
std::size_t idx {0}
 Insertion index.
 
HalfEdgeMeshmesh {nullptr}
 Mesh to which this vertex belongs.
 

Detailed Description

template<typename T, std::size_t Dim = 3, typename VertexTraits = traits::DefaultVertexTraits<T>, typename EdgeTraits = traits::DefaultEdgeTraits<T>, typename FaceTraits = traits::DefaultFaceTraits<T>>
struct OpenABF::HalfEdgeMesh< T, Dim, VertexTraits, EdgeTraits, FaceTraits >::Face

Face type

Member Typedef Documentation

◆ const_iterator

template<typename T , std::size_t Dim = 3, typename VertexTraits = traits::DefaultVertexTraits<T>, typename EdgeTraits = traits::DefaultEdgeTraits<T>, typename FaceTraits = traits::DefaultFaceTraits<T>>
using OpenABF::HalfEdgeMesh< T, Dim, VertexTraits, EdgeTraits, FaceTraits >::Face::const_iterator = FaceIterator<true>

Face edge const iterator type

◆ iterator

template<typename T , std::size_t Dim = 3, typename VertexTraits = traits::DefaultVertexTraits<T>, typename EdgeTraits = traits::DefaultEdgeTraits<T>, typename FaceTraits = traits::DefaultFaceTraits<T>>
using OpenABF::HalfEdgeMesh< T, Dim, VertexTraits, EdgeTraits, FaceTraits >::Face::iterator = FaceIterator<>

Face edge iterator type

Constructor & Destructor Documentation

◆ Face()

template<typename T , std::size_t Dim = 3, typename VertexTraits = traits::DefaultVertexTraits<T>, typename EdgeTraits = traits::DefaultEdgeTraits<T>, typename FaceTraits = traits::DefaultFaceTraits<T>>
OpenABF::HalfEdgeMesh< T, Dim, VertexTraits, EdgeTraits, FaceTraits >::Face::Face ( )
default

Default constructor