mis-optimized line segments (from .iv file)

New Message Reply Date view Thread view Subject view Author view

Stuart Levy (slevy++at++ncsa.uiuc.edu)
Mon, 15 Jun 1998 19:44:09 -0500 (CDT)


There seems to be a bug -- in both Performer 2.1 and 2.2 -- with
the way collections of line-segments are optimized if they have
some vertices in common. Try examining the following in perfly:

#Inventor V2.0 ascii
Group {
 Separator {
        Coordinate3 {
         point [
                0 0 0, 1 0 0,
                0 0 0, 0 1 0,
                0 0 0, 0 0 1
]
        }
        IndexedLineSet {
         coordIndex [
                0, 1, -1,
                2, 3, -1,
                4, 5, -1
]
        }
 }
}

It should form a set of three perpendicular axes,
and ivview's view does show that, but in e.g. perfly, only two line
segments appear.

Running "pfconv" to .pfa format gives a clue:
0xdb0ace00 18 # header
#---------------------- Length Lists
4 1
#---------------------- Length List 0
2 0 -1
2
3
#---------------------- Vertex Lists
5 1
#---------------------- Vertex List 0
5 0 -1
0 0 0
0 -1 -4.37114e-08
0 -4.37114e-08 1
0 0 0
0 0 0
#---------------------- Color Lists
 [...etc...]

It seems to have optimized one of the joints to a 3-segment polyline.
This would be fine, but it's chosen the wrong vertex at the end.
Instead of something like 0 0 1 => 0 0 0 => 1 0 0,
we just get 0 0 1 => 0 0 0 => 0 0 0,
so the last segment of the 3-vertex polyline is degenerate.

We'll probably work around this by (sigh) randomly perturbing our
collections of vertices. Or is there some Performer optimization we can
suppress as Inventor files are loaded? If so, how?

  Stuart Levy, slevy++at++ncsa.uiuc.edu
=======================================================================
List Archives, FAQ, FTP: http://www.sgi.com/Technology/Performer/
            Submissions: info-performer++at++sgi.com
        Admin. requests: info-performer-request++at++sgi.com


New Message Reply Date view Thread view Subject view Author view

This archive was generated by hypermail 2.0b2 on Mon Aug 10 1998 - 17:57:32 PDT

This message has been cleansed for anti-spam protection. Replace '++at++' in any mail addresses with the '@' symbol.