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 this->DrawUR(imageInfo);
24 void ImageUndoRedo::Redo() {
25 ImageInfoUR imageInfo = this->m_ImagesDeque->Redo();
26 this->DrawUR(imageInfo);
27 imageInfo.RemoveImageFromMemory();
29 void ImageUndoRedo::SetImage(vtkImageData *image)
31 this->m_CurrentImage = image;
32 this->m_CurrentImage->Update();
33 this->m_OriginalImage = ImageType::New();
34 this->m_OriginalImage->ShallowCopy(m_CurrentImage);
37 void ImageUndoRedo::SetUndoImage(const RegionSType& region) {
38 vtkExtractVOI* extract;
40 extract->SetVOI(region.minX, region.maxX, region.minY, region.maxY,
41 region.minZ, region.maxZ);
42 extract->SetSampleRate(1, 1, 1);
43 extract->SetInput(this->m_OriginalImage);
44 this->m_ImagesDeque->AddImageToUndoContainer(extract->GetOutput(), region);
48 void ImageUndoRedo::SetRedoImage(const RegionSType& region) {
49 vtkExtractVOI* extract;
51 extract->SetVOI(region.minX, region.maxX, region.minY, region.maxY,
52 region.minZ, region.maxZ);
53 extract->SetSampleRate(1, 1, 1);
54 extract->SetInput(this->m_CurrentImage);
55 this->m_ImagesDeque->AddImageToUndoContainer(extract->GetOutput(), region);
58 void ImageUndoRedo::SetOriginalImage(ImageType* img) {
59 this->m_OriginalImage = img;
61 void ImageUndoRedo::SetCurrentImage(ImageType* img) {
62 this->m_CurrentImage = img;
65 void ImageUndoRedo::DrawUR(ImageInfoUR imageInfo) {