X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FmaracasVisuLib%2Fsrc%2Finterface%2FwxWindows%2Fwidgets%2FimageUndoRedo%2FimageInfoUR.cxx;h=1945d318318644aafea2def163daea17ef27ff67;hb=1484229c7f3dab0bc65f08edc2e8d477f92424ff;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..1945d31 100755 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/imageUndoRedo/imageInfoUR.cxx +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/imageUndoRedo/imageInfoUR.cxx @@ -1,82 +1,144 @@ -/* - * ImageInfo.cxx - * - * Created on: Sep 22, 2011 - * Author: caceres +/*# --------------------------------------------------------------------- +# +# Copyright (c) CREATIS (Centre de Recherche en Acquisition et Traitement de l'Image +# pour la Sant�) +# Authors : Eduardo Davila, Frederic Cervenansky, Claire Mouton +# Previous Authors : Laurent Guigues, Jean-Pierre Roux +# CreaTools website : www.creatis.insa-lyon.fr/site/fr/creatools_accueil +# +# This software is governed by the CeCILL-B license under French law and +# abiding by the rules of distribution of free software. You can use, +# modify and/ or redistribute the software under the terms of the CeCILL-B +# license as circulated by CEA, CNRS and INRIA at the following URL +# http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html +# or in the file LICENSE.txt. +# +# As a counterpart to the access to the source code and rights to copy, +# modify and redistribute granted by the license, users are provided only +# with a limited warranty and the software's author, the holder of the +# economic rights, and the successive licensors have only limited +# liability. +# +# The fact that you are presently reading this means that you have had +# knowledge of the CeCILL-B license and that you accept its terms. +# ------------------------------------------------------------------------ */ + +/*! + * @file imageInfoUR.cxx + * @brief This file contains the implementation of the ImageInfoUR class. + * @author Info-Dev + * @author Diego CACERES (diego.caceres[AT]creatis.insa-lyon.fr) + * @date 2011-11-15 */ + #include "imageInfoUR.h" +// ---------------------------------------------------------------------------------- ImageInfoUR::ImageInfoUR() { this->m_OnMemory = false; this->m_OnDisk = false; } - +// ---------------------------------------------------------------------------------- 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; 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(); - 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; - filename.append(".mhd"); - //managing temporary files -//EED-11/11/2011 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"; + remove(undoImagePathMHD.c_str()); + remove(redoImagePathMHD.c_str()); + remove(undoImagePathRAW.c_str()); + remove(redoImagePathRAW.c_str()); +} +// ---------------------------------------------------------------------------------- +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()); -} +// ----------------------------------------------------------------------------------