#include <MeshReader.hpp>


Public Member Functions | |
| ReferenceCounting< Mesh > | mesh () |
| MeshReader (const std::string &s) | |
| virtual | ~MeshReader () |
| ReferenceCounting< Mesh > | mesh () const |
Protected Member Functions | |
| MeshReader (const MeshReader &M) | |
| real_t | __getReal () |
| int | __getInteger () |
| virtual void | __createMesh () |
Protected Attributes | |
| FILE * | __ifh |
| std::string | __fileName |
| ReferenceCounting< VerticesSet > | __vertices |
| ReferenceCounting< Vector < Hexahedron > > | __hexahedra |
| ReferenceCounting< Vector < Quadrangle > > | __quadrilaterals |
| ReferenceCounting< Vector < Tetrahedron > > | __tetrahedra |
| ReferenceCounting< Vector < Triangle > > | __triangles |
| ReferenceCounting< Mesh > | __mesh |
Classes | |
| class | Error |
Definition at line 50 of file MeshReader.hpp.
| MeshReader::MeshReader | ( | const MeshReader & | M | ) | [protected] |
Copy constructor is forbidden
| M |
| MeshReader::MeshReader | ( | const std::string & | s | ) |
Constructor
| s | the filename |
Definition at line 29 of file MeshReader.cpp.
References __fileName, __ifh, and NULL.
00030 : MeshGenerator(), 00031 __ifh(NULL), 00032 __fileName(s), 00033 __vertices(0), 00034 __hexahedra(0), 00035 __quadrilaterals(0), 00036 __tetrahedra(0), 00037 __triangles(0) 00038 { 00039 __ifh = fopen(__fileName.c_str(),"r"); 00040 if (__ifh == NULL) { 00041 throw MeshReader::Error("cannot open file '"+__fileName+"'"); 00042 } 00043 }
| MeshReader::~MeshReader | ( | ) | [virtual] |
| real_t MeshReader::__getReal | ( | ) | [inline, protected] |
Tries to read next real
Definition at line 99 of file MeshReader.hpp.
References __fileName, __ifh, and ErrorHandler::normal.
Referenced by MeshReaderAM_FMTFormat::__readVertices(), MeshFormatReader::__readVertices(), GmshFormatReader::__readVertices(), and GmshFormatReader::GmshFormatReader().
00100 { 00101 // a double is used here instead of a real_t to allow scanf to 00102 // behave correctly 00103 register double r; 00104 int retval = fscanf(__ifh,"%le",&r); 00105 if (retval <= 0) { 00106 throw ErrorHandler(__FILE__,__LINE__, 00107 "reading mesh '"+__fileName+"': expected real not found", 00108 ErrorHandler::normal); 00109 return 0; 00110 } 00111 return r; 00112 }
| int MeshReader::__getInteger | ( | ) | [inline, protected] |
Tries to read next integer
Definition at line 119 of file MeshReader.hpp.
References __fileName, __ifh, and ErrorHandler::normal.
Referenced by MeshReaderAM_FMTFormat::__getVertexNumber(), MeshFormatReader::__getVertexNumber(), MeshFormatReader::__readElements(), GmshFormatReader::__readElements1(), GmshFormatReader::__readElements2(), MeshFormatReader::__readHexahedra(), MeshFormatReader::__readQuadrilaterals(), MeshFormatReader::__readTetrahedra(), MeshFormatReader::__readTriangles(), MeshReaderAM_FMTFormat::__readTrianglesReferences(), MeshFormatReader::__readVertices(), GmshFormatReader::__readVertices(), MeshReaderAM_FMTFormat::__readVerticesReferences(), GmshFormatReader::GmshFormatReader(), MeshFormatReader::MeshFormatReader(), and MeshReaderAM_FMTFormat::MeshReaderAM_FMTFormat().
00120 { 00121 int i; 00122 int retval = fscanf(__ifh,"%d",&i); 00123 if (retval <= 0) { 00124 throw ErrorHandler(__FILE__,__LINE__, 00125 "reading mesh '"+__fileName+"': expected integer not found", 00126 ErrorHandler::normal); 00127 return 0; 00128 } 00129 return i; 00130 }
| void MeshReader::__createMesh | ( | ) | [protected, virtual] |
This function is called when lists are filled to build __mesh
Definition at line 53 of file MeshReader.cpp.
References __hexahedra, MeshGenerator::__mesh, __quadrilaterals, __tetrahedra, __triangles, __vertices, and ffout().
Referenced by GmshFormatReader::GmshFormatReader(), MeshFormatReader::MeshFormatReader(), and MeshReaderAM_FMTFormat::MeshReaderAM_FMTFormat().
00054 { 00055 ReferenceCounting<VerticesCorrespondance> correspondance 00056 = new VerticesCorrespondance((*__vertices).numberOfVertices()); 00057 00058 if (__hexahedra != 0) { 00059 SurfaceMeshOfQuadrangles* quadrilaterals = 0; 00060 if (__quadrilaterals != 0) { 00061 quadrilaterals = new SurfaceMeshOfQuadrangles(__vertices, 00062 correspondance, 00063 __quadrilaterals); 00064 } 00065 MeshOfHexahedra* m 00066 = new MeshOfHexahedra(__vertices, 00067 correspondance, 00068 __hexahedra, 00069 quadrilaterals); 00070 __mesh = m; 00071 ffout(3) << "- Number of Hexahedra: " << (*__hexahedra).size() << '\n'; 00072 return; 00073 } 00074 00075 00076 if (__tetrahedra != 0) { 00077 SurfaceMeshOfTriangles* triangles = 0; 00078 if (__triangles != 0) { 00079 triangles = new SurfaceMeshOfTriangles(__vertices, 00080 correspondance, 00081 __triangles); 00082 } 00083 MeshOfTetrahedra* m 00084 = new MeshOfTetrahedra(__vertices, 00085 correspondance, 00086 __tetrahedra, 00087 triangles); 00088 __mesh = m; 00089 ffout(3) << "- Number of Tetrahedra: " << (*__tetrahedra).size() << '\n'; 00090 return; 00091 } 00092 00093 if (__triangles != 0) { 00094 for (size_t i=0; i<__vertices->numberOfVertices();++i) { 00095 const Vertex& v = (*__vertices)[i]; 00096 if (v[2] != 0) { 00097 SurfaceMeshOfTriangles* m 00098 = new SurfaceMeshOfTriangles(__vertices, 00099 correspondance, 00100 __triangles); 00101 __mesh = m; 00102 ffout(3) << "- Number of Triangles: " << __triangles->size() << '\n'; 00103 return; 00104 } 00105 } 00106 // If we get there: the mesh is a planar mesh 00107 MeshOfTriangles* m 00108 = new MeshOfTriangles(__vertices, 00109 correspondance, 00110 __triangles); 00111 __mesh = m; 00112 ffout(3) << "- Number of Triangles: " << __triangles->size() << '\n'; 00113 return; 00114 } 00115 00116 if (__quadrilaterals != 0) { 00117 SurfaceMeshOfQuadrangles* m 00118 = new SurfaceMeshOfQuadrangles(__vertices, 00119 correspondance, 00120 __quadrilaterals); 00121 __mesh = m; 00122 ffout(3) << "- Number of Quadrilaterals: " << (*__quadrilaterals).size() << '\n'; 00123 return; 00124 } 00125 }

| ReferenceCounting<Mesh> MeshReader::mesh | ( | ) | [inline] |
Access to the read mesh
Definition at line 155 of file MeshReader.hpp.
References MeshGenerator::__mesh.
00156 { 00157 return __mesh; 00158 }
| ReferenceCounting<Mesh> MeshGenerator::mesh | ( | ) | const [inline, inherited] |
Access to the generated mesh
Definition at line 43 of file MeshGenerator.hpp.
References MeshGenerator::__mesh.
Referenced by SurfaceMeshGenerator::generateSurfacicMesh().
00044 { 00045 return __mesh; 00046 }
FILE* MeshReader::__ifh [protected] |
File handle of open file
Definition at line 54 of file MeshReader.hpp.
Referenced by __getInteger(), __getReal(), MeshFormatReader::__nextKeyword(), GmshFormatReader::__nextKeyword(), GmshFormatReader::__readElements2(), GmshFormatReader::__readVertices(), MeshFormatReader::__skipComments(), GmshFormatReader::GmshFormatReader(), MeshReader(), and ~MeshReader().
std::string MeshReader::__fileName [protected] |
The file name if appropriate
Definition at line 55 of file MeshReader.hpp.
Referenced by __getInteger(), __getReal(), MeshFormatReader::__nextKeyword(), GmshFormatReader::__nextKeyword(), GmshFormatReader::__proceedData(), MeshFormatReader::__readElements(), GmshFormatReader::__readElements1(), GmshFormatReader::__readElements2(), GmshFormatReader::__readGmshFormat1(), GmshFormatReader::__readGmshFormat2(), GmshFormatReader::__readVertices(), GmshFormatReader::GmshFormatReader(), MeshFormatReader::MeshFormatReader(), and MeshReader().
ReferenceCounting<VerticesSet> MeshReader::__vertices [protected] |
List of vertices.
Definition at line 61 of file MeshReader.hpp.
Referenced by __createMesh(), GmshFormatReader::__proceedData(), MeshFormatReader::__readHexahedra(), MeshFormatReader::__readQuadrilaterals(), MeshFormatReader::__readTetrahedra(), MeshReaderAM_FMTFormat::__readTriangles(), MeshFormatReader::__readTriangles(), MeshReaderAM_FMTFormat::__readVertices(), MeshFormatReader::__readVertices(), GmshFormatReader::__readVertices(), MeshReaderAM_FMTFormat::__readVerticesReferences(), MeshFormatReader::MeshFormatReader(), and MeshReaderAM_FMTFormat::MeshReaderAM_FMTFormat().
ReferenceCounting<Vector<Hexahedron> > MeshReader::__hexahedra [protected] |
List of hexahedra.
Definition at line 67 of file MeshReader.hpp.
Referenced by __createMesh(), GmshFormatReader::__proceedData(), MeshFormatReader::__readElements(), and MeshFormatReader::__readHexahedra().
ReferenceCounting<Vector<Quadrangle> > MeshReader::__quadrilaterals [protected] |
List of quadrilaterals
Definition at line 73 of file MeshReader.hpp.
Referenced by __createMesh(), GmshFormatReader::__proceedData(), MeshFormatReader::__readElements(), and MeshFormatReader::__readQuadrilaterals().
ReferenceCounting<Vector<Tetrahedron> > MeshReader::__tetrahedra [protected] |
List of tetrahedra.
Definition at line 79 of file MeshReader.hpp.
Referenced by __createMesh(), GmshFormatReader::__proceedData(), MeshFormatReader::__readElements(), and MeshFormatReader::__readTetrahedra().
ReferenceCounting<Vector<Triangle> > MeshReader::__triangles [protected] |
List of triangles.
Definition at line 85 of file MeshReader.hpp.
Referenced by __createMesh(), GmshFormatReader::__proceedData(), MeshFormatReader::__readElements(), MeshReaderAM_FMTFormat::__readTriangles(), MeshFormatReader::__readTriangles(), MeshReaderAM_FMTFormat::__readTrianglesReferences(), and MeshReaderAM_FMTFormat::MeshReaderAM_FMTFormat().
ReferenceCounting<Mesh> MeshGenerator::__mesh [protected, inherited] |
The generated mesh
Definition at line 35 of file MeshGenerator.hpp.
Referenced by __createMesh(), MeshSimplifier::__proceed(), MeshTransformer::__transformSurface(), MeshTransformer::__transformVolume(), mesh(), MeshGenerator::mesh(), and MeshDomainTetrahedrizor::run().
1.5.6