Index: /trunk/ReleaseNotes
===================================================================
--- /trunk/ReleaseNotes	(revision 317)
+++ /trunk/ReleaseNotes	(revision 318)
@@ -5,4 +5,7 @@
 - const TargetController *UavStateMachine::GetJoystick as been replaced by const TargetController *UavStateMachine::GetTargetController
 - new method MetaDualShock3 *UavStateMachine::GetJoystick
+- completely removed cvmatrix
+- replaced cvmatrix_descriptor by MatrixDescriptor
+
 
 
Index: /trunk/demos/CircleFollower/uav/src/CircleFollower.cpp
===================================================================
--- /trunk/demos/CircleFollower/uav/src/CircleFollower.cpp	(revision 317)
+++ /trunk/demos/CircleFollower/uav/src/CircleFollower.cpp	(revision 318)
@@ -24,5 +24,4 @@
 #include <TrajectoryGenerator2DCircle.h>
 #include <Matrix.h>
-#include <cvmatrix.h>
 #include <cmath>
 #include <Tab.h>
Index: /trunk/demos/Gps/uav/src/DemoGps.cpp
===================================================================
--- /trunk/demos/Gps/uav/src/DemoGps.cpp	(revision 317)
+++ /trunk/demos/Gps/uav/src/DemoGps.cpp	(revision 318)
@@ -22,5 +22,4 @@
 #include <FrameworkManager.h>
 #include <TrajectoryGenerator2DCircle.h>
-#include <cvmatrix.h>
 #include <cmath>
 #include <Tab.h>
Index: /trunk/demos/MixedReality/real/uav/src/CircleFollower.cpp
===================================================================
--- /trunk/demos/MixedReality/real/uav/src/CircleFollower.cpp	(revision 317)
+++ /trunk/demos/MixedReality/real/uav/src/CircleFollower.cpp	(revision 318)
@@ -25,5 +25,4 @@
 #include <TrajectoryGenerator2DCircle.h>
 #include <Matrix.h>
-#include <cvmatrix.h>
 #include <cmath>
 #include <Tab.h>
Index: /trunk/demos/PidStandalone/uav/src/PidUav.cpp
===================================================================
--- /trunk/demos/PidStandalone/uav/src/PidUav.cpp	(revision 317)
+++ /trunk/demos/PidStandalone/uav/src/PidUav.cpp	(revision 318)
@@ -14,5 +14,4 @@
 #include "PidUav.h"
 #include <TargetController.h>
-#include <cvmatrix.h>
 #include <GridLayout.h>
 #include <DataPlot1D.h>
Index: /trunk/demos/PidStandalone/uav/src/PidUav.h
===================================================================
--- /trunk/demos/PidStandalone/uav/src/PidUav.h	(revision 317)
+++ /trunk/demos/PidStandalone/uav/src/PidUav.h	(revision 318)
@@ -18,7 +18,4 @@
 
 namespace flair {
-  namespace core {
-    class cvmatrix;
-  }
   namespace gui {
     class GroupBox;
Index: /trunk/demos/SimpleFleet/uav/src/SimpleFleet.cpp
===================================================================
--- /trunk/demos/SimpleFleet/uav/src/SimpleFleet.cpp	(revision 317)
+++ /trunk/demos/SimpleFleet/uav/src/SimpleFleet.cpp	(revision 318)
@@ -30,5 +30,4 @@
 #include <Euler.h>
 #include <Matrix.h>
-#include <cvmatrix.h>
 #include <AhrsData.h>
 #include <Ahrs.h>
Index: /trunk/demos/Sinus/src/MeanFilter.cpp
===================================================================
--- /trunk/demos/Sinus/src/MeanFilter.cpp	(revision 317)
+++ /trunk/demos/Sinus/src/MeanFilter.cpp	(revision 318)
@@ -39,5 +39,5 @@
 
   // 1*1 output matrix
-  cvmatrix_descriptor *desc = new cvmatrix_descriptor(1, 1);
+  MatrixDescriptor *desc = new MatrixDescriptor(1, 1);
   desc->SetElementName(0, 0,
                        "mean filter"); // name will be used for graphs and logs
Index: /trunk/demos/Sinus/src/Sinus.cpp
===================================================================
--- /trunk/demos/Sinus/src/Sinus.cpp	(revision 317)
+++ /trunk/demos/Sinus/src/Sinus.cpp	(revision 318)
@@ -39,5 +39,5 @@
 
   // 1*1 output matrix
-  cvmatrix_descriptor *desc = new cvmatrix_descriptor(1, 1);
+  MatrixDescriptor *desc = new MatrixDescriptor(1, 1);
   desc->SetElementName(0, 0, "value"); // name will be used for graphs and logs
   output = new Matrix((IODevice *)this, desc, floatType, name);
Index: /trunk/lib/FlairCore/src/Matrix.cpp
===================================================================
--- /trunk/lib/FlairCore/src/Matrix.cpp	(revision 317)
+++ /trunk/lib/FlairCore/src/Matrix.cpp	(revision 318)
@@ -107,5 +107,5 @@
 }
 
-Matrix::Matrix(const Object *parent, const cvmatrix_descriptor *descriptor,
+Matrix::Matrix(const Object *parent, const MatrixDescriptor *descriptor,
                    ScalarType const &elementDataType, string name, uint32_t n)
     : io_data(parent, name, n),
Index: /trunk/lib/FlairCore/src/Matrix.h
===================================================================
--- /trunk/lib/FlairCore/src/Matrix.h	(revision 317)
+++ /trunk/lib/FlairCore/src/Matrix.h	(revision 318)
@@ -16,5 +16,5 @@
 #include <io_data.h>
 #include <IODataElement.h>
-#include <cvmatrix_descriptor.h>
+#include <MatrixDescriptor.h>
 
 class Matrix_impl;
@@ -52,5 +52,5 @@
   *
   * Construct an io_data representing a matrix. \n
-  * It uses a cvmatrix_descriptor to get size and elements' names. \n
+  * It uses a MatrixDescriptor to get size and elements' names. \n
   * Names are used for graphs and logs. \n
   * All values are initialized to 0.
@@ -62,5 +62,5 @@
   * \param n number of samples
   */
-  Matrix(const Object *parent, const cvmatrix_descriptor *descriptor,
+  Matrix(const Object *parent, const MatrixDescriptor *descriptor,
            ScalarType const &elementDataType, std::string name = "",
            uint32_t n = 1);
@@ -145,5 +145,5 @@
   * \brief Element name
   *
-  * If Matrix was created without cvmatrix_descriptor, element name is empty.
+  * If Matrix was created without MatrixDescriptor, element name is empty.
   *
   * \param row element row
Index: /trunk/lib/FlairCore/src/MatrixDescriptor.cpp
===================================================================
--- /trunk/lib/FlairCore/src/MatrixDescriptor.cpp	(revision 318)
+++ /trunk/lib/FlairCore/src/MatrixDescriptor.cpp	(revision 318)
@@ -0,0 +1,69 @@
+// %flair:license{
+// This file is part of the Flair framework distributed under the
+// CECILL-C License, Version 1.0.
+// %flair:license}
+//  created:    2014/02/05
+//  filename:   MatrixDescriptor.cpp
+//
+//  author:     Guillaume Sanahuja
+//              Copyright Heudiasyc UMR UTC/CNRS 7253
+//
+//  version:    $Id: $
+//
+//  purpose:    Class describing matrix elements, for log and graphs purpose
+//
+/*********************************************************************/
+
+#include "MatrixDescriptor.h"
+#include "FrameworkManager.h"
+
+using std::string;
+
+namespace flair {
+namespace core {
+
+MatrixDescriptor::MatrixDescriptor(uint32_t rows, uint32_t cols) {
+  this->rows = rows;
+  this->cols = cols;
+
+  if (rows == 0 || cols == 0)
+    getFrameworkManager()->Err("rows and cols must be >0\n");
+
+  element_names = (string **)malloc(rows * cols * sizeof(string *));
+  for (uint32_t i = 0; i < rows * cols; i++) {
+    element_names[i] = new string();
+  }
+}
+
+MatrixDescriptor::~MatrixDescriptor() {
+  for (uint32_t i = 0; i < rows * cols; i++) {
+    delete element_names[i];
+  }
+  free(element_names);
+}
+
+void MatrixDescriptor::SetElementName(uint32_t row, uint32_t col,
+                                         string name) {
+  if (row >= rows || col >= cols) {
+    getFrameworkManager()->Err("index out of bound %s (%i,%i), max (%i,%i)\n",
+                               name.c_str(), row, col, rows - 1, cols - 1);
+    return;
+  }
+  *element_names[row * cols + col] = name;
+}
+
+string MatrixDescriptor::ElementName(uint32_t row, uint32_t col) const {
+  if (row >= rows || col >= cols) {
+    getFrameworkManager()->Err("index out of bound (%i,%i), max (%i,%i)\n",
+                               row, col, rows - 1, cols - 1);
+    return *element_names[0]; // safe value...
+  }
+  return *element_names[row * cols + col];
+}
+
+uint32_t MatrixDescriptor::Rows() const { return rows; }
+
+uint32_t MatrixDescriptor::Cols() const { return cols; }
+
+} // end namespace core
+} // end namespace flair
Index: /trunk/lib/FlairCore/src/MatrixDescriptor.h
===================================================================
--- /trunk/lib/FlairCore/src/MatrixDescriptor.h	(revision 318)
+++ /trunk/lib/FlairCore/src/MatrixDescriptor.h	(revision 318)
@@ -0,0 +1,87 @@
+// %flair:license{
+// This file is part of the Flair framework distributed under the
+// CECILL-C License, Version 1.0.
+// %flair:license}
+/*!
+ * \file MatrixDescriptor.h
+ * \brief Class describing matrix elements, for log and graphs purpose
+ * \author Guillaume Sanahuja, Copyright Heudiasyc UMR UTC/CNRS 7253
+ * \date 2014/02/05
+ * \version 4.0
+ */
+
+#ifndef MATRIXDESCRIPTOR_H
+#define MATRIXDESCRIPTOR_H
+
+#include <string>
+
+namespace flair {
+namespace core {
+
+/*! \class MatrixDescriptor
+*
+* \brief Class describing matrix elements, for log and graphs purpose
+*
+* This class allows to give a name to matrix elements. These names
+* will be used in graphs and logs.
+*/
+class MatrixDescriptor {
+public:
+  /*!
+  * \brief Constructor
+  *
+  * Construct a matrix descriptor.
+  *
+  * \param rows matrix rows
+  * \param cols matrix cols
+  */
+  MatrixDescriptor(uint32_t rows, uint32_t cols);
+
+  /*!
+  * \brief Destructor
+  *
+  */
+  ~MatrixDescriptor();
+
+  /*!
+  * \brief Set element name
+  *
+  * \param row element row
+  * \param col element col
+  * \param name element name
+  */
+  void SetElementName(uint32_t row, uint32_t col, std::string name);
+
+  /*!
+  * \brief Element name
+  *
+  * \param row element row
+  * \param col element col
+  *
+  * \return element name
+  */
+  std::string ElementName(uint32_t row, uint32_t col) const;
+
+  /*!
+  * \brief Number of rows
+  *
+  * \return rows
+  */
+  uint32_t Rows(void) const;
+
+  /*!
+  * \brief Number of colomns
+  *
+  * \return colomns
+  */
+  uint32_t Cols(void) const;
+
+private:
+  uint32_t rows, cols;
+  std::string **element_names;
+};
+
+} // end namespace core
+} // end namespace flair
+
+#endif // MATRIXDESCRIPTOR_H
Index: /trunk/lib/FlairCore/src/Matrix_impl.cpp
===================================================================
--- /trunk/lib/FlairCore/src/Matrix_impl.cpp	(revision 317)
+++ /trunk/lib/FlairCore/src/Matrix_impl.cpp	(revision 318)
@@ -27,14 +27,14 @@
                              int n)
     : elementDataType(_elementDataType) {
-  descriptor = new cvmatrix_descriptor(rows, cols);
+  descriptor = new MatrixDescriptor(rows, cols);
   Init(self, n);
 }
 
 Matrix_impl::Matrix_impl(Matrix *self,
-                             const cvmatrix_descriptor *inDescriptor,
+                             const MatrixDescriptor *inDescriptor,
                              flair::core::ScalarType const &_elementDataType,
                              int n)
     : elementDataType(_elementDataType) {
-  descriptor = new cvmatrix_descriptor(inDescriptor->Rows(), inDescriptor->Cols());
+  descriptor = new MatrixDescriptor(inDescriptor->Rows(), inDescriptor->Cols());
 
   for (uint32_t i = 0; i < descriptor->Rows(); i++) {
Index: unk/lib/FlairCore/src/cvmatrix.cpp
===================================================================
--- /trunk/lib/FlairCore/src/cvmatrix.cpp	(revision 317)
+++ 	(revision )
@@ -1,198 +1,0 @@
-// %flair:license{
-// This file is part of the Flair framework distributed under the
-// CECILL-C License, Version 1.0.
-// %flair:license}
-//  created:    2012/03/21
-//  filename:   cvmatrix.cpp
-//
-//  author:     Guillaume Sanahuja
-//              Copyright Heudiasyc UMR UTC/CNRS 7253
-//
-//  version:    $Id: $
-//
-//  purpose:    Class defining a matrix of kind CvMat
-//
-/*********************************************************************/
-
-#include "cvmatrix.h"
-#include "cvmatrix_impl.h"
-#include <cxcore.h>
-#include <typeinfo>
-
-#include <iostream>
-
-using std::string;
-
-namespace flair {
-namespace core {
-/*! \class cvmatrixElement
-*/
-class cvmatrixElement : public IODataElement {
-public:
-  cvmatrixElement(const cvmatrix *matrix, string name, uint32_t row,
-                  uint32_t col)
-      : IODataElement(matrix, name) {
-    this->matrix = matrix;
-    this->row = row;
-    this->col = col;
-    if (row >= matrix->Rows() || col >= matrix->Cols()) {
-      matrix->Err("index (%i,%i) out of bound, max (%i,%i)\n", row, col,
-                  matrix->Rows() - 1, matrix->Cols() - 1);
-      size = 0;
-    } else {
-      try {
-        ScalarType const &scalarType = dynamic_cast<ScalarType const &>(
-            matrix->GetDataType().GetElementDataType());
-        size = scalarType.GetSize();
-      } catch (std::bad_cast e) {
-        matrix->Err("type not handled\n");
-        size = 0;
-      }
-    }
-  }
-
-  ~cvmatrixElement() {}
-
-  void CopyData(char *dst) const {
-    if (typeid(matrix->GetDataType().GetElementDataType()) ==
-        typeid(FloatType)) {
-      float value = matrix->Value(row, col);
-      memcpy(dst, &value, sizeof(value));
-    } else if (typeid(matrix->GetDataType().GetElementDataType()) ==
-               typeid(SignedIntegerType)) {
-      switch (matrix->GetDataType().GetElementDataType().GetSize()) {
-      case 1: {
-        int8_t int8Value = matrix->Value(row, col);
-        memcpy(dst, &int8Value, 1);
-      } break;
-      case 2: {
-        int16_t int16Value = matrix->Value(row, col);
-        memcpy(dst, &int16Value, 2);
-      } break;
-      }
-    }
-  }
-
-  DataType const &GetDataType(void) const {
-    return matrix->GetDataType().GetElementDataType();
-  }
-
-private:
-  const cvmatrix *matrix;
-  uint32_t row, col;
-};
-
-cvmatrix::cvmatrix(const Object *parent, uint32_t rows, uint32_t cols,
-                   ScalarType const &elementDataType, string name, uint32_t n)
-    : io_data(parent, name, n), dataType(rows, cols, elementDataType) {
-  pimpl_ = new cvmatrix_impl(this, rows, cols, elementDataType, n);
-
-  for (uint32_t i = 0; i < rows; i++) {
-    for (uint32_t j = 0; j < cols; j++) {
-      AppendLogDescription(pimpl_->descriptor->ElementName(i, j),
-                           elementDataType);
-      SetValue(i, j, 0);
-    }
-  }
-}
-
-cvmatrix::cvmatrix(const Object *parent, const cvmatrix_descriptor *descriptor,
-                   ScalarType const &elementDataType, string name, uint32_t n)
-    : io_data(parent, name, n),
-      dataType(descriptor->Rows(), descriptor->Cols(), elementDataType) {
-  pimpl_ = new cvmatrix_impl(this, descriptor, elementDataType, n);
-
-  for (uint32_t i = 0; i < descriptor->Rows(); i++) {
-    for (uint32_t j = 0; j < descriptor->Cols(); j++) {
-      AppendLogDescription(descriptor->ElementName(i, j), elementDataType);
-      SetValue(i, j, 0);
-    }
-  }
-}
-
-cvmatrix::~cvmatrix() { delete pimpl_; }
-
-IODataElement *cvmatrix::Element(uint32_t row, uint32_t col) const {
-  return new cvmatrixElement(this, Name(row, col), row, col);
-}
-
-IODataElement *cvmatrix::Element(uint32_t index) const {
-  if (Rows() == 1) {
-    return new cvmatrixElement(this, Name(0, index), 0, index);
-  } else if (Cols() == 1) {
-    return new cvmatrixElement(this, Name(index, 0), index, 0);
-  } else {
-    Err("matrix is not 1D\n");
-    return nullptr;
-  }
-}
-
-float cvmatrix::Value(uint32_t row, uint32_t col) const {
-  float value;
-
-  if (row >= (uint32_t)pimpl_->mat->rows ||
-      col >= (uint32_t)pimpl_->mat->cols) {
-    Warn("index (%i,%i) out of bound, max (%i,%i)\n", row, col,
-         pimpl_->mat->rows - 1, pimpl_->mat->cols - 1);
-    return 0;
-  }
-
-  GetMutex();
-  value = cvGetReal2D(pimpl_->mat, row, col);
-  ReleaseMutex();
-
-  return value;
-}
-
-float cvmatrix::ValueNoMutex(uint32_t row, uint32_t col) const {
-  if (row >= (uint32_t)pimpl_->mat->rows ||
-      col >= (uint32_t)pimpl_->mat->cols) {
-    Warn("index (%i,%i) out of bound, max (%i,%i)\n", row, col,
-         pimpl_->mat->rows - 1, pimpl_->mat->cols - 1);
-    return 0;
-  }
-
-  return cvGetReal2D(pimpl_->mat, row, col);
-}
-
-void cvmatrix::SetValue(uint32_t row, uint32_t col, float value) {
-  if (row >= (uint32_t)pimpl_->mat->rows ||
-      col >= (uint32_t)pimpl_->mat->cols) {
-    Warn("index (%i,%i) out of bound, max (%i,%i)\n", row, col,
-         pimpl_->mat->rows - 1, pimpl_->mat->cols - 1);
-  } else {
-    GetMutex();
-    cvSetReal2D(pimpl_->mat, row, col, value);
-    ReleaseMutex();
-  }
-}
-
-void cvmatrix::SetValueNoMutex(uint32_t row, uint32_t col, float value) {
-  if (row >= (uint32_t)pimpl_->mat->rows ||
-      col >= (uint32_t)pimpl_->mat->cols) {
-    Warn("index (%i,%i) out of bound, max (%i,%i)\n", row, col,
-         pimpl_->mat->rows - 1, pimpl_->mat->cols - 1);
-  } else {
-    cvSetReal2D(pimpl_->mat, row, col, value);
-  }
-}
-
-CvMat *cvmatrix::getCvMat(void) const { return pimpl_->mat; }
-
-void cvmatrix::CopyDatas(char *dst) const {
-  GetMutex();
-  // printf("%f %x %i\n",cvGetReal2D(pimpl_->mat,0,0),dst,Size());
-  memcpy(dst, pimpl_->mat->data.ptr, dataType.GetSize());
-  ReleaseMutex();
-}
-
-uint32_t cvmatrix::Rows(void) const { return pimpl_->mat->rows; }
-
-uint32_t cvmatrix::Cols(void) const { return pimpl_->mat->cols; }
-
-string cvmatrix::Name(uint32_t row, uint32_t col) const {
-  return pimpl_->descriptor->ElementName(row, col);
-}
-
-} // end namespace core
-} // end namespace flair
Index: unk/lib/FlairCore/src/cvmatrix.h
===================================================================
--- /trunk/lib/FlairCore/src/cvmatrix.h	(revision 317)
+++ 	(revision )
@@ -1,224 +1,0 @@
-// %flair:license{
-// This file is part of the Flair framework distributed under the
-// CECILL-C License, Version 1.0.
-// %flair:license}
-/*!
- * \file cvmatrix.h
- * \brief Class defining a matrix of kind CvMat
- * \author Guillaume Sanahuja, Copyright Heudiasyc UMR UTC/CNRS 7253
- * \date 2012/03/21
- * \version 4.0
- */
-
-#ifndef CVMATRIX_H
-#define CVMATRIX_H
-
-#include <io_data.h>
-#include <IODataElement.h>
-#include <cvmatrix_descriptor.h>
-
-class cvmatrix_impl;
-struct CvMat;
-
-namespace flair {
-namespace core {
-
-/*! \class cvmatrix
-*
-* \brief Class defining a matrix of kind CvMat
-*
-* CvMat is a matrix struct defined in OpenCV.
-*
-*/
-class cvmatrix : public io_data {
-public:
-  class Type : public DataType {
-  public:
-    Type(size_t _nbRows, size_t _nbCols, ScalarType const &_elementDataType)
-        : nbRows(_nbRows), nbCols(_nbCols), elementDataType(_elementDataType) {}
-    size_t GetSize() const {
-      return nbRows * nbCols * elementDataType.GetSize();
-    }
-    std::string GetDescription() const { return "matrix"; }
-    size_t GetNbRows() const { return nbRows; }
-    size_t GetNbCols() const { return nbCols; }
-    ScalarType const &GetElementDataType() const { return elementDataType; }
-
-  private:
-    size_t nbRows, nbCols;
-    ScalarType const &elementDataType;
-  };
-
-  /*!
-  * \brief Constructor
-  *
-  * Construct an io_data representing a CvMat. \n
-  * It uses a cvmatrix_descriptor to get size and elements' names. \n
-  * Names are used for graphs and logs. \n
-  * All values are initialized to 0.
-  *
-  * \param parent parent
-  * \param descriptor matrix description, it is safe to destroy it after calling this constructor
-  * \param type type of matrix elements
-  * \param name name
-  * \param n number of samples
-  */
-  cvmatrix(const Object *parent, const cvmatrix_descriptor *descriptor,
-           ScalarType const &elementDataType, std::string name = "",
-           uint32_t n = 1);
-
-  /*!
-  * \brief Constructor
-  *
-  * Construct an io_data representing a CvMat. \n
-  * Elements are unamed. \n
-  * All values are initialized to 0.
-  *
-  * \param parent parent
-  * \param rows matrix rows
-  * \param cols matrix cols
-  * \param type type of matrix elements
-  * \param name name
-  * \param n number of samples
-  */
-  cvmatrix(const Object *parent, uint32_t rows, uint32_t cols,
-           ScalarType const &elementDataType, std::string name = "",
-           uint32_t n = 1);
-
-  /*!
-  * \brief Destructor
-  *
-  */
-  ~cvmatrix();
-
-  /*!
-  * \brief Element value
-  *
-  * Element is accessed by locking and unlocking the io_data Mutex.
-  *
-  * \param row element row
-  * \param col element col
-  *
-  * \return element value
-  */
-  float Value(uint32_t row, uint32_t col) const;
-
-  /*!
-  * \brief Element value
-  *
-  * Element is not accessed by locking and unlocking the io_data Mutex. \n
-  * Thus, this function should be called with Mutex locked. \n
-  * This function is usefull when multiple successive access are done to the
-  * elments of the matrix. It avoids unnecessary locking and unlocking.
-  *
-  * \param row element row
-  * \param col element col
-  *
-  * \return element value
-  */
-  float ValueNoMutex(uint32_t row, uint32_t col) const;
-
-  /*!
-  * \brief Set element value
-  *
-  * Element is accessed by locking and unlocking the io_data Mutex.
-  *
-  * \param row element row
-  * \param col element col
-  * \param value element value
-  */
-  void SetValue(uint32_t row, uint32_t col, float value);
-
-  /*!
-  * \brief Set element value
-  *
-  * Element is not accessed by locking and unlocking the io_data Mutex. \n
-  * Thus, this function should be called with Mutex locked. \n
-  * This function is usefull when multiple successive access are done to the
-  * elments of the matrix. It avoids unnecessary locking and unlocking.
-  *
-  * \param row element row
-  * \param col element col
-  * \param value element value
-  */
-  void SetValueNoMutex(uint32_t row, uint32_t col, float value);
-
-  /*!
-  * \brief get CvMat
-  *
-  * The io_data Mutex must be used by the user.
-  */
-  CvMat *getCvMat(void) const;
-
-  /*!
-  * \brief Element name
-  *
-  * If cvmatrix was created without cvmatrix_descriptor, element name is empty.
-  *
-  * \param row element row
-  * \param col element col
-  *
-  * \return element name
-  */
-  std::string Name(uint32_t row, uint32_t col) const;
-
-  /*!
-  * \brief Element
-  *
-  * Get a pointer to a specific element. This pointer can be used for plotting.
-  *
-  * \param row element row
-  * \param col element col
-  *
-  * \return pointer to the element
-  */
-  IODataElement *Element(uint32_t row, uint32_t col) const;
-
-  /*!
-  * \brief Element
-  *
-  * Get a pointer to a specific element. This pointer can be used for plotting.
-  *\n
-  * This function can be used for a 1D matrix.
-  *
-  * \param index element index
-  *
-  * \return pointer to the element
-  */
-  IODataElement *Element(uint32_t index) const;
-
-  /*!
-  * \brief Number of rows
-  *
-  * \return rows
-  */
-  uint32_t Rows(void) const;
-
-  /*!
-  * \brief Number of colomns
-  *
-  * \return colomns
-  */
-  uint32_t Cols(void) const;
-
-  Type const &GetDataType() const { return dataType; };
-
-private:
-  /*!
-  * \brief Copy datas
-  *
-  * Reimplemented from io_data. \n
-  * See io_data::RawRead.
-  *
-  * \param dst destination buffer
-  */
-  void CopyDatas(char *dst) const;
-
-  class cvmatrix_impl *pimpl_;
-  Type dataType;
-};
-
-} // end namespace core
-} // end namespace flair
-
-#endif // CVMATRIX_H
Index: unk/lib/FlairCore/src/cvmatrix_descriptor.cpp
===================================================================
--- /trunk/lib/FlairCore/src/cvmatrix_descriptor.cpp	(revision 317)
+++ 	(revision )
@@ -1,69 +1,0 @@
-// %flair:license{
-// This file is part of the Flair framework distributed under the
-// CECILL-C License, Version 1.0.
-// %flair:license}
-//  created:    2014/02/05
-//  filename:   cvmatrix_descriptor.cpp
-//
-//  author:     Guillaume Sanahuja
-//              Copyright Heudiasyc UMR UTC/CNRS 7253
-//
-//  version:    $Id: $
-//
-//  purpose:    Class describing cvmatrix elements, for log and graphs purpose
-//
-/*********************************************************************/
-
-#include "cvmatrix_descriptor.h"
-#include "FrameworkManager.h"
-
-using std::string;
-
-namespace flair {
-namespace core {
-
-cvmatrix_descriptor::cvmatrix_descriptor(uint32_t rows, uint32_t cols) {
-  this->rows = rows;
-  this->cols = cols;
-
-  if (rows == 0 || cols == 0)
-    getFrameworkManager()->Err("rows and cols must be >0\n");
-
-  element_names = (string **)malloc(rows * cols * sizeof(string *));
-  for (uint32_t i = 0; i < rows * cols; i++) {
-    element_names[i] = new string();
-  }
-}
-
-cvmatrix_descriptor::~cvmatrix_descriptor() {
-  for (uint32_t i = 0; i < rows * cols; i++) {
-    delete element_names[i];
-  }
-  free(element_names);
-}
-
-void cvmatrix_descriptor::SetElementName(uint32_t row, uint32_t col,
-                                         string name) {
-  if (row >= rows || col >= cols) {
-    getFrameworkManager()->Err("index out of bound %s (%i,%i), max (%i,%i)\n",
-                               name.c_str(), row, col, rows - 1, cols - 1);
-    return;
-  }
-  *element_names[row * cols + col] = name;
-}
-
-string cvmatrix_descriptor::ElementName(uint32_t row, uint32_t col) const {
-  if (row >= rows || col >= cols) {
-    getFrameworkManager()->Err("index out of bound (%i,%i), max (%i,%i)\n",
-                               row, col, rows - 1, cols - 1);
-    return *element_names[0]; // safe value...
-  }
-  return *element_names[row * cols + col];
-}
-
-uint32_t cvmatrix_descriptor::Rows() const { return rows; }
-
-uint32_t cvmatrix_descriptor::Cols() const { return cols; }
-
-} // end namespace core
-} // end namespace flair
Index: unk/lib/FlairCore/src/cvmatrix_descriptor.h
===================================================================
--- /trunk/lib/FlairCore/src/cvmatrix_descriptor.h	(revision 317)
+++ 	(revision )
@@ -1,87 +1,0 @@
-// %flair:license{
-// This file is part of the Flair framework distributed under the
-// CECILL-C License, Version 1.0.
-// %flair:license}
-/*!
- * \file cvmatrix_descriptor.h
- * \brief Class describing cvmatrix elements, for log and graphs purpose
- * \author Guillaume Sanahuja, Copyright Heudiasyc UMR UTC/CNRS 7253
- * \date 2014/02/05
- * \version 4.0
- */
-
-#ifndef CVMATRIX_DESCRIPTOR_H
-#define CVMATRIX_DESCRIPTOR_H
-
-#include <string>
-
-namespace flair {
-namespace core {
-
-/*! \class cvmatrix_descriptor
-*
-* \brief Class describing cvmatrix elements, for log and graphs purpose
-*
-* This class allows to give a name to matrix elements. These names
-* will be used in graphs and logs.
-*/
-class cvmatrix_descriptor {
-public:
-  /*!
-  * \brief Constructor
-  *
-  * Construct a matrix descriptor.
-  *
-  * \param rows matrix rows
-  * \param cols matrix cols
-  */
-  cvmatrix_descriptor(uint32_t rows, uint32_t cols);
-
-  /*!
-  * \brief Destructor
-  *
-  */
-  ~cvmatrix_descriptor();
-
-  /*!
-  * \brief Set element name
-  *
-  * \param row element row
-  * \param col element col
-  * \param name element name
-  */
-  void SetElementName(uint32_t row, uint32_t col, std::string name);
-
-  /*!
-  * \brief Element name
-  *
-  * \param row element row
-  * \param col element col
-  *
-  * \return element name
-  */
-  std::string ElementName(uint32_t row, uint32_t col) const;
-
-  /*!
-  * \brief Number of rows
-  *
-  * \return rows
-  */
-  uint32_t Rows(void) const;
-
-  /*!
-  * \brief Number of colomns
-  *
-  * \return colomns
-  */
-  uint32_t Cols(void) const;
-
-private:
-  uint32_t rows, cols;
-  std::string **element_names;
-};
-
-} // end namespace core
-} // end namespace flair
-
-#endif // CVMATRIX_DESCRIPTOR_H
Index: unk/lib/FlairCore/src/cvmatrix_impl.cpp
===================================================================
--- /trunk/lib/FlairCore/src/cvmatrix_impl.cpp	(revision 317)
+++ 	(revision )
@@ -1,85 +1,0 @@
-// %flair:license{
-// This file is part of the Flair framework distributed under the
-// CECILL-C License, Version 1.0.
-// %flair:license}
-//  created:    2012/03/21
-//  filename:   cvmatrix_impl.cpp
-//
-//  author:     Guillaume Sanahuja
-//              Copyright Heudiasyc UMR UTC/CNRS 7253
-//
-//  version:    $Id: $
-//
-//  purpose:    classe definissant le type de données "CvMat"
-//
-/*********************************************************************/
-
-#include "cvmatrix.h"
-#include "cvmatrix_impl.h"
-#include <cxcore.h>
-#include <typeinfo>
-#include <sstream>
-
-using std::string;
-using namespace flair::core;
-
-cvmatrix_impl::cvmatrix_impl(cvmatrix *self, int rows, int cols,
-                             flair::core::ScalarType const &_elementDataType,
-                             int n)
-    : elementDataType(_elementDataType) {
-  descriptor = new cvmatrix_descriptor(rows, cols);
-  Init(self, n);
-}
-
-cvmatrix_impl::cvmatrix_impl(cvmatrix *self,
-                             const cvmatrix_descriptor *inDescriptor,
-                             flair::core::ScalarType const &_elementDataType,
-                             int n)
-    : elementDataType(_elementDataType) {
-  descriptor = new cvmatrix_descriptor(inDescriptor->Rows(), inDescriptor->Cols());
-
-  for (uint32_t i = 0; i < descriptor->Rows(); i++) {
-    for (uint32_t j = 0; j < descriptor->Cols(); j++) {
-      descriptor->SetElementName(i, j, inDescriptor->ElementName(i, j));
-    }
-  }
-  Init(self, n);
-}
-
-void cvmatrix_impl::Init(cvmatrix *self, int n) {
-  this->self = self;
-
-  mat = nullptr;
-  try {
-    ScalarType const &scalarType =
-        dynamic_cast<ScalarType const &>(elementDataType);
-    if (typeid(scalarType) == typeid(FloatType)) {
-      mat = cvCreateMat(descriptor->Rows(), descriptor->Cols(), CV_32FC1);
-    } else if (typeid(scalarType) == typeid(SignedIntegerType)) {
-      switch (elementDataType.GetSize()) {
-      case 1:
-        mat = cvCreateMat(descriptor->Rows(), descriptor->Cols(), CV_8SC1);
-        break;
-      case 2:
-        mat = cvCreateMat(descriptor->Rows(), descriptor->Cols(), CV_16SC1);
-        break;
-      default:
-        self->Err("unsupported integer scalar type\n");
-      }
-    } else {
-      self->Err("unsupported scalar type\n");
-    }
-  } catch (std::bad_cast e) {
-    self->Err("type is not a scalar\n");
-  }
-
-  if (mat == nullptr)
-    self->Err("allocating matrix failed\n");
-  if (n > 1)
-    self->Warn("n>1 not supported\n");
-}
-
-cvmatrix_impl::~cvmatrix_impl() {
-  cvReleaseMat(&mat);
-  delete descriptor;
-}
Index: /trunk/lib/FlairCore/src/unexported/Matrix_impl.h
===================================================================
--- /trunk/lib/FlairCore/src/unexported/Matrix_impl.h	(revision 317)
+++ /trunk/lib/FlairCore/src/unexported/Matrix_impl.h	(revision 318)
@@ -27,10 +27,10 @@
                 flair::core::ScalarType const &elementDataType, int n);
   Matrix_impl(flair::core::Matrix *self,
-                const flair::core::cvmatrix_descriptor *descriptor,
+                const flair::core::MatrixDescriptor *descriptor,
                 flair::core::ScalarType const &elementDataType, int n);
   ~Matrix_impl();
 
   flair::core::ScalarType const &elementDataType;
-  flair::core::cvmatrix_descriptor *descriptor;
+  flair::core::MatrixDescriptor *descriptor;
   void *datas;
   void SetValueNoMutex(uint32_t row, uint32_t col, float value);
Index: unk/lib/FlairCore/src/unexported/cvmatrix_impl.h
===================================================================
--- /trunk/lib/FlairCore/src/unexported/cvmatrix_impl.h	(revision 317)
+++ 	(revision )
@@ -1,43 +1,0 @@
-// %flair:license{
-// This file is part of the Flair framework distributed under the
-// CECILL-C License, Version 1.0.
-// %flair:license}
-/*!
- * \file cvmatrix_impl.h
- * \brief Classe définissant une matrice opencv
- * \author Guillaume Sanahuja, Copyright Heudiasyc UMR UTC/CNRS 7253
- * \date 2012/03/21
- * \version 4.0
- */
-
-#ifndef CVMATRIX_IMPL_H
-#define CVMATRIX_IMPL_H
-
-#include <io_data.h>
-#include <cvmatrix.h>
-
-struct CvMat;
-
-/*! \class cvmatrix_impl
-* \brief Classe définissant une matrice opencv
-*
-*/
-class cvmatrix_impl {
-public:
-  cvmatrix_impl(flair::core::cvmatrix *self, int rows, int cols,
-                flair::core::ScalarType const &elementDataType, int n);
-  cvmatrix_impl(flair::core::cvmatrix *self,
-                const flair::core::cvmatrix_descriptor *descriptor,
-                flair::core::ScalarType const &elementDataType, int n);
-  ~cvmatrix_impl();
-
-  CvMat *mat;
-  flair::core::ScalarType const &elementDataType;
-  flair::core::cvmatrix_descriptor *descriptor;
-
-private:
-  flair::core::cvmatrix *self;
-  void Init(flair::core::cvmatrix *self, int n);
-};
-
-#endif // CVMATRIX_IMPL_H
Index: /trunk/lib/FlairFilter/src/ButterworthLowPass_impl.cpp
===================================================================
--- /trunk/lib/FlairFilter/src/ButterworthLowPass_impl.cpp	(revision 317)
+++ /trunk/lib/FlairFilter/src/ButterworthLowPass_impl.cpp	(revision 318)
@@ -39,5 +39,5 @@
                              " Hz", 0, 10000, 0.1, 2, 1);
 
-  cvmatrix_descriptor *desc = new cvmatrix_descriptor(nbRow, nbCol);
+  MatrixDescriptor *desc = new MatrixDescriptor(nbRow, nbCol);
   //desc->SetElementName(0, 0, "output");
   output = new Matrix(self, desc, floatType, name);
Index: /trunk/lib/FlairFilter/src/ControlLaw.cpp
===================================================================
--- /trunk/lib/FlairFilter/src/ControlLaw.cpp	(revision 317)
+++ /trunk/lib/FlairFilter/src/ControlLaw.cpp	(revision 318)
@@ -18,5 +18,5 @@
 #include "ControlLaw.h"
 #include <Matrix.h>
-#include <cvmatrix_descriptor.h>
+#include <MatrixDescriptor.h>
 #include <DataPlot1D.h>
 #include <sstream>
@@ -34,5 +34,5 @@
     output = new Matrix(this, nb_out, 1, floatType, name);
   } else {
-    cvmatrix_descriptor *desc = new cvmatrix_descriptor(nb_out, 1);
+    MatrixDescriptor *desc = new MatrixDescriptor(nb_out, 1);
     for (int i = 0; i < nb_out; i++) {
       std::stringstream ss;
Index: /trunk/lib/FlairFilter/src/EulerDerivative_impl.cpp
===================================================================
--- /trunk/lib/FlairFilter/src/EulerDerivative_impl.cpp	(revision 317)
+++ /trunk/lib/FlairFilter/src/EulerDerivative_impl.cpp	(revision 318)
@@ -37,5 +37,5 @@
   if (init_value != NULL) {
     // init output matrix of same size as init
-    cvmatrix_descriptor *desc =new cvmatrix_descriptor(init_value->Rows(), init_value->Cols());
+    MatrixDescriptor *desc =new MatrixDescriptor(init_value->Rows(), init_value->Cols());
 
     for (int i = 0; i < init_value->Rows(); i++) {
@@ -53,5 +53,5 @@
   } else {
     // if NULL, assume dimension 1, and init=0
-    cvmatrix_descriptor *desc = new cvmatrix_descriptor(1, 1);
+    MatrixDescriptor *desc = new MatrixDescriptor(1, 1);
     desc->SetElementName(0, 0, "output");
     output = new Matrix(self, desc, floatType, name);
@@ -60,5 +60,5 @@
   
  
-  cvmatrix_descriptor *desc = new cvmatrix_descriptor(output->Rows(), output->Cols());
+  MatrixDescriptor *desc = new MatrixDescriptor(output->Rows(), output->Cols());
   prev_input = new Matrix(self, desc, output->GetDataType().GetElementDataType(), name);
   prev_output = new Matrix(self, desc, output->GetDataType().GetElementDataType(), name);
Index: /trunk/lib/FlairFilter/src/JoyReference_impl.cpp
===================================================================
--- /trunk/lib/FlairFilter/src/JoyReference_impl.cpp	(revision 317)
+++ /trunk/lib/FlairFilter/src/JoyReference_impl.cpp	(revision 318)
@@ -42,5 +42,5 @@
   input = new Matrix(self, 4, 1, floatType, name);
 
-  cvmatrix_descriptor *desc = new cvmatrix_descriptor(4, 1);
+  MatrixDescriptor *desc = new MatrixDescriptor(4, 1);
   desc->SetElementName(0, 0, "z");
   ;
Index: /trunk/lib/FlairFilter/src/LowPassFilter_impl.cpp
===================================================================
--- /trunk/lib/FlairFilter/src/LowPassFilter_impl.cpp	(revision 317)
+++ /trunk/lib/FlairFilter/src/LowPassFilter_impl.cpp	(revision 318)
@@ -38,5 +38,5 @@
   if (init_value != NULL) {
     // init output matrix of same size as init
-    cvmatrix_descriptor *desc =new cvmatrix_descriptor(init_value->Rows(), init_value->Cols());
+    MatrixDescriptor *desc =new MatrixDescriptor(init_value->Rows(), init_value->Cols());
 
     for (int i = 0; i < init_value->Rows(); i++) {
@@ -54,5 +54,5 @@
   } else {
     // if NULL, assume dimension 1, and init=0
-    cvmatrix_descriptor *desc = new cvmatrix_descriptor(1, 1);
+    MatrixDescriptor *desc = new MatrixDescriptor(1, 1);
     desc->SetElementName(0, 0, "output");
     output = new Matrix(self, desc, floatType, name);
Index: /trunk/lib/FlairFilter/src/PidThrust_impl.cpp
===================================================================
--- /trunk/lib/FlairFilter/src/PidThrust_impl.cpp	(revision 317)
+++ /trunk/lib/FlairFilter/src/PidThrust_impl.cpp	(revision 318)
@@ -38,5 +38,5 @@
   self->input = new Matrix(self, 2, 1, floatType, name);
 
-  cvmatrix_descriptor *desc = new cvmatrix_descriptor(5, 1);
+  MatrixDescriptor *desc = new MatrixDescriptor(5, 1);
   desc->SetElementName(0, 0, "p");
   desc->SetElementName(1, 0, "i");
Index: /trunk/lib/FlairFilter/src/Pid_impl.cpp
===================================================================
--- /trunk/lib/FlairFilter/src/Pid_impl.cpp	(revision 317)
+++ /trunk/lib/FlairFilter/src/Pid_impl.cpp	(revision 318)
@@ -36,5 +36,5 @@
   self->input = new Matrix(self, 2, 1, floatType, name);
 
-  cvmatrix_descriptor *desc = new cvmatrix_descriptor(4, 1);
+  MatrixDescriptor *desc = new MatrixDescriptor(4, 1);
   desc->SetElementName(0, 0, "p");
   desc->SetElementName(1, 0, "i");
Index: /trunk/lib/FlairFilter/src/TrajectoryGenerator1D_impl.cpp
===================================================================
--- /trunk/lib/FlairFilter/src/TrajectoryGenerator1D_impl.cpp	(revision 317)
+++ /trunk/lib/FlairFilter/src/TrajectoryGenerator1D_impl.cpp	(revision 318)
@@ -60,5 +60,5 @@
 
   // init matrix
-  cvmatrix_descriptor *desc = new cvmatrix_descriptor(2, 1);
+  MatrixDescriptor *desc = new MatrixDescriptor(2, 1);
   desc->SetElementName(0, 0, "pos");
   desc->SetElementName(1, 0, "vel");
Index: /trunk/lib/FlairFilter/src/TrajectoryGenerator2DCircle_impl.cpp
===================================================================
--- /trunk/lib/FlairFilter/src/TrajectoryGenerator2DCircle_impl.cpp	(revision 317)
+++ /trunk/lib/FlairFilter/src/TrajectoryGenerator2DCircle_impl.cpp	(revision 318)
@@ -51,5 +51,5 @@
 
   // init matrix
-  cvmatrix_descriptor *desc = new cvmatrix_descriptor(2, 2);
+  MatrixDescriptor *desc = new MatrixDescriptor(2, 2);
   desc->SetElementName(0, 0, "pos.x");
   desc->SetElementName(0, 1, "pos.y");
Index: /trunk/lib/FlairFilter/src/X4X8Multiplex_impl.cpp
===================================================================
--- /trunk/lib/FlairFilter/src/X4X8Multiplex_impl.cpp	(revision 317)
+++ /trunk/lib/FlairFilter/src/X4X8Multiplex_impl.cpp	(revision 318)
@@ -50,5 +50,5 @@
   pas->AddItem("clockwise");
 
-  cvmatrix_descriptor *desc = new cvmatrix_descriptor(nb_mot, 1);
+  MatrixDescriptor *desc = new MatrixDescriptor(nb_mot, 1);
   for (int i = 0; i < nb_mot; i++) {
     desc->SetElementName(i, 0, MotorName(i));
Index: /trunk/lib/FlairFilter/src/unexported/NestedSat_impl.h
===================================================================
--- /trunk/lib/FlairFilter/src/unexported/NestedSat_impl.h	(revision 317)
+++ /trunk/lib/FlairFilter/src/unexported/NestedSat_impl.h	(revision 318)
@@ -18,5 +18,4 @@
 namespace flair {
 namespace core {
-class cvmatrix;
 class io_data;
 }
Index: /trunk/lib/FlairMeta/src/MetaVrpnObject.cpp
===================================================================
--- /trunk/lib/FlairMeta/src/MetaVrpnObject.cpp	(revision 317)
+++ /trunk/lib/FlairMeta/src/MetaVrpnObject.cpp	(revision 318)
@@ -48,5 +48,5 @@
 
 void MetaVrpnObject::ConstructorCommon(string name,VrpnClient *client) {
-  cvmatrix_descriptor *desc = new cvmatrix_descriptor(7, 1);
+  MatrixDescriptor *desc = new MatrixDescriptor(7, 1);
   for (int i = 0; i < desc->Rows(); i++) {
     desc->SetElementName(i, 0, Output()->Name(i, 0));
@@ -59,5 +59,5 @@
   delete prev_value;
 
-  desc = new cvmatrix_descriptor(7, 1);
+  desc = new MatrixDescriptor(7, 1);
   for (int i = 0; i < desc->Rows(); i++) {
     desc->SetElementName(i, 0, "d" + Output()->Name(i, 0));
Index: /trunk/lib/FlairSensorActuator/src/BlCtrlV2_x4_speed.cpp
===================================================================
--- /trunk/lib/FlairSensorActuator/src/BlCtrlV2_x4_speed.cpp	(revision 317)
+++ /trunk/lib/FlairSensorActuator/src/BlCtrlV2_x4_speed.cpp	(revision 318)
@@ -122,5 +122,5 @@
   input = new Matrix((IODevice *)this, 8, 1, floatType);
 
-  cvmatrix_descriptor *desc = new cvmatrix_descriptor(4, 2);
+  MatrixDescriptor *desc = new MatrixDescriptor(4, 2);
   desc->SetElementName(0, 0, "avant gauche");
   desc->SetElementName(1, 0, "arriere droite");
Index: /trunk/lib/FlairSensorActuator/src/Bldc.cpp
===================================================================
--- /trunk/lib/FlairSensorActuator/src/Bldc.cpp	(revision 317)
+++ /trunk/lib/FlairSensorActuator/src/Bldc.cpp	(revision 318)
@@ -43,5 +43,5 @@
   pimpl_ = new Bldc_impl(this, layout, name, motors_count);
 
-  cvmatrix_descriptor *desc = new cvmatrix_descriptor(motors_count, 2);
+  MatrixDescriptor *desc = new MatrixDescriptor(motors_count, 2);
   for (int i = 0; i < motors_count; i++) {
     ostringstream speed, current;
Index: /trunk/lib/FlairSensorActuator/src/HokuyoUTM30Lx.cpp
===================================================================
--- /trunk/lib/FlairSensorActuator/src/HokuyoUTM30Lx.cpp	(revision 317)
+++ /trunk/lib/FlairSensorActuator/src/HokuyoUTM30Lx.cpp	(revision 318)
@@ -39,5 +39,5 @@
     : LaserRangeFinder(name), Thread(getFrameworkManager(), name, priority) {
   main_tab = new Tab(getFrameworkManager()->GetTabWidget(), name);
-  cvmatrix_descriptor *desc = new cvmatrix_descriptor(1081, 1);
+  MatrixDescriptor *desc = new MatrixDescriptor(1081, 1);
   output = new Matrix((IODevice *)this, desc, SignedIntegerType(16));
   delete desc;
Index: /trunk/lib/FlairSensorActuator/src/LaserRangeFinder.cpp
===================================================================
--- /trunk/lib/FlairSensorActuator/src/LaserRangeFinder.cpp	(revision 317)
+++ /trunk/lib/FlairSensorActuator/src/LaserRangeFinder.cpp	(revision 318)
@@ -37,5 +37,5 @@
 LaserRangeFinder::LaserRangeFinder(string name)
     : IODevice(getFrameworkManager(), name) {
-  cvmatrix_descriptor *desc = new cvmatrix_descriptor(360, 1);
+  MatrixDescriptor *desc = new MatrixDescriptor(360, 1);
   output = new Matrix(this, desc, floatType);
   delete desc;
Index: /trunk/lib/FlairSensorActuator/src/PressureSensor.cpp
===================================================================
--- /trunk/lib/FlairSensorActuator/src/PressureSensor.cpp	(revision 317)
+++ /trunk/lib/FlairSensorActuator/src/PressureSensor.cpp	(revision 318)
@@ -36,5 +36,5 @@
   plot_tab = NULL;
 
-  cvmatrix_descriptor *desc = new cvmatrix_descriptor(1, 1);
+  MatrixDescriptor *desc = new MatrixDescriptor(1, 1);
   desc->SetElementName(0, 0, name);
   output = new Matrix(this, desc, floatType);
Index: /trunk/lib/FlairSensorActuator/src/RadioReceiver.cpp
===================================================================
--- /trunk/lib/FlairSensorActuator/src/RadioReceiver.cpp	(revision 317)
+++ /trunk/lib/FlairSensorActuator/src/RadioReceiver.cpp	(revision 318)
@@ -38,5 +38,5 @@
 
   // init matrix
-  cvmatrix_descriptor *desc = new cvmatrix_descriptor(nb_channels, 1);
+  MatrixDescriptor *desc = new MatrixDescriptor(nb_channels, 1);
   for (int i = 0; i < nb_channels; i++) {
     ostringstream channel_name;
Index: /trunk/lib/FlairSensorActuator/src/UsRangeFinder.cpp
===================================================================
--- /trunk/lib/FlairSensorActuator/src/UsRangeFinder.cpp	(revision 317)
+++ /trunk/lib/FlairSensorActuator/src/UsRangeFinder.cpp	(revision 318)
@@ -36,5 +36,5 @@
   plot_tab = NULL;
 
-  cvmatrix_descriptor *desc = new cvmatrix_descriptor(1, 1);
+  MatrixDescriptor *desc = new MatrixDescriptor(1, 1);
   desc->SetElementName(0, 0, name);
   output = new Matrix(this, desc, floatType);
Index: /trunk/lib/FlairSensorActuator/src/VrpnObject_impl.cpp
===================================================================
--- /trunk/lib/FlairSensorActuator/src/VrpnObject_impl.cpp	(revision 317)
+++ /trunk/lib/FlairSensorActuator/src/VrpnObject_impl.cpp	(revision 318)
@@ -59,5 +59,5 @@
   
   // state
-  cvmatrix_descriptor *desc = new cvmatrix_descriptor(7, 1);
+  MatrixDescriptor *desc = new MatrixDescriptor(7, 1);
   desc->SetElementName(0, 0, "q0");
   desc->SetElementName(1, 0, "q1");
@@ -70,5 +70,5 @@
   delete desc;
 
-  desc = new cvmatrix_descriptor(3, 1);
+  desc = new MatrixDescriptor(3, 1);
   desc->SetElementName(0, 0, "roll");
   desc->SetElementName(1, 0, "pitch");
Index: /trunk/lib/FlairSimulator/src/Model_impl.cpp
===================================================================
--- /trunk/lib/FlairSimulator/src/Model_impl.cpp	(revision 317)
+++ /trunk/lib/FlairSimulator/src/Model_impl.cpp	(revision 318)
@@ -114,5 +114,5 @@
   self->state[-2] = self->state[0];
 
-  cvmatrix_descriptor *desc = new cvmatrix_descriptor(19, 1);
+  MatrixDescriptor *desc = new MatrixDescriptor(19, 1);
   desc->SetElementName(0, 0, "q0");
   desc->SetElementName(1, 0, "q1");
Index: /trunk/lib/FlairVisionFilter/src/HoughLines.cpp
===================================================================
--- /trunk/lib/FlairVisionFilter/src/HoughLines.cpp	(revision 317)
+++ /trunk/lib/FlairVisionFilter/src/HoughLines.cpp	(revision 318)
@@ -44,5 +44,5 @@
 
     //init output matrix of same size as init
-    cvmatrix_descriptor* desc=new cvmatrix_descriptor(4,1);
+    MatrixDescriptor* desc=new MatrixDescriptor(4,1);
     desc->SetElementName(0,0,"distance");
     desc->SetElementName(1,0,"orientation rad");
Index: /trunk/lib/FlairVisionFilter/src/OpticalFlowCompensated.cpp
===================================================================
--- /trunk/lib/FlairVisionFilter/src/OpticalFlowCompensated.cpp	(revision 317)
+++ /trunk/lib/FlairVisionFilter/src/OpticalFlowCompensated.cpp	(revision 318)
@@ -36,5 +36,5 @@
 
 OpticalFlowCompensated::OpticalFlowCompensated(const OpticalFlow *parent, const Ahrs *ahrs, const LayoutPosition* position, string name) : IODevice(parent, name), ahrs(ahrs), output(NULL) {
-  cvmatrix_descriptor* desc=new cvmatrix_descriptor(3,2);
+  MatrixDescriptor* desc=new MatrixDescriptor(3,2);
   desc->SetElementName(0,0,"raw displacement X");
   desc->SetElementName(0,1,"raw displacement Y");
Index: /trunk/lib/FlairVisionFilter/src/OpticalFlowSpeed.cpp
===================================================================
--- /trunk/lib/FlairVisionFilter/src/OpticalFlowSpeed.cpp	(revision 317)
+++ /trunk/lib/FlairVisionFilter/src/OpticalFlowSpeed.cpp	(revision 318)
@@ -29,5 +29,5 @@
 
 OpticalFlowSpeed::OpticalFlowSpeed(const IODevice* parent, const LayoutPosition* position,string name) : IODevice(parent,name) {
-  cvmatrix_descriptor* desc=new cvmatrix_descriptor(2,1);
+  MatrixDescriptor* desc=new MatrixDescriptor(2,1);
   desc->SetElementName(0,0,"vx");
   desc->SetElementName(1,0,"vy");
Index: /trunk/tools/Controller/DualShock3/src/DualShock3.cpp
===================================================================
--- /trunk/tools/Controller/DualShock3/src/DualShock3.cpp	(revision 317)
+++ /trunk/tools/Controller/DualShock3/src/DualShock3.cpp	(revision 318)
@@ -92,5 +92,5 @@
   axisNumber = 4;
   nativeBitsPerAxis = 8;
-  cvmatrix_descriptor *axisDescriptor = new cvmatrix_descriptor(axisNumber, 1);
+  MatrixDescriptor *axisDescriptor = new MatrixDescriptor(axisNumber, 1);
   for (unsigned int i = 0; i < axisNumber; i++) {
     axisDescriptor->SetElementName(i, 0, GetAxisDescription(i));
@@ -102,6 +102,6 @@
   // buttons stuff
   buttonNumber = 16;
-  cvmatrix_descriptor *buttonDescriptor =
-      new cvmatrix_descriptor(buttonNumber, 1);
+  MatrixDescriptor *buttonDescriptor =
+      new MatrixDescriptor(buttonNumber, 1);
   for (unsigned int i = 0; i < buttonNumber; i++) {
     buttonDescriptor->SetElementName(i, 0, GetButtonDescription(i));
Index: /trunk/tools/Controller/Mavlink/src/GuiInterface.cpp
===================================================================
--- /trunk/tools/Controller/Mavlink/src/GuiInterface.cpp	(revision 317)
+++ /trunk/tools/Controller/Mavlink/src/GuiInterface.cpp	(revision 318)
@@ -18,5 +18,4 @@
 #include "GuiInterface.h"
 
-#include <cvmatrix.h>
 #include <FrameworkManager.h>
 #include <Thread.h>
