本文整理汇总了C++中SbRotation::invert方法的典型用法代码示例。如果您正苦于以下问题:C++ SbRotation::invert方法的具体用法?C++ SbRotation::invert怎么用?C++ SbRotation::invert使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类SbRotation
的用法示例。
在下文中一共展示了SbRotation::invert方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: calculateRotation
void
SoBillboard::getMatrix(SoGetMatrixAction *action)
//
////////////////////////////////////////////////////////////////////////
{
//if (! rotation.isIgnored() && ! rotation.isDefault()) {
SbRotation rot = calculateRotation(action->getState());
SbMatrix &ctm = action->getMatrix();
SbMatrix &inv = action->getInverse();
SbMatrix m;
rot.getValue(m);
ctm.multLeft(m);
rot.invert();
rot.getValue(m);
inv.multRight(m);
//}
}
示例2: TRANSLATE
void
SbMatrix::setTransform(const SbVec3f &translation,
const SbRotation &rotation,
const SbVec3f &scaleFactor,
const SbRotation &scaleOrientation,
const SbVec3f ¢er)
{
#define TRANSLATE(vec) m.setTranslate(vec), multLeft(m)
#define ROTATE(rot) rot.getValue(m), multLeft(m)
SbMatrix m;
makeIdentity();
if (translation != SbVec3f(0,0,0))
TRANSLATE(translation);
if (center != SbVec3f(0,0,0))
TRANSLATE(center);
if (rotation != SbRotation(0,0,0,1))
ROTATE(rotation);
if (scaleFactor != SbVec3f(1,1,1)) {
SbRotation so = scaleOrientation;
if (so != SbRotation(0,0,0,1))
ROTATE(so);
m.setScale(scaleFactor);
multLeft(m);
if (so != SbRotation(0,0,0,1)) {
so.invert();
ROTATE(so);
}
}
if (center != SbVec3f(0,0,0))
TRANSLATE(-center);
#undef TRANSLATE
#undef ROTATE
}