Index: trunk/lib/FlairCore/src/OneAxisRotation.cpp
===================================================================
--- trunk/lib/FlairCore/src/OneAxisRotation.cpp	(revision 143)
+++ trunk/lib/FlairCore/src/OneAxisRotation.cpp	(revision 144)
@@ -56,4 +56,12 @@
 }
 
+float OneAxisRotation::GetAngle() const {
+  return pimpl_->GetAngle();
+}
+
+int OneAxisRotation::GetAxis() const {
+  return pimpl_->GetAxis();
+}
+
 } // end namespace core
 } // end namespace flair
Index: trunk/lib/FlairCore/src/OneAxisRotation.h
===================================================================
--- trunk/lib/FlairCore/src/OneAxisRotation.h	(revision 143)
+++ trunk/lib/FlairCore/src/OneAxisRotation.h	(revision 144)
@@ -82,4 +82,7 @@
   void ComputeRotation(core::RotationMatrix &matrix) const;
 
+  float GetAngle() const;
+  int GetAxis() const;
+
 private:
   const class OneAxisRotation_impl *pimpl_;
Index: trunk/lib/FlairCore/src/OneAxisRotation_impl.cpp
===================================================================
--- trunk/lib/FlairCore/src/OneAxisRotation_impl.cpp	(revision 143)
+++ trunk/lib/FlairCore/src/OneAxisRotation_impl.cpp	(revision 144)
@@ -74,2 +74,11 @@
   quat.ToEuler(euler);
 }
+
+int OneAxisRotation_impl::GetAxis() const {
+  return rot_axe->CurrentIndex();
+}
+
+float OneAxisRotation_impl::GetAngle() const {
+  return rot_value->Value();
+}
+
Index: trunk/lib/FlairCore/src/unexported/OneAxisRotation_impl.h
===================================================================
--- trunk/lib/FlairCore/src/unexported/OneAxisRotation_impl.h	(revision 143)
+++ trunk/lib/FlairCore/src/unexported/OneAxisRotation_impl.h	(revision 144)
@@ -40,5 +40,7 @@
   void ComputeRotation(flair::core::RotationMatrix &matrix) const;
   void ComputeRotation(flair::core::Euler &euler) const;
-
+  int GetAxis() const;
+  float GetAngle() const;
+  
 private:
   flair::gui::ComboBox *rot_axe;
Index: trunk/lib/FlairSensorActuator/src/SimuCamera.cpp
===================================================================
--- trunk/lib/FlairSensorActuator/src/SimuCamera.cpp	(revision 143)
+++ trunk/lib/FlairSensorActuator/src/SimuCamera.cpp	(revision 144)
@@ -38,5 +38,5 @@
       Camera(name, width, height, cvimage::Type::Format::BGR) {
   data_rate =
-      new SpinBox(GetGroupBox()->NewRow(), "data rate", " Hz", 1, 100, 1, 50);
+      new SpinBox(GetGroupBox()->NewRow(), "data rate", " Hz", 1, 200, 1, 50);
 
   buf_size = width * height * channels;
@@ -82,4 +82,5 @@
 
     output->GetMutex();
+    //blocking read
     shmem->Read((char *)img->imageData, buf_size); // remplacer copie par
                                                    // échange de pointeur sur
Index: trunk/lib/FlairSensorActuator/src/SimuCamera.h
===================================================================
--- trunk/lib/FlairSensorActuator/src/SimuCamera.h	(revision 143)
+++ trunk/lib/FlairSensorActuator/src/SimuCamera.h	(revision 144)
@@ -19,10 +19,10 @@
 
 namespace flair {
-namespace core {
-class SharedMem;
-}
-namespace gui {
-class SpinBox;
-}
+  namespace core {
+    class SharedMem;
+  }
+  namespace gui {
+    class SpinBox;
+  }
 }
 
Index: trunk/lib/FlairSimulator/src/Gui_impl.cpp
===================================================================
--- trunk/lib/FlairSimulator/src/Gui_impl.cpp	(revision 143)
+++ trunk/lib/FlairSimulator/src/Gui_impl.cpp	(revision 144)
@@ -266,7 +266,9 @@
     }
 
-    for (size_t i = 0; i < models.size(); i++) {
-      models.at(i)->ProcessUpdate(NULL);
-    }
+//    for (size_t i = 0; i < models.size(); i++) {
+//      models.at(i)->ProcessUpdate(NULL);
+ProcessUpdate(NULL);
+Printf("Appel à ProcessUpdate depuis Gui_impl::RunGui\n");
+//    }
 
     // on fait ca ici, devrait etre un peu plus haut
Index: trunk/lib/FlairSimulator/src/Model_impl.cpp
===================================================================
--- trunk/lib/FlairSimulator/src/Model_impl.cpp	(revision 143)
+++ trunk/lib/FlairSimulator/src/Model_impl.cpp	(revision 144)
@@ -331,4 +331,5 @@
 
     self->ProcessUpdate(output);
+Printf("Appel à ProcessUpdate depuis Model_impl::Run\n"); //already done by Gui_impl::RunGui (dans le cas où il y a un GUI)
   }
 
Index: trunk/lib/FlairSimulator/src/unexported/Gui_impl.h
===================================================================
--- trunk/lib/FlairSimulator/src/unexported/Gui_impl.h	(revision 143)
+++ trunk/lib/FlairSimulator/src/unexported/Gui_impl.h	(revision 144)
@@ -25,34 +25,35 @@
 
 namespace irr {
-class IrrlichtDevice;
-namespace scene {
-class ISceneManager;
-class IMeshSceneNode;
-class ITriangleSelector;
-}
-namespace video {
-class IVideoDriver;
-}
-namespace gui {
-class IGUIFont;
-class IGUIEnvironment;
-}
+  class IrrlichtDevice;
+  namespace scene {
+    class ISceneManager;
+    class IMeshSceneNode;
+    class ITriangleSelector;
+  }
+  namespace video {
+    class IVideoDriver;
+  }
+  namespace gui {
+    class IGUIFont;
+    class IGUIEnvironment;
+  }
 }
 
 namespace flair {
-namespace core {
-class Object;
-}
-namespace simulator {
-class Model;
-class GenericObject;
-class Gui;
-class VisualizationCamera;
-}
+  namespace core {
+    class Object;
+    class IODevice;
+  }
+  namespace simulator {
+    class Model;
+    class GenericObject;
+    class Gui;
+    class VisualizationCamera;
+  }
 }
 
 class MyEventReceiver;
 
-class Gui_impl {
+class Gui_impl:public IODevice {
 public:
   Gui_impl(flair::simulator::Gui *self, int app_width, int app_height,
Index: trunk/lib/FlairVisionFilter/src/OpticalFlow.cpp
===================================================================
--- trunk/lib/FlairVisionFilter/src/OpticalFlow.cpp	(revision 143)
+++ trunk/lib/FlairVisionFilter/src/OpticalFlow.cpp	(revision 144)
@@ -53,6 +53,6 @@
 
     GroupBox* reglages_groupbox=new GroupBox(position,name);
-        rotation=new OneAxisRotation(reglages_groupbox->NewRow(),"post rotation");
-        max_features=new SpinBox(reglages_groupbox->NewRow(),"max features:",1,65535,1,1);
+    rotation=new OneAxisRotation(reglages_groupbox->NewRow(),"post rotation");
+    max_features=new SpinBox(reglages_groupbox->NewRow(),"max features:",1,65535,1,1);
 
     output=new OpticalFlowData(parent,max_features->Value());
@@ -85,6 +85,5 @@
     unsigned int i;
 
-    if(max_features->ValueChanged()==true)
-    {
+    if(max_features->ValueChanged()==true) {
         cvFree(&pointsA);
         cvFree(&pointsB);
@@ -125,6 +124,5 @@
 */
     //apply rotation
-    for(i=0;i<count;i++)
-    {
+    for(i=0;i<count;i++) {
         Vector3D tmp;
         tmp.x=pointsA[i].x;
