Hi all -- The osg::Geometry class appears to be undergoing a series of modifications that break existing code. I'd like to start a discussion on what people think might be the best way to support both OSG trunk and also v2.8.5. I'm not familiar with the changes in OSG trunk, so I'll rely on the expertise of others here.
One option would be to modify osgWorks with a liberal sprinkling of CPP guards around affected code. This was done, for example, in r528.
So, for the second option, I'd propose a more wholesale use of CPP: For a given affected file, we could have:
#ifdef OSGWORKS_OSG_VERSION < 30108 )
place original file contents here
#else
place new version of file here
#endif
This would give us uncompromised v2.8.5 compatibility, and the new code could probably be lifted directly from OSG trunk in the case of things like TangentSpaceGeneratorDouble and MeshOptimizers. The new code could also be maintained independently of the existing code.
A third option would be to branch osgWorks: a v2.8.5 branch, and an OSG main trunk compatibility branch. This makes sense to me, if the changes to osg::Geometry are as drastic as I understand them to be. This would also be a good safeguard against any possible future incompatible changes to OSG.
Does anyone have other ideas or suggestions on how to proceed? Thanks.
--
Paul Martz
Skew Matrix Software LLC