added triSurface scaling option to surfaceConvert/surfaceMeshConvert

This commit is contained in:
Mark Olesen
2008-10-25 16:54:10 +02:00
parent 88cd954540
commit cd199d599e
2 changed files with 64 additions and 31 deletions

View File

@ -22,9 +22,26 @@ License
along with OpenFOAM; if not, write to the Free Software Foundation,
Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
Application
surfaceConvert
Description
Converts to and from Foam surface format. Optionally orders triangles
by region.
Converts from one surface mesh format to another
Usage
- surfaceConvert inputFile outputFile [OPTION]
@param -clean \n
Perform some surface checking/cleanup on the input surface
@param -scale \<scale\> \n
Specify a scaling factor for writing the files
@param -group \n
Orders faces by region
Note
The filename extensions are used to determine the file format type.
\*---------------------------------------------------------------------------*/
@ -44,32 +61,39 @@ int main(int argc, char *argv[])
{
argList::noParallel();
argList::validArgs.clear();
argList::validOptions.insert("cleanup", "");
argList::validArgs.append("inputFile");
argList::validArgs.append("outputFile");
argList::validOptions.insert("clean", "");
argList::validOptions.insert("scale", "scale");
argList::validOptions.insert("group", "");
argList::validArgs.append("input surface file");
argList::validArgs.append("output surface file");
argList args(argc, argv);
const stringList& params = args.additionalArgs();
fileName inFileName(args.additionalArgs()[0]);
fileName outFileName(args.additionalArgs()[1]);
scalar scaleFactor = 0;
if (args.options().found("scale"))
{
IStringStream(args.options()["scale"])() >> scaleFactor;
}
if (outFileName == inFileName)
fileName importName(params[0]);
fileName exportName(params[1]);
if (importName == exportName)
{
FatalErrorIn(args.executable())
<< "Output file " << outFileName
<< " would overwrite input file."
<< "Output file " << exportName << " would overwrite input file."
<< exit(FatalError);
}
Info << "Reading : " << inFileName << endl;
triSurface surf(inFileName);
Info<< "Reading : " << importName << endl;
triSurface surf(importName);
Info<< "Read surface:" << endl;
surf.writeStats(Info);
Info<< endl;
if (args.options().found("cleanup"))
if (args.options().found("clean"))
{
Info<< "Cleaning up surface" << endl;
surf.cleanup(true);
@ -90,13 +114,21 @@ int main(int argc, char *argv[])
Info<< "Maintaining face ordering" << endl;
}
Info << "Writing : " << outFileName << endl;
surf.write(outFileName, sortByRegion);
Info<< "writing " << exportName;
if (scaleFactor > 0)
{
Info<< " without scaling" << endl;
}
else
{
Info<< " with scaling " << scaleFactor << endl;
surf.scalePoints(scaleFactor);
}
surf.write(exportName, sortByRegion);
Info << "End\n" << endl;
Info<< "\nEnd\n" << endl;
return 0;
}
// ************************************************************************* //

View File

@ -62,8 +62,8 @@ int main(int argc, char *argv[])
argList::noParallel();
argList::validArgs.append("inputFile");
argList::validArgs.append("outputFile");
argList::validOptions.insert("scale", "scale");
argList::validOptions.insert("clean", "");
argList::validOptions.insert("scale", "scale");
argList::validOptions.insert("triSurface", "");
# include "setRootCase.H"
const stringList& params = args.additionalArgs();
@ -77,6 +77,13 @@ int main(int argc, char *argv[])
fileName importName(params[0]);
fileName exportName(params[1]);
if (importName == exportName)
{
FatalErrorIn(args.executable())
<< "Output file " << exportName << " would overwrite input file."
<< exit(FatalError);
}
if
(
!meshedSurface::canRead(importName.ext(), true)
@ -88,10 +95,6 @@ int main(int argc, char *argv[])
if (args.options().found("triSurface"))
{
// # include "createTime.H"
// instantList timeDirs = timeSelector::select0(runTime, args);
// # include "createPolyMesh.H"
triSurface surf(importName);
if (args.options().found("clean"))
@ -107,9 +110,8 @@ int main(int argc, char *argv[])
}
else
{
Info<< " triSurface does not yet support scaling "
<< scaleFactor << endl;
// surf.scalePoints(scaleFactor);
Info<< " with scaling " << scaleFactor << endl;
surf.scalePoints(scaleFactor);
}
surf.write(exportName);
}
@ -123,8 +125,6 @@ int main(int argc, char *argv[])
surf.checkOrientation(true);
}
surf.scalePoints(scaleFactor);
Info<< "writing " << exportName;
if (scaleFactor <= 0)
{
@ -133,6 +133,7 @@ int main(int argc, char *argv[])
else
{
Info<< " with scaling " << scaleFactor << endl;
surf.scalePoints(scaleFactor);
}
surf.write(exportName);
}