osgAnimation.StatsHandler是一个用于显示OpenSceneGraph动画状态信息的类。它可以显示动画的帧率、播放时间、绑定的动画通道的名称和它们的加权影响值等信息。
创建一个osgAnimation::StatsHandler对象并将其分配给osgViewer::View的statsHandler成员变量后,可以在窗口中显示动画状态信息。
osgViewer::View *viewer = new osgViewer::View;
osgAnimation::StatsHandler *statsHandler = new osgAnimation::StatsHandler;
viewer->setStatsHandler(statsHandler);
以下是osgAnimation::StatsHandler的一些方法:
StatsHandler():构造函数
StatsHandler(const StatsHandler& rhs, const osg::CopyOp& copyop = osg::CopyOp::SHALLOW_COPY):拷贝构造函数
bool handle(const osgGA::GUIEventAdapter& ea,osgGA::GUIActionAdapter& aa):处理GUI事件
bool push(osg::State& state):压入状态
void pop(osg::State& state):弹出状态
void collectStats(osg::RenderInfo& renderInfo, unsigned int contextID):收集状态信息
void updateStats(osg::RenderInfo& renderInfo):更新状态信息
virtual osg::Camera createCamera()*:创建一个用于显示状态信息的相机
void setKeyEventIncrement(unsigned int keyEventIncrement):设置按键事件增量
unsigned int getKeyEventIncrement() const:获取按键事件增量
int main(int argc, char **argv)
{
osgViewer::Viewer viewer;
osg::ref_ptr<osg::Node> root = osgDB::readNodeFile("path/to/your/model");
if (!root.valid()) {
osg::notify(ERROR) << "Failed to read model" << std::endl;
return -1;
}
// Add stats handler to the viewer
osg::ref_ptr<osgAnimation::StatsHandler> statsHandler = new osgAnimation::StatsHandler;
viewer.setStatsHandler(statsHandler);
viewer.setSceneData(root.get());
viewer.run();
return 0;
}
osgAnimation.StatsHandler源代码 和 OpenSceneGraph 3.6.5文档。