]> Creatis software - creaMaracasVisu.git/blobdiff - lib/maracasVisuLib/src/interface/wxWindows/widgets/manualPaint/imageUndoRedo.cxx
DFCH: Manual Paint (Undo/Redo Tool) :) :)
[creaMaracasVisu.git] / lib / maracasVisuLib / src / interface / wxWindows / widgets / manualPaint / imageUndoRedo.cxx
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) {
 
 }