Forward compatibility: flex
[foam-extend-3.2.git] / applications / utilities / mesh / generation / cfMesh / importSurfaceAsSubset / importSurfaceAsSubset.C
blob2fa77a9015c40c6e6e3da8794f14f41bdb367201
1 /*---------------------------------------------------------------------------*\
2   =========                 |
3   \\      /  F ield         | foam-extend: Open Source CFD
4    \\    /   O peration     | Version:     3.2
5     \\  /    A nd           | Web:         http://www.foam-extend.org
6      \\/     M anipulation  | For copyright notice see file Copyright
7 -------------------------------------------------------------------------------
8 License
9     This file is part of foam-extend.
11     foam-extend 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     foam-extend is distributed in the hope that it will be useful, but
17     WITHOUT ANY WARRANTY; without even the implied warranty of
18     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
19     General Public License for more details.
21     You should have received a copy of the GNU General Public License
22     along with foam-extend.  If not, see <http://www.gnu.org/licenses/>.
24 Description
25     Finds feature edges and corners of a triangulated surface
27 \*---------------------------------------------------------------------------*/
29 #include "argList.H"
30 #include "IFstream.H"
31 #include "fileName.H"
32 #include "triSurf.H"
33 #include "OFstream.H"
34 #include "OSspecific.H"
35 #include "demandDrivenData.H"
36 #include "triSurfaceImportSurfaceAsSubset.H"
37 #include <cstdlib>
38 #include <sstream>
40 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
41 // Main program:
42 using namespace Foam;
44 int main(int argc, char *argv[])
46     argList::noParallel();
47     argList::validArgs.clear();
48     argList::validArgs.append("master surface file");
49     argList::validArgs.append("import surface file");
51     argList args(argc, argv);
53     fileName inFileName(args.args()[1]);
54     fileName importFileName(args.args()[2]);
56     triSurf originalSurface(inFileName);
58     triSurf importedSurface(importFileName);
60     triSurfaceImportSurfaceAsSubset importSurf(originalSurface);
62     importSurf.addSurfaceAsSubset(importedSurface, importFileName.lessExt());
64     if( inFileName.ext() == "fms" )
65     {
66         originalSurface.writeSurface(inFileName);
67     }
68     else
69     {
70         fileName newName = inFileName.lessExt();
71         newName.append(".fms");
72         Warning << "Writting surface as " << newName
73             << " to preserve the subset!!" << endl;
75         originalSurface.writeSurface(newName);
76     }
78     Info << "End\n" << endl;
80     return 0;
84 // ************************************************************************* //