I've made some changes to the Scenery handling. Basically just tidy ups.
The main difference is in tile.[ch]xx where I've changed list<fgFRAGMENT> to
vector<fgFRAGMENT>. Studying our usage patterns this seems reasonable.
Lists are good if you need to insert/delete elements randomly but we
don't do that. All access seems to be sequential. Two additional
benefits are smaller memory usage - each list element requires pointers
to the next and previous elements, and faster access - vector iterators
are smaller and faster than list iterators. This should also help
Charlie Hotchkiss' problem when compiling with Borland and STLport.
./Lib/Bucket/bucketutils.hxx
Convenience functions for fgBUCKET.
./Simulator/Scenery/tile.cxx
./Simulator/Scenery/tile.hxx
Changed fragment list to a vector.
Added some convenience member functions.
./Simulator/Scenery/tilecache.cxx
./Simulator/Scenery/tilecache.hxx
use const fgBUCKET& instead of fgBUCKET* where appropriate.
./Simulator/Scenery/tilemgr.cxx
./Simulator/Scenery/tilemgr.hxx
uses all the new convenience functions.
- saving the entire vertex list for each tile with the tile records.
- saving the face list for each fragment with the fragment records.
- code to intersect the current vertical line with the proper face in
an efficient manner as possible.
Fixed a bug where the tiles weren't being shifted to "near" (0,0,0)
Working on rewriting the tile management system so a tile is just a list
fragments, and the fragment record contains the display list for that fragment.