]> Creatis software - creaMaracasVisu.git/blob - lib/maracasVisuLib/src/interface/wxWindows/widgets/imageUndoRedo/imageInfoUR.cxx
DFCH
[creaMaracasVisu.git] / lib / maracasVisuLib / src / interface / wxWindows / widgets / imageUndoRedo / imageInfoUR.cxx
1 /*
2  * ImageInfo.cxx
3  *
4  *  Created on: Sep 22, 2011
5  *      Author: caceres
6  */
7 #include "imageInfoUR.h"
8
9 ImageInfoUR::ImageInfoUR() {
10         this->m_OnMemory = false;
11         this->m_OnDisk = false;
12 }
13
14 ImageInfoUR::~ImageInfoUR() {
15 }
16
17 void ImageInfoUR::SetImageName(const StringType &imgName) {
18         this->m_ImageName = imgName;
19 }
20 void ImageInfoUR::SetImageMManager(ImageMManagerType* imMManager) {
21         this->m_ImageMManager = imMManager;
22 }
23 void ImageInfoUR::SetStatus(const bool& onMemory) {
24         this->m_OnMemory = onMemory;
25 }
26 void ImageInfoUR::SetImage(VTKImageDataPointerType img) {
27         this->m_Image = img;
28         this->SetStatus(true);
29 }
30 ImageInfoUR::StringType ImageInfoUR::GetImageName() {
31         return (this->m_ImageName);
32 }
33
34 ImageInfoUR::VTKImageDataPointerType ImageInfoUR::GetImage() {
35         return (this->m_Image);
36 }
37
38 ImageInfoUR::ImageMManagerType* ImageInfoUR::GetImageMManager() {
39         return (this->m_ImageMManager);
40 }
41 bool ImageInfoUR::GetStatus() {
42         return (this->m_OnMemory);
43 }
44 void ImageInfoUR::RemoveImageFromMemory(const StringType& gPath) {
45         if (!this->m_OnDisk) {
46                 this->SaveImageAsMHD(gPath);
47         }
48         this->m_Image = NULL;
49         this->SetStatus(false);
50 }
51 void ImageInfoUR::LoadImageMHDToMemory(const StringType& gPath) {
52         StringType filename = gPath + this->m_ImageName;
53         VTKMetaImageReaderPointerType reader = VTKMetaImageReaderPointerType::New();
54         reader->SetFileName(filename.c_str());
55         this->m_Image = reader->GetOutput();
56         this->m_Image->Update();
57         this->m_OnMemory = true;
58 }
59 void ImageInfoUR::SaveImageAsMHD(const StringType& gPath) {
60         this->m_OnDisk = true;
61         StringType filename = gPath + this->m_ImageName;
62         //managing temporary files
63         mkstemp((char*) filename.c_str());
64         VTKMetaImageWriterPointerType w = VTKMetaImageWriterPointerType::New();
65         w->SetInput(this->m_Image);
66         w->SetCompression(false);
67         w->SetFileDimensionality(this->m_Image->GetDataDimension());
68         w->SetFileName(filename.c_str());
69         w->Write();
70 }
71
72 void ImageInfoUR::RemoveImageFromDisk(const StringType& gPath) {
73         std::cout << "Borrando archivo" << endl;
74         StringType filename = gPath + this->m_ImageName;
75         std::cout << filename << std::endl;
76         unlink((char*) filename.c_str());
77 }