今天我开始一边学习一边解析osg3.0.1中的每一个例子。
首先,开始是osg2cpp,这个例子主要说明了把GLSL中的定点着色器和片源着色器文件读取成一个char数组,可以在应用程序中直接拷贝定义。
首先是命令行处理类ArgumentParser和ApplicationUsage,通过这两个类可以处理控制台程序的命令行命令,程序的操作说明,命令行参数方法等。
arguments.getApplicationUsage()->setApplicationName 设置应用程序名称;
arguments.getApplicationUsage()->setDescription设置应用程序描述
arguments.getApplicationUsage()->setCommandLineUsage设置应用程序使用描述
arguments.getApplicationUsage()->addCommandLineOption设置应用程序具体的命令描述
if (arguments.read("-h") || arguments.read("--help"))
{
arguments.getApplicationUsage()->write(std::cout);
return 1;
}
很常用的方法,显示帮助信息。
osgUtil库中存放各种工具类,方便操作,本例子中用到了字符串的处理(当然,qt等中也有自己的一套处理字符串函数),建议使用osg的。
然后就是string中的find_first_of 、std::string::size_type、std::string::npos。
std::string::size_type返回一种unsigned类型,不同的机器解析不同,对于string的size一定要返回size_type类型而不是int,