Index: /trunk/lib/FlairSimulator/src/Blade.cpp
===================================================================
--- /trunk/lib/FlairSimulator/src/Blade.cpp	(revision 338)
+++ /trunk/lib/FlairSimulator/src/Blade.cpp	(revision 339)
@@ -36,7 +36,7 @@
 namespace simulator {
 
-Blade::Blade(Model *parent, const vector3df &position, bool inverted, s32 id)
+Blade::Blade(Model *parent, const vector3df &position,const vector3df &rotation, bool inverted, s32 id)
     : ISceneNode(parent->getSceneNode(), getGui()->getSceneManager(), id,
-                 position) {
+                 position,rotation) {
   ISceneManager *mgr = getGui()->getSceneManager();
 
@@ -64,7 +64,7 @@
 }
 
-Blade::Blade(ISceneNode *parent, const vector3df &position, bool inverted, s32 id)
+Blade::Blade(ISceneNode *parent, const vector3df &position,const vector3df &rotation, bool inverted, s32 id)
     : ISceneNode(parent, getGui()->getSceneManager(), id,
-                 position) {
+                 position,rotation) {
   ISceneManager *mgr = getGui()->getSceneManager();
 
@@ -99,10 +99,10 @@
 }
 
-void Blade::SetRotationSpeed(float value) {
+void Blade::SetRotationSpeed(const vector3df &value) {
   IAttributes *attribs =
       getSceneManager()->getFileSystem()->createEmptyAttributes();
 
   attribs->setAttribute("Type", "rotation");
-  attribs->setAttribute("Rotation", vector3df(0.f, 0.f, value));
+  attribs->setAttribute("Rotation", value);
   anim->deserializeAttributes(attribs);
 
Index: /trunk/lib/FlairSimulator/src/Blade.h
===================================================================
--- /trunk/lib/FlairSimulator/src/Blade.h	(revision 338)
+++ /trunk/lib/FlairSimulator/src/Blade.h	(revision 339)
@@ -35,8 +35,10 @@
   Blade(Model *parent,
         const irr::core::vector3df &position = irr::core::vector3df(0, 0, 0),
+        const irr::core::vector3df &rotation = irr::core::vector3df(0, 0, 0),
         bool inverted = false, irr::s32 id = -1);
 
   Blade(irr::scene::ISceneNode *parent,
         const irr::core::vector3df &position = irr::core::vector3df(0, 0, 0),
+        const irr::core::vector3df &rotation = irr::core::vector3df(0, 0, 0),
         bool inverted = false, irr::s32 id = -1);
   
@@ -46,5 +48,5 @@
     return Box;
   }
-  void SetRotationSpeed(float value);
+  void SetRotationSpeed(const irr::core::vector3df &value);
 
 private:
Index: /trunk/lib/FlairSimulator/src/UavVrpnObject_impl.cpp
===================================================================
--- /trunk/lib/FlairSimulator/src/UavVrpnObject_impl.cpp	(revision 338)
+++ /trunk/lib/FlairSimulator/src/UavVrpnObject_impl.cpp	(revision 339)
@@ -150,12 +150,12 @@
 
   fl_blade = new Blade(this, vector3df(70.71, -70.71, 17.5));
-  fr_blade = new Blade(this, vector3df(70.71, 70.71, 17.5), true);
-  rl_blade = new Blade(this, vector3df(-70.71, -70.71, 17.5), true);
+  fr_blade = new Blade(this, vector3df(70.71, 70.71, 17.5),  vector3df(0, 0, 0),true);
+  rl_blade = new Blade(this, vector3df(-70.71, -70.71, 17.5),  vector3df(0, 0, 0),true);
   rr_blade = new Blade(this, vector3df(-70.71, 70.71, 17.5));
   
-  fl_blade->SetRotationSpeed(MOTOR_SPEED);
-  fr_blade->SetRotationSpeed(-MOTOR_SPEED);
-  rl_blade->SetRotationSpeed(-MOTOR_SPEED);
-  rr_blade->SetRotationSpeed(MOTOR_SPEED);
+  fl_blade->SetRotationSpeed(vector3df(0, 0,MOTOR_SPEED));
+  fr_blade->SetRotationSpeed(vector3df(0, 0,-MOTOR_SPEED));
+  rl_blade->SetRotationSpeed(vector3df(0, 0,-MOTOR_SPEED));
+  rr_blade->SetRotationSpeed(vector3df(0, 0,MOTOR_SPEED));
   
   setScale(vector3df(arm_length->Value(), arm_length->Value(), arm_length->Value()));
Index: /trunk/lib/FlairSimulator/src/X4.cpp
===================================================================
--- /trunk/lib/FlairSimulator/src/X4.cpp	(revision 338)
+++ /trunk/lib/FlairSimulator/src/X4.cpp	(revision 339)
@@ -124,6 +124,6 @@
 
   fl_blade = new Blade(this, vector3df(70.71, -70.71, 17.5));
-  fr_blade = new Blade(this, vector3df(70.71, 70.71, 17.5), true);
-  rl_blade = new Blade(this, vector3df(-70.71, -70.71, 17.5), true);
+  fr_blade = new Blade(this, vector3df(70.71, 70.71, 17.5), vector3df(0, 0, 0),true);
+  rl_blade = new Blade(this, vector3df(-70.71, -70.71, 17.5),  vector3df(0, 0, 0),true);
   rr_blade = new Blade(this, vector3df(-70.71, 70.71, 17.5));
 
@@ -136,8 +136,8 @@
 void X4::AnimateModel(void) {
   motor_speed_mutex->GetMutex();
-  fl_blade->SetRotationSpeed(K_MOT * motor_speed[0]);
-  fr_blade->SetRotationSpeed(-K_MOT * motor_speed[1]);
-  rl_blade->SetRotationSpeed(-K_MOT * motor_speed[2]);
-  rr_blade->SetRotationSpeed(K_MOT * motor_speed[3]);
+  fl_blade->SetRotationSpeed(K_MOT *vector3df(0, 0, motor_speed[0]));
+  fr_blade->SetRotationSpeed(-K_MOT *vector3df(0, 0, motor_speed[1]));
+  rl_blade->SetRotationSpeed(-K_MOT *vector3df(0, 0, motor_speed[2]));
+  rr_blade->SetRotationSpeed(K_MOT *vector3df(0, 0, motor_speed[3]));
   motor_speed_mutex->ReleaseMutex();
 
Index: /trunk/lib/FlairSimulator/src/X8.cpp
===================================================================
--- /trunk/lib/FlairSimulator/src/X8.cpp	(revision 338)
+++ /trunk/lib/FlairSimulator/src/X8.cpp	(revision 339)
@@ -137,11 +137,11 @@
 
   tfl_blade = new Blade(this, vector3df(70.71, -70.71, 17.5));
-  tfr_blade = new Blade(this, vector3df(70.71, 70.71, 17.5), true);
-  trl_blade = new Blade(this, vector3df(-70.71, -70.71, 17.5), true);
+  tfr_blade = new Blade(this, vector3df(70.71, 70.71, 17.5), vector3df(0, 0, 0), true);
+  trl_blade = new Blade(this, vector3df(-70.71, -70.71, 17.5), vector3df(0, 0, 0), true);
   trr_blade = new Blade(this, vector3df(-70.71, 70.71, 17.5));
 
   bfl_blade = new Blade(this, vector3df(70.71, -70.71, -17.5));
-  bfr_blade = new Blade(this, vector3df(70.71, 70.71, -17.5), true);
-  brl_blade = new Blade(this, vector3df(-70.71, -70.71, -17.5), true);
+  bfr_blade = new Blade(this, vector3df(70.71, 70.71, -17.5), vector3df(0, 0, 0), true);
+  brl_blade = new Blade(this, vector3df(-70.71, -70.71, -17.5),  vector3df(0, 0, 0),true);
   brr_blade = new Blade(this, vector3df(-70.71, 70.71, -17.5));
 
@@ -161,13 +161,13 @@
 void X8::AnimateModel(void) {
   motor_speed_mutex->GetMutex();
-  tfl_blade->SetRotationSpeed(K_MOT * motor_speed[0]);
-  tfr_blade->SetRotationSpeed(-K_MOT * motor_speed[1]);
-  trl_blade->SetRotationSpeed(-K_MOT * motor_speed[2]);
-  trr_blade->SetRotationSpeed(K_MOT * motor_speed[3]);
-
-  bfl_blade->SetRotationSpeed(-K_MOT * motor_speed[4]);
-  bfr_blade->SetRotationSpeed(K_MOT * motor_speed[5]);
-  brl_blade->SetRotationSpeed(K_MOT * motor_speed[6]);
-  brr_blade->SetRotationSpeed(-K_MOT * motor_speed[7]);
+  tfl_blade->SetRotationSpeed(K_MOT * vector3df(0, 0,motor_speed[0]));
+  tfr_blade->SetRotationSpeed(-K_MOT * vector3df(0, 0,motor_speed[1]));
+  trl_blade->SetRotationSpeed(-K_MOT * vector3df(0, 0,motor_speed[2]));
+  trr_blade->SetRotationSpeed(K_MOT * vector3df(0, 0,motor_speed[3]));
+
+  bfl_blade->SetRotationSpeed(-K_MOT * vector3df(0, 0,motor_speed[4]));
+  bfr_blade->SetRotationSpeed(K_MOT * vector3df(0, 0,motor_speed[5]));
+  brl_blade->SetRotationSpeed(K_MOT * vector3df(0, 0,motor_speed[6]));
+  brr_blade->SetRotationSpeed(-K_MOT * vector3df(0, 0,motor_speed[7]));
   motor_speed_mutex->ReleaseMutex();
 
