当前位置: 首页>>代码示例>>C++>>正文


C++ Transformation::getRotate方法代码示例

本文整理汇总了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());

}
开发者ID:pensistudios,项目名称:Ey3,代码行数:45,代码来源:Ey3Transformation.cpp

示例2: write

void Stream::write( const Transformation &t )
{
	write( t.getTranslate() );
	write( t.getRotate() );
	write( t.getScale() );
}
开发者ID:hhsaez,项目名称:crimild,代码行数:6,代码来源:Stream.cpp


注:本文中的Transformation::getRotate方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。