|
a |
|
b/Cobiveco/functions/mmgWriteMesh.m |
|
|
1 |
function mmgWriteMesh(mesh, filename) |
|
|
2 |
|
|
|
3 |
fid = fopen(filename, 'w'); |
|
|
4 |
if ~fid |
|
|
5 |
error('Could not open %s for writing.', filename); |
|
|
6 |
end |
|
|
7 |
|
|
|
8 |
fprintf(fid, '%s\n', '# MESH #'); |
|
|
9 |
fprintf(fid, '%s\n\n', 'MeshVersionFormatted 2'); |
|
|
10 |
fprintf(fid, '%s\n\n', 'Dimension 3'); |
|
|
11 |
|
|
|
12 |
fprintf(fid, 'Vertices\n'); |
|
|
13 |
fprintf(fid, '%d\n', size(mesh.points,1)); |
|
|
14 |
if ~isfield(mesh, 'pointData') || ~isfield(mesh.pointData, 'class') |
|
|
15 |
mesh.pointData.class = zeros(size(mesh.points,1),1); |
|
|
16 |
end |
|
|
17 |
fprintf(fid, '%f %f %f %d\n', [mesh.points mesh.pointData.class]'); |
|
|
18 |
fprintf(fid, '\n'); |
|
|
19 |
|
|
|
20 |
fprintf(fid, 'Tetrahedra\n'); |
|
|
21 |
fprintf(fid, '%d\n', size(mesh.cells,1)); |
|
|
22 |
if ~isfield(mesh, 'cellData') || ~isfield(mesh.cellData, 'class') |
|
|
23 |
mesh.cellData.class = zeros(size(mesh.cells,1),1); |
|
|
24 |
end |
|
|
25 |
fprintf(fid, '%d %d %d %d\n\n', [mesh.cells mesh.cellData.class]'); |
|
|
26 |
fprintf(fid, '\n'); |
|
|
27 |
|
|
|
28 |
fprintf(fid, 'End \n'); |
|
|
29 |
fclose(fid); |
|
|
30 |
|
|
|
31 |
end |