From 1326f4616d2d42a25796a8403b846c27136babcc Mon Sep 17 00:00:00 2001 From: Robert Osfield Date: Thu, 20 Dec 2001 16:34:54 +0000 Subject: [PATCH] Added check for null models be returned form osgDB::readNodeFiles(..) to prevent execution when no models have been loaded. --- src/Demos/hangglide/hangglide.cpp | 116 ++++---------------------- src/Demos/osgimpostor/osgimpostor.cpp | 1 + src/Demos/osgviews/osgviews.cpp | 1 + src/Demos/sgv/sgv.cpp | 1 + 4 files changed, 21 insertions(+), 98 deletions(-) diff --git a/src/Demos/hangglide/hangglide.cpp b/src/Demos/hangglide/hangglide.cpp index b1bf7c90f..c21395ac5 100644 --- a/src/Demos/hangglide/hangglide.cpp +++ b/src/Demos/hangglide/hangglide.cpp @@ -22,106 +22,29 @@ extern osg::Node *makeSky( void ); extern osg::Node *makeBase( void ); extern osg::Node *makeClouds( void ); -/* - * Function to read several files (typically one) as specified on the command - * line, and return them in an osg::Node - */ -osg::Node* getNodeFromFiles(int argc,char **argv) -{ - - int i; - - typedef std::vector NodeList; - NodeList nodeList; - for( i = 1; i < argc; i++ ) - { - - if (argv[i][0]=='-') - { - switch(argv[i][1]) - { - case('l'): - ++i; - if (iloadLibrary(argv[i]); - } - break; - case('e'): - ++i; - if (icreateLibraryNameForExt(argv[i]); - osgDB::Registry::instance()->loadLibrary(libName); - } - break; - } - } else - { - osg::Node *node = osgDB::readNodeFile( argv[i] ); - - if( node != (osg::Node *)0L ) - { - if (node->getName().empty()) node->setName( argv[i] ); - nodeList.push_back(node); - } - } - - } - - if (nodeList.size()==0) - { - osg::notify(osg::INFO) << "No data loaded."<< std::endl; - return 0; - } - - osg::Node *rootnode = new osg::Node; - if (nodeList.size()==1) - { - rootnode = nodeList.front(); - } - else // size >1 - { - osg::Group* group = new osg::Group(); - for(NodeList::iterator itr=nodeList.begin(); - itr!=nodeList.end(); - ++itr) - { - group->addChild(*itr); - } - - rootnode = group; - } - - return rootnode; -} - int main( int argc, char **argv ) { + glutInit( &argc, argv ); - // if (argc<2) - // { - // osg::notify(osg::NOTICE)<<"usage:"<< std::endl; - // osg::notify(osg::NOTICE)<<" sgv [options] infile1 [infile2 ...]"<< std::endl; - // osg::notify(osg::NOTICE)<< std::endl; - // osg::notify(osg::NOTICE)<<"options:"<< std::endl; - // osg::notify(osg::NOTICE)<<" -l libraryName - load plugin of name libraryName"<< std::endl; - // osg::notify(osg::NOTICE)<<" i.e. -l osgdb_pfb"<< std::endl; - // osg::notify(osg::NOTICE)<<" Useful for loading reader/writers which can load"<< std::endl; - // osg::notify(osg::NOTICE)<<" other file formats in addition to its extension."<< std::endl; - // osg::notify(osg::NOTICE)<<" -e extensionName - load reader/wrter plugin for file extension"<< std::endl; - // osg::notify(osg::NOTICE)<<" i.e. -e pfb"<< std::endl; - // osg::notify(osg::NOTICE)<<" Useful short hand for specifying full library name as"<< std::endl; - // osg::notify(osg::NOTICE)<<" done with -l above, as it automatically expands to the"<< std::endl; - // osg::notify(osg::NOTICE)<<" full library name appropriate for each platform."<< std::endl; - // osg::notify(osg::NOTICE)<< std::endl; - // - // return 0; - // } + // create the commandline args. + std::vector commandLine; + for(int i=1;i