]> Creatis software - creaMaracasVisu.git/blob - lib/maracasVisuLib/src/interface/wxWindows/widgets/imageUndoRedo/imageUndoRedo.cxx
DFCH: ManualPaint + imageUndoRedo -> 50% tested. (Save Images undo and redo) :) :)
[creaMaracasVisu.git] / lib / maracasVisuLib / src / interface / wxWindows / widgets / imageUndoRedo / imageUndoRedo.cxx
1 /*
2  * imageUndoRedo.cxx
3  *
4  *  Created on: Sep 26, 2011
5  *      Author: caceres
6  */
7
8 #include "imageUndoRedo.h"
9
10 ImageUndoRedo::ImageUndoRedo() {
11         this->m_ImagesDeque = new IDequeType();
12 }
13 //virtual
14 ImageUndoRedo::~ImageUndoRedo() {
15
16 }
17 //virtual
18 void ImageUndoRedo::Undo() {
19         ImageInfoUR* imageInfo = this->m_ImagesDeque->Undo();
20         this->SetRedoImage(imageInfo->GetRegion());
21         std::cout<<"undooooooooooooooooooooooooooo"<<std::endl;
22         this->DrawUR(imageInfo);
23 }
24 //virtual
25 void ImageUndoRedo::Redo() {
26         ImageInfoUR* imageInfo = this->m_ImagesDeque->Redo();
27         this->DrawUR(imageInfo);
28 }
29 void ImageUndoRedo::SetImage(vtkImageData *image) {
30         this->m_CurrentImage = image;
31         this->m_CurrentImage->Update();
32         this->m_OriginalImage = ImageType::New();
33         this->m_OriginalImage->DeepCopy(m_CurrentImage);
34 }
35 //virtual
36 void ImageUndoRedo::SetUndoImage(const RegionSType& region) {
37         vtkSmartPointer<vtkExtractVOI> extract =
38                         vtkSmartPointer<vtkExtractVOI>::New();
39         extract->SetVOI(region.minX, region.maxX, region.minY, region.maxY,
40                         region.minZ, region.maxZ);
41         extract->SetSampleRate(1, 1, 1);
42         extract->SetInput(this->m_OriginalImage);
43         vtkImageData* imgResult = extract->GetOutput();
44         this->m_ImagesDeque->AddImageToUndoContainer(imgResult, region);
45 }
46 //virtual
47 void ImageUndoRedo::SetRedoImage(const RegionSType& region) {
48         vtkSmartPointer<vtkExtractVOI> extract =
49                         vtkSmartPointer<vtkExtractVOI>::New();
50         extract->SetVOI(region.minX, region.maxX, region.minY, region.maxY,
51                         region.minZ, region.maxZ);
52         extract->SetSampleRate(1, 1, 1);
53         extract->SetInput(this->m_CurrentImage);
54         vtkImageData* imgResult = extract->GetOutput();
55         this->m_ImagesDeque->AddImageToRedoContainer(imgResult, region);
56 }
57 void ImageUndoRedo::SetOriginalImage(ImageType* img) {
58         this->m_OriginalImage = img;
59 }
60 void ImageUndoRedo::SetCurrentImage(ImageType* img) {
61         this->m_CurrentImage = img;
62 }
63 //virtual
64 void ImageUndoRedo::DrawUR(ImageInfoUR* imageInfo) {
65
66 }
67