SignMathUtils.h

Go to the documentation of this file.
00001 /*
00002  *
00003  * Program:   Slicer Image-Guided Navigator (The SIGN)
00004  * Module:    $RCSfile: SignMathUtils.h,v $
00005  */
00015 #ifndef _SIGNMATHUTILS_H_
00016 #define _SIGNMATHUTILS_H_
00017 
00018 #include <SignDLL.h>
00019 
00020 class vtkMatrix4x4;
00021 class SignFiducialCollection;
00022 class vtkImageData;
00023 
00024 class SIGN_EXPORT SignMathUtils
00025 {
00026  public:
00030   static vtkMatrix4x4 *RegisterFiducialSets(SignFiducialCollection *set1, SignFiducialCollection *set2);
00031 
00033   static float abs(float);
00034 
00036   static float dist(int a[2],int b[2]);
00038   static float dist(float a[3],float b[3]);
00040   static void Normalize (float *v);
00041   static void MultiplyMatrix(const double **A, const double **B,
00042                              unsigned int rowA, unsigned int colA,
00043                              unsigned int rowB, unsigned int colB,
00044                              double **C);
00045   static  double **AllocateMatrix(int r, int c);
00046 
00053   static int ComputeRasToIjkFromCorners(double *ftl,double *ftr,double *fbr,double *ltl,double zoffset,vtkImageData* image,vtkMatrix4x4* posMat);
00055   static void ComputeRasToIjkFromScanOrder(const char* order,vtkImageData* image,vtkMatrix4x4* posMat);
00056 
00057  private:
00059   static int SolveABeqCforB(vtkMatrix4x4* A,  vtkMatrix4x4* B, vtkMatrix4x4* C);
00060   static int SolveABeqCforA(vtkMatrix4x4* A,  vtkMatrix4x4* B, vtkMatrix4x4* C);
00061 };
00062 
00063 #endif

Generated on Mon Feb 26 12:11:16 2007 for TheSIGN by  doxygen 1.4.6