4 * Created on: Sep 26, 2011
8 #include "imageUndoRedo.h"
10 ImageUndoRedo::ImageUndoRedo(ImageType* current) {
12 this->m_CurrentImage = current;
13 this->m_CurrentImage->Update();
14 this->m_OriginalImage = ImageType::New();
15 this->m_OriginalImage->ShallowCopy(m_CurrentImage);
18 ImageUndoRedo::~ImageUndoRedo() {
22 void ImageUndoRedo::undo() {
23 ImageInfoUR imageInfo = this->m_ImagesDeque->undo();
24 this->setRedoImage(imageInfo.getRegion());
25 this->drawUR(imageInfo);
28 void ImageUndoRedo::redo() {
29 ImageInfoUR imageInfo = this->m_ImagesDeque->undo();
30 this->drawUR(imageInfo);
31 imageInfo.removeImageFromMemory();
34 void ImageUndoRedo::setUndoImage(const RegionSType& region) {
35 vtkExtractVOI* extract;
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);
45 void ImageUndoRedo::setRedoImage(const RegionSType& region) {
46 vtkExtractVOI* extract;
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);
55 void ImageUndoRedo::setOriginalImage(ImageType* img) {
56 this->m_OriginalImage = img;
58 void ImageUndoRedo::setCurrentImage(ImageType* img) {
59 this->m_CurrentImage = img;
62 void ImageUndoRedo::drawUR(ImageInfoUR imageInfo) {