1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
|
function [vertex,faces] = ReadGeomFile(file);
%%
% Purpose: given a file.geom, extract a vector containing the vertex, and
% a vector containing the faces
%
% file file.geom
% vertex vector of vertex
% x y z
% for vertex 0, 1, ..., vertex_count-1
% faces vector of faces
% (n) v1 v2 ... vn,
% (the number of vertices) and the vertex indices for each face.
%
% HK 2010/01/04
%% Processing
% Progress bar
h_waitbar = waitbar(0,'Please wait...'); set(h_waitbar,'windowstyle','modal');
f = fopen(file);
% Initialization: get the number of vertex, faces and edges
[nb_vertex,nb_faces,nb_edges] = textread(file, ' %f %f %f ', 1, 'headerlines', 1);
% Get the vertex vector
vertex=zeros(nb_vertex,3);
for i=1:nb_vertex
[x,y,z] = textread(file, '%f %f %f ', 1, 'headerlines', i+1);
vertex(i,1)=x;
vertex(i,2)=y;
vertex(i,3)=z;
end
% Get the faces vector
faces=zeros(nb_faces,3);
for i=1:nb_faces
%Update waitbar
for j=1:300,
waitbar((i+j/300)/nb_faces,h_waitbar)
end
set(h_waitbar,'windowstyle','modal');
[n, v1,v2,v3] = textread(file, '%f %f %f %f ', 1, 'headerlines', (i+1)+nb_vertex);
% Assign v+1 because first vertex vector indice is 1 instead of 0
faces(i,1)=v1+1;
faces(i,2)=v2+1;
faces(i,3)=v3+1;
end |
Partager