/* * imageUndoRedo.cxx * * Created on: Sep 26, 2011 * Author: caceres */ #include "imageUndoRedo.h" ImageUndoRedo::ImageUndoRedo() { this->m_ImagesDeque = new IDequeType(); } //virtual ImageUndoRedo::~ImageUndoRedo() { } //virtual void ImageUndoRedo::Undo() { ImageInfoUR imageInfo = this->m_ImagesDeque->Undo(); this->SetRedoImage(imageInfo.GetRegion()); this->DrawUR(imageInfo); } //virtual void ImageUndoRedo::Redo() { ImageInfoUR imageInfo = this->m_ImagesDeque->Redo(); this->DrawUR(imageInfo); } void ImageUndoRedo::SetImage(vtkImageData *image) { this->m_CurrentImage = image; this->m_CurrentImage->Update(); this->m_OriginalImage = ImageType::New(); this->m_OriginalImage->ShallowCopy(m_CurrentImage); } //virtual void ImageUndoRedo::SetUndoImage(const RegionSType& region) { vtkSmartPointer extract = vtkSmartPointer::New(); extract->SetVOI(region.minX, region.maxX, region.minY, region.maxY, region.minZ, region.maxZ); extract->SetSampleRate(1, 1, 1); extract->SetInput(this->m_OriginalImage); this->m_ImagesDeque->AddImageToUndoContainer(extract->GetOutput(), region); extract->Delete(); } //virtual void ImageUndoRedo::SetRedoImage(const RegionSType& region) { vtkSmartPointer extract = vtkSmartPointer::New(); extract->SetVOI(region.minX, region.maxX, region.minY, region.maxY, region.minZ, region.maxZ); extract->SetSampleRate(1, 1, 1); extract->SetInput(this->m_CurrentImage); this->m_ImagesDeque->AddImageToUndoContainer(extract->GetOutput(), region); extract->Delete(); } void ImageUndoRedo::SetOriginalImage(ImageType* img) { this->m_OriginalImage = img; } void ImageUndoRedo::SetCurrentImage(ImageType* img) { this->m_CurrentImage = img; } //virtual void ImageUndoRedo::DrawUR(ImageInfoUR imageInfo) { }