]> Creatis software - creaMaracasVisu.git/blob - lib/maracasVisuLib/src/interface/wxWindows/widgets/imageUndoRedo/imageUndoRedo.cxx
6a57d07819d49a2167242be2046565dc8bdd5f1b
[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         this->DrawUR(imageInfo);
22 }
23 //virtual
24 void ImageUndoRedo::Redo() {
25         ImageInfoUR imageInfo = this->m_ImagesDeque->Redo();
26         this->DrawUR(imageInfo);
27 }
28 void ImageUndoRedo::SetImage(vtkImageData *image) {
29         this->m_CurrentImage = image;
30         this->m_CurrentImage->Update();
31         this->m_OriginalImage = ImageType::New();
32         this->m_OriginalImage->ShallowCopy(m_CurrentImage);
33 }
34 //virtual
35 void ImageUndoRedo::SetUndoImage(const RegionSType& region) {
36         vtkSmartPointer<vtkExtractVOI> extract =
37                         vtkSmartPointer<vtkExtractVOI>::New();
38         extract->SetVOI(region.minX, region.maxX, region.minY, region.maxY,
39                         region.minZ, region.maxZ);
40         extract->SetSampleRate(1, 1, 1);
41         extract->SetInput(this->m_OriginalImage);
42         this->m_ImagesDeque->AddImageToUndoContainer(extract->GetOutput(), region);
43         extract->Delete();
44 }
45 //virtual
46 void ImageUndoRedo::SetRedoImage(const RegionSType& region) {
47         vtkSmartPointer<vtkExtractVOI> extract =
48                         vtkSmartPointer<vtkExtractVOI>::New();
49         extract->SetVOI(region.minX, region.maxX, region.minY, region.maxY,
50                         region.minZ, region.maxZ);
51         extract->SetSampleRate(1, 1, 1);
52         extract->SetInput(this->m_CurrentImage);
53         this->m_ImagesDeque->AddImageToUndoContainer(extract->GetOutput(), region);
54         extract->Delete();
55 }
56 void ImageUndoRedo::SetOriginalImage(ImageType* img) {
57         this->m_OriginalImage = img;
58 }
59 void ImageUndoRedo::SetCurrentImage(ImageType* img) {
60         this->m_CurrentImage = img;
61 }
62 //virtual
63 void ImageUndoRedo::DrawUR(ImageInfoUR imageInfo) {
64
65 }
66