]> Creatis software - creaMaracasVisu.git/commitdiff
DFCH: Manual Paint (Undo/Redo Tool) :) :)
authorDiego Caceres <Diego.Caceres@creatis.insa-lyon.fr>
Tue, 4 Oct 2011 16:05:54 +0000 (16:05 +0000)
committerDiego Caceres <Diego.Caceres@creatis.insa-lyon.fr>
Tue, 4 Oct 2011 16:05:54 +0000 (16:05 +0000)
lib/maracasVisuLib/src/interface/wxWindows/widgets/manualPaint/imageUndoRedo.cxx
lib/maracasVisuLib/src/interface/wxWindows/widgets/manualPaint/imageUndoRedo.h
lib/maracasVisuLib/src/interface/wxWindows/widgets/manualPaint/managerUR.h

index 5c7e3009aa990a8012beb6002a5be0c14c564da7..5433a6db1f6c82fae427cf607ad94acdd1aec74a 100644 (file)
@@ -5,7 +5,6 @@
  *      Author: caceres
  */
 
-
 #include "imageUndoRedo.h"
 
 ImageUndoRedo::ImageUndoRedo(ImageType* current) {
@@ -21,19 +20,37 @@ ImageUndoRedo::~ImageUndoRedo() {
 }
 //virtual
 void ImageUndoRedo::undo() {
-
+       ImageInfoUR imageInfo = this->m_ImagesDeque->undo();
+       this->setRedoImage(imageInfo.getRegion());
+       this->drawUR(imageInfo);
 }
 //virtual
 void ImageUndoRedo::redo() {
-
+       ImageInfoUR imageInfo = this->m_ImagesDeque->undo();
+       this->drawUR(imageInfo);
+       imageInfo.removeImageFromMemory();
 }
 //virtual
 void ImageUndoRedo::setUndoImage(const RegionSType& region) {
-
+       vtkExtractVOI* extract;
+       extract->New();
+       extract->SetVOI(region.minX, region.maxX, region.minY, region.maxY,
+                       region.minZ, region.maxZ);
+       extract->SetSampleRate(1, 1, 1);
+       extract->SetInput(this->m_OriginalImage);
+       this->m_ImagesDeque->addImageToUndoContainer(extract->GetOutput(), region);
+       extract->Delete();
 }
 //virtual
-void ImageUndoRedo::setRedoImage( const RegionSType& region ) {
-
+void ImageUndoRedo::setRedoImage(const RegionSType& region) {
+       vtkExtractVOI* extract;
+       extract->New();
+       extract->SetVOI(region.minX, region.maxX, region.minY, region.maxY,
+                       region.minZ, region.maxZ);
+       extract->SetSampleRate(1, 1, 1);
+       extract->SetInput(this->m_CurrentImage);
+       this->m_ImagesDeque->addImageToUndoContainer(extract->GetOutput(), region);
+       extract->Delete();
 }
 void ImageUndoRedo::setOriginalImage(ImageType* img) {
        this->m_OriginalImage = img;
@@ -42,7 +59,7 @@ void ImageUndoRedo::setCurrentImage(ImageType* img) {
        this->m_CurrentImage = img;
 }
 //virtual
-void ImageUndoRedo::drawUR(ImageType* urImage, const RegionSType& region){
+void ImageUndoRedo::drawUR(ImageInfoUR imageInfo) {
 
 }
 
index 3a9dd2030a450ce3705d7b67204211cf3328780f..3c13e1a9dc0034e2eb21828ee66c1eb739ad5935 100644 (file)
@@ -9,6 +9,7 @@
 #define IMAGEUNDOREDO_H_
 
 #include "managerUR.h"
+#include <vtkExtractVOI.h>
 
 class ImageUndoRedo: public ManagerUR {
 
@@ -24,11 +25,11 @@ public:
        virtual void undo();
        virtual void redo();
        virtual void setUndoImage(const RegionSType& region);
-       virtual void setRedoImage( const RegionSType& region );
+       virtual void setRedoImage(const RegionSType& region);
        void setOriginalImage(ImageType* img);
        void setCurrentImage(ImageType* img);
 private:
-       virtual void drawUR(ImageType* urImage, const RegionSType& region);
+       virtual void drawUR(ImageInfoUR imageInfo);
 
 };
 
index 5a2932e620d5edbb48753553ea7d80ae83e52b39..e971416f2f3dc7b864f96be0519f686a1b0e5aa8 100644 (file)
@@ -12,9 +12,9 @@
 #include <string>
 #include <vtkImageData.h>
 
-#include "imageDequeUR.h"
+#include "image3DDequeUR.h"
 
-typedef ImageDequeUR IDequeType;
+typedef Image3DDequeUR IDequeType;
 typedef RegionStructUR RegionSType;
 typedef vtkImageData ImageType;
 
@@ -24,10 +24,10 @@ public:
        virtual ~ManagerUR();
        virtual void undo();
        virtual void redo();
-       virtual void setUndoImage( const RegionSType& region );
-       virtual void setRedoImage( const RegionSType& region );
+       virtual void setUndoImage(const RegionSType& region);
+       virtual void setRedoImage(const RegionSType& region);
 private:
-       virtual void drawUR(ImageType* urImage, const RegionSType& region);
+       virtual void drawUR(ImageInfoUR imageInfo);
 
 };