versions prior to 15.8, and...
" Here's another fix for OpenFlight. The symptom was that ATTR files were
not being read correctly, and the TexEnv on a texture that should have
been set to DECAL was instead defaulting to MODULATE. The cause is that
the ATTR reader cannot tell by itself what version it's reading (the
version information isn't present in the ATTR files), and instead relies
on the ReaderWriter::Options passed in to get the OpenFlight version.
My change clones the current ReaderWriter::Options and prepends the
appropriate FLT_VER option before the ReaderWriterATTR object is
called. I also made the parsing of the FLT_VER string and value more
robust in the ReaderWriterATTR itself. I think I commented things OK,
but let me know if you need me to explain anything."
"Here there are fixes for several flt loader problems.
First one was an small bug when root database was an empty string we got a database path "/" instead of "./".
Second one is more complex. Flt loader works in two passes, first one reads flt database and second one builds osg scenegraph. Special care must be taken for properly tracking database path as nested files are entered. Because textures are loaded in second pass, mentioned care should be taken once again. I wrote time ago a piece of code and I placed it in both files fltFile.cpp and flt2osg.cpp. After a long period offline I have seen the portion of code at flt2osg was missing, I just made some tests and I could see it is still required.
Finally, I have seen that pool.cpp always try to make IMAGE cache instead of reading what Options says.
Aditonally, I recently wrote an osg change, now it has external references "a la flt" what is called osg::ProxyNode. As part of the change now flt loader builds external references as ProxyNodes. I made the same mistake like pool.cpp and always made ARCHIVE cache instead of see what Options says, it has also been fixed."
referenced file is a standard option for OpenFlight and is specified by
including the modelname in angle brackets, such as: filename<modelname>.
The attached code identifies and handles this case."
attached):
* Light point strings using the REPLICATE opcode should now be supported
(>=15.6?)
* Directional lights should now work as in Performer using a viewing
frustrum defined by a direction vector, horizontal angular width, vertical
angular width, and roll angle about the direction vector. The current
directional light implementation had some bad assumptions which caused
problems with direction vectors not on the XY plane.
* IVE and OSG reader/writers were updated as appropriate"
"Changes to provide rudimentary support for OF 15.8 light point
animation palettes. This change also includes light point palette override
support for external references. This is the last of my code changes to
support OF 15.8 in the flt loader. Barring bugs, of course, knock on wood.
The gist of the animation palette code is to create ref_ptr'd
osgSim::BlinkSequence objects for each palette entry, and then pass them on
to osgSim::LightPoint for any OpenFlight light points that reference that
palette entry. This should be conservative of memory (not that I expect the
animation palette to be extremely large)."
direction normal has a zero length. The net effect is that unidirectional
light points with zero length direction vectors are now treated as
omnidirectional light points."
point appearance palette to the OpenFlight loader. Both are 15.8 features.
I also added parsing/comments regarding other things that have changed for
v15.8."
> There are databases that contain both Matrix and GeneralMatrix records as
> ancillary records. If this happens, this fix will only use one matrix to
> create osg::TransformMatrix node.
Fixed crash associated with .osg files which contain empty description fields.
From Sondra Inverson, added support to .ive plugin for osgSim::DOFTransform.
From Alberto, changed the use of the DynGeoSet to it was querried on demand
rather than used as a pointer which was originally being invalidate before
use.