Adding cfMesh-v1.0 into the repository
[foam-extend-3.2.git] / src / meshLibrary / utilities / surfaceTools / meshSurfaceEdgeExtractor / meshSurfaceEdgeExtractor.H
blob0d7a69da873e5ea79f38df74adf1c74bbeacdbc5
1 /*---------------------------------------------------------------------------*\
2   =========                 |
3   \\      /  F ield         | cfMesh: A library for mesh generation
4    \\    /   O peration     |
5     \\  /    A nd           | Author: Franjo Juretic (franjo.juretic@c-fields.com)
6      \\/     M anipulation  | Copyright (C) Creative Fields, Ltd.
7 -------------------------------------------------------------------------------
8 License
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
19     for more details.
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/>.
24 Class
25     meshSurfaceEdgeExtractor
27 Description
28     Extracts edges and corners to cornform the mesh to the geometry
30 SourceFiles
31     meshSurfaceEdgeExtractor.C
33 \*---------------------------------------------------------------------------*/
35 #ifndef meshSurfaceEdgeExtractor_H
36 #define meshSurfaceEdgeExtractor_H
38 #include "polyMeshGenModifier.H"
39 #include "boolList.H"
41 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
43 namespace Foam
46 // Forward declarations
47 class meshOctree;
48 class meshSurfaceEngine;
50 /*---------------------------------------------------------------------------*\
51                 Class meshSurfaceEdgeExtractor Declaration
52 \*---------------------------------------------------------------------------*/
54 class meshSurfaceEdgeExtractor
56     // Private data
57         //- mesh
58         polyMeshGen& mesh_;
59     
60         label nPoints_;
61     
62         boolList boundaryCell_;
63     
64         List<direction> nFacesInCell_;
66         //- reference to the octree
67         const meshOctree& meshOctree_;
69         //- regions for boundary vertices
70         VRWGraph pointRegions_;
72     // Private member functions
73         //- remove old boundary faces
74         void removeOldBoundaryFaces();
75     
76         //- create vertices on surface edges
77         void createEdgeVertices();
78     
79         //- create new boundary faces
80         void createBoundaryFaces();
82         //- Disallow default bitwise copy construct
83         meshSurfaceEdgeExtractor(const meshSurfaceEdgeExtractor&);
85         //- Disallow default bitwise assignment
86         void operator=(const meshSurfaceEdgeExtractor&);
88 public:
90     // Constructors
92         //- Construct from mesh data
93         meshSurfaceEdgeExtractor
94         (
95             polyMeshGen& mesh,
96             const meshOctree& octree,
97             const labelList& pointRegion
98         );
100     // Destructor
102         ~meshSurfaceEdgeExtractor();
104     // Member Functions
108 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
110 } // End namespace Foam
112 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
114 #endif
116 // ************************************************************************* //