Show
Ignore:
Timestamp:
08/03/04 21:00:33 (10 years ago)
Author:
robert
Message:

Added test for quat multiplication ordering.

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • OpenSceneGraph/trunk/examples/osgunittests/osgunittests.cpp

    r3008 r3225  
    115115} 
    116116 
     117 
     118void 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 
    117149int main( int argc, char** argv ) 
    118150{ 
     
    143175    while (arguments.read("sizeof")) printSizeOfTest = true;  
    144176 
     177    bool printQuatTest = false;  
     178    while (arguments.read("quat")) printQuatTest = true;  
     179 
    145180    // if user request help write it out to cout. 
    146181    if (arguments.read("-h") || arguments.read("--help")) 
     
    161196    } 
    162197     
     198    if (printQuatTest) 
     199    { 
     200        testQuat(); 
     201    } 
     202 
    163203 
    164204    if (printMatrixTest)