| | 117 | |
| | 118 | void testQuat() |
| | 119 | { |
| | 120 | osg::Quat q1; |
| | 121 | q1.makeRotate(osg::DegreesToRadians(30.0),0.0f,0.0f,1.0f); |
| | 122 | |
| | 123 | osg::Quat q2; |
| | 124 | q2.makeRotate(osg::DegreesToRadians(133.0),0.0f,1.0f,1.0f); |
| | 125 | |
| | 126 | osg::Quat q1_2 = q1*q2; |
| | 127 | osg::Quat q2_1 = q2*q1; |
| | 128 | |
| | 129 | osg::Matrix m1 = osg::Matrix::rotate(q1); |
| | 130 | osg::Matrix m2 = osg::Matrix::rotate(q2); |
| | 131 | |
| | 132 | osg::Matrix m1_2 = m1*m2; |
| | 133 | osg::Matrix m2_1 = m2*m1; |
| | 134 | |
| | 135 | osg::Quat qm1_2; |
| | 136 | qm1_2.set(m1_2); |
| | 137 | |
| | 138 | osg::Quat qm2_1; |
| | 139 | qm2_1.set(m2_1); |
| | 140 | |
| | 141 | std::cout<<"q1*q2 = "<<q1_2<<std::endl; |
| | 142 | std::cout<<"q2*q1 = "<<q2_1<<std::endl; |
| | 143 | std::cout<<"m1*m2 = "<<qm1_2<<std::endl; |
| | 144 | std::cout<<"m2*m1 = "<<qm2_1<<std::endl; |
| | 145 | |
| | 146 | |
| | 147 | } |
| | 148 | |