#133 Edge visibility in DXF imports.

Minor Effort
Sean Morrison

Hi Sean,
here i'm again to stress you with DXF problems.
3D objects created in autocad are often made out of 3DFaces with which you can build even complex objects. 3DFaces can have one or more edges invisible. When exported into a dxf file, invisible edges are stored with the 70 group code that you can see in the following table.
The Brl dxf importer converts 3DFaces into BOT entities and it does not deal with the group code 70. Worse still, the BOT entity does not have the possibility to hide one ore more edges. To my advice edge visibility should affect just the rt_bot_plot() function, the rt_bot_tess() instead should continue to give me the triangles as it does right now. If i want to get an outline of the whole 3d object i will call rt_bot_plot(). Storing edge visibility inside the BOT should not be difficult (probably a struct bu_bitv, with 3 bits per face), modifying the rt_bot_plot() so that it takes into account the edge visibility shouldn't be a problem too. What can be more complicated to deal with, are the boolean operations, in which you have to transfer the edge visibility information on the resulting entity and determine the edge visibility of the new triangles created.
Do you think this can be a feature that can be useful to Brl cad?
thank you for you attention.

Group codes
Subclass marker (AcDbFace)
First corner (in WCS)
DXF: X value; APP: 3D point
20, 30
DXF: Y and Z values of first corner (in WCS)
Second corner (in WCS)
DXF: X value; APP: 3D point
21, 31
DXF: Y and Z values of second corner (in WCS)
Third corner (in WCS)
DXF: X value; APP: 3D point
22, 32
DXF: Y and Z values of third corner (in WCS)
Fourth corner (in WCS). If only three corners are entered, this is the same as the third corner
DXF: X value; APP: 3D point
23, 33
DXF: Y and Z values of fourth corner (in WCS)
Invisible edge flags (optional; default = 0):
1 = First edge is invisible
2 = Second edge is invisible
4 = Third edge is invisible
8 = Fourth edge is invisible