20 |
#include <MeshReader.hpp> |
#include <MeshReader.hpp> |
21 |
|
|
22 |
#include <MeshOfHexahedra.hpp> |
#include <MeshOfHexahedra.hpp> |
23 |
|
#include <SurfaceMeshOfTriangles.hpp> |
24 |
|
|
25 |
MeshReader::Keyword MeshReader::__nextKeyword() |
MeshReader::Keyword MeshReader::__nextKeyword() |
26 |
{ |
{ |
121 |
|
|
122 |
break; |
break; |
123 |
} |
} |
124 |
|
case Triangles: { |
125 |
|
size_t numberOfTriangles = __getInteger(); |
126 |
|
|
127 |
|
__triangles = new Vector<Triangle>(numberOfTriangles); |
128 |
|
|
129 |
|
this->__readTriangles(); |
130 |
|
ffout(4) << "- Number of triangles: " << numberOfTriangles << '\n'; |
131 |
|
|
132 |
|
break; |
133 |
|
} |
134 |
default: { |
default: { |
135 |
fferr(0) << "Reading " << kw.first << " is not implemented\n"; |
fferr(0) << "Reading " << kw.first << " is not implemented\n"; |
136 |
std::exit(1); |
std::exit(1); |
158 |
|
|
159 |
const size_t ref = __getInteger(); |
const size_t ref = __getInteger(); |
160 |
|
|
161 |
|
#warning SHOULD USE REFERENCE HERE |
162 |
H[i] = Hexahedron(V[a],V[b],V[c],V[d],V[e],V[f],V[g],V[h]); |
H[i] = Hexahedron(V[a],V[b],V[c],V[d],V[e],V[f],V[g],V[h]); |
163 |
} |
} |
164 |
} |
} |
165 |
|
|
166 |
|
void MeshReader::__readTriangles() |
167 |
|
{ |
168 |
|
VerticesSet& V = *__vertices; |
169 |
|
Vector<Triangle>& T = *__triangles; |
170 |
|
|
171 |
|
for (size_t i=0; i<T.size(); ++i) { |
172 |
|
const size_t a = __getInteger() - 1; |
173 |
|
const size_t b = __getInteger() - 1; |
174 |
|
const size_t c = __getInteger() - 1; |
175 |
|
|
176 |
|
const size_t ref = __getInteger(); |
177 |
|
|
178 |
|
#warning SHOULD USE REFERENCE HERE |
179 |
|
T[i] = Triangle(V[a],V[b],V[c]); |
180 |
|
} |
181 |
|
} |
182 |
|
|
183 |
|
|
184 |
MeshReader::MeshReader(std::istream& is, |
MeshReader::MeshReader(std::istream& is, |
185 |
std::string s) |
std::string s) |
196 |
__keywordList["Hexahedra"]=Hexahedra; |
__keywordList["Hexahedra"]=Hexahedra; |
197 |
__keywordList["Normals"]=Normals; |
__keywordList["Normals"]=Normals; |
198 |
__keywordList["Tangents"]=Tangents; |
__keywordList["Tangents"]=Tangents; |
199 |
|
__keywordList["End"]=EndOfFile; |
200 |
|
|
201 |
size_t integer; |
size_t integer; |
202 |
|
|
248 |
MeshOfHexahedra* m = new MeshOfHexahedra(__vertices, __hexahedra); |
MeshOfHexahedra* m = new MeshOfHexahedra(__vertices, __hexahedra); |
249 |
__mesh = m; |
__mesh = m; |
250 |
} |
} |
251 |
|
if (__triangles != 0) { |
252 |
|
SurfaceMeshOfTriangles* m = new SurfaceMeshOfTriangles(__vertices, __triangles); |
253 |
|
__mesh = m; |
254 |
|
} |
255 |
} |
} |