~scrawl-deactivatedaccount/+junk/StuntRally

« back to all changes in this revision

Viewing changes to vdrift/rigidbody.cpp

  • Committer: Jannik Heller
  • Date: 2011-01-30 12:41:18 UTC
  • Revision ID: scrawl@scrawl-desktop-20110130124118-v5euo5nkmhjqqd9s
First commit

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#include "stdafx.h"
 
2
 
 
3
#include "rigidbody.h"
 
4
#include "unittest.h"
 
5
 
 
6
//#include <iostream>
 
7
using std::cout;
 
8
using std::endl;
 
9
 
 
10
QT_TEST(rigidbody_test)
 
11
{
 
12
        RIGIDBODY <float> body;
 
13
        MATHVECTOR <float, 3> initpos;
 
14
        QUATERNION <float> quat;
 
15
        initpos.Set(0,0,10);
 
16
        body.SetPosition(initpos);
 
17
        quat.Rotate(-3.141593*0.5, 1, 0, 0);
 
18
        body.SetOrientation(quat);
 
19
 
 
20
        MATHVECTOR <float, 3> localcoords;
 
21
        localcoords.Set(0,0,1);
 
22
        MATHVECTOR <float, 3> expected;
 
23
        expected.Set(0,1,10);
 
24
        MATHVECTOR <float, 3> pos = body.TransformLocalToWorld(localcoords);
 
25
        QT_CHECK_CLOSE(pos[0], expected[0], 0.0001);
 
26
        QT_CHECK_CLOSE(pos[1], expected[1], 0.0001);
 
27
        QT_CHECK_CLOSE(pos[2], expected[2], 0.0001);
 
28
        
 
29
        QT_CHECK_CLOSE(body.TransformWorldToLocal(pos)[0], localcoords[0], 0.0001);
 
30
        QT_CHECK_CLOSE(body.TransformWorldToLocal(pos)[1], localcoords[1], 0.0001);
 
31
        QT_CHECK_CLOSE(body.TransformWorldToLocal(pos)[2], localcoords[2], 0.0001);
 
32
}