4 * Created on: Sep 22, 2011
7 #include "imageInfoUR.h"
9 ImageInfoUR::ImageInfoUR() {
10 this->m_OnMemory = false;
11 this->m_OnDisk = false;
14 ImageInfoUR::~ImageInfoUR() {
17 void ImageInfoUR::SetImageName(const StringType &imgName) {
18 this->m_ImageName = imgName;
21 void ImageInfoUR::SetImageMManager(ImageMManagerType* imMManager) {
22 this->m_ImageMManager = imMManager;
25 void ImageInfoUR::SetStatus(const bool& onMemory) {
26 this->m_OnMemory = onMemory;
29 ImageInfoUR::StringType ImageInfoUR::GetImageName() {
30 return (this->m_ImageName);
33 ImageInfoUR::VTKImageDataPointerType ImageInfoUR::GetUndoImage() {
34 return (this->m_UndoImage);
37 ImageInfoUR::VTKImageDataPointerType ImageInfoUR::GetRedoImage() {
38 return (this->m_RedoImage);
41 ImageInfoUR::ImageMManagerType* ImageInfoUR::GetImageMManager() {
42 return (this->m_ImageMManager);
45 bool ImageInfoUR::GetStatus() {
46 return (this->m_OnMemory);
49 void ImageInfoUR::SetImages(VTKImageDataPointerType imgUndo,
50 VTKImageDataPointerType imgRedo) {
51 this->m_UndoImage = imgUndo;
52 this->m_RedoImage = imgRedo;
53 this->SetStatus(true);
56 void ImageInfoUR::LoadImagesToMemory(const StringType& gPath) {
58 StringType filename = gPath + this->m_ImageName;
59 StringType undoImagePath = filename + "_Undo.mhd";
60 StringType redoImagePath = filename + "_Redo.mhd";
62 VTKMetaImageReaderPointerType readerUndo =
63 VTKMetaImageReaderPointerType::New();
64 readerUndo->SetFileName(undoImagePath.c_str());
65 this->m_UndoImage = readerUndo->GetOutput();
66 this->m_UndoImage->Update();
68 VTKMetaImageReaderPointerType readerRedo =
69 VTKMetaImageReaderPointerType::New();
70 readerRedo->SetFileName(redoImagePath.c_str());
71 this->m_RedoImage = readerRedo->GetOutput();
72 this->m_RedoImage->Update();
74 this->m_OnMemory = true;
77 void ImageInfoUR::RemoveImagesFromMemory(const StringType& gPath) {
78 if (!this->m_OnDisk) {
79 this->SaveImagesOnDisk(gPath);
81 this->m_UndoImage = NULL;
82 this->m_RedoImage = NULL;
83 this->SetStatus(false);
86 void ImageInfoUR::SaveImagesOnDisk(const StringType& gPath) {
87 this->m_OnDisk = true;
88 //managing temporary files
89 //EED-11/11/2011 mkstemp((char*) filename.c_str());
90 StringType filename = gPath + this->m_ImageName;
91 StringType undoImagePath = filename + "_Undo.mhd";
92 StringType redoImagePath = filename + "_Redo.mhd";
93 this->SaveImageAsMHD(undoImagePath, this->m_UndoImage);
94 this->SaveImageAsMHD(redoImagePath, this->m_RedoImage);
97 void ImageInfoUR::RemoveImagesFromDisk(const StringType& gPath) {
98 StringType filename = gPath + this->m_ImageName;
99 StringType undoImagePathMHD = filename + "_Undo.mhd";
100 StringType redoImagePathMHD = filename + "_Redo.mhd";
101 StringType undoImagePathRAW = filename + "_Undo.raw";
102 StringType redoImagePathRAW = filename + "_Redo.raw";
106 void ImageInfoUR::SaveImageAsMHD(const StringType& filename,
107 VTKImageDataPointerType image) {
108 VTKMetaImageWriterPointerType w = VTKMetaImageWriterPointerType::New();
110 w->SetCompression(false);
111 w->SetFileDimensionality(image->GetDataDimension());
112 w->SetFileName(filename.c_str());