Hi Sukender,

I don't feel this suggestion is appropriate for the OSG.  Adaption of
external data structures is a better route that directly integrating
and then using optional compilation to weave a route.

Robert.

On Mon, Dec 1, 2008 at 9:59 AM, Sukender <[EMAIL PROTECTED]> wrote:
> Hi Robert, hi everyone,
>
> Abstract (If you don't have time to read all the mail!): Some dependencies 
> may be added to OSG when users manually compile OSG with CMake. This would be 
> a strictly optional feature that would not be included in precompiled 
> packages. Examples: boost ref pointers, boost paths, etc.
>
>
> Detail:
> I know core OSG should not have dependencies other than critical ones, but 
> what about *optional* dependencies?
> I explain myself... I mainly think about boost, but this may be applied to 
> more. The idea is that some portions of code *may* use dependencies that the 
> user chooses while executing the CMake script. But precompiled packackes 
> would *NEVER* use such dependencies (or else this would be a custom package).
>
> Take this example: file and directories paths. All methods using paths should 
> be written like this:
>    void readNodeFile(osg::Path & filePath);
>
> Then, in <osg/Path> header would be found something like:
>    #ifdef OSG_USE_BOOST_FILESYSTEM
>
>    #include <boost/filesystem/path.hpp>
>    namespace osg {
>        typedef boost::filesystem::path Path;
>    }
>
>    #else
>
>    #include <string>
>    namespace osg {
>        typedef std::string Path;
>    }
>    #endif    // OSG_USE_BOOST_FILESYSTEM
>
>
> An option that defines "OSG_USE_BOOST_FILESYSTEM" may then be found in the 
> CMake, and should be turned OFF by default (and marked as "advanced"). Of 
> course we would also have "BOOST_INCLUDE" and "BOOST_LIB"-like variables, 
> created by the FindBoost standard module.
>
> Advantages:
> - Users using use boost::filesystem in their project would benefit from it 
> into OSG.
> - It increases the interoperability with other libraries, since the user 
> would not have to write method overloads that might create compile errors 
> (try calling an osgDB::readNodeFile(boost::filesystem::path &) overload 
> giving it a std::string and and you'll get a "ambiguous call" error).
> - Methods using paths would be clearer (as a path is not necessarily a 
> string).
>
> Drawbacks:
> - It needs a little tweak in the CMake.
> - Well, I don't see more drawbacks (As this would be a strictly optional 
> feature, used and maintained by those who use it).
>
> Other options like these may be included by users that want to use some 
> dependencies, such as boost ref pointers (As it has been discussed before). 
> These optional features would benefit other users.
>
> About using boost::filesystem, I can write the code and send it to 
> osg-submissions. I just wait for authorization.
>
> All users are invited to post suggestions about this!
> Thanks for reading!
>
> Sukender
> PVLE - Lightweight cross-platform game engine - http://pvle.sourceforge.net/
> _______________________________________________
> osg-users mailing list
> osg-users@lists.openscenegraph.org
> http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
>
_______________________________________________
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

Reply via email to