Fix permuted vertex lists from g-iges+iges-gBRL-CAD
Status: ClosedTime to complete: 72 hrs Mentors: SeanTags: C, geometry, IGES, vertices, validation, bug fix

This is a follow-on to task http://www.google-melange.com/gci/task/view/google/gci2013/5345276583739392

Basically, use the information from the suspected cause of the bug, which has been narrowed down to just a few locations in the code, and see if a fix can be devised and demonstrated.

Provide a patch that fixes the permutation, either by changing the g-iges export or the iges-g import (or both if necessary).

 

Uploaded Work
File name/URLFile sizeDate submitted
IGES_patch1.diff744 bytesDecember 14 2013 03:13 UTC
Comments
Peter Amidonon December 11 2013 15:45 UTCTask Claimed

I would like to work on this task.

Mandeep Kaur on December 11 2013 15:46 UTCTask Assigned

This task has been assigned to Andromeda Galaxy. You have 72 hours to complete this task, good luck!

Peter Amidonon December 12 2013 04:48 UTCData loss in iges-g; progress and request for feedback

Hi,


I have fixed the problem that I identified in http://www.google-melange.com/gci/task/view/google/gci2013/5345276583739392; however, I have found another problem: even when the vertices are read in in the correct order, with the orientations changed as I suggested, the Make_planar_face function calls nmg_cmface with the list of vertices, and throws away the edge information, which means that the vertex lists are still permuted. I think that the way to fix this would be to rewrite Make_planar_face to use nmg_m* functions to create the face itself from a loop from the edges that it reads in, instead of using nmg_cmface.


After I fixed the first problem, I've spent a large amount of time identifying this second problem, and I wanted to know if my analysis seems correct and whether you want me to submit the first fix and treat this as a different task. I've already spent more than 2-3 hours on this task and I think that attempting to write a face constructor like this would take a considerable amount of time.

Peter Amidonon December 14 2013 03:13 UTCReady for review

The work on this task is ready to be reviewed.

Peter Amidonon December 14 2013 03:15 UTCPlanned work done, but still errors

Hi,


The diff that I uploaded fixes the error looked at in the first task, but there are still some other errors --- see my previous comment "Data loss in iges-g; progress and request for feedback". Is this sufficient to mark this task as complete? I've spent something like 8 hrs investigating the problems after the fix provided here, and I think I know what needs to be done, but it will take a large amount of time (again, see previous comment).

Sean on December 14 2013 03:16 UTCTask Closed

Congratulations, this task has been completed successfully.

Sean on December 14 2013 03:18 UTCyour analysis

Andromeda, can't really say whether your analysis is correct or not and we'll not have time to dig into a debugging session on the issue until after GCI, so we can just claim victory for now on your efforts.  I'd certainly be happy to create a follow-on task if you want to explore rewriting Make_planar_face() to retain/use the edge orientation information.

Peter Amidonon December 14 2013 05:17 UTCWorking on this after GCI?

I think that fixing this will probably take more time than would work well for GCI; however, I would be interested in attempting to fix this post-GCI. Also, I think that you suggested that I get a Sourceforge account; I was wondering what that would be useful for in connection to GCI; could you please elaborate?