1 /*---------------------------------------------------------------------------*\
3 \\ / F ield | cfMesh: A library for mesh generation
5 \\ / A nd | Author: Franjo Juretic (franjo.juretic@c-fields.com)
6 \\/ M anipulation | Copyright (C) Creative Fields, Ltd.
7 -------------------------------------------------------------------------------
9 This file is part of cfMesh.
11 cfMesh is free software; you can redistribute it and/or modify it
12 under the terms of the GNU General Public License as published by the
13 Free Software Foundation; either version 3 of the License, or (at your
14 option) any later version.
16 cfMesh is distributed in the hope that it will be useful, but WITHOUT
17 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
18 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
21 You should have received a copy of the GNU General Public License
22 along with cfMesh. If not, see <http://www.gnu.org/licenses/>.
25 meshSurfaceCheckInvertedVertices
28 Checks if any of the surface is tangled at any of its vertices. This
29 is performed by checking the dot product between the vertex normal and
30 the normals of the faces attached to the vertex.
33 meshSurfaceCheckInvertedVertices.C
35 \*---------------------------------------------------------------------------*/
37 #ifndef meshSurfaceCheckInvertedVertices_H
38 #define meshSurfaceCheckInvertedVertices_H
40 #include "objectRegistry.H"
42 #include "polyMeshGenModifier.H"
45 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
50 // Forward declarations
51 class meshSurfacePartitioner;
53 /*---------------------------------------------------------------------------*\
54 Class meshSurfaceCheckInvertedVertices Declaration
55 \*---------------------------------------------------------------------------*/
57 class meshSurfaceCheckInvertedVertices
60 //- mesh surface partitioner
61 const meshSurfacePartitioner& surfacePartitioner_;
63 //- active surface points
64 const boolList* activePointsPtr_;
66 //- set of inverted vertices
67 labelHashSet invertedVertices_;
69 // Private member functions
70 //- check vertices by calculating dot products
73 //- Disallow default bitwise copy construct
74 meshSurfaceCheckInvertedVertices
76 const meshSurfaceCheckInvertedVertices&
79 //- Disallow default bitwise assignment
80 void operator=(const meshSurfaceCheckInvertedVertices&);
86 //- Construct from meshSurfacePartitioner
87 meshSurfaceCheckInvertedVertices
89 const meshSurfacePartitioner&
92 //- Construct from meshSurfacePartitioner and a list of active points
93 meshSurfaceCheckInvertedVertices
95 const meshSurfacePartitioner&,
96 const boolList& activePoints
101 ~meshSurfaceCheckInvertedVertices();
104 //- return the labels of inverted vertices
105 inline const labelHashSet& invertedVertices() const
107 return invertedVertices_;
112 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
114 } // End namespace Foam
116 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
120 // ************************************************************************* //