ENH: autoLayerDriver: better layering information message
[OpenFOAM-2.0.x.git] / applications / utilities / surface / surfaceFeatureConvert / surfaceFeatureConvert.C
blob7c03938234b1d057b6d17d42337e817de411aaa8
1 /*---------------------------------------------------------------------------*\
2   =========                 |
3   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
4    \\    /   O peration     |
5     \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
6      \\/     M anipulation  |
7 -------------------------------------------------------------------------------
8 License
9     This file is part of OpenFOAM.
11     OpenFOAM is free software: you can redistribute it and/or modify it
12     under the terms of the GNU General Public License as published by
13     the Free Software Foundation, either version 3 of the License, or
14     (at your option) any later version.
16     OpenFOAM 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 OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
24 Application
25     surfaceFeatureConvert
27 Description
28     Convert between edgeMesh formats
30 \*---------------------------------------------------------------------------*/
32 #include "argList.H"
33 #include "Time.H"
35 #include "edgeMesh.H"
37 using namespace Foam;
39 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
41 // Main program:
43 int main(int argc, char *argv[])
45     argList::addNote
46     (
47         "Convert between edgeMesh formats"
48     );
49     argList::noParallel();
50     argList::validArgs.append("inputFile");
51     argList::validArgs.append("outputFile");
52     argList::addOption
53     (
54         "scale",
55         "factor",
56         "geometry scaling factor - default is 1"
57     );
59     argList args(argc, argv);
60     Time runTime(args.rootPath(), args.caseName());
62     const fileName importName = args[1];
63     const fileName exportName = args[2];
65     // disable inplace editing
66     if (importName == exportName)
67     {
68         FatalErrorIn(args.executable())
69             << "Output file " << exportName << " would overwrite input file."
70             << exit(FatalError);
71     }
73     // check that reading/writing is supported
74     if
75     (
76         !edgeMesh::canReadType(importName.ext(), true)
77      || !edgeMesh::canWriteType(exportName.ext(), true)
78     )
79     {
80         return 1;
81     }
83     edgeMesh mesh(importName);
85     Info<< "\nRead edgeMesh " << importName << nl;
86     mesh.writeStats(Info);
87     Info<< nl
88         << "\nwriting " << exportName;
90     scalar scaleFactor = 0;
91     if (args.optionReadIfPresent("scale", scaleFactor) && scaleFactor > 0)
92     {
93         Info<< " with scaling " << scaleFactor << endl;
94         mesh.scalePoints(scaleFactor);
95     }
96     else
97     {
98         Info<< " without scaling" << endl;
99     }
101     mesh.write(exportName);
102     mesh.writeStats(Info);
103     Info<< endl;
105     Info<< "\nEnd\n" << endl;
107     return 0;
111 // ************************************************************************* //