X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FcpExtensions%2FIO%2FMementoState.cxx;fp=lib%2FcpExtensions%2FIO%2FMementoState.cxx;h=0000000000000000000000000000000000000000;hb=98390bcac544f7f3a6762ce812dda491213d6f13;hp=e0dd0493287518489bf013fdb16de1e08deeff7f;hpb=b6c7e73ebcce23619daced67f85d9e1364b33f30;p=cpPlugins.git diff --git a/lib/cpExtensions/IO/MementoState.cxx b/lib/cpExtensions/IO/MementoState.cxx deleted file mode 100644 index e0dd049..0000000 --- a/lib/cpExtensions/IO/MementoState.cxx +++ /dev/null @@ -1,146 +0,0 @@ -#include - - -#include -#include -#include - - - - - -// ------------------------------------------------------------------------- -cpExtensions::IO::MementoState::MementoState() -{ - m_maxId = m_Id = 0; - m_stateIt = m_stateReady.begin(); -}; - -// ------------------------------------------------------------------------- -bool -cpExtensions::IO::MementoState::SetToMemento(cpPlugins::Interface::Image* _img) -{ - char base[] = "state"; - std::ostringstream oss; - this->m_Id; - oss << this->m_Id; - std::string str = oss.str(); - auto complement = str.c_str(); - - std::string fileName(base); - fileName.append(complement); - fileName.append(".mhd"); - - std::string fileNameRaw(base); - fileNameRaw.append(complement); - fileNameRaw.append(".raw"); - //save(fileName, fileNameRaw, _img); - m_stateReady.insert(m_stateReady.begin() + m_Id, false); - std::async(std::launch::async, &MementoState::Save, this, fileName, fileNameRaw, _img); - - m_stateReady[m_Id] = true; - m_Id++; - - if (m_Id > m_maxId) - { - m_maxId = m_Id; - } - - return true; -} - - -// ------------------------------------------------------------------------- -vtkSmartPointer -cpExtensions::IO::MementoState::GetFromMemento(long id) -{ - if (id > m_maxId) - { - return nullptr; - } - - char base[] = "state"; - std::ostringstream oss; - oss << id; - std::string str = oss.str(); - auto complement = str.c_str(); - - std::string fileName(base); - fileName.append(complement); - fileName.append(".mhd"); - return Load(fileName); - /*std::future> result(std::async(std::launch::async, &MementoState::Load, this, fileName)); - return result.get();*/ -} - -// ------------------------------------------------------------------------- -vtkSmartPointer -cpExtensions::IO::MementoState::MementoUndo() -{ - char base[] = "state"; - std::ostringstream oss; - oss << --this->m_Id; - std::string str = oss.str(); - auto complement = str.c_str(); - - std::string fileName(base); - fileName.append(complement); - fileName.append(".mhd"); - - if (m_stateReady.at(this->m_Id)) - { - return Load(fileName); - } - - return nullptr; -} - - -vtkSmartPointer -cpExtensions::IO::MementoState::MementoRedo() -{ - char base[] = "state"; - std::ostringstream oss; - oss << ++this->m_Id; - std::string str = oss.str(); - auto complement = str.c_str(); - - std::string fileName(base); - fileName.append(complement); - fileName.append(".mhd"); - - if (m_stateReady.at(this->m_Id) && - this->m_Id <= this->m_maxId) - { - return Load(fileName); - } - return nullptr; -} - -// ------------------------------------------------------------------------- -void -cpExtensions::IO::MementoState:: -Save(const std::string& filename, const std::string& filenameRaw, cpPlugins::Interface::Image* img) { - - vtkSmartPointer writer = - vtkSmartPointer::New(); - writer->SetInputData(img->GetVTK< vtkImageData >()); - writer->SetFileName(filename.c_str()); - writer->SetRAWFileName(filenameRaw.c_str()); - writer->Write(); -} - -// ------------------------------------------------------------------------- -vtkSmartPointer -cpExtensions::IO::MementoState::Load(const std::string& filename) { - - vtkSmartPointer reader = - vtkSmartPointer::New(); - reader->SetFileName(filename.c_str()); - - reader->Update(); - return reader->GetOutput(); - -} - -// eof - $RCSfile$