]> Creatis software - creaMaracasVisu.git/blob - 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
1 /*
2  * imageUndoRedo.cxx
3  *
4  *  Created on: Sep 26, 2011
5  *      Author: caceres
6  */
7
8 #include "imageUndoRedo.h"
9
10 ImageUndoRedo::ImageUndoRedo(ImageType* current) {
11
12         this->m_CurrentImage = current;
13         this->m_CurrentImage->Update();
14         this->m_OriginalImage = ImageType::New();
15         this->m_OriginalImage->ShallowCopy(m_CurrentImage);
16 }
17 //virtual
18 ImageUndoRedo::~ImageUndoRedo() {
19
20 }
21 //virtual
22 void ImageUndoRedo::undo() {
23         ImageInfoUR imageInfo = this->m_ImagesDeque->undo();
24         this->setRedoImage(imageInfo.getRegion());
25         this->drawUR(imageInfo);
26 }
27 //virtual
28 void ImageUndoRedo::redo() {
29         ImageInfoUR imageInfo = this->m_ImagesDeque->undo();
30         this->drawUR(imageInfo);
31         imageInfo.removeImageFromMemory();
32 }
33 //virtual
34 void ImageUndoRedo::setUndoImage(const RegionSType& region) {
35         vtkExtractVOI* extract;
36         extract->New();
37         extract->SetVOI(region.minX, region.maxX, region.minY, region.maxY,
38                         region.minZ, region.maxZ);
39         extract->SetSampleRate(1, 1, 1);
40         extract->SetInput(this->m_OriginalImage);
41         this->m_ImagesDeque->addImageToUndoContainer(extract->GetOutput(), region);
42         extract->Delete();
43 }
44 //virtual
45 void ImageUndoRedo::setRedoImage(const RegionSType& region) {
46         vtkExtractVOI* extract;
47         extract->New();
48         extract->SetVOI(region.minX, region.maxX, region.minY, region.maxY,
49                         region.minZ, region.maxZ);
50         extract->SetSampleRate(1, 1, 1);
51         extract->SetInput(this->m_CurrentImage);
52         this->m_ImagesDeque->addImageToUndoContainer(extract->GetOutput(), region);
53         extract->Delete();
54 }
55 void ImageUndoRedo::setOriginalImage(ImageType* img) {
56         this->m_OriginalImage = img;
57 }
58 void ImageUndoRedo::setCurrentImage(ImageType* img) {
59         this->m_CurrentImage = img;
60 }
61 //virtual
62 void ImageUndoRedo::drawUR(ImageInfoUR imageInfo) {
63
64 }
65