PTEMS  0.1.0-dev+git.81fd0e4
PolyTopic Element Method Solver
ptems::DomainDefinition3D::Facet Class Reference

Defines a facet of a surface of the domain. More...

#include <ptems/domaindefinition.hpp>

Public Types

typedef std::vector< std::size_tPolygon
 A polygon defined using a list of indices of the points defining the boundary of the polygon. More...
 

Public Member Functions

 Facet (std::vector< std::size_t > &&vertices)
 Constructs a facet as a list of indices of the vertices making up the facet. More...
 
 Facet (const std::vector< std::size_t > &vertices)
 Constructs a facet as a list of indices of the vertices making up the facet. More...
 
template<typename It >
 Facet (It begin, It end)
 Constructs a facet as a list of indices of the vertices making up the facet. More...
 
 Facet (const std::initializer_list< std::size_t > &vertices)
 Constructs a facet as a list of indices of the vertices making up the facet. More...
 
void AddHole (Polygon &&points)
 Adds a hole into the facet. More...
 
void AddHole (const Polygon &points)
 Adds a hole into the facet. More...
 
void AddHole (const std::initializer_list< std::size_t > &points)
 Adds a hole into the facet. More...
 
template<typename It >
void AddHole (It begin, It end)
 Adds a hole into the facet. More...
 
const PolygonBoundary () const
 Gets the indices of the vertices defining the facet boundary. More...
 
const std::vector< Polygon > & Holes () const
 Gets the list of holes in the facet. More...
 

Friends

class SurfaceDefinition
 

Detailed Description

Defines a facet of a surface of the domain.

Member Typedef Documentation

◆ Polygon

A polygon defined using a list of indices of the points defining the boundary of the polygon.

Constructor & Destructor Documentation

◆ Facet() [1/4]

ptems::DomainDefinition3D::Facet::Facet ( std::vector< std::size_t > &&  vertices)
inline

Constructs a facet as a list of indices of the vertices making up the facet.

Parameters
verticesList of indices for the vertices
Exceptions
std::invalid_argumentIf the number of indices is less than 3.

◆ Facet() [2/4]

ptems::DomainDefinition3D::Facet::Facet ( const std::vector< std::size_t > &  vertices)
inline

Constructs a facet as a list of indices of the vertices making up the facet.

Parameters
verticesList of indices for the vertices
Exceptions
std::invalid_argumentIf the number of indices is less than 3.

◆ Facet() [3/4]

template<typename It >
ptems::DomainDefinition3D::Facet::Facet ( It  begin,
It  end 
)
inline

Constructs a facet as a list of indices of the vertices making up the facet.

Parameters
beginStart iterator to list of indices for the vertices
endEnd iterator to list of indices for the vertices
Exceptions
std::invalid_argumentIf the number of indices is less than 3.

◆ Facet() [4/4]

ptems::DomainDefinition3D::Facet::Facet ( const std::initializer_list< std::size_t > &  vertices)
inline

Constructs a facet as a list of indices of the vertices making up the facet.

Parameters
verticesList of indices for the vertices
Exceptions
std::invalid_argumentIf the number of indices is less than 3.

Member Function Documentation

◆ AddHole() [1/4]

void ptems::DomainDefinition3D::Facet::AddHole ( const Polygon points)
inline

Adds a hole into the facet.

Warning
The path defined by the points MUST NOT intersect with itself, another hole, or the boundary of the domain. No checks are made to ensure this condition is met. Using a domain with a self-intersecting hole, holes which intersect, or holes intersecting the boundary is undefined behaviour.
Exceptions
std::invalid_argumentIf the number points is less than three, or the points are all collinear.
Parameters
pointsList of vertices defining the boundary of the hole.

◆ AddHole() [2/4]

void ptems::DomainDefinition3D::Facet::AddHole ( const std::initializer_list< std::size_t > &  points)
inline

Adds a hole into the facet.

Warning
The path defined by the points MUST NOT intersect with itself, another hole, or the boundary of the domain. No checks are made to ensure this condition is met. Using a domain with a self-intersecting hole, holes which intersect, or holes intersecting the boundary is undefined behaviour.
Exceptions
std::invalid_argumentIf the number points is less than three, or the points are all collinear.
Parameters
pointsList of vertices defining the boundary of the hole.

◆ AddHole() [3/4]

template<typename It >
void ptems::DomainDefinition3D::Facet::AddHole ( It  begin,
It  end 
)
inline

Adds a hole into the facet.

Warning
The path defined by the points MUST NOT intersect with itself, another hole, or the boundary of the domain. No checks are made to ensure this condition is met. Using a domain with a self-intersecting hole, holes which intersect, or holes intersecting the boundary is undefined behaviour.
Exceptions
std::invalid_argumentIf the number points is less than three, or the points are all collinear.
Template Parameters
ItThe iterator type
Parameters
beginStart iterator for list of vertices defining the boundary of the hole
endEnd iterator for list of vertices defining the boundary of the hole

◆ AddHole() [4/4]

void ptems::DomainDefinition3D::Facet::AddHole ( Polygon &&  points)
inline

Adds a hole into the facet.

Warning
The path defined by the points MUST NOT intersect with itself, another hole, or the boundary of the domain. No checks are made to ensure this condition is met. Using a domain with a self-intersecting hole, holes which intersect, or holes intersecting the boundary is undefined behaviour.
Exceptions
std::invalid_argumentIf the number points is less than three, or the points are all collinear.
Parameters
pointsList of vertices defining the boundary of the hole.

◆ Boundary()

const Polygon& ptems::DomainDefinition3D::Facet::Boundary ( ) const
inline

Gets the indices of the vertices defining the facet boundary.

Returns
List of indices of vertices of the boundary of the facet.

◆ Holes()

const std::vector<Polygon>& ptems::DomainDefinition3D::Facet::Holes ( ) const
inline

Gets the list of holes in the facet.

Returns
List of holes, each hole is a list of indices of the vertices denoting the boundary of the hole.

The documentation for this class was generated from the following file: