Moved code inline to stop g++ 2.7 from complaining.
Simulator/Time/event.[ch]xx
Changed return type of fgEVENT::printStat(). void caused g++ 2.7 to
complain bitterly.
Minor bugfix and changes.
Simulator/Main/GLUTmain.cxx
Added missing type to idle_state definition - eliminates a warning.
Simulator/Main/fg_init.cxx
Changes to airport lookup.
Simulator/Main/options.cxx
Uses fg_gzifstream when loading config file.
Nested fgFACE inside fgFRAGMENT since its not used anywhere else.
./Simulator/Objects/material.cxx
./Simulator/Objects/material.hxx
Made fgMATERIAL and fgMATERIAL_MGR bona fide classes with private
data members - that should keep the rabble happy :)
./Simulator/Scenery/tilemgr.cxx
In viewable() delay evaluation of eye[0] and eye[1] in until they're
actually needed.
Change to fgTileMgrRender() to call fgMATERIAL_MGR::render_fragments()
method.
./Include/fg_stl_config.h
./Include/auto_ptr.hxx
Added support for g++ 2.7.
Further changes to other files are forthcoming.
Brief summary of changes required for g++ 2.7.
operator->() not supported by iterators: use (*i).x instead of i->x
default template arguments not supported,
<functional> doesn't have mem_fun_ref() needed by callbacks.
some std include files have different names.
template member functions not supported.
- The new classes in libmisc.tgz define a stream interface into zlib.
I've put these in a new directory, Lib/Misc. Feel free to rename it
to something more appropriate. However you'll have to change the
include directives in all the other files. Additionally you'll have
add the library to Lib/Makefile.am and Simulator/Main/Makefile.am.
The StopWatch class in Lib/Misc requires a HAVE_GETRUSAGE autoconf
test so I've included the required changes in config.tgz.
There are a fair few changes to Simulator/Objects as I've moved
things around. Loading tiles is quicker but thats not where the delay
is. Tile loading takes a few tenths of a second per file on a P200
but it seems to be the post-processing that leads to a noticeable
blip in framerate. I suppose its time to start profiling to see where
the delays are.
I've included a brief description of each archives contents.
Lib/Misc/
zfstream.cxx
zfstream.hxx
C++ stream interface into zlib.
Taken from zlib-1.1.3/contrib/iostream/.
Minor mods for STL compatibility.
There's no copyright associated with these so I assume they're
covered by zlib's.
fgstream.cxx
fgstream.hxx
FlightGear input stream using gz_ifstream. Tries to open the
given filename. If that fails then filename is examined and a
".gz" suffix is removed or appended and that file is opened.
stopwatch.hxx
A simple timer for benchmarking. Not used in production code.
Taken from the Blitz++ project. Covered by GPL.
strutils.cxx
strutils.hxx
Some simple string manipulation routines.
Simulator/Airports/
Load airports database using fgstream.
Changed fgAIRPORTS to use set<> instead of map<>.
Added bool fgAIRPORTS::search() as a neater way doing the lookup.
Returns true if found.
Simulator/Astro/
Modified fgStarsInit() to load stars database using fgstream.
Simulator/Objects/
Modified fgObjLoad() to use fgstream.
Modified fgMATERIAL_MGR::load_lib() to use fgstream.
Many changes to fgMATERIAL.
Some changes to fgFRAGMENT but I forget what!
I've created some new classes to enable pointers-to-functions and
pointers-to-class-methods to be treated like objects. These objects
can be registered with fgEVENT_MGR.
File "Include/fg_callback.hxx" contains the callback class defns.
Modified fgEVENT and fgEVENT_MGR to use the callback classes. Also
some minor tweaks to STL usage.
Added file "Include/fg_stl_config.h" to deal with STL portability
issues. I've added an initial config for egcs (and probably gcc-2.8.x).
I don't have access to Visual C++ so I've left that for someone else.
This file is influenced by the stl_config.h file delivered with egcs.
Added "Include/auto_ptr.hxx" which contains an implementation of the
STL auto_ptr class which is not provided in all STL implementations
and is needed to use the callback classes.
Deleted fgLightUpdate() which was just a wrapper to call
fgLIGHT::Update().
Modified fg_init.cxx to register two method callbacks in place of the
old wrapper functions.
- use strings for fg_root and airport_id and added methods to return
them as strings,
- inlined all access methods,
- made the parsing functions private methods,
- deleted some unused functions.
- propogated some of these changes out a bit further.