|
From: Roger H. <rog...@mi...> - 2008-02-04 20:24:19
|
In E3GeometryTrimeshOptimize is a routine called E3TriMesh_OptimizeData. If I disable it by commenting out the line: outDidChange = optimizer.Optimize(); then my problem goes away. This looks a slick routine and I suspect there is very little wrong with it, and I do not want to make a mess of it so if the author is able to look at the problem, that would probably be far better than a stranger, particularly as it is so critical and hence errors will show up all over the place if I make it worse. I only see the problem when in a group with an edge rendering style attached. The TriMesh going into the routine has a valid edge list with all the point indices valid. The TriMesh coming out of the routine has at least one point index set to 0xffffffff. The trimesh has only three triangles and nine edges. It is a bit strange in that it comes from a TriGRID which originally creates some null triangles which I optimise out. I do not optimise out some of the extra points, hence there are 14 points in the TriMesh. I don't understand why they should cause a problem, but it is the only strange thing I can see about the TriMesh. Anyway I think it is valid to have points in the list which are not used, but maybe its worth a mention. Maybe it just that we rarely draw TriMeshes in edge mode so very little testing of this aspect has been done. Because of the 0xffffffff index, the interactive renderer generates a random line, often to the origin, which is very annoying, resize the window or drag an item about and the free end zips about all over the place. Roger Holmes. |