+//==========================================================================
+// Plugins types
+//typedef cpPlugins::Interface::Interface TPluginsInterface;
+//typedef cpPlugins::Interface::Object TPluginObject;
+//typedef cpPlugins::Interface::DataObject TPluginData;
+//typedef cpPlugins::Interface::Image TPluginImage;
+//typedef cpPlugins::Interface::ImplicitFunction TPluginImplicitFunction;
+//typedef cpPlugins::Interface::Mesh TPluginMesh;
+//typedef cpPlugins::Interface::ProcessObject TPluginFilter;
+//typedef cpPlugins::Interface::Parameters TParameters;
+//
+//typedef cpExtensions::Visualization::MPRObjects TMPRObjects;
+
+
+
+
+//class MementoState
+//{
+//private:
+// long m_Id;
+//
+//public:
+//
+// MementoState()
+// {
+// m_Id = 0;
+// };
+//
+// MementoState(long id, TPluginImage* _img)
+// {
+// 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");
+//
+// std::string fileNameRaw(base);
+// fileNameRaw.append(complement);
+// fileNameRaw.append(".raw");
+// save(fileName, fileNameRaw, _img);
+// }
+//
+// vtkSmartPointer<vtkMetaImageReader> getMemento(long id)
+// {
+// 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);
+// }
+//
+// void save(const std::string& filename, const std::string& filenameRaw, TPluginImage* img) {
+// vtkSmartPointer<vtkMetaImageWriter> writer =
+// vtkSmartPointer<vtkMetaImageWriter>::New();
+// writer->SetInputData(img->GetVTK< vtkImageData >());
+// writer->SetFileName(filename.c_str());
+// writer->SetRAWFileName(filenameRaw.c_str());
+// writer->Write();
+// }
+//
+// vtkSmartPointer<vtkMetaImageReader> load(const std::string& filename) {
+// vtkSmartPointer<vtkMetaImageReader> reader =
+// vtkSmartPointer<vtkMetaImageReader>::New();
+// reader->SetFileName(filename.c_str());
+// reader->Update();
+// return reader;
+// }
+//
+//};
+
+//==========================================================================
+