From d016db1bc6193c609716cd21ed276a74219e7c43 Mon Sep 17 00:00:00 2001 From: Mark Olesen Date: Fri, 11 Dec 2009 16:29:55 +0100 Subject: [PATCH] Enhance edgeMesh to support more formats. Read only support: .bdf, .nas - NASTRAN format. Handles both CBEAM and CROD as lines. CROD is what Hypermesh happens to output. Write only support: .vtk - VTK legacy format in ASCII Read/write support: .eMesh - native format, which is simply a list of points, edges with an additional IOobject header that lets them be moved about easily to use as a featureEdgeMesh. .inp - STAR-CD inp/cel/vrt combination IOobject header) .obj - Alias waverfront format Radically simplify surfaceFeatureConvert by using the new edgeMesh functionality. --- applications/utilities/surface/README | 2 +- .../surfaceFeatureConvert.C | 293 +++---------- src/edgeMesh/Make/files | 23 +- src/edgeMesh/edgeFormats/edgeFormatsCore.C | 200 +++++++++ src/edgeMesh/edgeFormats/edgeFormatsCore.H | 118 ++++++ .../edgeFormats/emesh/EMESHedgeFormat.C | 195 +++++++++ .../edgeFormats/emesh/EMESHedgeFormat.H | 148 +++++++ .../emesh/EMESHedgeFormatRunTime.C | 61 +++ src/edgeMesh/edgeFormats/nas/NASedgeFormat.C | 260 ++++++++++++ src/edgeMesh/edgeFormats/nas/NASedgeFormat.H | 113 +++++ .../edgeFormats/nas/NASedgeFormatRunTime.C | 60 +++ src/edgeMesh/edgeFormats/obj/OBJedgeFormat.C | 245 +++++++++++ src/edgeMesh/edgeFormats/obj/OBJedgeFormat.H | 121 ++++++ .../edgeFormats/obj/OBJedgeFormatRunTime.C | 61 +++ .../edgeFormats/starcd/STARCDedgeFormat.C | 387 ++++++++++++++++++ .../edgeFormats/starcd/STARCDedgeFormat.H | 159 +++++++ .../starcd/STARCDedgeFormatRunTime.C | 61 +++ src/edgeMesh/edgeFormats/vtk/VTKedgeFormat.C | 107 +++++ src/edgeMesh/edgeFormats/vtk/VTKedgeFormat.H | 116 ++++++ .../edgeFormats/vtk/VTKedgeFormatRunTime.C | 51 +++ src/edgeMesh/edgeMesh.C | 184 ++++++++- src/edgeMesh/edgeMesh.H | 169 +++++++- src/edgeMesh/edgeMeshI.H | 27 +- src/edgeMesh/edgeMeshIO.C | 107 ++++- src/edgeMesh/edgeMeshNew.C | 65 +++ .../{ => featureEdgeMesh}/featureEdgeMesh.C | 59 ++- .../{ => featureEdgeMesh}/featureEdgeMesh.H | 19 +- 27 files changed, 3074 insertions(+), 337 deletions(-) create mode 100644 src/edgeMesh/edgeFormats/edgeFormatsCore.C create mode 100644 src/edgeMesh/edgeFormats/edgeFormatsCore.H create mode 100644 src/edgeMesh/edgeFormats/emesh/EMESHedgeFormat.C create mode 100644 src/edgeMesh/edgeFormats/emesh/EMESHedgeFormat.H create mode 100644 src/edgeMesh/edgeFormats/emesh/EMESHedgeFormatRunTime.C create mode 100644 src/edgeMesh/edgeFormats/nas/NASedgeFormat.C create mode 100644 src/edgeMesh/edgeFormats/nas/NASedgeFormat.H create mode 100644 src/edgeMesh/edgeFormats/nas/NASedgeFormatRunTime.C create mode 100644 src/edgeMesh/edgeFormats/obj/OBJedgeFormat.C create mode 100644 src/edgeMesh/edgeFormats/obj/OBJedgeFormat.H create mode 100644 src/edgeMesh/edgeFormats/obj/OBJedgeFormatRunTime.C create mode 100644 src/edgeMesh/edgeFormats/starcd/STARCDedgeFormat.C create mode 100644 src/edgeMesh/edgeFormats/starcd/STARCDedgeFormat.H create mode 100644 src/edgeMesh/edgeFormats/starcd/STARCDedgeFormatRunTime.C create mode 100644 src/edgeMesh/edgeFormats/vtk/VTKedgeFormat.C create mode 100644 src/edgeMesh/edgeFormats/vtk/VTKedgeFormat.H create mode 100644 src/edgeMesh/edgeFormats/vtk/VTKedgeFormatRunTime.C create mode 100644 src/edgeMesh/edgeMeshNew.C rename src/edgeMesh/{ => featureEdgeMesh}/featureEdgeMesh.C (81%) rename src/edgeMesh/{ => featureEdgeMesh}/featureEdgeMesh.H (85%) diff --git a/applications/utilities/surface/README b/applications/utilities/surface/README index 292d8ca0b5..a66c2463a1 100644 --- a/applications/utilities/surface/README +++ b/applications/utilities/surface/README @@ -21,7 +21,7 @@ surfaceFind - Finds nearest vertex and face to given point. surfaceMeshTriangulate -- Triangulate external facses of mesh and write as surface. +- Triangulate external faces of mesh and write as surface. surfacePointMerge - Explicit point merge of surface. diff --git a/applications/utilities/surface/surfaceFeatureConvert/surfaceFeatureConvert.C b/applications/utilities/surface/surfaceFeatureConvert/surfaceFeatureConvert.C index 046f9cefe8..ee221f992a 100644 --- a/applications/utilities/surface/surfaceFeatureConvert/surfaceFeatureConvert.C +++ b/applications/utilities/surface/surfaceFeatureConvert/surfaceFeatureConvert.C @@ -26,266 +26,85 @@ Application surfaceFeatureConvert Description - Extracts and writes surface features to file + Convert between edgeMesh formats \*---------------------------------------------------------------------------*/ -#include "featureEdgeMesh.H" #include "argList.H" #include "Time.H" -#include "IFstream.H" -#include "IStringStream.H" -#include "OFstream.H" -#include "Map.H" + +#include "edgeMesh.H" using namespace Foam; // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // -void readNASEdges -( - const fileName& inFileName, - pointField& allPoints, - edgeList& allEdges -) -{ - IFstream is(inFileName); - - if (!is.good()) - { - FatalErrorIn("readNASEdges") - << "Cannot read file " << inFileName - << exit(FatalError); - } - - // coordinates of point - DynamicList points; - // Nastran index of point - DynamicList