本文整理汇总了C++中mantid::kernel::V3D::angle方法的典型用法代码示例。如果您正苦于以下问题:C++ V3D::angle方法的具体用法?C++ V3D::angle怎么用?C++ V3D::angle使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类mantid::kernel::V3D
的用法示例。
在下文中一共展示了V3D::angle方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: generateRotationTo
/**
* Generate the rotation matrix to rotate to this point.
* @param a :: The x mouse coordinate
* @param b :: The y mouse coordinate
*/
void Viewport::generateRotationTo(int a,int b)
{
Mantid::Kernel::V3D newpoint;
projectOnSphere( a, b, newpoint );
Mantid::Kernel::V3D diff( m_lastpoint );
// Difference between old point and new point
diff -= newpoint;
// Angle is given in degrees as the dot product of the two vectors
double angle = m_rotationspeed * newpoint.angle( m_lastpoint );
diff = m_lastpoint.cross_prod( newpoint );
// Create a quaternion from the angle and vector direction
Mantid::Kernel::Quat temp( angle, diff );
// Left multiply
temp *= m_quaternion;
// Assignment of _quaternion
m_quaternion( temp );
// Get the corresponding OpenGL rotation matrix
m_quaternion.GLMatrix( &m_rotationmatrix[0] );
}