本文整理汇总了C++中ogre::Matrix3::FromAxes方法的典型用法代码示例。如果您正苦于以下问题:C++ Matrix3::FromAxes方法的具体用法?C++ Matrix3::FromAxes怎么用?C++ Matrix3::FromAxes使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ogre::Matrix3
的用法示例。
在下文中一共展示了Matrix3::FromAxes方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: SetLookAtPoint
void CameraSceneNode::SetLookAtPoint(Vec3 lap)
{
//mOgreSceneNode->lookAt(lap, Ogre::Node::TS_WORLD);
Vec3 z = -(lap - GetPosition()); z.normalise(); // z
Vec3 x = z.crossProduct(Vec3::NEGATIVE_UNIT_Y); x.normalise(); // x
Vec3 y = -x.crossProduct(z); y.normalise(); // y
Ogre::Matrix3 R;
R.FromAxes(x, y, z);
Quat q; q.FromRotationMatrix(R);
mOgreSceneNode->setOrientation(q);
this->SetOrientation(mOgreSceneNode->getOrientation()*this->GetParent()->GetOrientation().Inverse());
}
示例2:
void
BuildTank::setBadGun(Ogre::Radian theta){
Ogre::Quaternion gunOrientation = mTankGunNode->getOrientation() ;
// convert orientation to a matrix
Ogre::Matrix3 tGunMatrix3;
gunOrientation.ToRotationMatrix( tGunMatrix3 );
Ogre::Vector3 xBasis = Ogre::Vector3(Ogre::Math::Cos(theta),0, - Ogre::Math::Sin(theta));
Ogre::Vector3 yBasis = Ogre::Vector3(0,1,0);
Ogre::Vector3 zBasis = Ogre::Vector3(Ogre::Math::Sin(theta),0,Ogre::Math::Cos(theta));
Ogre::Matrix3 rotate;
rotate.FromAxes(xBasis, yBasis, zBasis);
mGunOrientation = rotate * tGunMatrix3;
mTankGunNode->setOrientation(Ogre::Quaternion(mGunOrientation));
}