]> Creatis software - creaMaracasVisu.git/blob - lib/maracasVisuLib/src/interface/wxWindows/widgets/imageUndoRedo/imageInfoUR.cxx
DFCH: ManualPaint, ImageUndoRedo (module) 70%.
[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_Image = NULL;
11         this->m_OnMemory = false;
12         this->m_OnDisk = false;
13 }
14
15 ImageInfoUR::~ImageInfoUR() {
16         this->m_Image->Delete();
17 }
18
19 void ImageInfoUR::SetImageName(const std::string &imgName) {
20         this->m_ImageName = imgName;
21 }
22 void ImageInfoUR::SetRegion(const RegionStructUR &region) {
23         this->m_Region = region;
24 }
25 void ImageInfoUR::SetStatus(const bool& onMemory) {
26         this->m_OnMemory = onMemory;
27 }
28 void ImageInfoUR::SetImage(vtkImageData* img) {
29         this->m_Image = img;
30         this->SetStatus(true);
31 }
32 std::string ImageInfoUR::GetImageName() {
33         return (this->m_ImageName);
34 }
35 RegionStructUR ImageInfoUR::GetRegion() {
36         return (this->m_Region);
37 }
38 bool ImageInfoUR::GetStatus() {
39         return (this->m_OnMemory);
40 }
41 void ImageInfoUR::RemoveImageFromMemory(const std::string& gPath) {
42         if (!this->m_OnDisk) {
43                 this->SaveImageAsMHD(gPath);
44         }
45         this->m_Image->Delete();
46         this->SetStatus(false);
47 }
48 void ImageInfoUR::LoadImageMHDToMemory(const std::string& gPath) {
49         std::string filename = gPath + this->m_ImageName;
50         vtkSmartPointer<vtkMetaImageReader> reader = vtkSmartPointer<
51                         vtkMetaImageReader>::New();
52         reader->SetFileName(filename.c_str());
53         this->m_Image = reader->GetOutput();
54         this->m_OnMemory = true;
55 }
56 void ImageInfoUR::SaveImageAsMHD(const std::string& gPath) {
57         this->m_OnDisk = true;
58         std::string filename = gPath + this->m_ImageName;
59         vtkSmartPointer<vtkMetaImageWriter> w =
60                         vtkSmartPointer<vtkMetaImageWriter>::New();
61         w->SetInput(this->m_Image);
62         w->SetCompression(false);
63         w->SetFileDimensionality(this->m_Image->GetDataDimension());
64         w->SetFileName(filename.c_str());
65         w->Update();
66         w->Write();
67         w->Delete();
68 }
69
70 void ImageInfoUR::RemoveImageFromDisk(const std::string& gPath)
71 {
72
73 }