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/>.
28 A class for triangulated surface used in the meshing process.
29 It is derived from points and facets with some additional subsets.
30 Subsets are vert useful for local mesh refinement.
35 \*---------------------------------------------------------------------------*/
40 #include "triSurfPoints.H"
41 #include "triSurfFacets.H"
42 #include "triSurfFeatureEdges.H"
43 #include "triSurfAddressing.H"
46 #include "labelLongList.H"
48 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
53 // Froward declarations
54 class triSurfModifier;
56 /*---------------------------------------------------------------------------*\
57 Class triSurf Declaration
58 \*---------------------------------------------------------------------------*/
64 public triSurfFeatureEdges,
65 public triSurfAddressing
67 // Private member functions
68 void readFromFTR(const fileName&);
69 void writeToFTR(const fileName&) const;
71 void readFromFMS(const fileName&);
72 void writeToFMS(const fileName&) const;
74 inline LongList<labelledTri>& accessToFacets();
75 inline geometricSurfacePatchList& accessToPatches();
79 //- Disallow default bitwise assignment
80 void operator=(const triSurf&);
85 friend class triSurfModifer;
92 //- Construct from parts
95 const LongList<labelledTri>& triangles,
96 const geometricSurfacePatchList& patches,
97 const edgeLongList& featureEdges_,
98 const pointField& points
102 triSurf(const fileName& fName);
110 //- read and write the surface
111 void readSurface(const fileName&);
112 void writeSurface(const fileName&) const;
116 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
118 } // End namespace Foam
120 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
122 #include "triSurfI.H"
124 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
128 // ************************************************************************* //