KASKADE 7 development version
Public Types | Public Member Functions | List of all members
Kaskade::GeometricFeatureDetector< Index, ctype, dim > Class Template Referenceabstract

The interface for specifying feature edges and feature vertices. More...

#include <boundaryInterpolation.hh>

Detailed Description

template<class Index, class ctype, int dim>
class Kaskade::GeometricFeatureDetector< Index, ctype, dim >

The interface for specifying feature edges and feature vertices.

Definition at line 331 of file boundaryInterpolation.hh.

Inheritance diagram for Kaskade::GeometricFeatureDetector< Index, ctype, dim >:
Kaskade::AngleFeatureDetector< Index, ctype, dim >

Public Types

using Vector = Simplex::Vector< ctype, dim >
 

Public Member Functions

virtual ~GeometricFeatureDetector ()
 
virtual bool isFeatureVertex (Index vidx, Vector const &t1, Vector const &t2, int bsid1, int bsid2) const =0
 Decides whether two boundary edges emanating from a joint vertex of a 2D domain are part of a smooth boundary curve or not. More...
 
virtual bool isFeatureEdge (Index vidx, Vector const &n1, Vector const &n2, int bsid1, int bsid2) const =0
 Decides whether a boundary edge of a 3D domain is part of a smooth boundary patch or not. More...
 
virtual bool isFeatureCurve (Index vidx, Vector const &t1, Vector const &t2) const =0
 Decides whether two feature boundary edges of a 3D domain meeting in a joint vertex are part of a smooth boundary curve or not. More...
 
virtual Vector vertexNormal (Index vidx, Vector const &n) const
 Provides a surface normal at non-feature vertices (where no feature edge passes through). More...
 

Member Typedef Documentation

◆ Vector

template<class Index , class ctype , int dim>
using Kaskade::GeometricFeatureDetector< Index, ctype, dim >::Vector = Simplex::Vector<ctype,dim>

Definition at line 334 of file boundaryInterpolation.hh.

Constructor & Destructor Documentation

◆ ~GeometricFeatureDetector()

template<class Index , class ctype , int dim>
virtual Kaskade::GeometricFeatureDetector< Index, ctype, dim >::~GeometricFeatureDetector ( )
inlinevirtual

Definition at line 336 of file boundaryInterpolation.hh.

Member Function Documentation

◆ isFeatureCurve()

template<class Index , class ctype , int dim>
virtual bool Kaskade::GeometricFeatureDetector< Index, ctype, dim >::isFeatureCurve ( Index  vidx,
Vector const &  t1,
Vector const &  t2 
) const
pure virtual

Decides whether two feature boundary edges of a 3D domain meeting in a joint vertex are part of a smooth boundary curve or not.

This method is called only when 3D domains are processed.

Parameters
thevertex index in the level 0 coarse grid view
t1tangent vector of first edge
t2tangent vector of second edge

The tangent vectors are normalized and point away from the vertex. Thus, t1+t2==0 means they form a straight line.

Implemented in Kaskade::AngleFeatureDetector< Index, ctype, dim >.

◆ isFeatureEdge()

template<class Index , class ctype , int dim>
virtual bool Kaskade::GeometricFeatureDetector< Index, ctype, dim >::isFeatureEdge ( Index  vidx,
Vector const &  n1,
Vector const &  n2,
int  bsid1,
int  bsid2 
) const
pure virtual

Decides whether a boundary edge of a 3D domain is part of a smooth boundary patch or not.

More precisely, it determines whether an edge-vertex incidence is a feature "edge". Edges can be specified as being smooth at one of its vertices and sharp on the other.

This method is called only when 3D domains are processed.

Parameters
vidxthe vertex index in the level 0 coarse grid view
n1the outer normal vector of the face on one side of the edge, evaluated at the vertex
n2the outer normal vector of the face on the other side of the edge, evaluated at the vertex
bsid1the boundary segment index of the first face
bsid2the boundary segment index of the second face

Implemented in Kaskade::AngleFeatureDetector< Index, ctype, dim >.

◆ isFeatureVertex()

template<class Index , class ctype , int dim>
virtual bool Kaskade::GeometricFeatureDetector< Index, ctype, dim >::isFeatureVertex ( Index  vidx,
Vector const &  t1,
Vector const &  t2,
int  bsid1,
int  bsid2 
) const
pure virtual

Decides whether two boundary edges emanating from a joint vertex of a 2D domain are part of a smooth boundary curve or not.

This method is called only when 2D domains are processed.

Parameters
vidxthe vertex index in the level 0 coarse grid view
t1tangent vector of first edge
t2tangent vector of second edge
bsid1the boundary segment index of the first edge
bsid2the boundary segment index of the second edge

The tangent vectors are normalized and point away from the vertex. Thus, t1+t2==0 means they form a straight line.

Implemented in Kaskade::AngleFeatureDetector< Index, ctype, dim >.

◆ vertexNormal()

template<class Index , class ctype , int dim>
virtual Vector Kaskade::GeometricFeatureDetector< Index, ctype, dim >::vertexNormal ( Index  vidx,
Vector const &  n 
) const
inlinevirtual

Provides a surface normal at non-feature vertices (where no feature edge passes through).

Parameters
vidxthe vertex index
na suggested normal, usually an average of incident face normals
Returns
the actual normal \( n_a \) to use. It holds \( n_a^T n > 0 \) and \( \|n_a\| > 0 \).

The default implementation just passes the suggested normal on.

Definition at line 396 of file boundaryInterpolation.hh.


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