osgDB.FieldReader是OpenSceneGraph中的一个读取器,用于将场景中的字段(Field)转换为相应的结构体类型。其基于osgDB::InputStream,可以从流中读取数据并解析成特定的C++类型。
FieldReader(osgDB::InputStream& is)
创建一个FieldReader对象,并从指定的输入流中读取数据。
从输入流中读取一个字段,并将其转换成类型T。如果读取失败,将返回defaultValue。fieldName指定了要读取的字段名称。
开始读取记录(Record),并指定要读取的字段。
结束当前读取的记录,并返回记录的名称。
从输入流中读取一个字符。
从输入流中读取特定的文本。
从输入流中读取一个字符。
从输入流中读取特定的文本。
// 从osgDB::InputStream中读取场景中的位置坐标
osg::Vec3d position;
osgDB::FieldReader reader(inputStream);
reader.read(position, "position", osg::Vec3d(0,0,0));
// 从osgDB::InputStream中读取场景中的旋转角度
osg::Quat rotation;
osgDB::FieldReader reader(inputStream);
reader.startRecord("rotation");
reader.read(rotation, "x", osg::Quat());
reader.read(rotation, "y", osg::Quat());
reader.read(rotation, "z", osg::Quat());
reader.endRecord();