本文整理汇总了C++中OgreWorldPtr::GetRenderer方法的典型用法代码示例。如果您正苦于以下问题:C++ OgreWorldPtr::GetRenderer方法的具体用法?C++ OgreWorldPtr::GetRenderer怎么用?C++ OgreWorldPtr::GetRenderer使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类OgreWorldPtr
的用法示例。
在下文中一共展示了OgreWorldPtr::GetRenderer方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: SetBoundingBox
void EC_SelectionBox::SetBoundingBox(QRect &view)
{
if (world_.expired())
return;
OgreWorldPtr world = world_.lock();
Renderer* renderer = world->GetRenderer();
Ogre::RenderWindow *renderWindow = renderer->GetCurrentRenderWindow();
float w= (float)renderWindow->getWidth();
float h= (float)renderWindow->getHeight();
float left = (float)(view.left()) / w, right = (float)(view.right()) / w;
float top = (float)(view.top()) / h, bottom = (float)(view.bottom()) / h;
if(left > right) { float tmp; tmp = left; left = right; right = tmp; }
if(top > bottom) { float tmp; tmp = top; top = bottom; bottom = tmp; }
// don't do selection box if too small
if((right - left) * (bottom-top) < 0.0001) return;
// correct coordinates for overlay
left = left * 2 - 1;
right = right * 2 - 1;
top = 1 - top * 2;
bottom = 1 - bottom * 2;
selectionBox_->clear();
selectionBox_->begin("BlueTransparent",Ogre::RenderOperation::OT_TRIANGLE_STRIP);
selectionBox_->position(left, bottom, -1);
selectionBox_->position(right, bottom, -1);
selectionBox_->position(left, top, -1);
selectionBox_->position(right, top, -1);
selectionBox_->end();
selectionBox_->begin("",Ogre::RenderOperation::OT_LINE_STRIP);
selectionBox_->position(left, top, -1);
selectionBox_->position(right, top, -1);
selectionBox_->position(right, bottom, -1);
selectionBox_->position(left, bottom, -1);
selectionBox_->position(left, top, -1);
selectionBox_->end();
selectionBox_->setBoundingBox(Ogre::AxisAlignedBox::BOX_INFINITE);
}