#include "imageInfoUR.h"
ImageInfoUR::ImageInfoUR() {
- this->m_Image = NULL;
this->m_OnMemory = false;
this->m_OnDisk = false;
}
ImageInfoUR::~ImageInfoUR() {
- this->m_Image->Delete();
}
-void ImageInfoUR::SetImageName(const std::string &imgName) {
+void ImageInfoUR::SetImageName(const StringType &imgName) {
this->m_ImageName = imgName;
}
-void ImageInfoUR::SetRegion(const RegionStructUR ®ion) {
- this->m_Region = region;
+
+void ImageInfoUR::SetImageMManager(ImageMManagerType* imMManager) {
+ this->m_ImageMManager = imMManager;
}
+
void ImageInfoUR::SetStatus(const bool& onMemory) {
this->m_OnMemory = onMemory;
}
-void ImageInfoUR::SetImage(vtkImageData* img) {
- this->m_Image = img;
- this->SetStatus(true);
-}
-std::string ImageInfoUR::GetImageName() {
+
+ImageInfoUR::StringType ImageInfoUR::GetImageName() {
return (this->m_ImageName);
}
-RegionStructUR ImageInfoUR::GetRegion() {
- return (this->m_Region);
+
+ImageInfoUR::VTKImageDataPointerType ImageInfoUR::GetUndoImage() {
+ return (this->m_UndoImage);
+}
+
+ImageInfoUR::VTKImageDataPointerType ImageInfoUR::GetRedoImage() {
+ return (this->m_RedoImage);
+}
+
+ImageInfoUR::ImageMManagerType* ImageInfoUR::GetImageMManager() {
+ return (this->m_ImageMManager);
}
+
bool ImageInfoUR::GetStatus() {
return (this->m_OnMemory);
}
-void ImageInfoUR::RemoveImageFromMemory(const std::string& gPath) {
+
+void ImageInfoUR::SetImages(VTKImageDataPointerType imgUndo,
+ VTKImageDataPointerType imgRedo) {
+ this->m_UndoImage = imgUndo;
+ this->m_RedoImage = imgRedo;
+ this->SetStatus(true);
+}
+
+void ImageInfoUR::LoadImagesToMemory(const StringType& gPath) {
+ //setting paths
+ StringType filename = gPath + this->m_ImageName;
+ StringType undoImagePath = filename + "_Undo.mhd";
+ StringType redoImagePath = filename + "_Redo.mhd";
+ //Loading Undo Image
+ VTKMetaImageReaderPointerType readerUndo =
+ VTKMetaImageReaderPointerType::New();
+ readerUndo->SetFileName(undoImagePath.c_str());
+ this->m_UndoImage = readerUndo->GetOutput();
+ this->m_UndoImage->Update();
+ //Loading Redo Image
+ VTKMetaImageReaderPointerType readerRedo =
+ VTKMetaImageReaderPointerType::New();
+ readerRedo->SetFileName(redoImagePath.c_str());
+ this->m_RedoImage = readerRedo->GetOutput();
+ this->m_RedoImage->Update();
+ //Updating status
+ this->m_OnMemory = true;
+}
+
+void ImageInfoUR::RemoveImagesFromMemory(const StringType& gPath) {
if (!this->m_OnDisk) {
- this->SaveImageAsMHD(gPath);
+ this->SaveImagesOnDisk(gPath);
}
- this->m_Image->Delete();
+ this->m_UndoImage = NULL;
+ this->m_RedoImage = NULL;
this->SetStatus(false);
}
-void ImageInfoUR::LoadImageMHDToMemory(const std::string& gPath) {
- std::string filename = gPath + this->m_ImageName;
- vtkSmartPointer<vtkMetaImageReader> reader = vtkSmartPointer<
- vtkMetaImageReader>::New();
- reader->SetFileName(filename.c_str());
- this->m_Image = reader->GetOutput();
- this->m_OnMemory = true;
-}
-void ImageInfoUR::SaveImageAsMHD(const std::string& gPath) {
+
+void ImageInfoUR::SaveImagesOnDisk(const StringType& gPath) {
this->m_OnDisk = true;
- std::string filename = gPath + this->m_ImageName;
- vtkSmartPointer<vtkMetaImageWriter> w =
- vtkSmartPointer<vtkMetaImageWriter>::New();
- w->SetInput(this->m_Image);
- w->SetCompression(false);
- w->SetFileDimensionality(this->m_Image->GetDataDimension());
- w->SetFileName(filename.c_str());
- w->Update();
- w->Write();
- w->Delete();
+ //managing temporary files
+//EED-11/11/2011 mkstemp((char*) filename.c_str());
+ StringType filename = gPath + this->m_ImageName;
+ StringType undoImagePath = filename + "_Undo.mhd";
+ StringType redoImagePath = filename + "_Redo.mhd";
+ this->SaveImageAsMHD(undoImagePath, this->m_UndoImage);
+ this->SaveImageAsMHD(redoImagePath, this->m_RedoImage);
}
-void ImageInfoUR::RemoveImageFromDisk(const std::string& gPath)
-{
+void ImageInfoUR::RemoveImagesFromDisk(const StringType& gPath) {
+ StringType filename = gPath + this->m_ImageName;
+ StringType undoImagePathMHD = filename + "_Undo.mhd";
+ StringType redoImagePathMHD = filename + "_Redo.mhd";
+ StringType undoImagePathRAW = filename + "_Undo.raw";
+ StringType redoImagePathRAW = filename + "_Redo.raw";
+ //Unlink the files!!
+}
+void ImageInfoUR::SaveImageAsMHD(const StringType& filename,
+ VTKImageDataPointerType image) {
+ VTKMetaImageWriterPointerType w = VTKMetaImageWriterPointerType::New();
+ w->SetInput(image);
+ w->SetCompression(false);
+ w->SetFileDimensionality(image->GetDataDimension());
+ w->SetFileName(filename.c_str());
+ w->Write();
}