KASKADE 7 development version
|
Specifying geometric features in terms of angles between face normals and edge tangents. More...
#include <boundaryInterpolation.hh>
Specifying geometric features in terms of angles between face normals and edge tangents.
Definition at line 408 of file boundaryInterpolation.hh.
Public Types | |
using | Vector = Simplex::Vector< ctype, dim > |
Public Member Functions | |
AngleFeatureDetector (ctype featureCurveAngle=1.0, ctype featureEdgeAngle=0.5) | |
Constructor. More... | |
virtual | ~AngleFeatureDetector () |
virtual bool | isFeatureVertex (Index vidx, Vector const &t1, Vector const &t2, int bsid1, int bsid2) const |
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 |
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 |
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... | |
using Kaskade::AngleFeatureDetector< Index, ctype, dim >::Vector = Simplex::Vector<ctype,dim> |
Definition at line 411 of file boundaryInterpolation.hh.
Kaskade::AngleFeatureDetector< Index, ctype, dim >::AngleFeatureDetector | ( | ctype | featureCurveAngle = 1.0 , |
ctype | featureEdgeAngle = 0.5 |
||
) |
Constructor.
featureCurveAngle | the angle (in radians) between two edges (feature edges in 3D, boundary edges in 2D) that determines whether they form a differentiable feature curve. Defaults to roughly 57°. |
featureEdgeAngle | the angle (in radians) between adjacent facets' normals that determines whether they share a feature edge or a normal ( \( G^1 \) continuous) edge. Defaults to roughly 29°. This is only of effect in 3D grids. |
|
inlinevirtual |
Definition at line 424 of file boundaryInterpolation.hh.
|
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.
the | vertex index in the level 0 coarse grid view |
t1 | tangent vector of first edge |
t2 | tangent 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.
Implements Kaskade::GeometricFeatureDetector< Index, ctype, dim >.
|
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 shart on the other.
This method is called only when 3D domains are processed.
vidx | the vertex index in the level 0 coarse grid view |
n1 | the outer normal vector of the face on one side of the edge, evaluated at the vertex |
n2 | the outer normal vector of the face on the other side of the edge, evaluated at the vertex |
bsid1 | the boundary segment index of the first face |
bsid2 | the boundary segment index of the second face |
Implements Kaskade::GeometricFeatureDetector< Index, ctype, dim >.
|
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.
vidx | the vertex index in the level 0 coarse grid view |
t1 | tangent vector of first edge |
t2 | tangent vector of second edge |
bsid1 | the boundary segment index of the first edge |
bsid2 | the 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.
Implements Kaskade::GeometricFeatureDetector< Index, ctype, dim >.
|
inlinevirtualinherited |
Provides a surface normal at non-feature vertices (where no feature edge passes through).
vidx | the vertex index |
n | a suggested normal, usually an average of incident face normals |
The default implementation just passes the suggested normal on.
Definition at line 396 of file boundaryInterpolation.hh.