X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FmaracasVisuLib%2Fsrc%2Finterface%2FwxWindows%2Fwidgets%2FimageUndoRedo%2FimageInfoUR.cxx;fp=lib%2FmaracasVisuLib%2Fsrc%2Finterface%2FwxWindows%2Fwidgets%2FimageUndoRedo%2FimageInfoUR.cxx;h=e3608d492c016cb7d87441206357621c331a8646;hb=2725f81fc97c9faa92749159bdbaf9cedeef7af4;hp=69c3811aceebfd4d63d639de64aa977187d2189e;hpb=d725af03e25b41e03b212c26068be2c04dacd270;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 69c3811..e3608d4 100755 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/imageUndoRedo/imageInfoUR.cxx +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/imageUndoRedo/imageInfoUR.cxx @@ -17,66 +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) { - if (!this->m_OnDisk) { - this->SaveImageAsMHD(gPath); - } - this->m_Image = NULL; - this->SetStatus(false); + +void ImageInfoUR::SetImages(VTKImageDataPointerType imgUndo, + VTKImageDataPointerType imgRedo) { + this->m_UndoImage = imgUndo; + this->m_RedoImage = imgRedo; + this->SetStatus(true); } -void ImageInfoUR::LoadImageMHDToMemory(const StringType& gPath) { + +void ImageInfoUR::LoadImagesToMemory(const StringType& gPath) { + //setting paths StringType filename = gPath + this->m_ImageName; - filename.append(".mhd"); - VTKMetaImageReaderPointerType reader = VTKMetaImageReaderPointerType::New(); - reader->SetFileName(filename.c_str()); - this->m_Image = reader->GetOutput(); - this->m_Image->Update(); + 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::SaveImageAsMHD(const StringType& gPath) { + +void ImageInfoUR::RemoveImagesFromMemory(const StringType& gPath) { + if (!this->m_OnDisk) { + this->SaveImagesOnDisk(gPath); + } + this->m_UndoImage = NULL; + this->m_RedoImage = NULL; + this->SetStatus(false); +} + +void ImageInfoUR::SaveImagesOnDisk(const StringType& gPath) { this->m_OnDisk = true; - StringType filename = gPath + this->m_ImageName; - filename.append(".mhd"); //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::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(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) { - StringType filename = gPath + this->m_ImageName; - filename.append(".mhd"); - StringType filenameRaw = gPath + this->m_ImageName; - filenameRaw.append(".raw"); -//EED-11/11/2011 mkstemp((char*) filenameRaw.c_str()); - unlink((char*) filename.c_str()); - unlink((char*) filenameRaw.c_str()); -}