X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FmaracasVisuLib%2Fsrc%2Finterface%2FwxWindows%2Fwidgets%2FimageUndoRedo%2FimageInfoUR.cxx;h=e3608d492c016cb7d87441206357621c331a8646;hb=c128e1b6226fcf4e036de57411dee1b7740c1627;hp=263bce86e31e90fed1592bef4f245f485f92bedb;hpb=825f47d7d281a359e9fec03de88e7db58e9e49ff;p=creaMaracasVisu.git diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/imageUndoRedo/imageInfoUR.cxx b/lib/maracasVisuLib/src/interface/wxWindows/widgets/imageUndoRedo/imageInfoUR.cxx index 263bce8..e3608d4 100755 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/imageUndoRedo/imageInfoUR.cxx +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/imageUndoRedo/imageInfoUR.cxx @@ -17,61 +17,98 @@ ImageInfoUR::~ImageInfoUR() { void ImageInfoUR::SetImageName(const StringType &imgName) { this->m_ImageName = imgName; } + void ImageInfoUR::SetImageMManager(ImageMManagerType* imMManager) { this->m_ImageMManager = imMManager; } + void ImageInfoUR::SetStatus(const bool& onMemory) { this->m_OnMemory = onMemory; } -void ImageInfoUR::SetImage(VTKImageDataPointerType img) { - this->m_Image = img; - this->SetStatus(true); -} + ImageInfoUR::StringType ImageInfoUR::GetImageName() { return (this->m_ImageName); } -ImageInfoUR::VTKImageDataPointerType ImageInfoUR::GetImage() { - return (this->m_Image); +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 StringType& 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 = NULL; + this->m_UndoImage = NULL; + this->m_RedoImage = NULL; this->SetStatus(false); } -void ImageInfoUR::LoadImageMHDToMemory(const StringType& gPath) { + +void ImageInfoUR::SaveImagesOnDisk(const StringType& gPath) { + this->m_OnDisk = true; + //managing temporary files +//EED-11/11/2011 mkstemp((char*) filename.c_str()); StringType filename = gPath + this->m_ImageName; - VTKMetaImageReaderPointerType reader = VTKMetaImageReaderPointerType::New(); - reader->SetFileName(filename.c_str()); - this->m_Image = reader->GetOutput(); - this->m_Image->Update(); - this->m_OnMemory = true; + StringType undoImagePath = filename + "_Undo.mhd"; + StringType redoImagePath = filename + "_Redo.mhd"; + this->SaveImageAsMHD(undoImagePath, this->m_UndoImage); + this->SaveImageAsMHD(redoImagePath, this->m_RedoImage); } -void ImageInfoUR::SaveImageAsMHD(const StringType& gPath) { - this->m_OnDisk = true; + +void ImageInfoUR::RemoveImagesFromDisk(const StringType& gPath) { StringType filename = gPath + this->m_ImageName; - //managing temporary files - mkstemp((char*) filename.c_str()); + 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(this->m_Image); + w->SetInput(image); w->SetCompression(false); - w->SetFileDimensionality(this->m_Image->GetDataDimension()); + w->SetFileDimensionality(image->GetDataDimension()); w->SetFileName(filename.c_str()); w->Write(); } - -void ImageInfoUR::RemoveImageFromDisk(const StringType& gPath) { - std::cout << "Borrando archivo" << endl; - StringType filename = gPath + this->m_ImageName; - std::cout << filename << std::endl; - unlink((char*) filename.c_str()); -}