]> Creatis software - creaRigidRegistration.git/blobdiff - lib/MyGridOnImageGenerator.h
Class that generates a grid over an image in order to visualize the deformation field...
[creaRigidRegistration.git] / lib / MyGridOnImageGenerator.h
diff --git a/lib/MyGridOnImageGenerator.h b/lib/MyGridOnImageGenerator.h
new file mode 100755 (executable)
index 0000000..1ef6e2e
--- /dev/null
@@ -0,0 +1,111 @@
+#ifndef __MyGridOnImageGenerator_h__
+#define __MyGridOnImageGenerator_h__
+
+//-----------------
+// C++
+//-----------------
+
+
+//-----------------
+// VTK
+//-----------------
+
+#include "vtkImageData.h"
+
+//------------------------------------------------------------------------------
+// Creates a grid over an image. It is usually used to visualized the deformation
+// field after a non-rigid registration. The contrast in the final image is based
+// on the maximum and minimum values over the entire image.
+//------------------------------------------------------------------------------
+class MyGridOnImageGenerator
+{
+public:
+
+       //------------------------------------------------------------
+       //Builder
+       //------------------------------------------------------------
+
+       /*
+        * Class builder
+        * @param nImage is the input image
+        * @param nScpX is the spacing in X direction
+        * @param nScpY is the spacing in Y direction
+        * @param nScpZ is the spacing in Z direction
+        */
+       MyGridOnImageGenerator(vtkImageData* nImage, double nScpX, double nScpY, double nScpZ);
+
+       //------------------------------------------------------------
+       //Destructor
+       //------------------------------------------------------------
+
+       ~MyGridOnImageGenerator();
+
+       //------------------------------------------------------------
+       //Public methods
+       //------------------------------------------------------------
+
+       /*
+        * Method that changes the spacing in X
+        * param nScpX the new value for the spacing in X
+        */
+       void setScpX(double nScpX);
+
+       /*
+        * Method that changes the spacing in Y
+        * param nScpY the new value for the spacing in Y
+        */
+       void setScpY(double nScpY);
+
+
+       /*
+        * Method that changes the spacing in Z
+        * param nScpZ the new value for the spacing in Z
+        */
+       void setScpZ(double nScpZ);
+
+       /*
+        * Method that changes the input image
+        * @param nImage is the new image
+        */
+       void setImage(vtkImageData* nImage);
+
+       /**
+        * Method that generates the image with the grid
+        * @return The image with the grid
+        */
+       vtkImageData* getGridOnImage( );
+
+private:
+
+       //------------------------------------------------------------
+       //Private methods
+       //------------------------------------------------------------
+
+
+       //------------------------------------------------------------
+       //Attributes
+       //------------------------------------------------------------
+
+       /*
+        * Spcing in X directioin
+        */
+       double spcX;
+
+       /*
+        * Spcing in Y directioin
+        */
+       double spcY;
+
+       /*
+        * Spcing in Z directioin
+        */
+       double spcZ;
+
+       /**
+        * Input image
+        */
+       vtkImageData* image;
+};
+
+//------------------------------------------------------------------------------
+#endif