本文整理汇总了C++中Transformation::getRotate方法的典型用法代码示例。如果您正苦于以下问题:C++ Transformation::getRotate方法的具体用法?C++ Transformation::getRotate怎么用?C++ Transformation::getRotate使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Transformation
的用法示例。
在下文中一共展示了Transformation::getRotate方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: product
void Transformation::product(const Transformation& a,const Transformation& b)
{
if (a.isIdentity())
{
*this = b;
return;
}
if (b.isIdentity())
{
*this = a;
return;
}
if (a.isUniformScales())
{
_rot = a.getRotate()*b.getRotate();
_trans = ((a.getRotate() * b.getTranslate())
+ a.getTranslate()) * a.getUniformScale();
if ( b.isUniformScales())
setUniformScale(a.getUniformScale()*b.getUniformScale());
else
setScale(b.getScale()*a.getUniformScale());
return;
}
// In all remaining cases, the matrix cannot be written as R*S*X+T.
Matrix3 mA;
Vector3 aS = a.getScale();
mA[0][0] = mA[0][0] * aS.x;
mA[1][1] = mA[1][1] * aS.y;
mA[2][2] = mA[2][2] * aS.z;
Matrix3 mB;
Vector3 bS = b.getScale();
mB[0][0] = mB[0][0] * bS.x;
mB[1][1] = mB[1][1] * bS.y;
mB[2][2] = mB[2][2] * bS.z;
setRotate(mA*mB);
setTranslate(mA*b.getTranslate()+a.getTranslate());
}
示例2: write
void Stream::write( const Transformation &t )
{
write( t.getTranslate() );
write( t.getRotate() );
write( t.getScale() );
}