最开始的应用是读取模型了
int main()
{
osg::ref_ptr<osgViewer::Viewer> viewer=new osgViewer::Viewer;
osg::ref_ptr<osg::Node> node=new osg::Node;
node=osgDB::readNodeFile("glider.osg");
//添加帮助
viewer->addEventHandler(new osgViewer::HelpHandler);
//添加状态
viewer->addEventHandler(new osgViewer::StatsHandler);
//添加窗口大小变化
viewer->addEventHandler(new osgViewer::WindowSizeHandler);
viewer->setSceneData(node);
return viewer->run();
}
osg::Timer的应用:
举例说明,例如读取一个模型:
方法一:
int main()
{
osg::ref_ptr<osgViewer::Viewer> viewer=new osgViewer::Viewer;
osg::ref_ptr<osg::Node> node=new osg::Node;
//申请一个定时器
osg::Timer* timer=new osg::Timer;
osg::Timer_t start_time=0;
osg::Timer_t end_time=0;
//得到一个tick值为多少
std::cout<<timer->getSecondsPerTick()<<std::endl;
//读取模型
start_time=timer->tick();
node=osgDB::readNodeFile("glider.osg");
end_time=timer->tick();
std::cout<<timer->delta_s(start_time,end_time)<<std::endl;
viewer->addEventHandler(new osgViewer::HelpHandler);
viewer->addEventHandler(new PrintName);
viewer->addEventHandler(new osgViewer::StatsHandler);
viewer->addEventHandler(new osgViewer::WindowSizeHandler);
viewer->setSceneData(node);
return viewer->run();
}
方法二:
int main()
{
osg::ref_ptr<osgViewer::Viewer> viewer=new osgViewer::Viewer;
osg::ref_ptr<osg::Node> node=new osg::Node;
//申请一个定时器
osg::Timer* timer=new osg::Timer;
osg::Timer_t start_time=0;
osg::Timer_t end_time=0;
//得到一个tick值为多少
std::cout<<timer->getSecondsPerTick()<<std::endl;
//读取模型
//start_time=timer->tick();
timer->setStartTick();
node=osgDB::readNodeFile("glider.osg");
//end_time=timer->tick();
std::cout<<timer->time_s()<<std::endl;
viewer->addEventHandler(new osgViewer::HelpHandler);
viewer->addEventHandler(new PrintName);
viewer->addEventHandler(new osgViewer::StatsHandler);
viewer->addEventHandler(new osgViewer::WindowSizeHandler);
viewer->setSceneData(node);
return viewer->run();
}
方法三:
int main()
{
osg::ref_ptr<osgViewer::Viewer> viewer=new osgViewer::Viewer;
osg::ref_ptr<osg::Node> node=new osg::Node;
//申请一个定时器
osg::Timer* timer=new osg::Timer;
float start_time=0.0;
float end_time=0.0;
//得到一个tick值为多少
std::cout<<timer->getSecondsPerTick()<<std::endl;
//读取模型
//start_time=timer->tick();
//timer->setStartTick();
start_time=viewer->elapsedTime();
node=osgDB::readNodeFile("glider.osg");
//end_time=timer->tick();
end_time=viewer->elapsedTime();
std::cout<<end_time-start_time<<std::endl;
viewer->addEventHandler(new osgViewer::HelpHandler);
viewer->addEventHandler(new PrintName);
viewer->addEventHandler(new osgViewer::StatsHandler);
viewer->addEventHandler(new osgViewer::WindowSizeHandler);
viewer->setSceneData(node);
return viewer->run();
}