completed the new registration of the plugin-readerwriters
("REGISTER_OSGPLUGIN") according to your osgstaticviewer-example (see
attachment, based on today's svn)."
here is a patch that enables a new option named "BIND_TEXTURE_MAP" in the LWO plugin. Its purpose is to allow explicit binding between texture UV maps defined in the LWO file and OpenGL texture units, overriding the default mechanism that allocates texture units automatically. This is useful when you have an UV map built in Lightwave (for example an atlas map) but no textures actually using it, so you can keep the UV map (that would be discarded otherwise) and add a texture later int your program.
Syntax is:
BIND_TEXTURE_MAP <map_name> <texunit>
for each Lighwave surface, in order to keep surface names (geometries can't
have names). The attached fix adds a plugin option named "COMBINE_GEODES"
that allows to place all geometries under a single Geode whenever possible,
thus offering better chances of further optimization through
osgUtil::Optimizer. The downside is that surface names are no longer stored
in the scene graph when using this option."
instead of osgDB::Registry where it original lay. This has been done to allow
fileName strings to be encode data rather than just file names, such as one
requires when using PagedLOD along with plugins for doing dynamic tesselation.
osg::Geometry class, and removed the temporary IndexedGeometry. Port the rest
of the OSG across to account for the change in method calls -
osg::Geometry::addPrimitive(..) becomes osg::addPrimitiveSet(..)
encapsulates.
Added new osg::IndexGeometry implemention, *not* complete yet.
Changed the rest of the OSG to handle the renaming og Primitive to PrimitiveSet.
only uses the INFO level for reporting that the file to load is not
recognised. Also add check for LWO2 loading so that it returns FILE_NOT_HANDLED
message correctly.
for settings options in osgDB::Registry, and added the paramter to all of the
reaader/writer plugins. The Options structure by default has an string attached
for packing basic options, however, it also can be subclassed to encapsulate
any users defined option data. In the later case both the client code *and*
the plugin need to be aware of subclass, the plugin will need to use
dynamic_cast<> to assertain its type.