I can't remember, is it okay to make OSGExp submissions here?
Right now osg::Textures and texcoords can only be exported if an
osg::Material is also exported. This changes separates them so
textures can be exported without materials. I submitted something
similar a long time ago as revision 151. It looks like it was reverted
in revision 152, but the commit comment makes it unclear if it was
reverted intentionally or unintentionally. I still think this is a
useful modification.
I also added a 2 .c_str() without which I couldn't compile. I'm using
Visual Studio 2008 Express Edition and 3ds Max 8.
Index: OSGExp.cpp
===================================================================
--- OSGExp.cpp (revision 275)
+++ OSGExp.cpp (working copy)
@@ -584,13 +584,11 @@
// Add the nodes material to out material list
// Null entries are ignored when added...
- if(_options->getExportMaterials()){
- BOOL mtlAdded = _mtlList->addMtl(node->GetMtl(), t);
- if(mtlAdded){
- // Update material exporting progress bar.
- _nCurMtl++;
-
_ip->ProgressUpdate((int)((float)_nCurMtl/_nTotalMtlCount*100.0f));
- }
+ BOOL mtlAdded = _mtlList->addMtl(node->GetMtl(), t);
+ if(mtlAdded){
+ // Update material exporting progress bar.
+ _nCurMtl++;
+
_ip->ProgressUpdate((int)((float)_nCurMtl/_nTotalMtlCount*100.0f));
}
}
Index: MtlKeeper.cpp
===================================================================
--- MtlKeeper.cpp (revision 275)
+++ MtlKeeper.cpp (working copy)
@@ -639,7 +639,8 @@
// Make the OSG material.
osg::ref_ptr<osg::Material> osgMtl = createMaterial(stdMtl, t);
// Set the material to the stateset.
- stateset->setAttribute(osgMtl.get());
+ if(options->getExportMaterials())
+ stateset->setAttribute(osgMtl.get());
// Set blend function if material is transparent.
if (stdMtl->GetOpacity(t)!= 1.0f)
Util::addAlphaBlendFunc(stateset);
@@ -1626,8 +1627,8 @@
// If original file is specified, then make exact copy of file
if( !originalFile.empty() ) {
- M_STD_FISTREAM src(originalFile, M_STD_FISTREAM::in |
M_STD_FISTREAM::binary);
- M_STD_FOSTREAM dst(filename, M_STD_FOSTREAM::out |
M_STD_FOSTREAM::binary);
+ M_STD_FISTREAM src(originalFile.c_str(), M_STD_FISTREAM::in |
M_STD_FISTREAM::binary);
+ M_STD_FOSTREAM dst(filename.c_str(), M_STD_FOSTREAM::out |
M_STD_FOSTREAM::binary);
if(src && dst) {
dst << src.rdbuf();
return BMMRES_SUCCESS;
_______________________________________________
osg-submissions mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-submissions-openscenegraph.org