本文整理汇总了C++中osg::ref_ptr::getViewport方法的典型用法代码示例。如果您正苦于以下问题:C++ ref_ptr::getViewport方法的具体用法?C++ ref_ptr::getViewport怎么用?C++ ref_ptr::getViewport使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类osg::ref_ptr
的用法示例。
在下文中一共展示了ref_ptr::getViewport方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: operator
virtual void operator () (osg::RenderInfo& renderInfo) const
{
osg::Camera::DrawCallback::operator ()(renderInfo);
if(save_dir.empty())
return;
if(paused)
return;
++count;
int x,y;
unsigned int width,height;
osg::ref_ptr<osg::Viewport> vp = vcamera->getViewport();
x = vp->x();
y = vp->y();
width = vp->width();
height = vp->height();
osg::ref_ptr<osg::Image> image = new osg::Image;
image->readPixels(x,y,width,height,GL_RGB,GL_UNSIGNED_BYTE);
std::stringstream str;
str << save_dir << "/image" << std::setfill('0') << setw(6) << count
<< setw(0) << ".png";
if(osgDB::writeImageFile(*image,str.str()))
std::cout << "Saving image to " << str.str() << std::endl;
else
std::cout << "Image saving failed!" << std::endl;
}
示例2:
osg::Vec3d CameraMath::projectOnScreen( osg::ref_ptr<osg::Camera> camera, osg::Vec3d point )
{
osg::Matrixd mv = camera->getViewMatrix();
osg::Matrixd mp = camera->getProjectionMatrix();
osg::Matrixd mw = camera->getViewport()->computeWindowMatrix();
osg::Vec3d result = point * mv;
result = result * mp;
result = result * mw;
return result;
}