light points. This was due to the mismatch is size and fiels in the LightPointRecord
before 15.6 and after it, the OSG's flt plugin was assuming just 15.6 record
structure. As a temporary solution I have disabled the processing of light point
records on .flt file version before 15.6, this allows these files to be loaded
safely, but without light points.
"This is a small fix for flt2osg.[cpp|h] that handles
old style road segments ( from Multigen II w/road
tools on IRIX ) in the same way as the newer road
constructions. ie create a group and do a nested
traversal.
This makes roads appear in older format files where
there was previously a gap. This actually works
properly with the paths which are marked as hidden in
the openflight database."
"
This fixes some crashing issues I was having with certain FLT files that only had partial colour palettes
Which are typically found in older 14.x files and file converted through Polytrans or Deep exploration etc.
The code that grabs the color entries in ConvertFromFLT::visitColorPalette was assuming that there were full
palettes always coming in and stepping was out of bounds in certain cases (not all) and thus crashing with
access violations etc,
Although the normal from Creator is to have 1024 or 512 entries , this is not a really requirement of the format, just the way Creator creates its default palettes etc.
Code changed to look at the number of entries and use just those and fills in any missing entries with a default white colour"
"DOFAnimation's default state could now be controlled by the RW option.
The option string is "dofAnimation"
If the option string is omitted the default animation state is off."
"ConvertFromFLT::addMultiTexture makes ENDIAN conversion for SMultiTexture
struct attributes.
When an flt object is multi-instantiated y should be done just first time,
because SMultiTexture struct is always the same, currently is being done for
each instance.
Attached file fix the problem but perhaps a more clean fix would be making
ENDIAN conversion at writing attributes time instead of at reading time. "
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."
so that it produce more optimal settings.
Changed flt/GeoSetBuilder so that it doensn't merge geometry, as it was
merging geometry even when inappropriate.
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)."