From b80872a5cfded3d6e827c867a68b636ede2f7ab2 Mon Sep 17 00:00:00 2001 From: Diego Caceres Date: Tue, 4 Oct 2011 16:05:54 +0000 Subject: [PATCH] DFCH: Manual Paint (Undo/Redo Tool) :) :) --- .../widgets/manualPaint/imageUndoRedo.cxx | 31 ++++++++++++++----- .../widgets/manualPaint/imageUndoRedo.h | 5 +-- .../wxWindows/widgets/manualPaint/managerUR.h | 10 +++--- 3 files changed, 32 insertions(+), 14 deletions(-) diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualPaint/imageUndoRedo.cxx b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualPaint/imageUndoRedo.cxx index 5c7e300..5433a6d 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualPaint/imageUndoRedo.cxx +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualPaint/imageUndoRedo.cxx @@ -5,7 +5,6 @@ * Author: caceres */ - #include "imageUndoRedo.h" ImageUndoRedo::ImageUndoRedo(ImageType* current) { @@ -21,19 +20,37 @@ 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->undo(); + this->drawUR(imageInfo); + imageInfo.removeImageFromMemory(); } //virtual void ImageUndoRedo::setUndoImage(const RegionSType& region) { - + vtkExtractVOI* extract; + extract->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 ) { - +void ImageUndoRedo::setRedoImage(const RegionSType& region) { + vtkExtractVOI* extract; + extract->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; @@ -42,7 +59,7 @@ void ImageUndoRedo::setCurrentImage(ImageType* img) { this->m_CurrentImage = img; } //virtual -void ImageUndoRedo::drawUR(ImageType* urImage, const RegionSType& region){ +void ImageUndoRedo::drawUR(ImageInfoUR imageInfo) { } diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualPaint/imageUndoRedo.h b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualPaint/imageUndoRedo.h index 3a9dd20..3c13e1a 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualPaint/imageUndoRedo.h +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualPaint/imageUndoRedo.h @@ -9,6 +9,7 @@ #define IMAGEUNDOREDO_H_ #include "managerUR.h" +#include class ImageUndoRedo: public ManagerUR { @@ -24,11 +25,11 @@ public: virtual void undo(); virtual void redo(); virtual void setUndoImage(const RegionSType& region); - virtual void setRedoImage( const RegionSType& region ); + virtual void setRedoImage(const RegionSType& region); void setOriginalImage(ImageType* img); void setCurrentImage(ImageType* img); private: - virtual void drawUR(ImageType* urImage, const RegionSType& region); + virtual void drawUR(ImageInfoUR imageInfo); }; diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualPaint/managerUR.h b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualPaint/managerUR.h index 5a2932e..e971416 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualPaint/managerUR.h +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualPaint/managerUR.h @@ -12,9 +12,9 @@ #include #include -#include "imageDequeUR.h" +#include "image3DDequeUR.h" -typedef ImageDequeUR IDequeType; +typedef Image3DDequeUR IDequeType; typedef RegionStructUR RegionSType; typedef vtkImageData ImageType; @@ -24,10 +24,10 @@ public: virtual ~ManagerUR(); virtual void undo(); virtual void redo(); - virtual void setUndoImage( const RegionSType& region ); - virtual void setRedoImage( const RegionSType& region ); + virtual void setUndoImage(const RegionSType& region); + virtual void setRedoImage(const RegionSType& region); private: - virtual void drawUR(ImageType* urImage, const RegionSType& region); + virtual void drawUR(ImageInfoUR imageInfo); }; -- 2.45.1