Hi Mattias,
Thanks for the changes. I have done a quick review and am not happy
with placing a plugin specific data structure like ColladaOptions into
a general purpose library like osgDB. Once one starts going down the
road in placing plugin specific data structures in osgDB you'll end up
on a slippery slope of messy and difficult to maintain library.
I don't have a solution to this problem yet. Perhaps a general
purpose UserData object for passing in/out void pointers would be
sufficient. Or perhaps one could provide a
std::map<std::string,void*> in ReaderWriter::Options base class for
passing in and out different types of data, i.e.
options->setExternalData("DAE",dataPtr);
DAE* daePtr = (DAE*)options->getExternalData("DAE");
The aim must be to keep things with a very loose coupling in osgDB,
and to make any extensions general purpose.
Robert.
On 9/26/07, Mattias Linde <[EMAIL PROTECTED]> wrote:
> Hi,
>
> I've attached some suggested changes to the collada plugin:
>
> I've added a ColladaOptions class which can specify which DAE instance should
> be used. If no options are used when osgDB::readNodeFile is called the plugin
> will work just as before.
> (include/osgDB/ColladaOptions and src/osgDB/ColladaOptions.cpp in the tarball)
>
> With the colladaoptions one can use an "external" (as in outside of osg)
> dae-instance which possibly already holds parsed data or an internal instance
> (the plugin creates one unless it has already done so). The options object
> also makes it possible to get a pointer to the dae instance so it can be
> used outside of osg.
>
> src/osgPlugins/dae/ReaderWriterDAE.cpp have been updated to use
> ColladaOptions.
> daeReader.h and daeWriter.h have one minor change each, a ; was removed after
> the
> namespace end } which caused a warning.
>
> CMakeLists.txt have also been updated to link with collada_dom_shared and
> collada_dae_shared (if not under win32) instead of collada_dom and
> collada_dae.
> This is because of collada-dom now supports building shared libs under linux
> (been tested on OS X aswell). Linking with the static libs in the plugin
> can (and have) cause problems if the application using osg links with
> collada-dom
> libraries.
>
> / Mattias
>
> _______________________________________________
> osg-submissions mailing list
> [email protected]
> http://lists.openscenegraph.org/listinfo.cgi/osg-submissions-openscenegraph.org
>
>
>
_______________________________________________
osg-submissions mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-submissions-openscenegraph.org