本文整理汇总了C++中Renderable::renderableframe方法的典型用法代码示例。如果您正苦于以下问题:C++ Renderable::renderableframe方法的具体用法?C++ Renderable::renderableframe怎么用?C++ Renderable::renderableframe使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Renderable
的用法示例。
在下文中一共展示了Renderable::renderableframe方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: renderImpl
bool FrameRenderer::renderImpl(SoSeparator * ivRoot, Renderable &renderable)
{
SoSeparator * worldIVRoot = GraspItGUI::getInstance()->getIVmgr()->getWorld()->getIVRoot();
SbName pc2Name("PointCloudRoot2");
SoNodeList pointCloud2 = getChildByName(worldIVRoot, pc2Name);
assert(renderable.has_renderableframe());
SbName frameName(renderable.renderableframe().c_str());
ivRoot = getOrAddSeparator(worldIVRoot, frameName);
SoTransform * tran;
if(ivRoot->getNumChildren() && ivRoot->getChild(0)->getTypeId() == SoTransform::getClassTypeId())
{
tran = static_cast<SoTransform *>(ivRoot->getChild(0));
// DBGA("IVRoot child number: " << ivRoot->getNumChildren());
}
else
{
tran = new SoTransform();
ivRoot->insertChild(tran, 0);
}
Quaternion q(renderable.frame().orientation().w(),renderable.frame().orientation().x(),
renderable.frame().orientation().y(),renderable.frame().orientation().z());
tran->rotation.setValue(q.toSbRotation());
float units = 1.0;
if(renderable.frame().has_units())
units = 1000.0/renderable.frame().units();
tran->translation.setValue(renderable.frame().translation().x() * units,
renderable.frame().translation().y() * units,
renderable.frame().translation().z() * units);
return true;
}