本文整理汇总了C++中Transform3D::SetRotation方法的典型用法代码示例。如果您正苦于以下问题:C++ Transform3D::SetRotation方法的具体用法?C++ Transform3D::SetRotation怎么用?C++ Transform3D::SetRotation使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Transform3D
的用法示例。
在下文中一共展示了Transform3D::SetRotation方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: test23D
void test23D() {
Point3D pt(1.0, 0.0, 0.0);
Point3D tpt = pt;
Transform3D trans;
trans.SetRotation(M_PI / 2., X_Axis);
trans.TransformPoint(pt);
CHECK_INVARIANT(ptEq(tpt, pt), "");
Point3D pt2(0.0, 1.0, 0.0);
Point3D tpt2(0.0, 0.0, 1.0);
trans.TransformPoint(pt2);
CHECK_INVARIANT(ptEq(tpt2, pt2), "");
Point3D pt3(0.0, 0.0, 1.0);
Point3D tpt3(0.0, -1.0, 0.0);
trans.TransformPoint(pt3);
CHECK_INVARIANT(ptEq(tpt3, pt3), "");
// rotate around y-axis
Transform3D transy;
transy.SetRotation(M_PI / 2., Y_Axis);
transy.TransformPoint(pt);
Point3D tpt4(0.0, 0.0, -1.0);
CHECK_INVARIANT(ptEq(tpt4, pt), "");
Point3D pt5(0.0, 1.0, 0.0);
Point3D tpt5(0.0, 1.0, 0.0);
transy.TransformPoint(pt5);
CHECK_INVARIANT(ptEq(tpt5, pt5), "");
Point3D pt6(0.0, 0.0, 1.0);
Point3D tpt6(1.0, 0.0, 0.0);
transy.TransformPoint(pt6);
CHECK_INVARIANT(ptEq(tpt6, pt6), "");
// z-axis
Transform3D transz;
transz.SetRotation(M_PI / 2., Z_Axis);
Point3D pt7(1.0, 0.0, 0.0);
Point3D tpt7(0.0, 1.0, 0.0);
transz.TransformPoint(pt7);
CHECK_INVARIANT(ptEq(tpt7, pt7), "");
Point3D pt8(0.0, 1.0, 0.0);
Point3D tpt8(-1.0, 0.0, 0.0);
transz.TransformPoint(pt8);
CHECK_INVARIANT(ptEq(tpt8, pt8), "");
Point3D pt9(0.0, 0.0, 1.0);
Point3D tpt9(0.0, 0.0, 1.0);
transz.TransformPoint(pt9);
CHECK_INVARIANT(ptEq(tpt9, pt9), "");
}
示例2: testFromQuaternion
void testFromQuaternion() {
double qt[4];
qt[0] = cos(M_PI / 6);
qt[1] = -sin(M_PI / 6);
qt[2] = 0.0;
qt[3] = 0.0;
Transform3D trans;
trans.SetRotationFromQuaternion(qt);
Transform3D ntrans;
ntrans.SetRotation(M_PI / 3, Point3D(1.0, 0.0, 0.0));
unsigned int i, j;
for (i = 0; i < 4; i++) {
for (j = 0; j < 4; j++) {
CHECK_INVARIANT(RDKit::feq(trans.getVal(i, j), ntrans.getVal(i, j)), "");
}
}
}