2.49 mesh.faces.extend skips faces

mesh.faces.extend([f.vertex_index for f in self.faces])

Will reorder some face indices and even skip some of the faces for a number of models I am trying to import.

The faces are trianges. Checking them for out of bounds indices and degenerate faces doesn’t help. There have to be other criteria to skip them. I wonder what they are?

Any tips would be greatly appreciated.

hi Log0,
more details are needed to answer your question.
Analyzing the output of this line could help:

print [f.vertex_index for f in self.faces]

Maybe “missing” faces are there but invisible due back-faced normals?

I think the question here is related to the question posted at this thread. BUT, to my prospective, Log0’s terminology is NOT quite correct cause it is a matter of putting verts in certain face in disorder (compared to an orgiginal) rather than disordering or missing faces.

As par disordering verts in a certain face (see the other thread), Log0, why dont you check if ALL normals of the orginal mesh (the one you compare the result with) point the same direction, i.e ALL outside or ALL inside? May be the face with the disordered verts point inside while the others point outside (it normal, I mean)? Soooo… if this is the case, you’re constructing a new body just “normally” and by using one and the same method for all new faces and therefore, your new face normal will point as the others (outside) and this may require exactly such order of verts - the one you’re observing at the NEW face…


The problem has been the input mesh. It contains face permutations for double-sided faces I guess. Blender is going to skip them.

Debug (obj format):

f 1/1 3/3 6/4
f 3/3 1/1 6/4
f 24/2 22/4 21/1
f 22/4 24/2 21/1

A solution would be to duplicate the referenced vertices.