oiv7.0 --配置
一、SoPreferences类设置查询配置参数。
当oiv被初始化时,自动读取两个配置文件:(1)系统配置文件$OIVHOME/oiv.cfg或由OIV_CONFIG_FILE环境变量指定的文件(2)本地配置文件,位于应用程序当前工作目录,名叫oiv.cfg。
其它的配置文件可用SoPreferences::readFile获得。
如果配置文件中所定义的变量已经在oiv环境变量中被定义,它将会把oiv环境变量中己定义的值覆盖。
如果设置了OIV_DEBUG_CONFIG环境变量,所读的文件及设置的值会被显示用于调试。
从配置文件中读取的值被设置在oiv配置数据库中。因为这些值只能被设置在内存中,可用SoPreferences::getValue 获得。
注:现在如果修改了配置文件中变量值,它就可以在程序中使用,而不用重新启动程序。
可以用SoPreferences类的许多set方法来设置,也可以用设系统环境变量的方式setenv/export来设置,但前者是平台独立的,后者必须清楚变量的影响范围,所以前者方法更好。
查询配置数据库:首先查找配置数据库,如果没找到,再从系统环境中找,如果只能在系统环境中找到,则把该值存放在配置数据库中以加快下次查找速度。SoPreferences::getValue()接收一个参数名,返回对应的值,如果没找到,返回null. 或者用以下方法来获得
bool getBool (const char *name, bool defaultValue);
int getInt (const char *name, int defaultValue);
long getLong (const char *name, long defaultValue);
float getFloat (const char *name, float defaultValue);
double getDouble (const char *name, double defaultValue);
const SbString &getString (const char *name, const SbString &defaultValue);
const SbVec3f &getVec3f (const char *name, const SbVec3f &defaultValue);
const SbColor &getColor (const char *name, const SbColor &defaultValue);
name表示参数名,找到返回值,否则返回默认值。
二、配置oiv初始状态:
影响初始viewer或渲染行为状态的变量,可以在程序中设置修改,如OIV_TRANSPARENCY_TYPE,OIV_BACKGROUND_COLOR
影响初始遍历状态的变量,该遍历状态是在遍历过程中通过节点来修改的,可通过场景图中的节点来覆盖,如OIV_COMPLEXITY,OIV_TEXTURE_QUALITY
三、图形配置管理:
SoGraphicConfigTemplate类:参数
SoGraphicDevice类:设备
SoGraphicConfig类:配置