Added getRotation in physics to give rotation of object back as 4x4Matrix

This commit is contained in:
Jasper 2014-11-14 15:15:29 +01:00
parent 0d9300193c
commit d5198ff4f5
2 changed files with 11 additions and 3 deletions

View File

@ -100,9 +100,15 @@ glm::vec3 getPos(int i)
return save; return save;
} }
void getRotation(int i) glm::mat4 getRotation(int i)
{ {
btQuaternion rotQuantrino = bodies[i]->getOrientation(); //TODO return orientation in gl format btQuaternion quat = bodies[i]->getOrientation();
glm::mat4 matrix = glm::rotate(
matrix,
quat.getAngle(),
glm::vec3(quat.getAxis().getX(), quat.getAxis().getY(), quat.getAxis().getZ())
);
} }
void rollForward() void rollForward()

View File

@ -26,6 +26,8 @@
#include "extern/bullet/src/LinearMath/btMotionState.h" #include "extern/bullet/src/LinearMath/btMotionState.h"
#include "extern/bullet/src/LinearMath/btDefaultMotionState.h" #include "extern/bullet/src/LinearMath/btDefaultMotionState.h"
#include "extern/bullet/src/LinearMath/btQuaternion.h" #include "extern/bullet/src/LinearMath/btQuaternion.h"
#include "extern/bullet/src/LinearMath/btVector3.h"
#include "extern/bullet/src/LinearMath/btMatrix3x3.h"
class Physics { class Physics {
public: public:
@ -35,7 +37,7 @@ class Physics {
void takeUpdateStep(float timeDiff); void takeUpdateStep(float timeDiff);
void rollForward(glm::vec3 camPos, float strength); void rollForward(glm::vec3 camPos, float strength);
glm::vec3 getPos(int i); glm::vec3 getPos(int i);
void getRotation(int i); glm::mat4 getRotation(int i);
void rollForward(); void rollForward();
void addTerrain(int width, int length, float** heightData); void addTerrain(int width, int length, float** heightData);
void addSphere(float rad, float x, float y, float z, float mass, int indice); void addSphere(float rad, float x, float y, float z, float mass, int indice);