本文整理汇总了C++中osg::Quat::inverse方法的典型用法代码示例。如果您正苦于以下问题:C++ Quat::inverse方法的具体用法?C++ Quat::inverse怎么用?C++ Quat::inverse使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类osg::Quat
的用法示例。
在下文中一共展示了Quat::inverse方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: ComputeOrientation
void ComputeOrientation(const osg::Vec3& lv,const osg::Vec3& up, osg::Quat &rotationDest)
{
osg::Vec3 f(lv);
f.normalize();
osg::Vec3 s(f^up);
s.normalize();
osg::Vec3 u(s^f);
u.normalize();
{
__asm NOP
}
osg::Matrix rotation_matrix(s[0], u[0], -f[0], 0.0f,
s[1], u[1], -f[1], 0.0f,
s[2], u[2], -f[2], 0.0f,
0.0f, 0.0f, 0.0f, 1.0f);
rotationDest.set(rotation_matrix);
//debug_matrix = rotation_matrix;
//debug_quat = rotationDest;
rotationDest = rotationDest.inverse();
} // ComputeOrientation
示例2: invertOSGTransform
static void invertOSGTransform(osg::Vec3d& trans, osg::Quat& quat,
osg::PositionAttitudeTransform*& source, osg::PositionAttitudeTransform*& target,
std::string& source_frame, std::string& target_frame)
{
quat = quat.inverse();
trans = -(quat * trans);
std::swap(source, target);
std::swap(source_frame, target_frame);
}
示例3: updatePosition
/* Public functions */
void OculusHealthAndSafetyWarning::updatePosition(osg::Matrix cameraMatrix, osg::Vec3 position, osg::Quat orientation) {
if (m_transform.valid()) {
osg::Matrix matrix;
matrix.setTrans(osg::Vec3(0.0, 0.0, -m_distance));
matrix.postMultRotate(orientation.inverse());
matrix.postMultTranslate(-position);
m_transform->setMatrix(matrix*cameraMatrix);
}
}