]> Creatis software - clitk.git/blobdiff - common/clitkTransformUtilities.cxx
Comment snoutID
[clitk.git] / common / clitkTransformUtilities.cxx
index ef210d70ae3318c5dbb778557787d9d86b51677e..832d5983eed109898fe427337ec9b4f6dd0a8483 100644 (file)
@@ -67,4 +67,32 @@ itk::Matrix<double, 3, 3> GetRotationMatrix<3>(itk::Array<double> rotationParame
   return GetRotationMatrix3D(rotationParameters);
 }
 
+//--------------------------------------------------------------------
+itk::Matrix<double, 4, 4> ReadMatrix3D(std::string fileName)
+{
+  // read input matrix
+  std::ifstream is;
+  openFileForReading(is, fileName);
+  std::vector<double> nb;
+  double x;
+  skipComment(is);
+  is >> x;
+  while (is && !is.eof()) {
+    nb.push_back(x);
+    skipComment(is);
+    is >> x;
+  }
+
+  if(nb.size() != 16)
+    itkGenericExceptionMacro(<< "Could not read 4x4 matrix in " << fileName);
+
+  //copy it to the matrix
+  itk::Matrix<double, 4, 4> matrix;
+  unsigned int index=0;
+  for (unsigned int i=0;i<4;i++)
+    for (unsigned int j=0;j<4;j++)
+      matrix[i][j]=nb[index++];
+  return matrix;
+}
+
 }