4 * Created on: Sep 26, 2011
8 #include "imageUndoRedo.h"
10 ImageUndoRedo::ImageUndoRedo() {
11 this->m_ImagesDeque = new IDequeType();
14 ImageUndoRedo::~ImageUndoRedo() {
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);
25 void ImageUndoRedo::Redo() {
26 ImageInfoUR* imageInfo = this->m_ImagesDeque->Redo();
27 this->DrawUR(imageInfo);
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);
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);
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);
57 void ImageUndoRedo::SetOriginalImage(ImageType* img) {
58 this->m_OriginalImage = img;
60 void ImageUndoRedo::SetCurrentImage(ImageType* img) {
61 this->m_CurrentImage = img;
64 void ImageUndoRedo::DrawUR(ImageInfoUR* imageInfo) {