Completed first pass at providing commandline option usage via the new

osg::ArgumentPareser and osg::ApplicationUsage classes. The osgproducer
demo has been implemented using these new mechansims.
This commit is contained in:
Robert Osfield
2003-02-18 21:58:40 +00:00
parent cabc0025cb
commit 73f741d16f
8 changed files with 99 additions and 79 deletions

View File

@@ -16,18 +16,24 @@
#include <osg/Export>
#include <string>
#include <map>
#include <string>
#include <iostream>
namespace osg {
// forward declare
class ApplicationUsage;
class SG_EXPORT ArgumentParser
{
public:
ArgumentParser(int* argc,char **argv):
_argc(argc),
_argv(argv) {}
ArgumentParser(int* argc,char **argv);
void setApplicationUsage(ApplicationUsage* usage) { _usage = usage; }
ApplicationUsage* getApplicationUsage() { return _usage; }
const ApplicationUsage* getApplicationUsage() const { return _usage; }
/** return the argument count.*/
int& argc() { return *_argc; }
@@ -40,8 +46,6 @@ class SG_EXPORT ArgumentParser
/** return const char* argument at specificed position.*/
const char* operator [] (int pos) const { return _argv[pos]; }
/** return the program name, as specified by argv[0] */
std::string getProgramName() const;
@@ -131,9 +135,10 @@ class SG_EXPORT ArgumentParser
protected:
int* _argc;
char** _argv;
ErrorMessageMap _errorMessageMap;
int* _argc;
char** _argv;
ErrorMessageMap _errorMessageMap;
ApplicationUsage* _usage;
};

View File

@@ -15,13 +15,16 @@
#define OSG_DisplaySettings 1
#include <osg/Referenced>
#include <osg/ArgumentParser>
#include <string>
#include <vector>
namespace osg {
// forward declare
class ArgumentParser;
class ApplicationUsage;
/** DisplaySettings class for encapsulating what visuals are required and
* have been set up, and the status of stereo viewing.*/
class SG_EXPORT DisplaySettings : public osg::Referenced